diff options
Diffstat (limited to 'server/other')
-rw-r--r-- | server/other/ea_job_system.txt | 197 | ||||
-rw-r--r-- | server/other/effect_list.txt | 986 | ||||
-rw-r--r-- | server/other/map_cache.txt | 68 | ||||
-rw-r--r-- | server/other/md5_hashcheck.txt | 58 | ||||
-rw-r--r-- | server/other/packet_struct_notation.txt | 118 | ||||
-rw-r--r-- | server/other/quest_variables.txt | 108 |
6 files changed, 1535 insertions, 0 deletions
diff --git a/server/other/ea_job_system.txt b/server/other/ea_job_system.txt new file mode 100644 index 0000000..143251b --- /dev/null +++ b/server/other/ea_job_system.txt @@ -0,0 +1,197 @@ +//===== Hercules Documentation =============================== +//= eAthena Job System +//===== By: ================================================== +//= Skotlex +//===== Current Version: ===================================== +//= 2013-02-10 +//===== Description: ========================================= +//= A reference description of eA's inner job system (for use +//= in scripts through the eaclass and roclass script commands). +//============================================================ + +Preface: +------------------------------------------------------------------------------- + + Most scripters are aware of the class values used in RO and their constants specified on db/constants.conf. Each class has a number associated to it for referencing, so when someone's class is 9 that means they are a wizard. However, this list of job numbers has no real order behind it, and no logic behind it's assignation. + + You can add 3999 to a job to get their rebirth ID, but if you try to do the same to get the Baby class ID, that fails on the super Baby class. Also, there's no way to calculate, from a given first class, which classes would be their "evolution". That is, given the Archer's ID, you cannot just add a value that will return you "Hunter", and will still work if applied to the other classes. It didn't help much when they added Taekwon Boy, a first class, with an ID of 4046, and much later they added Ninja/Gunslinger with the IDs 25/24. How do you identify a first class on all this mess without recurring to very ugly range checks? + +The eA Job System: +------------------------------------------------------------------------------- + + Since the code also required to do this kind of checks for various skills (the Soul Linker Spirit buffs specifically come to mind), an alternate job ID system was developed, which attempts to make more sense and make it easier to check where a particular job stands in relation to the rest. + + The scheme consists in that every job can be broken down by 3 criteria: + +- Base Job: This determines to which class-tree a job belongs. All jobs can be traced back to their root. The base job of all classes has to be one of the following: + + EAJ_NOVICE 0x0 + EAJ_SWORDMAN 0x1 + EAJ_MAGE 0x2 + EAJ_ARCHER 0x3 + EAJ_ACOLYTE 0x4 + EAJ_MERCHANT 0x5 + EAJ_THIEF 0x6 + EAJ_TAEKWON 0x7 + EAJ_GUNSLINGER 0x9 + EAJ_NINJA 0x0A + EAJ_GANGSI 0x0D + +- Branch: All classes can be classified as "1st Class", "2-1 Class" or "2-2 Class": + + EAJL_2_1 0x100 + EAJL_2_2 0x200 + EAJL_2 0x300 + +- The third category is type. Classes can either be normal, rebirth/advanced, adopted, or third class. + + EAJL_UPPER 0x1000 + EAJL_BABY 0x2000 + EAJL_THIRD 0x4000 + +So using these three categories, any job class can be constructed from the others. Let's take a swordman, for example. + +The first step is basic swordman, with nothing else: + + EAJ_SWORDMAN + +If a swordman is adopted... + + EAJ_SWORDMAN|EAJL_BABY -> EAJ_BABY_SWORDMAN + +The next step is to either become a 2-1 or a 2-2 job: + + EAJ_SWORDMAN|EAJL_2_1 -> EAJ_KNIGHT + EAJ_SWORDMAN|EAJL_2_2 -> EAJ_CRUSADER + +Getting out the rebirth versions of a swordman: + + EAJ_SWORDMAN|EAJL_UPPER -> EAJ_SWORDMAN_HIGH + EAJ_SWORDMAN|EAJL_2_1|EAJL_UPPER -> EAJ_LORD_KNIGHT + EAJ_SWORDMAN|EAJL_2_2|EAJL_UPPER -> EAJ_PALADIN + +Or getting the third job versions: + + EAJ_SWORDMAN|EAJL_2_1|EAJL_THIRD -> EAJ_RUNE_KNIGHT + EAJ_SWORDMAN|EAJL_2_2|EAJL_THIRD -> EAJ_ROYAL_GUARD + +Why are we using the bitwise OR operand ('|') rather than just adding? Because the OR is wreck-proof: + + EAJ_SWORDMAN_HIGH|EAJL_UPPER -> EAJ_SWORDMAN_HIGH + +If we had used addition, we would have gotten a completely different result. + +The EAJL (eA Job Level) constants +------------------------------------------------------------------------------- + + There are a few constants which can be used to filter out and make job comparisons easier. The comparisons involve eA job IDs, not classic job IDs, using the eaclass() command explained in the next section. + + set @eac, eaclass(); + +EAJL_2_1: + Checks if the class is a 2-1 class: + if (@eac&EAJL_2_1) + mes "Using the classic 2-1 job, huh?"; + +EAJL_2_2: + Checks if the class is a 2-2 class: + if (@eac&EAJL_2_2) + mes "Oh, a 2-2 job!"; + +EAJL_2: + Checks if the class is a 2nd Class. If the check fails, you can be sure the character is a first class. + if (!(@eac&EAJL_2)) + mes "Will you wait until Job 50 to change?"; + +EAJL_UPPER: + Check if a class is Rebirth/Advanced: + if(@eac&EAJL_UPPER) + mes "It must have taken you a LONG time..."; + +EAJL_BABY: + Check if a class is an adopted class. + if (@eac&EAJL_BABY) + mes "Don't you hate being weak?"; + +EAJL_THIRD: + Checks if a class is a third job. + if(@eac&EAJL_THIRD) + mes "Wow, you've really grown!"; + +EAJ_UPPERMASK: + The upper mask can be used to "strip" the upper/baby characteristics of a class, used when you want to know if someone is a certain class regardless of rebirth/adopted status. For example, the following code would go through for Monks, Champions and Baby Monks: + if ((@eac&EAJ_UPPERMASK) == EAJ_MONK) + mes "Aren't knuckles such a cool weapon?"; + + Note that if instead of EAJ_MONK you used EAJ_CHAMPION or EAJ_BABY_MONK, the check would had never passed, since the upper/baby state has been removed from the original job when checking. + +EAJ_BASEMASK: + This mask strips also the 2nd class attributes. It can be used to check against the basic job of a character. For example, the following code would go through for Merchants (+Baby Merchant and High Merchant), Blacksmiths (+Baby blacksmiths and Whitesmith) and Alchemist (+Baby Alchemist and +Creator): + if ((@eac&EAJ_BASEMASK) == EAJ_MERCHANT) + mes "Why I can't have discount like you guys do?"; + + Note that, like before, if you try to check versus any of the other classes (High merchant, blacksmith, etc) instead of basic merchant, the check will always fail for the same reasons previously explained. + +EAJ_THIRDMASK: + This mask strips 3rd class attributes. It will give the "normal" class of a third job, regardless of rebirth/adopted status. When used on non-third class characters, it will return the second job, or, if that also doesn't exist, the first. + if ((@eac&EAJ_THIRDMASK) == EAJ_WARLOCK_T) + mes "You've gone through rebirth, I see."; + +The script commands eaclass, roclass: +------------------------------------------------------------------------------- + + These script commands are what you can use in scripts to convert between the RO classic job id, and eA's job system. The following script code demonstrates how to use these script commands to guess what your next job will be: + + set @eac, eaclass(); + if (@eac&EAJL_2) + { //2nd class + //If upper or baby, you can't rebirth + if (@eac&(EAJL_UPPER|EAJL_BABY)) { + mes "You can't go anywhere, can you?"; + close; + } + //Note that if we remove the EAJL_BABY check up there, the following check + //will also fail, because there's no such thing as Rebirth-Baby classes. + set @newclass, roclass(@eac|EAJL_UPPER); + if (@newclass == -1) { + //Don't you hate this of SG and SL? + mes "Haha, your class doesn't has a rebirth version yet!"; + close; + } + mes "Still dreaming of the day you become a "+jobname(@newclass)+"?"; + close; + } + set @class1, roclass(@eac|EAJL_2_1); + set @class2, roclass(@eac|EAJL_2_2); + if (@class1 == -1) { + //NJ/GS are the only classes who get stuck on their 1st class forever. + mes "Looks like you are stuck forever on that class."; + close; + } + if (@class2 == -1) { + //Not quite true, currently the only 1st class that doesn't has two choices is Novice -> Supernovice (see s.novice section below) + mes "Looks like you have no choice but to be a "+jobname(@class1)+"."; + close; + } + mes "Have you decided yet if you want to be a "+jobname(@class1)+" or a "+jobname(@class2)+"?"; + close; + + +Oddities of the System: +------------------------------------------------------------------------------- +About Bards and Dancers: + These two classes are considered the same in eA's job system, since they both are the 2-2 job of archers. The only way to tell them apart is by using the gender of the character we are referring to. The script command roclass() will automatically use the gender of the attached player (or 'male' if there's no such player), but you can also explicitly pass the gender to the script command when there's no player attached. + +About Novices and Super Novices: + These are treated a bit differently from you'd expect. Because.. for instance, a novice is not supposed to be a 1st class, but it is considered as one on this tree system: + + EAJ_NOVICE -> Novice + EAJ_NOVICE|EAJL_2_1 -> EAJ_SUPER_NOVICE + EAJ_NOVICE|EAJL_UPPER -> EAJ_NOVICE_HIGH + EAJ_NOVICE|EAJL_BABY -> EAJ_BABY + EAJ_NOVICE|EAJL_BABY|EAJL_2_1 -> EAJ_SUPER_BABY + + So as you can see, on this job system, the Super Novice is treated as the 2-1 job of a Novice, and the Novice job it's at the same level of the other 1st jobs. Even though that may seem like a hindrance, it makes it very easy to add a check to discard Novice types from a quest: + + if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) + //Novice class detected. diff --git a/server/other/effect_list.txt b/server/other/effect_list.txt new file mode 100644 index 0000000..01ea275 --- /dev/null +++ b/server/other/effect_list.txt @@ -0,0 +1,986 @@ +//===== Hercules Documentation =============================== +//= Client Effects List +//===== By: ================================================== +//= Hercules Dev Team +//===== Current Version: ===================================== +//= 20120822 +//===== Description: ========================================= +//= A list of client-side effects sorted by ID. +//============================================================ + +The following is a compiled list of visual and sound effects which the client +can produce when receiving a packet with id 0x1f3 (01f3 <ID>.l <type>.l). +Each list entry contains a number and a short description of the effect. +You can produce these effects ingame by doing "@effect <number> 22" (22=self). +It's also possible to attach effects to item/npc scripts by using 'misceffect'. + +Number Description +------ ----------- +0. Regular Hit +1. Bash +2. Melee Skill Hit +3. Melee Skill Hit +4. Melee Skill Hit +5. Melee Skill Hit +6. Being Warped +7. Item Heal effect +8. Yellow Ripple Effect +9. Different Type of Heal +10. Mammonite +11. Endure +12. Yellow cast aura +13. Blue Box +14. Blue restoring effect +15. Soul Strike +16. Hide +17. Magnum Break +18. Steal +19. (Invalid) +20. Envenom/Poison +21. Detoxify +22. Sight +23. Stone Curse +24. Fire Ball +25. Fire Wall +26. A sound (a swipe?) +27. Frost Diver (Traveling to Target) +28. Frost Diver (Hitting) +29. Lightning Bolt +30. Thunder Storm +31. Weird bubbles launching from feet +32. Small clustered explosions +33. Ruwach +34. Old Map Exit Animation (unused) +35. Old Warp Portal (unused) +36. Old Warp Portal (unused) +37. AGI Up +38. AGI Down +39. Aqua Benedicta +40. Signum Crucis +41. Angelus +42. Blessing +43. Dex + Agi Up +44. Little Fog Smoke. +45. Faint Little Ball Things. +46. Sand Wind +47. Torch +48. Small Piece of Glass +49. Firebolt/Wall Hits +50. Spinning Fire Thing +51. Ice Elemental Hit +52. Wind Elemental Hit +53. Puff of Purpulish Smoke? +54. Cast Initiation Aura (Water Element) +55. Cast Initiation Aura (Fire Element) +56. Cast Initiation Aura (Wind Element) +57. Cast Initiation Aura (Earth Element) +58. Cast Initiation Aura (Holy Element) +59. Cast Initiation Aura (Poison Element) +60. Cast target circle +61. Old Warp Portal (NPC Warp, unused) +62. Sight Trasher +63. Moonlight Sphere +64. Something Like Puruple/Yellow Light Bullet +65. Something Like Absorb of Power +66. Cure +67. Provoke +68. MVP Banner +69. Skid Trap +70. Brandish Spear +71. Spiral White balls +72. Bigger Spiral White balls +73. Blue/White Small Aura +74. Ice Wall +75. Gloria +76. Magnificat +77. Resurrection +78. Status Recovery +79. Earth Spike +80. Spear Boomerang +81. Skill hit +82. Turn Undead +83. Sanctuary +84. Impositio Manus +85. Lex Aeterna +86. Aspersio +87. Lex Divina +88. Suffragium +89. Storm Gust +90. Lord of Vermilion +91. B. S. Sacramenti +92. Meteor Storm +93. Jupitel Thunder (Ball) +94. Jupitel Thunder (Hit) +95. Quagmire +96. Fire Pillar +97. Fire Pillar/Land Mine hit +98. Adrenaline Rush +99. Flasher Trap +100. Yellow ball fountain +101. Weapon Repair +102. Hammerfall +103. Weapon Perfection +104. Maximize Power +105. (nothing) +106. Blast Mine Trap +107. Claymore Trap +108. Freezing Trap +109. Bailaban Blue bubble Map Effect +110. Trap Used by Giearth +111. Spring Trap +112. Kyrie Eleison +113. Magnus Exorcismus +114. Old Magnus Exorcismus Map Unit (unused) +115. Blitz Beat +116. Fling Watersphere +117. Waterball +118. Fling Firesphere +119. Detect +120. Cloaking +121. Sonic Blow (Part 1/2) +122. Multi hit effect +123. Grimtooth Cast +124. Venom Dust +125. Enchant Poison +126. Poison React +127. Small Posion React +128. Over Thrust +129. Venom Splasher Explosion +130. Two-Hand Quicken +131. Auto-Counter Hit +132. Grimtooth Hit +133. Ice Effect (Used by NPCs) +134. Ice Effect (Used by NPCs) +135. Ice Effect (Used by NPCs) +136. Slow Poison +137. Old Sanctuary Map Unit (unused) +138. Fire pillar +139. Sandman Trap +140. Ressurection Aura +141. Pneuma +142. Heaven's Drive +143. Sonic Blow (Part 2/2) +144. Brandish Spear Pre-Hit Effect +145. Shockwave Trap +146. Shockwave Trap Hit +147. Pierce Hit +148. Pierce Cast Animation +149. Bowling Bash +150. Pierce Cast Animation +151. Spear Boomerang Cast +152. Turn Undead +153. Increase Concentration +154. Refine Success +155. Refine Fail +156. jobchange.str not found error +157. levelup.str not found error +158. Job Level Up +159. PvP circle +160. PvP Party Circle +161. (Nothing) +162. Snow +163. White Sakura Leaves +164. (Nothing) +165. Comodo Fireworks Ball +166. Energy Coat (Visual Effect) +167. (Nothing) +168. (Nothing) +169. Energy Coat Animation +170. Cart Revolution +171. Venom Dust Map Unit +172. Change Element (Dark) +173. Change Element (Fire) +174. Change Element (Water) +175. Change Element (Wind) +176. Change Element (Fire) +177. Change Element (Earth) +178. Change Element (Holy) +179. Change Element (Poison) +180. Darkness Attack +181. Mental Breaker +182. Magical Hit +183. Self Destruction +184. (Nothing) +185. (Nothing) +186. Combo Attack 1 +187. Combo Attack 2 +188. Combo Attack 3 +189. Combo Attack 4 +190. Combo Attack 5 +191. Guided Attack +192. Poison Attack +193. Silence Attack +194. Stun Attack +195. Petrify Attack +196. Curse Attack +197. Sleep Attack +198. (Nothing) +199. Small Popping Bubble Map Effect +200. Normal level 99 Aura (Middle) +201. Normal level 99 Aura (Bottom) +202. Lv 99 Aura Bubble +203. Fury (Visual Effect) +204. Red Herb/Potion +205. Orange Potion +206. Yellow Herb/Potion +207. White Herb/Potion +208. Blue Herb/Potion +209. Green Herb/Potion +210. Yellow Circle Healing Effect +211. Blue Circle Healing Effect +212. Dark Breath +213. Defender +214. Keeping +215. Summon Slave +216. Blood Drain +217. Energy Drain +218. Concentration Potion +219. Awakening Potion +220. Berserk Potion +221. Intense light beam +222. Defender (Crusader) +223. Holy Cast Aura +224. Wind (Map effect) +225. Volcano casting effect +226. Grand Cross Effect +227. Snatch +228. (Nothing) +229. (Nothing) +230. (Nothing) +231. Map Light Pillar Animation 1 +232. Sacrifice (Visual Effect) +233. Fog +234. Spell Breaker +235. Dispell +236. Deluge Cast Aura +237. Violent Gale Cast Aura +238. Magnetic Earth Cast Aura +239. Volcano (Visual Effect) +240. Deluge (Visual Effect) +241. Violent Gale (Visual Effect) +242. Magnetic Earth (Visual Effect) +243. (Invalid) +244. Magic Rod +245. Holy Cross +246. Shield Charge +247. Map Light Pillar Animation 2 +248. Resistant Souls +249. Shield Boomerang +250. Spear Quicken +251. Devotion +252. Reflect Shield +253. Absorb Spirit Spheres +254. Mental Strength (Visual Effect) +255. Elemental Endow (Fire) +256. Elemental Endow (Water) +257. Elemental Endow (Wind) +258. Elemental Endow (Earth) +259. Map Light Pillar Animation 3 +260. Map Light Pillar Animation 4 +261. Fury Cast Animation +262. Raging Quadruple Blow +263. Raging Quadruple Blow 2 +264. (Nothing) +265. Throw Spirit Sphere +266. Raging Quadruple Blow 3 +267. Occult Impaction +268. Steal Coin +269. Divest Weapon +270. Divest Shield +271. Divest Armor +272. Divest Helm +273. Raging Quadruple Blow 4 +274. Steal Coin Animation +275. Back Stab Animation +276. Raging Thrust +277. Dissoance Map Unit +278. Lullaby Map Unit +279. Mr Kim a Rich Man Map Unit +280. Eternal Chaos Map Unit +281. A Drum on the Battlefield Map Unit +282. The Ring Of Nibelungen Map Unit +283. Loki's Veil Map Unit +284. Into the Abyss Map Unit +285. Invunerable Siegfriend Map Unit +286. A Wistle Map Unit +287. Assassin Cross of Sunset Map Unit +288. A Poem of Bragi Map Unit +289. The Apple Of Idun Map Unit +290. Ugly Dance Map Unit +291. Humming Map Unit +292. Please don't Forget Me Map Unit +293. Fortune's Kiss Map Unit +294. Service For You Map Unit +295. Frost Joke +296. Scream +297. Fire Works (Visual Effect) +298. Acid Terror Animnation +299. (Nothing) +300. Chemical Protection +301. Fire Works (Sound Effect) +302. Bomb +303. (Unused) +304. Teleportation Animation +305. Pharmacy Success +306. Pharmacy Failed +307. Forest Light 1 +308. Throw Stone +309. First Aid +310. Sprinkle Sand +311. Crazy Uproar +312. Heal Effect +313. Heal Effect 2 +314. Old Map Exit effect (Unused) +315. Safety Wall +316. Warp Portal Animation 1 +317. Warp Portal Animation 2 +318. Magnus Exorcisimus Map Unit +319. Sanctuary Map Unit +320. Offensive Heal +321. Warp NPC +322. Forest Light 2 +323. Forest Light 3 +324. Forest Light 4 +325. Heal Effect 4 +326. Chase Walk Left Foot +327. Chse Walk Right Foot +328. Monk Asura Strike +329. Triple Strike +330. Combo Finish +331. Natural HP Regeneration +332. Natural SP Regeneration +333. Autumn Leaves +334. Blind +335. Poison +336. Kyrie Eleison/Parrying Shield +337. Class Change +338. Super Novice/Taekwon Level Up Angel +339. Spiral Pierce +340. (Nothing) +341. Wedding Warp Portal +342. Wedding Skill +343. Another Merry Skill +344. Character map entry effect +345. Wings (Animated) +346. Like Moonlight But Blue +347. Wedding Ceremony +348. Like 1000 Blade trepassing +349. Waterfall (Horizonatal) +350. Waterfall (Vertical) +351. Small Waterfall (Horizonatal) +352. Small Waterfall (Vertical) +353. Dark Waterfall (Horizonatal) +354. Dark Waterfall (Vertical) +355. Dark Small Waterfall (Horizonatal) +356. Dark Small Waterfall (Vertical) +357. (Nothing) +358. Niflheim Ghost +359. Niflheim Bat Slow +360. Niflheim Bat Fast +361. Soul Destroyer +362. Trancendant Level 99 Aura 1 +363. Valentine Day Heart With Wings +364. Valentine Day Heart +365. Gloria Domini +366. Martyr's Reckoning +367. Aura Blade +368. Berserk +369. Concentration +370. Gospel Map Unit +371. Level Up +372. Death +373. House Smoke +374. Basilica +375. Assumptio (Visual Effect) +376. Palm Strike +377. Matyr's Reckoning 2 +378. Soul Drain (1st Part) +379. Soul Drain (2nd Part) +380. Magic Crasher +381. Blue Starburst (Unknown use) +382. (Nothing) +383. Health Conversion +384. Soul Change (Sound Effect) +385. Soul Change (Visual Effect) +386. True Sight +387. Falcon Assault +388. Focused Arrow Strike (Sound Effect) +389. Wind Walk +390. Shattering Strike +391. Cart Boost +392. Reject Sword +393. Arrow Vulcan +394. Sheltering Bliss +395. Marionette Control (Sound Effect) +396. Marionette Control (Visual Effect) +397. Trancended 99 Aura (Middle) +398. Trancended 99 Aura (Bottom) +399. Head Crush +400. Joint Beat +401. Napalm Vulcan Sound +402. Dangerous Soul Collect +403. Mind Breaker +404. Fiber Lock +405. Wall Of Fog +406. Soul Burn +407. Soul Change +408. Mom, Dad, I love you! (Baby Skill) +409. Meteor Assault +410. Rainbow +411. Leap +412. Like Throw Spirit Sphere +413. Axe Kick +414. Round Kick +415. Counter Kick +416. (Nothing) +417. Flash +418. Warmth Lightning +419. Kaite (Visual Effect) +420. Eswoo (Small) (Visual Effect) +421. Eswoo (Alt. Small) (Visual Effect) +422. Eswoo (Normal) (Visual Effect) +423. Eswoo (Alt. Normal) (Visual Effect) +424. Spirit Link (Visual Effect) +425. Esma Hit (Visual Effect) +426. Sprint Collision (Visual Effect) +427. (Nothing) +428. (Nothing) +429. Taekwon Kick Hit 1 +430. Taekwon Kick Hit 2 +431. Taekwon Kick Hit 3 +432. Solar, Lunar and Stellar Perception (Visual Effect) +433. Solar, Lunar and Stellar Opposition (Visual Effect) +434. Taekwon Kick Hit 4 +435. Whirlwind Kick +436. White Barrier (Unused) +437. White barrier 2 (Unused) +438. Kaite Reflect Animation +439. Flying Side Kick +440. Assumptio (Animation) +441. Comfort Skills Cast Aura +442. Foot Prints caused by Sprint. +443. (Nothing) +444. Sprint Stop Animation +445. High Jump (Jump) +446. High Jump (Return Down) +447. Running Left Foot +448. Running Right Foot +449. KA-Spell (1st Part) +450. Darkcross +451. Dark Strike +452. Something Like Jupitel Thunder +453. Paralized +454. Like Blind +455. Another Warmth Lightning +456. Power Up +457. Flying Side Kick (2nd Part) +458. Running/Sprint (running into a wall) +459. Brown tornado that spins sprite (unused) +460. Green tornado (unused) +461. Blue tornado (unused) +462. Kaupe Dodge Effect +463. Kaupe Dodge Effect +464. White tornado (unused) +465. Purple tornado (unused) +466. Another Round Kick +467. Warm/Mild Wind (Earth) +468. Warm/Mild Wind (Wind) +469. Warm/Mild Wind (Water) +470. Warm/Mild Wind (Fire) +471. Warm/Mild Wind (Undead) +472. Warm/Mild Wind (Shadow) +473. Warm/Mild Wind (Holy) +474. (Nothing) +475. Demon of The Sun Moon And Stars (Level 1) +476. Demon of The Sun Moon And Stars (Level 2) +477. Demon of The Sun Moon And Stars (Level 3) +478. Demon of The Sun Moon And Stars (Level 4) +479. Demon of The Sun Moon And Stars (Level 5) +480. Demon of The Sun Moon And Stars (Level 6) +481. Demon of The Sun Moon And Stars (Level 7) +482. Demon of The Sun Moon And Stars (Level 8) +483. Demon of The Sun Moon And Stars (Level 9) +484. Demon of The Sun Moon And Stars (Level 10) +485. Mental Strength Lightning but White +486. Mental Strength Lightning +487. Demon of The Sun Moon And Stars Ground Effect +488. Comfort Skills +489. (Nothing) +490. (Nothing) +491. Element Potions +492. Cooking Foods +493. Enchant Deadly Poison +494. Throwing Tomahawk +495. Full Strip Sound +496. Preserve +497. Twilight Alchemy 1 +498. Twilight Alchemy 2 +499. Twilight Alchemy 3 +500. Player Become Blue with Blue Aura +501. Chase Walk Animation +502. Player Become Yellow with Yellow Aura +503. Soul Link Word +504. (Nothing) +505. Memorize +506. (Nothing) +507. Authoritative Badge +508. Fire Cracker +509. Valentine Day Hearth (Wings) +510. Champion Asura Strike +511. (Nothing) +512. Chain Crush Combo +513. Area Cast +514. Really Big Circle +515. Einbroch Fog +516. Airship Cloud +517. (Nothing) +518. Cart Termination +519. Speed Down Potion +520. Shield Bumerang +521. Player Become Red with Red Aura +522. Gravitation Field +523. Tarot Card of Fate (The Fool) +524. Tarot Card of Fate (The Magician) +525. Tarot Card of Fate (The High Priestess) +526. Tarot Card of Fate (The Chariot) +527. Tarot Card of Fate (Strength) +528. Tarot Card of Fate (The Lovers) +529. Tarot Card of Fate (The Wheel of Fortune) +530. Tarot Card of Fate (The Hanged Man) +531. Tarot Card of Fate (Death) +532. Tarot Card of Fate (Temperance) +533. Tarot Card of Fate (The Devil) +534. Tarot Card of Fate (The Tower) +535. Tarot Card of Fate (The Star) +536. Tarot Card of Fate (The Sun) +537. Acid Demonstration +538. Player Become Green with Green Aura +539. Throw Random Bottle +540. Instant Small->Normal +541. (Nothing) +542. KA-Spell (1st Part) +543. Kahii +544. Warmth Red Sprite +545. Sound And... PUFF Client Crash :P +546. Kaupe +547. Estin +548. Instant Red Sprite +549. Instant Blue Sprite +550. Another Effect like Running Hit +551. Effect Like Estun but with Circle +552. (Nothing) +553. Esma +554. Large White Cloud +555. Estun +556. (Nothing) +557. Juperos Energy Waterfall (Horizontal) +558. Juperos Energy Waterfall (Vertical) +559. Juperos Energy Waterfall Fast (Horizontal) +560. Juperos Energy Waterfall Fast (Vertical) +561. Juperos Warp +562. Juperos Warp +563. Earthquake Effect (Juperos Elevator) +564. Wedding Cast +565. Filir Moonlight Lvl 1 +566. Filir Moonlight Lvl 2 +567. Filir Moonlight Lvl 3 +568. Another Job Level Up +569. Amistr Bulwark +570. Amistr Castling +571. Amistr Bloodlust +572. Warmth Soul +573. Twilight Alchemy 1 +574. Twilight Alchemy 2 +575. Twilight Alchemy 3 +576. Box Effect (Thunder) +577. Box Effect (Cloud) +578. Box Effect (Curse) +579. Box Effect (Sleep) +580. Box Effect (Rain) +581. Box Effect (Sunlight) +582. Another Super Novice/Taekwon Angel +583. Warmth Hit +584. Full Buster +585. 5 Medium Size Explosion +586. Somatology Lab Mobs Aura +587. Big Purple Flame +588. Little Red Flame +589. Eswoo +590. Running Stop +591. (Nothing) +592. Thanatos Tower Bloody Clouds +593. Food Effect (STR) +594. Food Effect (INT) +595. Food Effect (VIT) +596. Food Effect (AGI) +597. Food Effect (DEX) +598. Food Effect (LUK) +599. Cast Time Sound and Flashing Animation on Player +600. Throw Venom Knife +601. Sight Blaster +602. Close Confine (Grab Effect) +603. Spinning fire ball (like 50, but smaller) +604. Close Confine (Ground Effect) +605. (Nothing) +606. Pang Voice (Visual Effect) +607. Wink of Charm (Visual Effect) +608. Cooking Success +609. Cooking Failed +610. Success +611. Failed +612. Korean Words and /no1 Emoticon +613. Throw Shuriken +614. Throw Kunai +615. Throw Fumma Shuriken +616. Throw Money +617. Illusionary Shadow +618. Crimson Fire Bolossom +619. Lightning Spear Of Ice +620. Water Escape Technique +621. Wind Blade +622. Lightning Crash +623. Piercing Shot +624. Kamaitachi +625. Madness Canceller +626. Adjustment +627. Disarm (Sound Effect) +628. Dust +629. (Nothing) +630. Shadow Slash +631. Reverse Tatami Map Unit +632. Mist Slash +633. Final Strike +634. Crimson Fire Formation +635. Dragon Fire Formation +636. Falling Ice Pillar +637. Desperado +638. Ground Drift Grenade +639. Ground Drift Grenade +640. Ground Drift Grenade +641. Ground Drift Grenade +642. Ground Drift Grenade +643. Rapid Shower +644. Magic Bullet +645. Spread Attack +646. Tracking (Shown While Casting) +647. Tracking +648. Triple Action +649. Bull's Eye +650. Ice Cave Level 4 Circle +651. Ice Cave Level 4 Big Circle +652. Like Regeneration Number but Red with a Sound +653. Like Regeneration Number but Red +654. Like Regeneration Number but Purple +655. Mobs Skill (Change Undead Element) +656. Last animation before Change Undead Element finish +657. (Nothing) +658. (Nothing) +659. (Nothing) +660. (Nothing) +661. (Nothing) +662. (Nothing) +663. (Nothing) +664. (Nothing) +665. Little Blue Ball Falling From the Sky +666. Earthquake +667. (Nothing) +668. Dragonfear +669. Wide Bleeding +670. Dragon fear (Visual Effect) +671. The Japan Earth Symbol (like 'Seven Wind Lv1', but on the ground) +672. The Japan Wind Symbol (like 'Seven Wind Lv2', but on the ground) +673. Map turns Blue (like Soul Link) +674. Evil Land Cell +675. Like Parrying/Kyrie Eleison barrier but Yellow with small Cross in every barrier piece +676. Slow Casting +677. Critical Wounds/Bleeding Attack +678. White 99 Aura Bubbles +679. Green Aura (Middle) +680. Green Aura (Bottom) +681. Dimensional Gorge Map Effect +682. I Love You Banner +683. Happy White Day Banner +684. Happy Valentine Day Banner +685. Happy Birthday Banner +686. Merry Christmas Banner +687. Cast Circle-Like effect 1 +688. Cast Circle-Like effect 2 +689. Endless Tower Map Effect +690. Burning Flame (Red) +691. Burning Flame (Green) +692. Unknown Aura Bubbles (Small ghosts) +693. Translucent yellow circle +694. Translucent green circle +695. Rotating green light +696. The same of 690 and 691 but Blue/Purple +697. (Nothing) +698. (Nothing) +699. Fall of powder from the sky and raise of some leaf +700. Big Colored Green Sphere. +701. Huge Blue Sphere +702. Little Colored Violet Sphere +703. Light Infiltration with fall of pownder +704. Client Error (mobile_ef02.str) +705. Client Error (mobile_ef01.str) +706. Client Error (mobile_ef03.str) +707. Client Crash :P +708. Storm Gust (same as 89) +709. A Firework that split in 4 mini fireworks +710. A Sphere like Effect 701 but Green, and a bit more larger +711. A big violet wall +712. A Little Flame Sphere +713. A lot of Very Small and Yellow Sphere +714. (Nothing) +715. Little blue Basilica +716. Same as 715 +717. Christmas Carol (copy of Angelus) +718. Judex (Visual Effect) +719. Renovatio (light beam) +720. Yellow version of Soul Breaker +721. Adoramus (lightning bolt) +722. Ignition Break (big explosion) +723. Hundred Spear (sound effect) +724. Green version of Detecting +725. Oratorio (like Detecting) +726. Frost Misty (blue vapor and bubbles) +727. Crimson Rock +728. Small fire (part of Hell Inferno) +729. Marsh of Abyss (like Close Confine) +730. Small, cartoony explosion (part of Soul Expansion) +731. Dragon Howling (blinking, expanding circle) +732. Spike from the ground +733. Fluffy Ball flying by +734. Chain Lightning +735. (Nothing) +736. (Nothing) +737. (Nothing) +738. (Nothing) +739. Old Magenta Trap +740. Old Cobald Trap +741. Old Maize Trap +742. Old Verdure Trap +743. White Ranger Trap +744. Camouflage +745. Aimed Bolt (crosshairs) +746. Arrow Storm +747. Falling white feathers +748. Falling blue feathers +749. Millennium Shield +750. Detonator (blue sparkles) +751. Releasing summoned warlock spheres +752. Like Energy Coat, but not as dark +753. Clearance +754. Green warp portal (root of Epiclesis) +755. Oratio (spinning blue symbol) +756. Enchant Blade (like Berserk Potion) +757. Third Class Aura (Middle) +758. Rolling Cutter - Spin Count 1 +759. Rolling Cutter - Spin Count 2 +760. Rolling Cutter - Spin Count 3 +761. Rolling Cutter - Spin Count 4 +762. Rolling Cutter - Spin Count 5 +763. Rolling Cutter - Spin Count 6 +764. Rolling Cutter - Spin Count 7 +765. Rolling Cutter - Spin Count 8 +766. Rolling Cutter - Spin Count 9 +767. Rolling Cutter - Spin Count 10 +768. Blinking +769. Cross Ripper Slasher (flying knives) +770. Strip sound +771. Poison sound +772. Poison particles +773. Expanding purple aura (part of Phantom Menace) +774. Axe Boomerang +775. Spinning character sprite +776. Like Desperado sound effect +777. Faded light from the ground [S] +778. Expanding white aura (like Clearance) +779. Faded light from the ground [S] +780. Expanding red aura (from Infrared Scan) +781. Magnetic Field (purple chains) +782. All-around shield [S] +783. Yellow shaft of light +784. White shaft of light +785. Upward flying wrenches +786. Symbol with bleeping sound [S] +787. Flare Launcher (line of fire) +788. Venom Impress (green skull) +789. Freezing Status Effect (two ancillas) +790. Burning Status Effect (flame symbol) +791. Two ice shots +792. Upward streaming white particles +793. Same, but more brief +794. Infrared Scan (red lasers) +795. Power Swing (axe crash) +796. Spinning blue triangles +797. Stapo +798. Red triangles (like Intimidate) +799. Stasis (expanding blue mist) [S] +800. Hell Inferno (red lights) +801. Jack Frost unit (ice spikes) +802. White Imprison +803. Recognized Spell +804. Tetra Vortex [S] +805. Tetra Vortex cast animation (blinking colors) +806. Flying by as fast as a rocket +807. Kidnapping sound +808. Like Recognized Spell, but one symbol +809. Shadowy filter [S] +810. Damp thud sound [S] +811. Body Painting +812. Black expanding aura +813. Masquerade - Enervation +814. Masquerade - Groomy +815. Masquerade - Ignorance +816. Masquerade - Laziness +817. Masquerade - Unlucky +818. Masquerade - Weakness +819. (Nothing) +820. Strip Accessory +821. Waterfall +822. Dimension Door (spinning blue aura) +823. in-the-manhole effect +824. Some filter +825. Dimension Door (aura + blue light) +826. Expanding black casting anim. +827. Chaos Panic (spinning brown aura) +828. Maelstrom (spinning pink aura) +829. Bloody Lust (spinning red aura) +830. Blue aura (Arch Bishop cast animation) +831. Blue cone [S] +832. Sonic Wave +833. (Nothing) +834. Light shooting away circlish +835. Fastness yellow-reddish +836. Fastness yellow-pinkish +837. Casting [S] +838. Watery aura +839. [Client Error] +840. Red cone +841. Green cone +842. Yellow cone +843. White cone +844. Purple cone +845. light-bluish turquoise cone +846. (Nothing) +847. Gloomy Day (white/red light rays) +848. Gloomy Day (white/blue light rays) +849. (Nothing) +850. (Nothing) +851. Green mushy-foggy stuff (dull) +852. Green mushy-foggy stuff (bright) +853. Bright green flower area +854. Blue beam of light with notes +855. (Nothing) +856. Reverberation (red eighth notes) +857. Severe Rainstorm (falling red and blue beams) +858. Deep Sleep Lullaby (two red beams and music notes) +859. Holograph of text (blue) +860. Distorted note (blue) +861. Green aura (from Circle of Life's Melody) +862. Randomize Spell (holograph of text) +863. Dominion Impulse (two spears of light) +864. Gloomy Day (colorful lines) +865. Blue aura (from Song of Mana) +866. Dance with a Warg (Wargs) +867. Yellow aura (from Dance with a Warg) +868. Song of Mana (Violies) +869. Strip sound [S] +870. Ghostly Succubuses of fire +871. Red aura (from Lerad's Dew) +872. Lerad's Dew (Minerals) +873. Stargate-wormhole stuff (bright purple) +874. Melody of Sink (Ktullanuxes) +875. Stargate-wormhole stuff (bright turquoise) +876. Warcry of Beyond (Garms) +877. Stargate-wormhole stuff (white) +878. Unlimited Humming Voice (Miyabi Ningyos) +879. Siren's Voice (heart-like) +880. Bluish castish cone +881. Blue aura +882. Whirl of fireflies (red) +883. Epiclesis (transparent green tree) +884. Green beam +885. Blue light beams +886. Blue castish cone +887. Wavy sparks +888. Earth Shaker (same as 432) +889. Fast light beams +890. Rotation +891. Magic shots [S] +892. Fastness with hitting sound[S] +893. Blue-white light passing by +894. (Nothing) +895. Big wheel of flat light beams +896. Still sun shaped lightning aura +897. Animated sun shaped lightning aura +898. Animated, curvy sun shaped lightning aura +899. White/red light shots from below +900. Animated, slow curvy sun shaped lightning aura +901. Explosion +902. Floating bedtable texture +903. Castish flamey cone +904. Yellow/pink lights passing by +905. Expanding circle +906. Shield Press (falling shield) +907. Chainy, metalish sound [S] +908. Prestige (sphere of yellow particles) +909. Banding (sphere of red particles) +910. Inspiration (sphere of blue particles) +911. Green castish animation [S] +912. Wall of Thorns unit (green fog cloud) +913. Magic projectiles +914. (Nothing) +915. Crazy Weed +916. Demonic Fire +917. More angry, demonic flames +918. Fire Insignia (demonic flames) +919. Hell's Plant (green snapping plant) +920. Fire Walk unit +921. Vacuum Extreme (whirlwind) +922. Psychic Wave +923. Poison Buster +924. Poisoning animation +925. Some filter +926. Electric Walk unit +927. Earth Grave (speary roots) +928. Ice cloud projectiles +929. Warmer (field of flames) +930. Varetyr Spear (falling spear) +931. (Nothing) +932. Firefly +933. [Client Crash] +934. White, castishly expanding cone +935. Green magic projectile +936. Red, castishly expanding cone +937. Yellow, castishly expanding cone +938. Dark-red, castishly expanding cone +939. Blue, conish aura +940. Snow flake +941. Explosion of red, demonic fire +942. Expanding, white dome +943. Green, fluffy projectile +944. Falling gems +945. (Nothing) +946. Floating lights +947. Blue lightning sphere +948. Two blue lightning spheres +949. Flat, spinning diamond +950. Circling, planetlike spheres +951. Three lightning spheres +952. Flat, spinning gem and two lightning spheres +953. Spinning, planetlike spheres +954. Two lightblue glowing spheres +955. Three spinning flame spheres +956. Flame +957. Spinning planetlike sphere +958. Two flames +959. Purple flame +960. Small yellow explosion +961. Cartoony whirlwind +962. Rising fire +963. Dark filter (like Stone Curse) +964. Same as 920 +965. Small white explosion +966. Bone crack +967. Another little explosion diff --git a/server/other/map_cache.txt b/server/other/map_cache.txt new file mode 100644 index 0000000..19ab92a --- /dev/null +++ b/server/other/map_cache.txt @@ -0,0 +1,68 @@ +//===== Hercules Documentation =============================== +//= Hercules Map Cache Builder and Format Documentation +//===== By: ================================================== +//= DracoRPG +//===== Current Version: ===================================== +//= 20070724 +//===== Description: ========================================= +//= A complete manual for Hercules' map cache generator as +//= well as a reference on the map cache format used. +//============================================================ + +Preface: +------------------------------------------------------------------------------- + +Since SVN revision ~10000, the map-server no longer knows how to read GRFs directly. It reads maps from a +"map cache" file that contains all and only the useful data about the maps. A map cache containing every official +kRO Sakray map currently supported by Hercules is provided as a default. +If you have custom maps or want to minimize the size of your map cache because your server does not load all of them +(multi-map-server or light test server), you can use the map cache builder to generate a new one fitting your needs. + +Map cache builder manual: +------------------------------------------------------------------------------- + +The source code for the map cache builder is located in src/tool/. It can be built using "make tools" if you use the Makefile +or using the "mapcache" project under Visual Studio. Named "mapcache", the executable will be in your Hercules main folder. +The map cache builder needs 3 file paths : one is a list of GRFs and/or data directory containing the maps, the second +is the list of maps to add to the map cache, and the last one is the path of the map cache to generate. Default values for +those paths are "tools/mapcache/grf_files.txt", "db/map_index.txt" and "db/(pre-)re/map_cache.dat". + +As of r16867, the mapcache within SVN can be located in db/pre-re/ and db/re/. This is due to renewal and pre-renewal modes +having slightly different maps. When building your cache, you should ensure you're pointing the tool to the correct location. + +The list of GRFs and/or data directory must follow the format and indication of the default file: as many "grf:" entries as +you wish and optionally only one "data_dir:" entry with trailing backslash included. // comments are supported as usual. +In fact, any file with one map name per line can be used as a map list, that's why the map index list is used as a default: +we are sure it contains every map supported by the server. Anything after the map name is ignored, // comments are supported +and if the first word on the line is "map:" then the second word is used as the map name instead: that allows using +/conf/maps.conf as your map list, which is handy if you want to generate a minimal map cache for each of your multiple +map-servers. +The map cache file path can point to an already existing file, as the builder adds a map only if it's not already cached. +This way, you can add custom maps to the base map cache without even needing kRO Sakray maps. If you wish to rebuild the +entire map cache, though, you can either provide a path to a non-existing file, or force the rebuild mode. + +Here are the command-line arguments you can provide to the map cache builder to customize its behavior: + -grf path/to/grf/list + Allows to specify the file containing the list of GRFs and/or data directory + -list path/to/map/list + Allows to specify the file containing the list of maps to add to the map cache + -cache path/to/map/cache + Allows to specify the path to the generated map cache + -rebuild + Allows to force the rebuild mode (map cache will be overwritten even if it already exists) + + +Map cache format reference: +------------------------------------------------------------------------------- + +The file is written as little-endian, even on big-endian systems, for cross-compatibility reasons. Appropriate conversions +are done when generating it, so don't worry about it. +The first 6 bytes are a main header: +<unsigned int> file size +<unsigned short> number of maps +Then maps are stored one right after another: +<12-characters-long string> map name +<short> X size +<short> Y size +<long> compressed cell data length +<variable> compressed cell data diff --git a/server/other/md5_hashcheck.txt b/server/other/md5_hashcheck.txt new file mode 100644 index 0000000..d9064b1 --- /dev/null +++ b/server/other/md5_hashcheck.txt @@ -0,0 +1,58 @@ +//===== Hercules Documentation =============================== +//= MD5 Hash Check +//===== By: ================================================== +//= Hercules Dev Team +//===== Current Version: ===================================== +//= 20140208 +//===== Description: ========================================= +//= This file outlines the login server's MD5 hash check. +//============================================================ + +The login server is able to perform a check of the client's MD5 hash. +This will ensure that a user has not tampered with the client and that +the client is the one specific to your server. + +The client can only send the correct MD5 hash to the server on certain +server types, so a client diff may be required to ensure the hash is +sent. +Please refer to your client diff tool manual for the appropriate patch +(i.e. in NEMO it's called "Force Send Client Hash Packet", in other +tools or diffs it may have similar names.) + +The serverside settings for the hash check are located in +conf/login.conf: + +// Client MD5 hash check +// If turned on, the login server will check if the client's hash matches +// the value below, and will not connect tampered clients. +// Note: see doc/md5_hashcheck.txt for more details. +client_hash_check: off + +// Client MD5 hashes +// The client with the specified hash can be used to log in by players with +// a group_id equal to or greater than the given value. +// If you specify 'disabled' as hash, players with a group_id greater than or +// equal to the given value will be able to log in regardless of hash (and even +// if their client does not send a hash at all.) +// Format: group_id, hash +// Note: see doc/md5_hashcheck.txt for more details. +client_hash: 0, 113e195e6c051bb1cfb12a644bb084c5 +client_hash: 10, cb1ea78023d337c38e8ba5124e2338ae +client_hash: 99, disabled + +To enable MD5 hash checks, set 'client_hash_check' to 'on' and add one +'client_hash' entry for each client you want to use. +The group_id can be any of the groups in conf/groups.conf, and it is +useful in case if you want to allow GMs to use a different client +than normal players; for example, a GM client could be hexed +differently, perhaps with dual-clienting enabled and chat flood +disabled. +You will need to replace the example MD5 hashes with the actual hash of +your client. +You can use any MD5 hash tools to generate it, e.g.: +- md5sum (command line) on linux +- WinMD5 on Windows +- md5 (command line) on Mac OS X +- If you hexed your client with NEMO (version 2.0 and above), you + can find the MD5 hash of the generated client automatically saved to + client_filename.exe.secure.txt diff --git a/server/other/packet_struct_notation.txt b/server/other/packet_struct_notation.txt new file mode 100644 index 0000000..0e9c5d0 --- /dev/null +++ b/server/other/packet_struct_notation.txt @@ -0,0 +1,118 @@ +//===== Hercules Documentation =============================== +//= Packet Structure Notation +//===== By: ================================================== +//= Ai4rei +//===== Current Version: ===================================== +//= 20120810 +//===== Description: ========================================= +//= Explanation how packets are and should be documented. +//============================================================ + +This document specifies how packets are and should be documented, to +keep packet structure comments consistent in the entire codebase. It +also serves as a guide to those, who are unfamiliar with the general +packet layout. + +All mentioned data types are assumed to be little-endian (least- +significant byte first, least significant bit last) and of same size +regardless of architecture. + += Typical description of a packet = + + /// Notifies the client about entering a chatroom (ZC_ENTER_ROOM). + /// 00db <packet len>.W <chat id>.L { <role>.L <name>.24B }* + /// role: + /// 0 = owner (menu) + /// 1 = normal + +The first line contains a brief description of what the packet does, +or what it is good for, followed by it's AEGIS name in parentheses; +first two letters of the AEGIS name specify origin (first letter) +and destination (second letter) of the packet. If the packet's name +is not known or is not applicable (Hercules server-server packets), +specify at least these two letters to indicate the direction of the +packet. Do not use S(end)/R(ecv) for this, as it is inaccurate and +location dependent (if the description is copied to different server +or other RO-related projects, it might change it's meaning). + +If there are multiple versions of the packet, the AEGIS name is +appended to the end of the packet's structure instead. If the name +did not change between versions, a PACKETVER expression is appended, +such as (PACKETVER >= 20111111). + +Second line describes the packet's field structure, beginning with a +%04x formatted packet type, followed by the individual fields and +their types. Each field begins with it's name enclosed in angle +brackets ( <field name> ) followed by a dot and the data size type. +Field names should be lower-case and without underscores. If other +packets already have a field in common, use that name, rather than +inventing your own (ex. "packet len" and "account id"). Repeated and +optional fields are designated with curly and square brackets +respectively, padded with a single space at each side. + +Further lines are optional and either include details about the +the packet's mechanics or further explanation on the packet fields' +values. + += Packet field data size type = + + B = 1 byte (byte) + W = 2 bytes (word) + L = 4 bytes (long, dword) + Q = 8 bytes (quad) + + nB = n bytes + ?B = variable/unknown amount of bytes + nS = n bytes, zero-terminated + ?S = variable/unknown amount of bytes, zero-terminated + += Repetition of packet fields = + + {} = repeated block + {}* = variable/unknown amount of consecutive blocks + {}*n = n times repeated block + [] = optional fields + += Packet origin and destination letters = + + A = Account (Login) + C = Client + H = Character + I = Inter + S = Server (any type of server) + Z = Zone (Map) + += Examples = + +Packet with nested repetition blocks: + + /// Presents a textual list of producable items (ZC_MAKABLEITEMLIST). + /// 018d <packet len>.W { <name id>.W { <material id>.W }*3 }* + /// material id: + /// unused by the client + +Packet with multiple versions identified with different AEGIS names: + + /// Request for server's tick. + /// 007e <client tick>.L (CZ_REQUEST_TIME) + /// 0360 <client tick>.L (CZ_REQUEST_TIME2) + +Packet with multiple versions identified with same AEGIS name: + + /// Cashshop Buy Ack (ZC_PC_CASH_POINT_UPDATE). + /// 0289 <cash point>.L <error>.W + /// 0289 <cash point>.L <kafra point>.L <error>.W (PACKETVER >= 20070711) + +Packet with combination of both different AEGIS names and different +versions with same name: + + /// Sends hotkey bar. + /// 02b9 { <is skill>.B <id>.L <count>.W }*27 (ZC_SHORTCUT_KEY_LIST) + /// 07d9 { <is skill>.B <id>.L <count>.W }*36 (ZC_SHORTCUT_KEY_LIST_V2, PACKETVER >= 20090603) + /// 07d9 { <is skill>.B <id>.L <count>.W }*38 (ZC_SHORTCUT_KEY_LIST_V2, PACKETVER >= 20090617) + +Packet for a client command: + + /// /item /monster (CZ_ITEM_CREATE). + /// Request to make items or spawn monsters. + /// 013f <item/mob name>.24B diff --git a/server/other/quest_variables.txt b/server/other/quest_variables.txt new file mode 100644 index 0000000..0be1441 --- /dev/null +++ b/server/other/quest_variables.txt @@ -0,0 +1,108 @@ +//===== Hercules Documentation =============================== +//= Permanent Quest Variables +//===== By: ================================================== +//= Lupus +//===== Current Version: ===================================== +//= 20120826 +//===== Description: ========================================= +//= This file should help to understand and manage bit-wise +//= quest variables. You can store up to 31 boolean value into +//= a single variable. +//============================================================ + +Variable: MISC_QUEST +-------------------------------------------------------------- + +Quest: Juice Maker Quest +Info: How to make juices. This bit keeps final state of the quest. +How to set: set MISC_QUEST, MISC_QUEST | 1; +How to check: if (MISC_QUEST & 1) {} + +Quest: Tempestra Quest +Info: Determines if player has given a potion to Tempestra. +How to set: set MISC_QUEST, MISC_QUEST | 2; +How to check: if (MISC_QUEST & 2) {} + +Quest: Morgenstein Quest +Info: How to make Mixture & Counteragent. This bit keeps final state of the quest. +How to set: set MISC_QUEST, MISC_QUEST | 4; +How to check: if (MISC_QUEST & 4) {} + +Quest: Prontera Culvert Quest +Info: Determines if player can enter Prontera Culverts. +How to set: set MISC_QUEST, MISC_QUEST | 8; +How to check: if (MISC_QUEST & 8) {} + +Quest: Edgar's Offer +Info: Cheap ticket from Izlude to Alberta. This bit keeps final state of the quest. +How to set: set MISC_QUEST, MISC_QUEST | 16; +How to check: if (MISC_QUEST & 16) {} + +Quest: Piano Quest +Info: The only way from Niflheim to Umbala. +How to set: set MISC_QUEST, MISC_QUEST | 32; +How to check: if (MISC_QUEST & 32) {} + +Quest: Bio Ethics Quest +Info: Quest for homunculus skill for alchemists. This bit keeps final state of the quest. +How to set: set MISC_QUEST, MISC_QUEST|64; +How to check: if (MISC_QUEST & 64) {} + +Quest: DTS Warper +Info: Determines if player has already voted. +How to set: set MISC_QUEST, MISC_QUEST|128; +How to check: if (MISC_QUEST & 128) {} + +Quest: - +Info: - +How to set: set MISC_QUEST, MISC_QUEST | 256; +How to check: if (MISC_QUEST & 256) {} + +Quest: Cube Room +Info: Lighthalzen Cube Room quest (to enter Bio-Lab) +How to set: set MISC_QUEST, MISC_QUEST | 512; +How to check: if (MISC_QUEST & 512) {} + +Quest: Reset Skills Event +Info: Yuno, Hypnotist Teacher +How to set: set MISC_QUEST, MISC_QUEST | 1024; +How to check: if (MISC_QUEST & 1024) {} + +Quest: Slotted Arm Guard Quest +Info: Ninja Job Room, Boshuu +How to set: set MISC_QUEST, MISC_QUEST | 2048; +How to check: if (MISC_QUEST & 2048) {} + +Quest: Improved Arm Guard Quest +Info: Ninja Job Room, Basshu +How to set: set MISC_QUEST, MISC_QUEST | 4096; +How to check: if (MISC_QUEST & 4096) {} + +Quest: Rachel Sanctuary Quest +Info: Determines if player can access Rachel Santuary. +How to set: set MISC_QUEST, MISC_QUEST | 8192; +How to check: if (MISC_QUEST & 8192) {} + +Quest: Message Delivery Quest +Info: Send a message to Elly, in Niflheim from Erious. +How to set: set MISC_QUEST, MISC_QUEST | 16384; +How to check: if (MISC_QUEST & 16384) {} + +Quest: Umbala Domestic Dispute? +Info: Reward: 1 Yggdrasil Leaf. +How to set: set MISC_QUEST, MISC_QUEST | 32768; +How to check: if (MISC_QUEST & 32768) {} + +Quest: Access to the Turtle Island +Info: Reward: ~1 OCA, OVB, GB. +How to set: set MISC_QUEST, MISC_QUEST | 65536; +How to check: if (MISC_QUEST & 65536) {} + + +Variable: MISC_QUEST2 +-------------------------------------------------------------- + +Quest: - +Info: - +How to set: set MISC_QUEST2, MISC_QUEST2 | ?; +How to check: if (MISC_QUEST2 & ?) {} |