dump_quest.py 124 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394
  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # SPDX-FileCopyrightText: Copyright (C) 2021-2024 MH3SP Server Project
  4. # SPDX-License-Identifier: AGPL-3.0-or-later
  5. """Quest dumper.
  6. Arena Quest ID List:
  7. EA60
  8. EA61
  9. EA62
  10. EA63
  11. EA64
  12. EA65
  13. EA66
  14. EA67
  15. EA68
  16. EA69
  17. EA6A
  18. EA6B
  19. bird and brute bowgun:
  20. rathling gun + barrel, poison stinger frame, light bowgun stock
  21. sea power bowgun:
  22. rathling gun barrel, rathling gun + frame, rathling gun + stock
  23. land lords bowgun:
  24. jho barrel, diablos frame, barioth stock
  25. two flames bowgun:
  26. lagiacrus barrel, lagiacrus frame, barioth stock
  27. https://web.archive.org/web/20111012085906/
  28. http://divinewh.im/q/c/Grudge_Match:_Royal_Ludroth
  29. https://web.archive.org/web/20111012085901/
  30. http://divinewh.im/q/c/Grudge_Match:_Rathian
  31. https://web.archive.org/web/20111012090656/
  32. http://divinewh.im/q/c/Grudge_Match:_Uragaan
  33. https://web.archive.org/web/20111012090915/
  34. http://divinewh.im/q/c/Grudge_Match:_Bird_and_Brute
  35. """
  36. from mh.quest_utils import ItemsType, Monster, LocationType,\
  37. QuestRankType, QuestRestrictionType, ResourcesType,\
  38. StartingPositionType, WaveType
  39. from mh.equipment_utils import Chestpiece, Gauntlets, Faulds,\
  40. Leggings, Helmet, EquipmentClasses, Greatsword,\
  41. SnS, Hammer, Longsword, Switchaxe, Lance,\
  42. BowgunFrame, BowgunStock, BowgunBarrel
  43. def EXPORT(quest):
  44. import json
  45. name = quest['quest_info']['name'].replace(':', '')
  46. with open('event/{}.json'.format(name), "w") as outfile:
  47. json.dump(quest, outfile, indent=4)
  48. """
  49. EVENT QUEST 1: Jump Four Jaggi
  50. Quest description/rewards/etc from https://www.youtube.com/watch?v=qyQt2Xmpt0g
  51. Quest requirements altered to make it possible to win.
  52. """
  53. QUEST_EVENT_JUMP_FOUR_JAGGI = {
  54. 'small_monsters': [
  55. [
  56. # Area 0
  57. ],
  58. [
  59. # Area 1
  60. {
  61. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  62. 'variant': 0,'room': 1,'quantity': 1,
  63. 'pos_x': 2039.26,'pos_y': 12.70,'pos_z': 210.05,
  64. 'rot_x': 0,'rot_y': 17,'rot_z': 0,
  65. },
  66. {
  67. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  68. 'variant': 0,'room': 1,'quantity': 1,
  69. 'pos_x': 857.89,'pos_y': -41.97,'pos_z': 814.06,
  70. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  71. },
  72. {
  73. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  74. 'variant': 0,'room': 1,'quantity': 1,
  75. 'pos_x': 97.58,'pos_y': -75.54,'pos_z': 135.22,
  76. 'rot_x': 0,'rot_y': -45,'rot_z': 0,
  77. },
  78. {
  79. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  80. 'variant': 0,'room': 1,'quantity': 1,
  81. 'pos_x': -393.52,'pos_y': -163.94,'pos_z': -667.01,
  82. 'rot_x': 0,'rot_y': -199,'rot_z': 0,
  83. },
  84. ],
  85. [
  86. # Area 2
  87. {
  88. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  89. 'variant': 0,'room': 2,'quantity': 1,
  90. 'pos_x': -853.86,'pos_y': 19.45,'pos_z': 1381.66,
  91. 'rot_x': 0,'rot_y': -113,'rot_z': 0,
  92. },
  93. {
  94. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  95. 'variant': 1,'room': 2,'quantity': 2,
  96. 'pos_x': -553.59,'pos_y': -2.57,'pos_z': -369.71,
  97. 'rot_x': 0,'rot_y': 193,'rot_z': 0,
  98. },
  99. {
  100. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  101. 'variant': 0,'room': 2,'quantity': 3,
  102. 'pos_x': -1698.75,'pos_y': 5.74,'pos_z': -530.30,
  103. 'rot_x': 0,'rot_y': 398,'rot_z': 0,
  104. },
  105. ],
  106. [
  107. # Area 3
  108. {
  109. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  110. 'variant': 0,'room': 3,'quantity': -1,
  111. 'pos_x': 873.28,'pos_y': 85.07,'pos_z': -610.86,
  112. 'rot_x': 0,'rot_y': -153,'rot_z': 0,
  113. },
  114. {
  115. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  116. 'variant': 0,'room': 3,'quantity': -1,
  117. 'pos_x': 1247.84,'pos_y': 106.65,'pos_z': 25.11,
  118. 'rot_x': 0,'rot_y': -358,'rot_z': 0,
  119. },
  120. {
  121. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  122. 'variant': 2,'room': 3,'quantity': 2,
  123. 'pos_x': 177.92,'pos_y': 450.70,'pos_z': -32.21,
  124. 'rot_x': 0,'rot_y': -238,'rot_z': 0,
  125. },
  126. {
  127. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  128. 'variant': 0,'room': 3,'quantity': 2,
  129. 'pos_x': -78.66,'pos_y': 330.70,'pos_z': 362.86,
  130. 'rot_x': 0,'rot_y': -79,'rot_z': 0,
  131. },
  132. ],
  133. [
  134. # Area 4
  135. {
  136. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  137. 'variant': 0,'room': 4,'quantity': 3,
  138. 'pos_x': 606.18,'pos_y': -12.89,'pos_z': 4145.11,
  139. 'rot_x': 0,'rot_y': 324,'rot_z': 0,
  140. },
  141. {
  142. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  143. 'variant': 0,'room': 4,'quantity': 1,
  144. 'pos_x': 524.37,'pos_y': -18.65,'pos_z': 2292.05,
  145. 'rot_x': 0,'rot_y': 199,'rot_z': 0,
  146. },
  147. {
  148. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  149. 'variant': 0,'room': 4,'quantity': -1,
  150. 'pos_x': -460.08,'pos_y': -71.51,'pos_z': 3044.50,
  151. 'rot_x': 0,'rot_y': -460,'rot_z': 0,
  152. },
  153. ],
  154. [
  155. # Area 5
  156. {
  157. 'type': Monster.jaggi,'unk1': 3,'unk2': 0xFF,
  158. 'variant': 0,'room': 5,'quantity': 1,
  159. 'pos_x': 300.40,'pos_y': 4.00,'pos_z': -211.14,
  160. 'rot_x': 0,'rot_y': 0,'rot_z': 0,
  161. },
  162. {
  163. 'type': Monster.jaggi,'unk1': 3,'unk2': 0xFF,
  164. 'variant': 0,'room': 5,'quantity': -1,
  165. 'pos_x': 458.16,'pos_y': 1.49,'pos_z': -918.94,
  166. 'rot_x': 0,'rot_y': 51,'rot_z': 0,
  167. },
  168. {
  169. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  170. 'variant': 0,'room': 5,'quantity': 4,
  171. 'pos_x': 1813.83,'pos_y': 3.06,'pos_z': 925.68,
  172. 'rot_x': 0,'rot_y': 494,'rot_z': 0,
  173. },
  174. {
  175. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  176. 'variant': 0,'room': 5,'quantity': -1,
  177. 'pos_x': -504.37,'pos_y': 3.05,'pos_z': -757.30,
  178. 'rot_x': 0,'rot_y': 676,'rot_z': 0,
  179. },
  180. {
  181. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  182. 'variant': 0,'room': 5,'quantity': 2,
  183. 'pos_x': 1118.48,'pos_y': 4.00,'pos_z': -420.89,
  184. 'rot_x': 0,'rot_y': 364,'rot_z': 0,
  185. },
  186. {
  187. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  188. 'variant': 0,'room': 5,'quantity': -1,
  189. 'pos_x': 2658.84,'pos_y': 3.24,'pos_z': 222.99,
  190. 'rot_x': 0,'rot_y': 756,'rot_z': 0,
  191. },
  192. ],
  193. [
  194. # Area 6 (Area 8 in Sandy Plains)
  195. {
  196. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  197. 'variant': 0,'room': 6,'quantity': -1,
  198. 'pos_x': 1612.71,'pos_y': -30.27,'pos_z': 695.30,
  199. 'rot_x': 0,'rot_y': 517,'rot_z': 0,
  200. },
  201. {
  202. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  203. 'variant': 0,'room': 6,'quantity': -1,
  204. 'pos_x': -2050.04,'pos_y': -31.90,'pos_z': -266.33,
  205. 'rot_x': 0,'rot_y': 28,'rot_z': 0,
  206. },
  207. {
  208. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  209. 'variant': 0,'room': 6,'quantity': 5,
  210. 'pos_x': -344.14,'pos_y': -13.00,'pos_z': -26.14,
  211. 'rot_x': 0,'rot_y': 443,'rot_z': 0,
  212. },
  213. {
  214. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  215. 'variant': 0,'room': 6,'quantity': 4,
  216. 'pos_x': -161.74,'pos_y': 4.80,'pos_z': -416.52,
  217. 'rot_x': 0,'rot_y': 472,'rot_z': 0,
  218. },
  219. {
  220. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  221. 'variant': 0,'room': 6,'quantity': 2,
  222. 'pos_x': -481.05,'pos_y': 15.34,'pos_z': -643.19,
  223. 'rot_x': 0,'rot_y': 568,'rot_z': 0,
  224. },
  225. {
  226. 'type': Monster.altaroth,'unk1': 3,'unk2': 0xFF,
  227. 'variant': 0,'room': 6,'quantity': -1,
  228. 'pos_x': -692.26,'pos_y': -11.02,'pos_z': -235.13,
  229. 'rot_x': 0,'rot_y': 608,'rot_z': 0,
  230. },
  231. {
  232. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  233. 'variant': 0,'room': 6,'quantity': 3,
  234. 'pos_x': -417.82,'pos_y': -1.44,'pos_z': -343.46,
  235. 'rot_x': 0,'rot_y': 147,'rot_z': 0,
  236. },
  237. ],
  238. [
  239. # Area 7 (Area 9 in Sandy Plains)
  240. {
  241. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  242. 'variant': 0,'room': 7,'quantity': 3,
  243. 'pos_x': 4294.59,'pos_y': -75.65,'pos_z': -2925.29,
  244. 'rot_x': 0,'rot_y': -130,'rot_z': 0,
  245. },
  246. {
  247. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  248. 'variant': 0,'room': 7,'quantity': 2,
  249. 'pos_x': 3995.30,'pos_y': -45.09,'pos_z': -2049.22,
  250. 'rot_x': 0,'rot_y': -85,'rot_z': 0,
  251. },
  252. {
  253. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  254. 'variant': 0,'room': 7,'quantity': 2,
  255. 'pos_x': 4187.00,'pos_y': -17.07,'pos_z': -1574.97,
  256. 'rot_x': 0,'rot_y': -17,'rot_z': 0,
  257. },
  258. {
  259. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  260. 'variant': 0,'room': 7,'quantity': 1,
  261. 'pos_x': 3781.64,'pos_y': -66.86,'pos_z': -2570.78,
  262. 'rot_x': 0,'rot_y': -130,'rot_z': 0,
  263. },
  264. ],
  265. [
  266. # Area 8 (Area 10 in Sandy Plains)
  267. {
  268. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  269. 'variant': 0,'room': 8,'quantity': 7,
  270. 'pos_x': 293.99,'pos_y': -170.31,'pos_z': 4049.95,
  271. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  272. },
  273. {
  274. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  275. 'variant': 0,'room': 8,'quantity': 5,
  276. 'pos_x': 124.95,'pos_y': -186.54,'pos_z': 3440.16,
  277. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  278. },
  279. {
  280. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  281. 'variant': 0,'room': 8,'quantity': 3,
  282. 'pos_x': -425.01,'pos_y': -179.30,'pos_z': 4509.84,
  283. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  284. },
  285. {
  286. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  287. 'variant': 0,'room': 8,'quantity': 2,
  288. 'pos_x': -714.48,'pos_y': -183.78,'pos_z': 4108.50,
  289. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  290. },
  291. {
  292. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  293. 'variant': 0,'room': 8,'quantity': 1,
  294. 'pos_x': -1021.27,'pos_y': -215.48,'pos_z': 3726.09,
  295. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  296. },
  297. {
  298. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  299. 'variant': 0,'room': 8,'quantity': -1,
  300. 'pos_x': -1974.57,'pos_y': -209.48,'pos_z': -316.05,
  301. 'rot_x': 0,'rot_y': -56,'rot_z': 0,
  302. },
  303. {
  304. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  305. 'variant': 0,'room': 8,'quantity': -1,
  306. 'pos_x': -1825.11,'pos_y': -210.91,'pos_z': -382.90,
  307. 'rot_x': 0,'rot_y': 130,'rot_z': 0,
  308. },
  309. ],
  310. [
  311. # Area 9 (Area 7 in Sandy Plains)
  312. {
  313. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  314. 'variant': 0,'room': 9,'quantity': 2,
  315. 'pos_x': 3383.92,'pos_y': 2.65,'pos_z': 592.49,
  316. 'rot_x': 0,'rot_y': -193,'rot_z': 0,
  317. },
  318. {
  319. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  320. 'variant': 0,'room': 9,'quantity': 1,
  321. 'pos_x': 2653.55,'pos_y': -22.59,'pos_z': 987.24,
  322. 'rot_x': 0,'rot_y': -73,'rot_z': 0,
  323. },
  324. {
  325. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  326. 'variant': 0,'room': 9,'quantity': -1,
  327. 'pos_x': 2838.69,'pos_y': -28.00,'pos_z': 445.91,
  328. 'rot_x': 0,'rot_y': -142,'rot_z': 0,
  329. },
  330. {
  331. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  332. 'variant': 0,'room': 9,'quantity': -1,
  333. 'pos_x': 2109.53,'pos_y': -26.57,'pos_z': 575.43,
  334. 'rot_x': 0,'rot_y': -460,'rot_z': 0,
  335. },
  336. {
  337. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  338. 'variant': 1,'room': 9,'quantity': -1,
  339. 'pos_x': -1713.72,'pos_y': 1262.50,'pos_z': 2199.24,
  340. 'rot_x': 273,'rot_y': -45,'rot_z': 0,
  341. },
  342. {
  343. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  344. 'variant': 1,'room': 9,'quantity': 6,
  345. 'pos_x': -1174.44,'pos_y': 1319.50,'pos_z': 1682.19,
  346. 'rot_x': 0,'rot_y': -39,'rot_z': 0,
  347. },
  348. ],
  349. [
  350. # Area 10
  351. ],
  352. [
  353. # Area 11 (Area 6 in Sandy Plains)
  354. {
  355. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  356. 'variant': 0,'room': 11,'quantity': 2,
  357. 'pos_x': 2195.89,'pos_y': 73.70,'pos_z': -720.92,
  358. 'rot_x': 0,'rot_y': 39,'rot_z': 0,
  359. },
  360. {
  361. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  362. 'variant': 6,'room': 11,'quantity': 1,
  363. 'pos_x': -535.73,'pos_y': 1212.59,'pos_z': 896.44,
  364. 'rot_x': 0,'rot_y': 169,'rot_z': 0,
  365. },
  366. {
  367. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  368. 'variant': 0,'room': 11,'quantity': 2,
  369. 'pos_x': -434.00,'pos_y': 198.96,'pos_z': 289.52,
  370. 'rot_x': 0,'rot_y': -267,'rot_z': 0,
  371. },
  372. {
  373. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  374. 'variant': 0,'room': 11,'quantity': 2,
  375. 'pos_x': -802.69,'pos_y': 198.96,'pos_z': 66.62,
  376. 'rot_x': 0,'rot_y': -216,'rot_z': 0,
  377. },
  378. {
  379. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  380. 'variant': 0,'room': 11,'quantity': 2,
  381. 'pos_x': -645.14,'pos_y': 288.96,'pos_z': -371.21,
  382. 'rot_x': 0,'rot_y': -227,'rot_z': 0,
  383. },
  384. {
  385. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  386. 'variant': 0,'room': 11,'quantity': 1,
  387. 'pos_x': -473.33,'pos_y': 168.96,'pos_z': -166.43,
  388. 'rot_x': 0,'rot_y': -210,'rot_z': 0,
  389. },
  390. ],
  391. ],
  392. 'quest_info': {
  393. 'quest_id': 61001,
  394. 'name': "Jump Four Jaggi",
  395. 'client': "Guild Subcontractor",
  396. 'description': "Hunt 4 Great Jaggi",
  397. 'details':
  398. "I'm gonna get so fired for\n"
  399. "this... The Great Jaggi some\n"
  400. "hunter brought in just\n"
  401. "escaped. Mind going after\n"
  402. "them? You better hurry,\n"
  403. "though. Bet they've got some\n"
  404. "incredible materials, too.",
  405. 'success_message': "Complete the Main Quest.",
  406. 'flags': (
  407. (0, 0, 0, 0, 0, 0, 0, 0),
  408. (1, 1, 0, 0, 0, 0, 0, 0),
  409. (0, 0, 0, 0, 0, 0, 0, 0),
  410. (1, 0, 1, 0, 0, 0, 1, 1)
  411. ),
  412. 'penalty_per_cart': 1400,
  413. 'quest_fee': 400,
  414. 'time_limit': 50,
  415. 'main_monster_1': Monster.bnahabra2,
  416. 'main_monster_2': Monster.melynx,
  417. 'location': LocationType.QUEST_LOCATION_SANDY_PLAINS,
  418. 'quest_rank': QuestRankType.star_1,
  419. 'hrp_restriction': QuestRestrictionType.RESTRICTION_NONE,
  420. 'resources': ResourcesType.low_rank,
  421. 'supply_set_number': 19,
  422. 'starting_position': StartingPositionType.camp,
  423. 'general_enemy_level': 0x0017,
  424. 'summon': 0x64050219,
  425. 'wave_1_transition_type': WaveType.none,
  426. 'wave_1_transition_target': 0x0000,
  427. 'wave_1_transition_quantity': 0x0000,
  428. 'wave_2_transition_type': WaveType.none,
  429. 'wave_2_transition_target': 0x0000,
  430. 'wave_2_transition_quantity': 0x0000,
  431. },
  432. 'large_monsters': {
  433. 'monster_1': {
  434. 'type': Monster.great_jaggi,
  435. 'starting_area': 0x00,
  436. 'boss_id': 0xFF,
  437. 'spawn_count': 0x04,
  438. 'level': 0x17, # 0x01 through 0x3c
  439. 'size': 0x64,
  440. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  441. 'size_spread': 0x01
  442. },
  443. 'monster_2': {
  444. 'type': Monster.none,
  445. 'starting_area': 0x00,
  446. 'boss_id': 0x00,
  447. 'spawn_count': 0x00,
  448. 'level': 0x00, # 0x01 through 0x3c
  449. 'size': 0x00,
  450. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  451. 'size_spread': 0x00
  452. },
  453. 'monster_3': {
  454. 'type': Monster.none,
  455. 'starting_area': 0x00,
  456. 'boss_id': 0x00,
  457. 'spawn_count': 0x00,
  458. 'level': 0x00, # 0x01 through 0x3c
  459. 'size': 0x00,
  460. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  461. 'size_spread': 0x00
  462. }
  463. },
  464. 'objective_details': {
  465. 'main_quest': {
  466. 'type': 0x00000001,
  467. 'objective_type': Monster.great_jaggi,
  468. 'objective_num': 0x04,
  469. 'zenny_reward': 4000,
  470. 'hrp_reward': 440,
  471. 'rewards_row_1': [
  472. (ItemsType.great_jagi_claw, 1, 3),
  473. (ItemsType.great_jagi_hide, 1, 12),
  474. (ItemsType.jagi_scale, 1, 10),
  475. (ItemsType.screamer, 1, 20),
  476. (ItemsType.kings_frill, 1, 12),
  477. (ItemsType.bone_husk_s, 8, 18),
  478. (ItemsType.great_jagi_head, 1, 25)
  479. ],
  480. 'rewards_row_2': [
  481. (ItemsType.mystery_charm, 1, 1),
  482. (ItemsType.aquaglow_jewel, 1, 1),
  483. (ItemsType.shining_charm, 1, 1),
  484. (ItemsType.armor_sphere, 1, 1),
  485. (ItemsType.armor_sphere_plus, 1, 1)
  486. ],
  487. },
  488. 'subquest_1': {
  489. 'description': "Hunt 2 Great Jaggi",
  490. 'type': 0x00000001,
  491. 'objective_type': Monster.great_jaggi,
  492. 'objective_num': 0x02,
  493. 'zenny_reward': 4000,
  494. 'hrp_reward': 220,
  495. 'rewards_row_1': [
  496. (ItemsType.great_jagi_claw, 1, 1),
  497. (ItemsType.great_jagi_hide, 1, 1),
  498. (ItemsType.jagi_scale, 1, 1),
  499. (ItemsType.screamer, 1, 1),
  500. (ItemsType.kings_frill, 1, 1),
  501. (ItemsType.bone_husk_s, 8, 1),
  502. (ItemsType.great_jagi_head, 1, 1)
  503. ],
  504. },
  505. 'subquest_2': {
  506. 'description': "None",
  507. 'type': 0,
  508. 'objective_type': Monster.none,
  509. 'objective_num': 0,
  510. 'zenny_reward': 0,
  511. 'hrp_reward': 0,
  512. 'rewards_row_1': [],
  513. }
  514. },
  515. 'unknown': {
  516. # (2 for large mon quest, 3 for small/delivery, 5 for jhen/ala)
  517. 'unk_12': 0x00000002,
  518. 'unk_4': 0x00,
  519. 'unk_5': 0x00,
  520. 'unk_6': 0x00,
  521. 'unk_7': 0x00000000,
  522. }
  523. }
  524. """
  525. EVENT QUEST 7: The Phantom Uragaan
  526. Quest description from https://www.youtube.com/watch?v=Py5PkCXhf6w
  527. """
  528. QUEST_EVENT_THE_PHANTOM_URAGAAN = {
  529. 'quest_info': {
  530. 'quest_id': 61007,
  531. 'name': "The Phantom Uragaan",
  532. 'client': "Spoiled Princess",
  533. 'description': "Hunt an Uragaan",
  534. 'details':
  535. "Oooh, I just heard they've\n"
  536. "spotted the cutest, tiniest,\n"
  537. "most adorable little Uragaan\n"
  538. "on the Volcano. Hunt me one\n"
  539. "this instant or I will get\n"
  540. "very angry. And if I'm angry,\n"
  541. "Daddy's angry. Now go!",
  542. 'success_message': "Complete the Main Quest.",
  543. 'flags': (
  544. (0, 0, 0, 0, 0, 0, 0, 0),
  545. (1, 1, 0, 0, 0, 0, 0, 0),
  546. (0, 0, 0, 1, 0, 0, 0, 0),
  547. (1, 0, 1, 0, 0, 0, 1, 1)
  548. ),
  549. 'penalty_per_cart': 3000,
  550. 'quest_fee': 850,
  551. 'time_limit': 50,
  552. 'main_monster_1': Monster.uroktor,
  553. 'main_monster_2': Monster.aptonoth,
  554. 'location': LocationType.QUEST_LOCATION_VOLCANO,
  555. 'quest_rank': QuestRankType.star_3,
  556. 'hrp_restriction': QuestRestrictionType.RESTRICTION_18_INITJOIN,
  557. 'resources': ResourcesType.low_rank,
  558. 'supply_set_number': 15,
  559. 'starting_position': StartingPositionType.camp,
  560. 'general_enemy_level': 0x1D,
  561. 'summon': 0x00000000,
  562. 'wave_1_transition_type': WaveType.none,
  563. 'wave_1_transition_target': 0x0000,
  564. 'wave_1_transition_quantity': 0x0000,
  565. 'wave_2_transition_type': WaveType.none,
  566. 'wave_2_transition_target': 0x0000,
  567. 'wave_2_transition_quantity': 0x0000,
  568. 'smallmonster_data_file': 'sm_phantomuragaan.dat',
  569. },
  570. 'large_monsters': {
  571. 'monster_1': {
  572. 'type': Monster.uragaan,
  573. 'starting_area': 0x00,
  574. 'boss_id': 0x00,
  575. 'spawn_count': 0x01,
  576. 'level': 0x1D, # 0x01 through 0x3c
  577. 'size': 0x13,
  578. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  579. 'size_spread': 0x00
  580. },
  581. 'monster_2': {
  582. 'type': Monster.none,
  583. 'starting_area': 0x00,
  584. 'boss_id': 0x00,
  585. 'spawn_count': 0x00,
  586. 'level': 0x00, # 0x01 through 0x3c
  587. 'size': 0x00,
  588. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  589. 'size_spread': 0x00
  590. },
  591. 'monster_3': {
  592. 'type': Monster.none,
  593. 'starting_area': 0x00,
  594. 'boss_id': 0x00,
  595. 'spawn_count': 0x00,
  596. 'level': 0x00, # 0x01 through 0x3c
  597. 'size': 0x00,
  598. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  599. 'size_spread': 0x00
  600. }
  601. },
  602. 'objective_details': {
  603. 'main_quest': {
  604. 'type': 0x00000001,
  605. 'objective_type': Monster.uragaan,
  606. 'objective_num': 0x01,
  607. 'zenny_reward': 8800,
  608. 'hrp_reward': 1100,
  609. 'rewards_row_1': [
  610. (ItemsType.mystery_charm, 1, 1),
  611. (ItemsType.uragaan_shell, 1, 16),
  612. (ItemsType.uragaan_scale, 1, 20),
  613. (ItemsType.uragaan_marrow, 1, 10),
  614. (ItemsType.monster_bone_l, 1, 10),
  615. (ItemsType.bone_husk_l, 15, 13),
  616. (ItemsType.shining_charm, 1, 5),
  617. (ItemsType.rustshard, 1, 25)
  618. ],
  619. 'rewards_row_2': [
  620. (ItemsType.mystery_charm, 1, 1),
  621. (ItemsType.uragaan_shell, 1, 16),
  622. (ItemsType.uragaan_scale, 1, 20),
  623. (ItemsType.uragaan_marrow, 1, 10),
  624. (ItemsType.monster_bone_l, 1, 10),
  625. (ItemsType.bone_husk_l, 15, 13),
  626. (ItemsType.shining_charm, 1, 5),
  627. (ItemsType.rustshard, 1, 25)
  628. ],
  629. },
  630. 'subquest_1': {
  631. 'description': "None",
  632. 'type': 0x00000000,
  633. 'objective_type': Monster.none,
  634. 'objective_num': 0x00,
  635. 'zenny_reward': 0,
  636. 'hrp_reward': 0x00000000,
  637. 'rewards_row_1': [],
  638. },
  639. 'subquest_2': {
  640. 'description': "None",
  641. 'type': 0x00000000,
  642. 'objective_type': Monster.none,
  643. 'objective_num': 0x00,
  644. 'zenny_reward': 0,
  645. 'hrp_reward': 0x00000000,
  646. 'rewards_row_1': [],
  647. },
  648. },
  649. 'unknown': {
  650. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  651. 'unk_12': 0x00000002,
  652. 'unk_4': 0x00,
  653. 'unk_5': 0x00,
  654. 'unk_6': 0x00,
  655. 'unk_7': 0x00000000,
  656. }
  657. }
  658. """
  659. EVENT QUEST 8: Blood Sport
  660. Quest description from https://www.youtube.com/watch?v=tuRSdC_mlO4
  661. """
  662. QUEST_EVENT_BLOOD_SPORT = {
  663. 'small_monsters': [
  664. [
  665. # Area 0
  666. ],
  667. [
  668. # Area 1
  669. {
  670. 'type': Monster.fly_wyv,'unk1': 1,'unk2': 0xFF,
  671. 'variant': 3,'room': 1,'quantity': -1,
  672. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  673. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  674. },
  675. ],
  676. ],
  677. 'quest_info': {
  678. 'quest_id': 61008,
  679. 'name': "Blood Sport",
  680. 'client': "Spoiled Princess",
  681. 'description':
  682. "Hunt an Uragaan\n"
  683. "and a Diablos",
  684. 'details':
  685. "Oh, boo! I'm tired of watching\n"
  686. "run-of-the-mill hunts. The\n"
  687. "Diablos and the Uragaan are\n"
  688. "supposed to be the ultimate\n"
  689. "monster duo. I'd love to watch\n"
  690. "them maim some foolish hunter!\n"
  691. "Do put on a good show...",
  692. 'success_message': "Complete the Main Quest.",
  693. 'flags': (
  694. (0, 1, 0, 0, 0, 0, 0, 0),
  695. (1, 1, 0, 0, 0, 0, 0, 0),
  696. (0, 0, 0, 0, 0, 0, 0, 0),
  697. (1, 0, 1, 0, 0, 0, 0, 0)
  698. ),
  699. 'penalty_per_cart': 6000,
  700. 'quest_fee': 1750,
  701. 'time_limit': 50,
  702. 'main_monster_1': Monster.uragaan,
  703. 'main_monster_2': Monster.diablos,
  704. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  705. 'quest_rank': QuestRankType.star_3,
  706. 'hrp_restriction': QuestRestrictionType.RESTRICTION_18_INITJOIN,
  707. 'resources': ResourcesType.low_rank,
  708. 'supply_set_number': 43,
  709. 'starting_position': StartingPositionType.camp,
  710. 'general_enemy_level': 0x001D,
  711. 'summon': 0x00000000,
  712. 'wave_1_transition_type': WaveType.none,
  713. 'wave_1_transition_target': 0x0000,
  714. 'wave_1_transition_quantity': 0x0000,
  715. 'wave_2_transition_type': WaveType.none,
  716. 'wave_2_transition_target': 0x0000,
  717. 'wave_2_transition_quantity': 0x0000,
  718. },
  719. 'large_monsters': {
  720. 'monster_1': {
  721. 'type': Monster.uragaan,
  722. 'starting_area': 0x00,
  723. 'boss_id': 0x00,
  724. 'spawn_count': 0x01,
  725. 'level': 0x1D, # 0x01 through 0x3c
  726. 'size': 0x64,
  727. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  728. 'size_spread': 0x03
  729. },
  730. 'monster_2': {
  731. 'type': Monster.diablos,
  732. 'starting_area': 0x00,
  733. 'boss_id': 0x01,
  734. 'spawn_count': 0x01,
  735. 'level': 0x1D, # 0x01 through 0x3c
  736. 'size': 0x64,
  737. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  738. 'size_spread': 0x03
  739. },
  740. 'monster_3': {
  741. 'type': Monster.none,
  742. 'starting_area': 0x00,
  743. 'boss_id': 0x00,
  744. 'spawn_count': 0x00,
  745. 'level': 0x00, # 0x01 through 0x3c
  746. 'size': 0x00,
  747. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  748. 'size_spread': 0x00
  749. }
  750. },
  751. 'objective_details': {
  752. 'main_quest': {
  753. 'type': 0x00000001,
  754. 'objective_type': Monster.uragaan,
  755. 'objective_num': 0x01,
  756. 'zenny_reward': 17600,
  757. 'hrp_reward': 1760,
  758. 'rewards_row_1': [
  759. (ItemsType.uragaan_scale, 1, 1),
  760. (ItemsType.diablos_ridge, 1, 14),
  761. (ItemsType.uragaan_shell, 1, 10),
  762. (ItemsType.diablos_shell, 1, 20),
  763. (ItemsType.twisted_horn, 1, 12),
  764. (ItemsType.diablos_marrow, 8, 9),
  765. (ItemsType.uragaan_marrow, 1, 9),
  766. (ItemsType.incomplete_plans, 1, 25)
  767. ],
  768. 'rewards_row_2': [
  769. (ItemsType.uragaan_scale, 1, 1),
  770. (ItemsType.diablos_ridge, 1, 14),
  771. (ItemsType.uragaan_shell, 1, 10),
  772. (ItemsType.diablos_shell, 1, 20),
  773. (ItemsType.twisted_horn, 1, 12),
  774. (ItemsType.diablos_marrow, 1, 9),
  775. (ItemsType.uragaan_marrow, 1, 9),
  776. (ItemsType.incomplete_plans, 1, 25)
  777. ],
  778. },
  779. 'subquest_1': {
  780. 'description': "None",
  781. 'type': 0x00000001,
  782. 'objective_type': Monster.diablos,
  783. 'objective_num': 0x01,
  784. 'zenny_reward': 0,
  785. 'hrp_reward': 0x00000000,
  786. 'rewards_row_1': [],
  787. },
  788. 'subquest_2': {
  789. 'description': "None",
  790. 'type': 0,
  791. 'objective_type': Monster.none,
  792. 'objective_num': 0,
  793. 'zenny_reward': 0,
  794. 'hrp_reward': 0x00000000,
  795. 'rewards_row_1': [],
  796. },
  797. },
  798. 'unknown': {
  799. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  800. 'unk_12': 0x00000002,
  801. 'unk_4': 0x00,
  802. 'unk_5': 0x00,
  803. 'unk_6': 0x00,
  804. 'unk_7': 0x00000000,
  805. }
  806. }
  807. """
  808. EVENT QUEST 2: Mercy Mission
  809. (INCOMPLETE) Invading monster is "faked" by hardcoding a Royal Ludroth
  810. from the start.
  811. """
  812. QUEST_EVENT_MERCY_MISSION = {
  813. 'quest_info': {
  814. 'quest_id': 61002,
  815. 'name': "Mercy Mission",
  816. 'client': "MH3SP Dev Team",
  817. 'description': "Deliver 10 Monster Guts",
  818. 'details':
  819. "Wanted:\n"
  820. "The description for this\n"
  821. "quest! If you can find\n"
  822. "it, please let us know!\n"
  823. "Thanks!",
  824. 'success_message':
  825. "Complete the Main Quest\n"
  826. "and both Subquests.",
  827. 'flags': (
  828. (0, 0, 0, 0, 0, 0, 0, 0),
  829. (1, 1, 1, 0, 0, 0, 0, 0),
  830. (0, 0, 0, 0, 0, 0, 0, 0),
  831. (0, 1, 0, 0, 0, 0, 0, 0)
  832. ),
  833. 'penalty_per_cart': 600,
  834. 'quest_fee': 150,
  835. 'time_limit': 15,
  836. 'main_monster_1': Monster.ludroth,
  837. 'main_monster_2': Monster.epioth,
  838. 'location': LocationType.QUEST_LOCATION_D_ISLAND,
  839. 'quest_rank': QuestRankType.star_1,
  840. 'hrp_restriction': QuestRestrictionType.RESTRICTION_NONE,
  841. 'resources': ResourcesType.low_rank,
  842. 'supply_set_number': 35,
  843. 'starting_position': StartingPositionType.camp,
  844. 'general_enemy_level': 0x0017,
  845. 'summon': 0x64030303,
  846. 'wave_1_transition_type': WaveType.none,
  847. 'wave_1_transition_target': 0x0000,
  848. 'wave_1_transition_quantity': 0x0000,
  849. 'wave_2_transition_type': WaveType.none,
  850. 'wave_2_transition_target': 0x0000,
  851. 'wave_2_transition_quantity': 0x0000,
  852. 'smallmonster_data_file': 'sm_mercymission.dat',
  853. },
  854. 'large_monsters': {
  855. 'monster_1': {
  856. 'type': Monster.royal_ludroth,
  857. 'starting_area': 0x00,
  858. 'boss_id': 0x00,
  859. 'spawn_count': 0x01,
  860. 'level': 0x17, # 0x01 through 0x3c
  861. 'size': 0x64,
  862. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  863. 'size_spread': 0x03
  864. },
  865. 'monster_2': {
  866. 'type': Monster.none,
  867. 'starting_area': 0x00,
  868. 'boss_id': 0x00,
  869. 'spawn_count': 0x00,
  870. 'level': 0x00, # 0x01 through 0x3c
  871. 'size': 0x00,
  872. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  873. 'size_spread': 0x00
  874. },
  875. 'monster_3': {
  876. 'type': Monster.none,
  877. 'starting_area': 0x00,
  878. 'boss_id': 0x00,
  879. 'spawn_count': 0x00,
  880. 'level': 0x00, # 0x01 through 0x3c
  881. 'size': 0x00,
  882. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  883. 'size_spread': 0x00
  884. }
  885. },
  886. 'objective_details': {
  887. 'main_quest': {
  888. 'type': 0x00000002,
  889. 'objective_type': ItemsType.monster_guts,
  890. 'objective_num': 0x0A,
  891. 'zenny_reward': 1500,
  892. 'hrp_reward': 70,
  893. 'rewards_row_1': [
  894. (ItemsType.mystery_charm, 1, 8),
  895. (ItemsType.black_pearl, 1, 20),
  896. (ItemsType.honey, 2, 20),
  897. (ItemsType.armor_sphere, 1, 18),
  898. (ItemsType.small_goldenfish, 1, 8),
  899. (ItemsType.machalite_ore, 8, 14),
  900. (ItemsType.steel_eg, 1, 12)
  901. ],
  902. 'rewards_row_2': [
  903. (ItemsType.mystery_charm, 1, 35),
  904. (ItemsType.aquaglow_jewel, 1, 5),
  905. (ItemsType.shining_charm, 1, 15),
  906. (ItemsType.armor_sphere, 1, 20),
  907. (ItemsType.armor_sphere_plus, 1, 25)
  908. ],
  909. },
  910. 'subquest_1': {
  911. 'description': "Deliver 12 Red Coral Stones",
  912. 'type': 0x00000002,
  913. 'objective_type': ItemsType.red_coral_stone,
  914. 'objective_num': 0x0C,
  915. 'zenny_reward': 1200,
  916. 'hrp_reward': 55,
  917. 'rewards_row_1': [
  918. (ItemsType.mystery_charm, 1, 8),
  919. (ItemsType.black_pearl, 1, 20),
  920. (ItemsType.honey, 2, 20),
  921. (ItemsType.armor_sphere, 1, 18),
  922. (ItemsType.small_goldenfish, 1, 8),
  923. (ItemsType.machalite_ore, 1, 14),
  924. (ItemsType.steel_eg, 1, 12)
  925. ],
  926. },
  927. 'subquest_2': {
  928. 'description': "Deliver 3 Goldenfish",
  929. 'type': 0x00000002,
  930. 'objective_type': ItemsType.goldenfish,
  931. 'objective_num': 0x03,
  932. 'zenny_reward': 2000,
  933. 'hrp_reward': 70,
  934. 'rewards_row_1': [
  935. (ItemsType.mystery_charm, 1, 35),
  936. (ItemsType.aquaglow_jewel, 1, 5),
  937. (ItemsType.shining_charm, 1, 15),
  938. (ItemsType.armor_sphere, 1, 20),
  939. (ItemsType.armor_sphere_plus, 1, 25)
  940. ],
  941. },
  942. },
  943. 'unknown': {
  944. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  945. 'unk_12': 0x00000003,
  946. 'unk_4': 0x00,
  947. 'unk_5': 0x00,
  948. 'unk_6': 0x00,
  949. 'unk_7': 0x00000000,
  950. }
  951. }
  952. """
  953. EVENT QUEST 18: Flooded Forest Free-For-All
  954. Quest description from https://www.youtube.com/watch?v=mWHonz4dXHk
  955. thanks to "kazuma_6969"
  956. """
  957. QUEST_EVENT_FF_FREE_FOR_ALL = {
  958. 'quest_info': {
  959. 'quest_id': 61017,
  960. 'name': "Flooded Forest Free-For-All",
  961. 'client': "Argosy Captain",
  962. 'description': "Hunt a Royal L., Lag. & Gobul",
  963. 'details':
  964. "Taihen! Means very bad, yes?\n"
  965. "Flooded Forest overrun by pack\n"
  966. "of leviathans -- Argosy cannot\n"
  967. "get anywhere near area! Big\n"
  968. "problem for trade, yes? Only\n"
  969. "hunters can return fair seas\n"
  970. "to Flooded Forest. Onegai!",
  971. 'success_message': "Complete the Main Quest.",
  972. 'flags': (
  973. (0, 0, 1, 0, 0, 0, 0, 0),
  974. (1, 1, 0, 0, 0, 0, 0, 0),
  975. (0, 0, 0, 0, 0, 0, 0, 0),
  976. (1, 0, 1, 0, 0, 0, 0, 0)
  977. ),
  978. 'penalty_per_cart': 9000,
  979. 'quest_fee': 2550,
  980. 'time_limit': 50,
  981. 'main_monster_1': Monster.ludroth,
  982. 'main_monster_2': Monster.kelbi,
  983. 'location': LocationType.QUEST_LOCATION_FLOODED_FOR,
  984. 'quest_rank': QuestRankType.star_5,
  985. 'hrp_restriction': QuestRestrictionType.RESTRICTION_40_INITJOIN,
  986. 'resources': ResourcesType.high_rank,
  987. 'supply_set_number': 43,
  988. 'starting_position': StartingPositionType.random,
  989. 'general_enemy_level': 0x0040,
  990. 'summon': 0x00000000,
  991. 'wave_1_transition_type': WaveType.none,
  992. 'wave_1_transition_target': 0x0000,
  993. 'wave_1_transition_quantity': 0x0000,
  994. 'wave_2_transition_type': WaveType.none,
  995. 'wave_2_transition_target': 0x0000,
  996. 'wave_2_transition_quantity': 0x0000,
  997. 'smallmonster_data_file': 'sm_ff_free_for_all.dat',
  998. },
  999. 'large_monsters': {
  1000. 'monster_1': {
  1001. 'type': Monster.royal_ludroth,
  1002. 'starting_area': 0x00, # 4 -> area 1 # 3 -> area 1 # 2 -> basecamp? # 1 -> area 3 # 0 -> area 4
  1003. 'boss_id': 0x00,
  1004. 'spawn_count': 0x01,
  1005. 'level': 0x1F, # 0x01 through 0x3c
  1006. 'size': 0x64,
  1007. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1008. 'size_spread': 0x03
  1009. },
  1010. 'monster_2': {
  1011. 'type': Monster.lagiacrus,
  1012. 'starting_area': 0x00,
  1013. 'boss_id': 0x01,
  1014. 'spawn_count': 0x01,
  1015. 'level': 0x1F, # 0x01 through 0x3c
  1016. 'size': 0x64,
  1017. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1018. 'size_spread': 0x03
  1019. },
  1020. 'monster_3': {
  1021. 'type': Monster.gobul,
  1022. 'starting_area': 0x00,
  1023. 'boss_id': 0x02,
  1024. 'spawn_count': 0x01,
  1025. 'level': 0x1F, # 0x01 through 0x3c
  1026. 'size': 0x64,
  1027. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1028. 'size_spread': 0x03
  1029. }
  1030. },
  1031. 'objective_details': {
  1032. 'main_quest': {
  1033. 'type': 0x00000001,
  1034. 'objective_type': Monster.royal_ludroth,
  1035. 'objective_num': 0x01,
  1036. 'zenny_reward': 25800,
  1037. 'hrp_reward': 2600,
  1038. 'rewards_row_1': [
  1039. (ItemsType.hrd_armor_sphere, 1, 1),
  1040. (ItemsType.hvy_armor_sphere, 1, 5),
  1041. (ItemsType.quality_sponge, 1, 14),
  1042. (ItemsType.gobul_spike_plus, 1, 20),
  1043. (ItemsType.gobul_fin_plus, 1, 7),
  1044. (ItemsType.lagiacrus_hide_plus, 1, 10),
  1045. (ItemsType.lagiacrus_scale_plus, 1, 8),
  1046. (ItemsType.shining_charm, 1, 10),
  1047. (ItemsType.black_gem_ticket, 1, 25)
  1048. ],
  1049. 'rewards_row_2': [
  1050. (ItemsType.hrd_armor_sphere, 1, 1),
  1051. (ItemsType.hvy_armor_sphere, 1, 5),
  1052. (ItemsType.quality_sponge, 1, 14),
  1053. (ItemsType.gobul_spike_plus, 1, 20),
  1054. (ItemsType.gobul_fin_plus, 1, 7),
  1055. (ItemsType.lagiacrus_hide_plus, 1, 10),
  1056. (ItemsType.lagiacrus_scale_plus, 1, 8),
  1057. (ItemsType.shining_charm, 1, 10),
  1058. (ItemsType.black_gem_ticket, 1, 25)
  1059. ],
  1060. },
  1061. 'subquest_1': {
  1062. 'description': "None",
  1063. 'type': 0x00000001,
  1064. 'objective_type': Monster.lagiacrus,
  1065. 'objective_num': 0x01,
  1066. 'zenny_reward': 0,
  1067. 'hrp_reward': 0,
  1068. 'rewards_row_1': [],
  1069. },
  1070. 'subquest_2': {
  1071. 'description': "None",
  1072. 'type': 0x00000001,
  1073. 'objective_type': Monster.gobul,
  1074. 'objective_num': 0x01,
  1075. 'zenny_reward': 0,
  1076. 'hrp_reward': 0,
  1077. 'rewards_row_1': [],
  1078. }
  1079. },
  1080. 'unknown': {
  1081. # (2 for large mon quest, 3 for small/delivery, 5 for jhen/ala)
  1082. 'unk_12': 0x00000002,
  1083. 'unk_4': 0x00,
  1084. 'unk_5': 0x00,
  1085. 'unk_6': 0x00,
  1086. 'unk_7': 0x00000000,
  1087. }
  1088. }
  1089. """
  1090. EVENT QUEST 18: Rage Match
  1091. Quest description from https://www.youtube.com/watch?v=rbbiLgsAoGU
  1092. thanks to "kazuma_6969"
  1093. (INCOMPLETE) Second deviljho does not spawn on a delay.
  1094. """
  1095. QUEST_EVENT_RAGE_MATCH = {
  1096. 'small_monsters': [
  1097. [
  1098. # Area 0
  1099. ],
  1100. [
  1101. # Area 1
  1102. ],
  1103. ],
  1104. 'quest_info': {
  1105. 'quest_id': 61018,
  1106. 'name': "Rage Match",
  1107. 'client': "Arena Manager",
  1108. 'description': "Hunt 2 Deviljho",
  1109. 'details':
  1110. "We've all heard of that\n"
  1111. "outrageous dragon of rage,\n"
  1112. "the Deviljho! Now, we've got\n"
  1113. "not one -- but two -- stalking\n"
  1114. "the Arena! What hunter has the\n"
  1115. "cojones to challenge these\n"
  1116. "pernicious predators? Not me.",
  1117. 'success_message': "Complete the Main Quest.",
  1118. 'flags': (
  1119. (0, 0, 0, 0, 0, 0, 0, 0),
  1120. (1, 1, 0, 0, 0, 0, 0, 0),
  1121. (0, 0, 0, 0, 0, 0, 0, 0),
  1122. (1, 0, 1, 0, 0, 0, 1, 1)
  1123. ),
  1124. 'penalty_per_cart': 13000,
  1125. 'quest_fee': 3600,
  1126. 'time_limit': 50,
  1127. 'main_monster_1': Monster.none,
  1128. 'main_monster_2': Monster.none,
  1129. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  1130. 'quest_rank': QuestRankType.urgent,
  1131. 'hrp_restriction': QuestRestrictionType.RESTRICTION_51_INITJOIN,
  1132. 'resources': ResourcesType.high_rank,
  1133. 'supply_set_number': 43,
  1134. 'starting_position': StartingPositionType.camp,
  1135. 'general_enemy_level': 244,
  1136. 'summon': 0x64010232,
  1137. 'wave_1_transition_type': WaveType.none,
  1138. 'wave_1_transition_target': 0x0000,
  1139. 'wave_1_transition_quantity': 0x0000,
  1140. 'wave_2_transition_type': WaveType.none,
  1141. 'wave_2_transition_target': 0x0000,
  1142. 'wave_2_transition_quantity': 0x0000,
  1143. },
  1144. 'large_monsters': {
  1145. 'monster_1': {
  1146. 'type': Monster.deviljho,
  1147. 'starting_area': 0x01,
  1148. 'boss_id': 0x01,
  1149. 'spawn_count': 0x01,
  1150. 'level': 0x3C, # 0x01 through 0x3c
  1151. 'size': 0x64,
  1152. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1153. 'size_spread': 0x0A
  1154. },
  1155. 'monster_2': {
  1156. 'type': Monster.deviljho,
  1157. 'starting_area': 0x01,
  1158. 'boss_id': 0x02,
  1159. 'spawn_count': 0x01,
  1160. 'level': 0x3C, # 0x01 through 0x3c
  1161. 'size': 0x5A,
  1162. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1163. 'size_spread': 0x0A
  1164. },
  1165. 'monster_3': {
  1166. 'type': Monster.none,
  1167. 'starting_area': 0x00,
  1168. 'boss_id': 0x00,
  1169. 'spawn_count': 0x00,
  1170. 'level': 0x00, # 0x01 through 0x3c
  1171. 'size': 0x00,
  1172. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1173. 'size_spread': 0x00
  1174. }
  1175. },
  1176. 'objective_details': {
  1177. 'main_quest': {
  1178. 'type': 0x00000001,
  1179. 'objective_type': Monster.deviljho,
  1180. 'objective_num': 0x02,
  1181. 'zenny_reward': 36000,
  1182. 'hrp_reward': 2880,
  1183. 'rewards_row_1': [
  1184. (ItemsType.deviljho_fang, 1, 6),
  1185. (ItemsType.deviljho_talon, 1, 13),
  1186. (ItemsType.deviljho_scale, 1, 26),
  1187. (ItemsType.deviljho_hide, 1, 20),
  1188. (ItemsType.shining_charm, 1, 6),
  1189. (ItemsType.deviljho_gem, 1, 4),
  1190. (ItemsType.wyvrnhide_ticket, 1, 25)
  1191. ],
  1192. 'rewards_row_2': [
  1193. (ItemsType.deviljho_fang, 1, 6),
  1194. (ItemsType.deviljho_talon, 1, 13),
  1195. (ItemsType.deviljho_scale, 1, 26),
  1196. (ItemsType.deviljho_hide, 1, 20),
  1197. (ItemsType.shining_charm, 1, 6),
  1198. (ItemsType.deviljho_gem, 1, 4),
  1199. (ItemsType.wyvrnhide_ticket, 1, 25)
  1200. ],
  1201. },
  1202. 'subquest_1': {
  1203. 'description': "None",
  1204. 'type': 0x00000000,
  1205. 'objective_type': Monster.none,
  1206. 'objective_num': 0x00,
  1207. 'zenny_reward': 0,
  1208. 'hrp_reward': 0,
  1209. 'rewards_row_1': [],
  1210. },
  1211. 'subquest_2': {
  1212. 'description': "None",
  1213. 'type': 0,
  1214. 'objective_type': Monster.none,
  1215. 'objective_num': 0,
  1216. 'zenny_reward': 0,
  1217. 'hrp_reward': 0,
  1218. 'rewards_row_1': [],
  1219. }
  1220. },
  1221. 'unknown': {
  1222. # (2 for large mon quest, 3 for small/delivery, 5 for jhen/ala)
  1223. 'unk_12': 0x00000002,
  1224. 'unk_4': 0x00,
  1225. 'unk_5': 0x00,
  1226. 'unk_6': 0x00,
  1227. 'unk_7': 0x00000000,
  1228. }
  1229. }
  1230. """
  1231. EVENT QUEST 20: World Eater
  1232. Quest description/rewards/etc from https://www.youtube.com/watch?v=Z6joazT8J78
  1233. (INCOMPLETE) Needs invading queropeco
  1234. """
  1235. QUEST_EVENT_WORLD_EATER = {
  1236. 'small_monsters': [
  1237. [
  1238. # Area 0
  1239. ],
  1240. [
  1241. # Area 1
  1242. {
  1243. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  1244. 'variant': 1,'room': 1,'quantity': 1,
  1245. 'pos_x': 247.42,'pos_y': 560.37,'pos_z': -3613.80,
  1246. 'rot_x': 0,'rot_y': -119,'rot_z': 0,
  1247. },
  1248. {
  1249. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  1250. 'variant': 0,'room': 1,'quantity': 3,
  1251. 'pos_x': -474.90,'pos_y': 491.91,'pos_z': -3857.25,
  1252. 'rot_x': 0,'rot_y': -267,'rot_z': 0,
  1253. },
  1254. {
  1255. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  1256. 'variant': 1,'room': 1,'quantity': 3,
  1257. 'pos_x': 897.01,'pos_y': 418.60,'pos_z': -4931.83,
  1258. 'rot_x': 0,'rot_y': -284,'rot_z': 0,
  1259. },
  1260. {
  1261. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  1262. 'variant': 0,'room': 1,'quantity': 2,
  1263. 'pos_x': 219.95,'pos_y': 402.97,'pos_z': -4449.25,
  1264. 'rot_x': 0,'rot_y': 244,'rot_z': 0,
  1265. },
  1266. ],
  1267. [
  1268. # Area 2 (Area 3 in Deserted Island)
  1269. {
  1270. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  1271. 'variant': 1,'room': 2,'quantity': 3,
  1272. 'pos_x': -6654.10,'pos_y': 23.12,'pos_z': 117.64,
  1273. 'rot_x': 0,'rot_y': 455,'rot_z': 0,
  1274. },
  1275. ],
  1276. [
  1277. # Area 3 (Area 2 in Deserted Island)
  1278. {
  1279. 'type': Monster.aptonoth,'unk1': 0,'unk2': 0xFF,
  1280. 'variant': 0,'room': 3,'quantity': -1,
  1281. 'pos_x': 2567.38,'pos_y': -4.58,'pos_z': -1280.44,
  1282. 'rot_x': 0,'rot_y': 352,'rot_z': 0,
  1283. },
  1284. {
  1285. 'type': Monster.aptonoth,'unk1': 1,'unk2': 0xFF,
  1286. 'variant': 2,'room': 3,'quantity': -1,
  1287. 'pos_x': 2119.14,'pos_y': -14.21,'pos_z': -787.00,
  1288. 'rot_x': 0,'rot_y': 335,'rot_z': 0,
  1289. },
  1290. ],
  1291. [
  1292. # Area 4 (Area 7 in Deserted Island)
  1293. {
  1294. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1295. 'variant': 0,'room': 4,'quantity': 2,
  1296. 'pos_x': 39.65,'pos_y': 2.00,'pos_z': 2631.32,
  1297. 'rot_x': 0,'rot_y': 113,'rot_z': 0,
  1298. },
  1299. {
  1300. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1301. 'variant': 0,'room': 4,'quantity': 2,
  1302. 'pos_x': -538.14,'pos_y': 2.00,'pos_z': 2165.99,
  1303. 'rot_x': 0,'rot_y': -91,'rot_z': 0,
  1304. },
  1305. {
  1306. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1307. 'variant': 0,'room': 4,'quantity': 1,
  1308. 'pos_x': 360.98,'pos_y': 2.00,'pos_z': 820.71,
  1309. 'rot_x': 0,'rot_y': -187,'rot_z': 0,
  1310. },
  1311. {
  1312. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1313. 'variant': 1,'room': 4,'quantity': -1,
  1314. 'pos_x': -5671.42,'pos_y': 466.03,'pos_z': 3071.35,
  1315. 'rot_x': 273,'rot_y': 304,'rot_z': 0,
  1316. },
  1317. ],
  1318. [
  1319. # Area 5
  1320. ],
  1321. [
  1322. # Area 6
  1323. ],
  1324. [
  1325. # Area 7 (Area 11 in Deserted Island)
  1326. {
  1327. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1328. 'variant': 4,'room': 7,'quantity': 4,
  1329. 'pos_x': 2237.04,'pos_y': -1090.00,'pos_z': 1586.48,
  1330. 'rot_x': 0,'rot_y': 96,'rot_z': 0,
  1331. },
  1332. {
  1333. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1334. 'variant': 4,'room': 7,'quantity': 2,
  1335. 'pos_x': 2469.26,'pos_y': -1330.00,'pos_z': 2832.58,
  1336. 'rot_x': 0,'rot_y': -108,'rot_z': 0,
  1337. },
  1338. {
  1339. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1340. 'variant': 4,'room': 7,'quantity': 2,
  1341. 'pos_x': 1103.05,'pos_y': -2050.00,'pos_z': -1429.32,
  1342. 'rot_x': 0,'rot_y': -108,'rot_z': 0,
  1343. },
  1344. {
  1345. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1346. 'variant': 4,'room': 7,'quantity': 1,
  1347. 'pos_x': -3054.79,'pos_y': -3047.85,'pos_z': 3126.22,
  1348. 'rot_x': 0,'rot_y': -62,'rot_z': 0,
  1349. },
  1350. {
  1351. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1352. 'variant': 4,'room': 7,'quantity': 1,
  1353. 'pos_x': 1268.03,'pos_y': -2470.00,'pos_z': -557.22,
  1354. 'rot_x': 0,'rot_y': -108,'rot_z': 0,
  1355. },
  1356. {
  1357. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1358. 'variant': 0,'room': 7,'quantity': 3,
  1359. 'pos_x': 1742.13,'pos_y': -3820.00,'pos_z': -1993.49,
  1360. 'rot_x': 0,'rot_y': -108,'rot_z': 0,
  1361. },
  1362. {
  1363. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1364. 'variant': 0,'room': 7,'quantity': 2,
  1365. 'pos_x': 1732.89,'pos_y': -3580.00,'pos_z': -4462.32,
  1366. 'rot_x': 0,'rot_y': -278,'rot_z': 0,
  1367. },
  1368. ],
  1369. [
  1370. # Area 8 (Area 12 in the Deserted Island)
  1371. {
  1372. 'type': Monster.ludroth,'unk1': 1,'unk2': 0xFF,
  1373. 'variant': 0,'room': 8,'quantity': 2,
  1374. 'pos_x': 80.95,'pos_y': 35.81,'pos_z': -523.41,
  1375. 'rot_x': 0,'rot_y': -420,'rot_z': 0,
  1376. },
  1377. {
  1378. 'type': Monster.ludroth,'unk1': 1,'unk2': 0xFF,
  1379. 'variant': 0,'room': 8,'quantity': 1,
  1380. 'pos_x': -1342.36,'pos_y': -18.00,'pos_z': 465.56,
  1381. 'rot_x': 0,'rot_y': -324,'rot_z': 0,
  1382. },
  1383. ],
  1384. [
  1385. # Area 9 (Area 6 in the Deserted Island)
  1386. {
  1387. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  1388. 'variant': 0,'room': 9,'quantity': 3,
  1389. 'pos_x': 1059.13,'pos_y': 5.78,'pos_z': -3228.47,
  1390. 'rot_x': 0,'rot_y': -261,'rot_z': 0,
  1391. },
  1392. {
  1393. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  1394. 'variant': 0,'room': 9,'quantity': 4,
  1395. 'pos_x': 390.83,'pos_y': 20.44,'pos_z': -746.07,
  1396. 'rot_x': 0,'rot_y': -176,'rot_z': 0,
  1397. },
  1398. {
  1399. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  1400. 'variant': 0,'room': 9,'quantity': 2,
  1401. 'pos_x': -482.31,'pos_y': 16.39,'pos_z': 5.01,
  1402. 'rot_x': 0,'rot_y': 250,'rot_z': 0,
  1403. },
  1404. ],
  1405. [
  1406. # Area 10 (Area 8 in the Deserted Island)
  1407. {
  1408. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  1409. 'variant': 0,'room': 10,'quantity': 5,
  1410. 'pos_x': -1846.87,'pos_y': -263.00,'pos_z': 931.19,
  1411. 'rot_x': 0,'rot_y': -5,'rot_z': 0,
  1412. },
  1413. {
  1414. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  1415. 'variant': 0,'room': 10,'quantity': 3,
  1416. 'pos_x': -3160.63,'pos_y': -206.32,'pos_z': -355.73,
  1417. 'rot_x': 0,'rot_y': 307,'rot_z': 0,
  1418. },
  1419. {
  1420. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  1421. 'variant': 0,'room': 10,'quantity': 2,
  1422. 'pos_x': -1949.45,'pos_y': -276.13,'pos_z': 1228.73,
  1423. 'rot_x': 0,'rot_y': 216,'rot_z': 0,
  1424. },
  1425. {
  1426. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  1427. 'variant': 0,'room': 10,'quantity': -1,
  1428. 'pos_x': -1552.64,'pos_y': -186.42,'pos_z': 1504.30,
  1429. 'rot_x': 0,'rot_y': -28,'rot_z': 0,
  1430. },
  1431. {
  1432. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  1433. 'variant': 0,'room': 10,'quantity': -1,
  1434. 'pos_x': -1352.11,'pos_y': -174.80,'pos_z': 1441.92,
  1435. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1436. },
  1437. {
  1438. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1439. 'variant': 0,'room': 10,'quantity': 1,
  1440. 'pos_x': -653.75,'pos_y': 306.58,'pos_z': 2295.24,
  1441. 'rot_x': 0,'rot_y': 221,'rot_z': 0,
  1442. },
  1443. {
  1444. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1445. 'variant': 0,'room': 10,'quantity': 4,
  1446. 'pos_x': -615.28,'pos_y': 96.58,'pos_z': 2086.81,
  1447. 'rot_x': 0,'rot_y': 119,'rot_z': 0,
  1448. },
  1449. ],
  1450. [
  1451. # Area 11 (Area 4 in the Deserted Island)
  1452. {
  1453. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  1454. 'variant': 6,'room': 11,'quantity': 2,
  1455. 'pos_x': -453.62,'pos_y': 705.50,'pos_z': 2253.55,
  1456. 'rot_x': 0,'rot_y': -5,'rot_z': 0,
  1457. },
  1458. {
  1459. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  1460. 'variant': 6,'room': 11,'quantity': 4,
  1461. 'pos_x': 142.14,'pos_y': 336.98,'pos_z': 3677.44,
  1462. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1463. },
  1464. {
  1465. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1466. 'variant': 1,'room': 11,'quantity': 1,
  1467. 'pos_x': 4363.26,'pos_y': 426.27,'pos_z': 5818.19,
  1468. 'rot_x': 0,'rot_y': 171,'rot_z': 0,
  1469. },
  1470. {
  1471. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1472. 'variant': 1,'room': 11,'quantity': 1,
  1473. 'pos_x': 4782.14,'pos_y': 426.27,'pos_z': 5556.53,
  1474. 'rot_x': 0,'rot_y': 164,'rot_z': 0,
  1475. },
  1476. {
  1477. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1478. 'variant': 1,'room': 11,'quantity': 1,
  1479. 'pos_x': 4617.08,'pos_y': 426.27,'pos_z': 6208.15,
  1480. 'rot_x': 0,'rot_y': 284,'rot_z': 0,
  1481. },
  1482. {
  1483. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  1484. 'variant': 1,'room': 11,'quantity': 1,
  1485. 'pos_x': 5099.46,'pos_y': 426.27,'pos_z': 5456.15,
  1486. 'rot_x': 0,'rot_y': 161,'rot_z': 0,
  1487. },
  1488. {
  1489. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1490. 'variant': 0,'room': 11,'quantity': 4,
  1491. 'pos_x': 2767.15,'pos_y': 611.59,'pos_z': 4297.09,
  1492. 'rot_x': 0,'rot_y': -301,'rot_z': 0,
  1493. },
  1494. {
  1495. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1496. 'variant': 0,'room': 11,'quantity': 2,
  1497. 'pos_x': 2793.18,'pos_y': 1205.81,'pos_z': 5908.79,
  1498. 'rot_x': 0,'rot_y': -295,'rot_z': 0,
  1499. },
  1500. {
  1501. 'type': Monster.bnahabra2,'unk1': 1,'unk2': 0xFF,
  1502. 'variant': 0,'room': 11,'quantity': 1,
  1503. 'pos_x': 3210.49,'pos_y': 845.81,'pos_z': 5369.26,
  1504. 'rot_x': 0,'rot_y': -398,'rot_z': 0,
  1505. },
  1506. ],
  1507. [
  1508. # Area 12 (Area 10 in the Deserted Island)
  1509. {
  1510. 'type': Monster.epioth,'unk1': 1,'unk2': 0xFF,
  1511. 'variant': 0,'room': 12,'quantity': -1,
  1512. 'pos_x': 572.89,'pos_y': -618.12,'pos_z': -2648.11,
  1513. 'rot_x': 0,'rot_y': -142,'rot_z': 0,
  1514. },
  1515. {
  1516. 'type': Monster.epioth,'unk1': 1,'unk2': 0xFF,
  1517. 'variant': 0,'room': 12,'quantity': -1,
  1518. 'pos_x': -501.62,'pos_y': -210.00,'pos_z': -3356.64,
  1519. 'rot_x': 0,'rot_y': 45,'rot_z': 0,
  1520. },
  1521. {
  1522. 'type': Monster.epioth,'unk1': 1,'unk2': 0xFF,
  1523. 'variant': 0,'room': 12,'quantity': -1,
  1524. 'pos_x': -1624.63,'pos_y': -888.12,'pos_z': -2880.06,
  1525. 'rot_x': 0,'rot_y': 113,'rot_z': 0,
  1526. },
  1527. {
  1528. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1529. 'variant': 2,'room': 12,'quantity': -1,
  1530. 'pos_x': -2352.88,'pos_y': -523.55,'pos_z': -7478.20,
  1531. 'rot_x': 0,'rot_y': -91,'rot_z': 0,
  1532. },
  1533. {
  1534. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1535. 'variant': 2,'room': 12,'quantity': -1,
  1536. 'pos_x': -1957.86,'pos_y': -1228.41,'pos_z': -7734.46,
  1537. 'rot_x': 0,'rot_y': -91,'rot_z': 0,
  1538. },
  1539. {
  1540. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1541. 'variant': 2,'room': 12,'quantity': -1,
  1542. 'pos_x': -2821.80,'pos_y': -988.41,'pos_z': -8174.07,
  1543. 'rot_x': 0,'rot_y': -91,'rot_z': 0,
  1544. },
  1545. {
  1546. 'type': Monster.fish,'unk1': 1,'unk2': 0xFF,
  1547. 'variant': 2,'room': 12,'quantity': -1,
  1548. 'pos_x': -2435.99,'pos_y': -988.41,'pos_z': -7780.24,
  1549. 'rot_x': 0,'rot_y': -91,'rot_z': 0,
  1550. },
  1551. ],
  1552. ],
  1553. 'quest_info': {
  1554. 'quest_id': 61020,
  1555. 'name': "World Eater",
  1556. 'client': "Guildmaster",
  1557. 'description': "Hunt a Deviljho",
  1558. 'details':
  1559. "Emergency! A huge Deviljho has\n"
  1560. "appeared. It's twice as big as\n"
  1561. "a normal one and it's eating\n"
  1562. "everything in sight! Go get\n"
  1563. "it! And now, a haiku: A huge\n"
  1564. "Deviljho/with no food in its\n"
  1565. "stomach/eats the whole island.",
  1566. 'success_message': "Complete the Main Quest.",
  1567. 'flags': (
  1568. (0, 0, 0, 0, 0, 0, 0, 0),
  1569. (1, 1, 0, 0, 0, 0, 0, 0),
  1570. (0, 0, 0, 0, 0, 0, 0, 0),
  1571. (1, 0, 1, 0, 0, 0, 1, 1)
  1572. ),
  1573. 'penalty_per_cart': 6000,
  1574. 'quest_fee': 1800,
  1575. 'time_limit': 50,
  1576. 'main_monster_1': Monster.jaggi,
  1577. 'main_monster_2': Monster.jaggia,
  1578. 'location': LocationType.QUEST_LOCATION_D_ISLAND,
  1579. 'quest_rank': QuestRankType.urgent,
  1580. 'hrp_restriction': QuestRestrictionType.RESTRICTION_51_INITJOIN,
  1581. 'resources': ResourcesType.high_rank,
  1582. 'supply_set_number': 31,
  1583. 'starting_position': StartingPositionType.random,
  1584. 'general_enemy_level': 0x0034,
  1585. 'summon': 0x64010234,
  1586. 'wave_1_transition_type': WaveType.none,
  1587. 'wave_1_transition_target': 0x0000,
  1588. 'wave_1_transition_quantity': 0x0000,
  1589. 'wave_2_transition_type': WaveType.none,
  1590. 'wave_2_transition_target': 0x0000,
  1591. 'wave_2_transition_quantity': 0x0000,
  1592. },
  1593. 'large_monsters': {
  1594. 'monster_1': {
  1595. 'type': Monster.deviljho,
  1596. 'starting_area': 0x00,
  1597. 'boss_id': 0x00,
  1598. 'spawn_count': 0x01,
  1599. 'level': 0x40, # 0x01 through 0x3c
  1600. 'size': 0xC8,
  1601. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1602. 'size_spread': 0x00
  1603. },
  1604. 'monster_2': {
  1605. 'type': Monster.none,
  1606. 'starting_area': 0x00,
  1607. 'boss_id': 0x00,
  1608. 'spawn_count': 0x00,
  1609. 'level': 0x00, # 0x01 through 0x3c
  1610. 'size': 0x00,
  1611. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1612. 'size_spread': 0x00
  1613. },
  1614. 'monster_3': {
  1615. 'type': Monster.none,
  1616. 'starting_area': 0x00,
  1617. 'boss_id': 0x00,
  1618. 'spawn_count': 0x00,
  1619. 'level': 0x00, # 0x01 through 0x3c
  1620. 'size': 0x00,
  1621. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1622. 'size_spread': 0x00
  1623. }
  1624. },
  1625. 'objective_details': {
  1626. 'main_quest': {
  1627. 'type': 0x00000001,
  1628. 'objective_type': Monster.deviljho,
  1629. 'objective_num': 0x01,
  1630. 'zenny_reward': 18000,
  1631. 'hrp_reward': 1800,
  1632. 'rewards_row_1': [
  1633. (ItemsType.timeworn_charm, 1, 33),
  1634. (ItemsType.deviljho_gem, 1, 4),
  1635. (ItemsType.deviljho_scalp, 1, 8),
  1636. (ItemsType.deviljho_hide, 1, 17),
  1637. (ItemsType.hvy_armor_sphere, 1, 11),
  1638. (ItemsType.shining_charm, 1, 19),
  1639. (ItemsType.deviljho_fang, 1, 8)
  1640. ],
  1641. 'rewards_row_2': [
  1642. (ItemsType.deviljho_scalp, 1, 20),
  1643. (ItemsType.timeworn_charm, 1, 34),
  1644. (ItemsType.deviljho_fang, 1, 6),
  1645. (ItemsType.deviljho_hide, 1, 17),
  1646. (ItemsType.deviljho_gem, 1, 3),
  1647. (ItemsType.shining_charm, 1, 11),
  1648. (ItemsType.hvy_armor_sphere, 1, 9)
  1649. ],
  1650. },
  1651. 'subquest_1': {
  1652. 'description': "None",
  1653. 'type': 0x00000000,
  1654. 'objective_type': Monster.none,
  1655. 'objective_num': 0x00,
  1656. 'zenny_reward': 0,
  1657. 'hrp_reward': 0x00000000,
  1658. 'rewards_row_1': [],
  1659. },
  1660. 'subquest_2': {
  1661. 'description': "None",
  1662. 'type': 0x00000000,
  1663. 'objective_type': Monster.none,
  1664. 'objective_num': 0x00,
  1665. 'zenny_reward': 0,
  1666. 'hrp_reward': 0x00000000,
  1667. 'rewards_row_1': [],
  1668. },
  1669. },
  1670. 'unknown': {
  1671. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  1672. 'unk_12': 0x00000002,
  1673. 'unk_4': 0x00,
  1674. 'unk_5': 0x00,
  1675. 'unk_6': 0x00,
  1676. 'unk_7': 0x00000000,
  1677. }
  1678. }
  1679. """
  1680. EVENT QUEST 20: Where Gods Fear To Tread
  1681. Quest description from https://www.youtube.com/watch?v=mQHTdPRlD1w,
  1682. thanks to "soulmizute, emperor of the abyss#5094"
  1683. and "El Matiah#8904"
  1684. """
  1685. QUEST_EVENT_WHERE_GODS_FEAR_TO_TREAD = {
  1686. 'small_monsters': [
  1687. [
  1688. # Area 0
  1689. ],
  1690. [
  1691. # Area 1
  1692. ],
  1693. ],
  1694. 'quest_info': {
  1695. 'quest_id': 61021,
  1696. 'name': "Where Gods Fear to Tread",
  1697. 'client': "Scarlet Mystery Man",
  1698. 'description': "Slay the Alatreon",
  1699. 'details':
  1700. "I've been waiting, hunter. Now\n"
  1701. "comes your final challenge:\n"
  1702. "Alatreon, a dragon of darkness\n"
  1703. "and light. Can mere mortals\n"
  1704. "fell an elder dragon feared\n"
  1705. "even by the gods? Don't even\n"
  1706. "bother saying your prayers...",
  1707. 'success_message': "Complete the Main Quest.",
  1708. 'flags': (
  1709. (0, 0, 0, 0, 0, 0, 0, 0),
  1710. (1, 1, 0, 0, 0, 0, 0, 0),
  1711. (0, 0, 0, 0, 0, 0, 0, 0),
  1712. (1, 0, 0, 0, 0, 0, 1, 0)
  1713. ),
  1714. 'penalty_per_cart': 14000,
  1715. 'quest_fee': 4200,
  1716. 'time_limit': 50,
  1717. 'main_monster_1': Monster.none,
  1718. 'main_monster_2': Monster.none,
  1719. 'location': LocationType.QUEST_LOCATION_SACRED_LAND,
  1720. 'quest_rank': QuestRankType.urgent,
  1721. 'hrp_restriction': QuestRestrictionType.RESTRICTION_51_INITJOIN,
  1722. 'resources': ResourcesType.high_rank,
  1723. 'supply_set_number': 0,
  1724. 'starting_position': StartingPositionType.shrine,
  1725. 'general_enemy_level': 0x0040,
  1726. 'summon': 0x00000000,
  1727. 'wave_1_transition_type': WaveType.none,
  1728. 'wave_1_transition_target': 0x0000,
  1729. 'wave_1_transition_quantity': 0x0000,
  1730. 'wave_2_transition_type': WaveType.none,
  1731. 'wave_2_transition_target': 0x0000,
  1732. 'wave_2_transition_quantity': 0x0000,
  1733. },
  1734. 'large_monsters': {
  1735. 'monster_1': {
  1736. 'type': Monster.alatreon,
  1737. 'starting_area': 0x00,
  1738. 'boss_id': 0x00,
  1739. 'spawn_count': 0x01,
  1740. 'level': 0x40, # 0x01 through 0x3c
  1741. 'size': 0x7D,
  1742. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1743. 'size_spread': 0x00
  1744. },
  1745. 'monster_2': {
  1746. 'type': Monster.none,
  1747. 'starting_area': 0x00,
  1748. 'boss_id': 0x00,
  1749. 'spawn_count': 0x00,
  1750. 'level': 0x00, # 0x01 through 0x3c
  1751. 'size': 0x00,
  1752. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1753. 'size_spread': 0x00
  1754. },
  1755. 'monster_3': {
  1756. 'type': Monster.none,
  1757. 'starting_area': 0x00,
  1758. 'boss_id': 0x00,
  1759. 'spawn_count': 0x00,
  1760. 'level': 0x00, # 0x01 through 0x3c
  1761. 'size': 0x00,
  1762. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1763. 'size_spread': 0x00
  1764. }
  1765. },
  1766. 'objective_details': {
  1767. 'main_quest': {
  1768. 'type': 0x00000101,
  1769. 'objective_type': Monster.alatreon,
  1770. 'objective_num': 0x01,
  1771. 'zenny_reward': 42000,
  1772. 'hrp_reward': 4200,
  1773. 'rewards_row_1': [
  1774. (ItemsType.alatreon_scute, 1, 40),
  1775. (ItemsType.brkn_skypiercer, 1, 30),
  1776. (ItemsType.alatreon_talon, 1, 10),
  1777. (ItemsType.alatreon_plate, 1, 10),
  1778. (ItemsType.skypiercer, 1, 5),
  1779. (ItemsType.azure_dragongem, 1, 5)
  1780. ],
  1781. 'rewards_row_2': [
  1782. (ItemsType.alatreon_plate, 1, 11),
  1783. (ItemsType.brkn_skypiercer, 1, 34),
  1784. (ItemsType.alatreon_talon, 1, 39),
  1785. (ItemsType.elderdragonblood, 1, 6),
  1786. (ItemsType.skypiercer, 1, 5),
  1787. (ItemsType.azure_dragongem, 1, 5)
  1788. ],
  1789. },
  1790. 'subquest_1': {
  1791. 'description': "None",
  1792. 'type': 0x00000000,
  1793. 'objective_type': Monster.none,
  1794. 'objective_num': 0x00,
  1795. 'zenny_reward': 0,
  1796. 'hrp_reward': 0x00000000,
  1797. 'rewards_row_1': [],
  1798. },
  1799. 'subquest_2': {
  1800. 'description': "None",
  1801. 'type': 0x00000000,
  1802. 'objective_type': Monster.none,
  1803. 'objective_num': 0x00,
  1804. 'zenny_reward': 0,
  1805. 'hrp_reward': 0x00000000,
  1806. 'rewards_row_1': [],
  1807. },
  1808. },
  1809. 'unknown': {
  1810. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  1811. 'unk_12': 0x00000005,
  1812. 'unk_4': 0x00,
  1813. 'unk_5': 0x00,
  1814. 'unk_6': 0x00,
  1815. 'unk_7': 0x00000000,
  1816. }
  1817. }
  1818. QUEST_EVENT_GREEN_EGGS = {
  1819. 'small_monsters': [
  1820. [
  1821. # Area 0
  1822. ],
  1823. [
  1824. # Area 1
  1825. {
  1826. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1827. 'variant': 0,'room': 1,'quantity': -1,
  1828. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1829. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1830. },
  1831. {
  1832. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1833. 'variant': 0,'room': 1,'quantity': -1,
  1834. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1835. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1836. },
  1837. {
  1838. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1839. 'variant': 0,'room': 1,'quantity': -1,
  1840. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1841. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1842. },
  1843. {
  1844. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1845. 'variant': 0,'room': 1,'quantity': -1,
  1846. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1847. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1848. },
  1849. {
  1850. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1851. 'variant': 0,'room': 1,'quantity': -1,
  1852. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1853. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1854. },
  1855. {
  1856. 'type': Monster.giggi,'unk1': 3,'unk2': 0xFF,
  1857. 'variant': 0,'room': 1,'quantity': -1,
  1858. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1859. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1860. },
  1861. {
  1862. 'type': Monster.bnahabra1,'unk1': 3,'unk2': 0xFF,
  1863. 'variant': 1,'room': 1,'quantity': -1,
  1864. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1865. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1866. },
  1867. {
  1868. 'type': Monster.bnahabra1,'unk1': 3,'unk2': 0xFF,
  1869. 'variant': 1,'room': 1,'quantity': -1,
  1870. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  1871. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  1872. },
  1873. ],
  1874. ],
  1875. 'quest_info': {
  1876. 'quest_id': 61050,
  1877. 'name': "[MH3SP] Green Eggs and...",
  1878. 'client': "Ze SpyRo",
  1879. 'description':
  1880. "Hunt a Gigginox\n"
  1881. "and an Agnaktor",
  1882. 'details':
  1883. "Why do we live, only to suffer?\n"
  1884. "Only slayers of pig meat know\n"
  1885. "these things. Take care, Hunter,\n"
  1886. "for those who look to antidote\n"
  1887. "herbs may find their breath\n"
  1888. "stolen away.",
  1889. 'success_message': "Complete the Main Quest.",
  1890. 'flags': (
  1891. (0, 1, 0, 0, 0, 0, 0, 0),
  1892. (1, 1, 0, 0, 0, 0, 0, 0),
  1893. (0, 0, 0, 0, 0, 0, 0, 0),
  1894. (1, 0, 1, 0, 0, 0, 0, 0)
  1895. ),
  1896. 'penalty_per_cart': 2400,
  1897. 'quest_fee': 200,
  1898. 'time_limit': 50,
  1899. 'main_monster_1': Monster.gigginox,
  1900. 'main_monster_2': Monster.agnaktor,
  1901. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  1902. 'quest_rank': QuestRankType.star_3,
  1903. 'hrp_restriction': QuestRestrictionType.RESTRICTION_18_INITJOIN,
  1904. 'resources': ResourcesType.low_rank,
  1905. 'supply_set_number': 43,
  1906. 'starting_position': StartingPositionType.camp,
  1907. 'general_enemy_level': 0x001B,
  1908. 'summon': 0x00000000,
  1909. 'wave_1_transition_type': WaveType.none,
  1910. 'wave_1_transition_target': 0x0000,
  1911. 'wave_1_transition_quantity': 0x0000,
  1912. 'wave_2_transition_type': WaveType.none,
  1913. 'wave_2_transition_target': 0x0000,
  1914. 'wave_2_transition_quantity': 0x0000,
  1915. },
  1916. 'large_monsters': {
  1917. 'monster_1': {
  1918. 'type': Monster.gigginox,
  1919. 'starting_area': 0x00,
  1920. 'boss_id': 0x00,
  1921. 'spawn_count': 0x01,
  1922. 'level': 0x1B, # 0x01 through 0x3c
  1923. 'size': 0x64,
  1924. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1925. 'size_spread': 0x03
  1926. },
  1927. 'monster_2': {
  1928. 'type': Monster.agnaktor,
  1929. 'starting_area': 0x00,
  1930. 'boss_id': 0x01,
  1931. 'spawn_count': 0x01,
  1932. 'level': 0x1B, # 0x01 through 0x3c
  1933. 'size': 0x64,
  1934. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1935. 'size_spread': 0x03
  1936. },
  1937. 'monster_3': {
  1938. 'type': Monster.none,
  1939. 'starting_area': 0x00,
  1940. 'boss_id': 0x02,
  1941. 'spawn_count': 0x00,
  1942. 'level': 0x00, # 0x01 through 0x3c
  1943. 'size': 0x00,
  1944. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  1945. 'size_spread': 0x00
  1946. }
  1947. },
  1948. 'objective_details': {
  1949. 'main_quest': {
  1950. 'type': 0x00000001,
  1951. 'objective_type': Monster.gigginox,
  1952. 'objective_num': 0x01,
  1953. 'zenny_reward': 7000,
  1954. 'hrp_reward': 950,
  1955. 'rewards_row_1': [
  1956. (ItemsType.flabby_hide, 1, 18),
  1957. (ItemsType.uncanny_hide, 1, 6),
  1958. (ItemsType.pale_extract, 1, 11),
  1959. (ItemsType.poison_sac, 1, 15),
  1960. (ItemsType.agnaktor_shell, 1, 10),
  1961. (ItemsType.agnaktor_scale, 1, 16),
  1962. (ItemsType.agnaktor_hide, 1, 13),
  1963. (ItemsType.agnaktor_fin, 1, 6),
  1964. (ItemsType.agnaktor_beak, 1, 5)
  1965. ],
  1966. 'rewards_row_2': [
  1967. (ItemsType.flabby_hide, 1, 13),
  1968. (ItemsType.uncanny_hide, 1, 6),
  1969. (ItemsType.pale_extract, 1, 11),
  1970. (ItemsType.poison_sac, 1, 10),
  1971. (ItemsType.agnaktor_shell, 1, 9),
  1972. (ItemsType.agnaktor_scale, 1, 10),
  1973. (ItemsType.agnaktor_hide, 1, 10),
  1974. (ItemsType.agnaktor_fin, 1, 6),
  1975. (ItemsType.agnaktor_beak, 1, 5),
  1976. (ItemsType.commendation, 1, 20)
  1977. ],
  1978. },
  1979. 'subquest_1': {
  1980. 'description': "None",
  1981. 'type': 0x00000001,
  1982. 'objective_type': Monster.agnaktor,
  1983. 'objective_num': 0x01,
  1984. 'zenny_reward': 0,
  1985. 'hrp_reward': 0x00000000,
  1986. 'rewards_row_1': [],
  1987. },
  1988. 'subquest_2': {
  1989. 'description': "None",
  1990. 'type': 0,
  1991. 'objective_type': Monster.none,
  1992. 'objective_num': 0x00,
  1993. 'zenny_reward': 0,
  1994. 'hrp_reward': 0x00000000,
  1995. 'rewards_row_1': [],
  1996. },
  1997. },
  1998. 'unknown': {
  1999. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  2000. 'unk_12': 0x00000002,
  2001. 'unk_4': 0x00,
  2002. 'unk_5': 0x00,
  2003. 'unk_6': 0x00,
  2004. 'unk_7': 0x00000000,
  2005. }
  2006. }
  2007. """
  2008. EVENT QUEST ???: Jump Fourty-Eight Jaggi
  2009. Quest description/rewards/etc from https://www.youtube.com/watch?v=qyQt2Xmpt0g
  2010. Quest requirements altered to make it possible to win.
  2011. """
  2012. QUEST_EVENT_JUMP_FOURTY_EIGHT_JAGGI = {
  2013. 'small_monsters': [
  2014. [
  2015. # Area 0
  2016. ],
  2017. [
  2018. # Area 1
  2019. {
  2020. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2021. 'variant': 0,'room': 1,'quantity': 1,
  2022. 'pos_x': 2039.26,'pos_y': 12.70,'pos_z': 210.05,
  2023. 'rot_x': 0,'rot_y': 17,'rot_z': 0,
  2024. },
  2025. {
  2026. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2027. 'variant': 0,'room': 1,'quantity': 1,
  2028. 'pos_x': 857.89,'pos_y': -41.97,'pos_z': 814.06,
  2029. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  2030. },
  2031. {
  2032. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2033. 'variant': 0,'room': 1,'quantity': 1,
  2034. 'pos_x': 97.58,'pos_y': -75.54,'pos_z': 135.22,
  2035. 'rot_x': 0,'rot_y': -45,'rot_z': 0,
  2036. },
  2037. {
  2038. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2039. 'variant': 0,'room': 1,'quantity': 1,
  2040. 'pos_x': -393.52,'pos_y': -163.94,'pos_z': -667.01,
  2041. 'rot_x': 0,'rot_y': -199,'rot_z': 0,
  2042. },
  2043. ],
  2044. [
  2045. # Area 2
  2046. {
  2047. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  2048. 'variant': 0,'room': 2,'quantity': 1,
  2049. 'pos_x': -853.86,'pos_y': 19.45,'pos_z': 1381.66,
  2050. 'rot_x': 0,'rot_y': -113,'rot_z': 0,
  2051. },
  2052. {
  2053. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  2054. 'variant': 1,'room': 2,'quantity': 2,
  2055. 'pos_x': -553.59,'pos_y': -2.57,'pos_z': -369.71,
  2056. 'rot_x': 0,'rot_y': 193,'rot_z': 0,
  2057. },
  2058. {
  2059. 'type': Monster.kelbi,'unk1': 1,'unk2': 0xFF,
  2060. 'variant': 0,'room': 2,'quantity': 3,
  2061. 'pos_x': -1698.75,'pos_y': 5.74,'pos_z': -530.30,
  2062. 'rot_x': 0,'rot_y': 398,'rot_z': 0,
  2063. },
  2064. ],
  2065. [
  2066. # Area 3
  2067. {
  2068. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2069. 'variant': 0,'room': 3,'quantity': -1,
  2070. 'pos_x': 873.28,'pos_y': 85.07,'pos_z': -610.86,
  2071. 'rot_x': 0,'rot_y': -153,'rot_z': 0,
  2072. },
  2073. {
  2074. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2075. 'variant': 0,'room': 3,'quantity': -1,
  2076. 'pos_x': 1247.84,'pos_y': 106.65,'pos_z': 25.11,
  2077. 'rot_x': 0,'rot_y': -358,'rot_z': 0,
  2078. },
  2079. {
  2080. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2081. 'variant': 2,'room': 3,'quantity': 2,
  2082. 'pos_x': 177.92,'pos_y': 450.70,'pos_z': -32.21,
  2083. 'rot_x': 0,'rot_y': -238,'rot_z': 0,
  2084. },
  2085. {
  2086. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2087. 'variant': 0,'room': 3,'quantity': 2,
  2088. 'pos_x': -78.66,'pos_y': 330.70,'pos_z': 362.86,
  2089. 'rot_x': 0,'rot_y': -79,'rot_z': 0,
  2090. },
  2091. ],
  2092. [
  2093. # Area 4
  2094. {
  2095. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  2096. 'variant': 0,'room': 4,'quantity': 3,
  2097. 'pos_x': 606.18,'pos_y': -12.89,'pos_z': 4145.11,
  2098. 'rot_x': 0,'rot_y': 324,'rot_z': 0,
  2099. },
  2100. {
  2101. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  2102. 'variant': 0,'room': 4,'quantity': 1,
  2103. 'pos_x': 524.37,'pos_y': -18.65,'pos_z': 2292.05,
  2104. 'rot_x': 0,'rot_y': 199,'rot_z': 0,
  2105. },
  2106. {
  2107. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  2108. 'variant': 0,'room': 4,'quantity': -1,
  2109. 'pos_x': -460.08,'pos_y': -71.51,'pos_z': 3044.50,
  2110. 'rot_x': 0,'rot_y': -460,'rot_z': 0,
  2111. },
  2112. ],
  2113. [
  2114. # Area 5
  2115. {
  2116. 'type': Monster.jaggi,'unk1': 3,'unk2': 0xFF,
  2117. 'variant': 0,'room': 5,'quantity': 1,
  2118. 'pos_x': 300.40,'pos_y': 4.00,'pos_z': -211.14,
  2119. 'rot_x': 0,'rot_y': 0,'rot_z': 0,
  2120. },
  2121. {
  2122. 'type': Monster.jaggi,'unk1': 3,'unk2': 0xFF,
  2123. 'variant': 0,'room': 5,'quantity': -1,
  2124. 'pos_x': 458.16,'pos_y': 1.49,'pos_z': -918.94,
  2125. 'rot_x': 0,'rot_y': 51,'rot_z': 0,
  2126. },
  2127. {
  2128. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2129. 'variant': 0,'room': 5,'quantity': 4,
  2130. 'pos_x': 1813.83,'pos_y': 3.06,'pos_z': 925.68,
  2131. 'rot_x': 0,'rot_y': 494,'rot_z': 0,
  2132. },
  2133. {
  2134. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  2135. 'variant': 0,'room': 5,'quantity': -1,
  2136. 'pos_x': -504.37,'pos_y': 3.05,'pos_z': -757.30,
  2137. 'rot_x': 0,'rot_y': 676,'rot_z': 0,
  2138. },
  2139. {
  2140. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  2141. 'variant': 0,'room': 5,'quantity': 2,
  2142. 'pos_x': 1118.48,'pos_y': 4.00,'pos_z': -420.89,
  2143. 'rot_x': 0,'rot_y': 364,'rot_z': 0,
  2144. },
  2145. {
  2146. 'type': Monster.jaggia,'unk1': 1,'unk2': 0xFF,
  2147. 'variant': 0,'room': 5,'quantity': -1,
  2148. 'pos_x': 2658.84,'pos_y': 3.24,'pos_z': 222.99,
  2149. 'rot_x': 0,'rot_y': 756,'rot_z': 0,
  2150. },
  2151. ],
  2152. [
  2153. # Area 6 (Area 8 in Sandy Plains)
  2154. {
  2155. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  2156. 'variant': 0,'room': 6,'quantity': -1,
  2157. 'pos_x': 1612.71,'pos_y': -30.27,'pos_z': 695.30,
  2158. 'rot_x': 0,'rot_y': 517,'rot_z': 0,
  2159. },
  2160. {
  2161. 'type': Monster.rhenoplos,'unk1': 3,'unk2': 0xFF,
  2162. 'variant': 0,'room': 6,'quantity': -1,
  2163. 'pos_x': -2050.04,'pos_y': -31.90,'pos_z': -266.33,
  2164. 'rot_x': 0,'rot_y': 28,'rot_z': 0,
  2165. },
  2166. {
  2167. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  2168. 'variant': 0,'room': 6,'quantity': 5,
  2169. 'pos_x': -344.14,'pos_y': -13.00,'pos_z': -26.14,
  2170. 'rot_x': 0,'rot_y': 443,'rot_z': 0,
  2171. },
  2172. {
  2173. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  2174. 'variant': 0,'room': 6,'quantity': 4,
  2175. 'pos_x': -161.74,'pos_y': 4.80,'pos_z': -416.52,
  2176. 'rot_x': 0,'rot_y': 472,'rot_z': 0,
  2177. },
  2178. {
  2179. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  2180. 'variant': 0,'room': 6,'quantity': 2,
  2181. 'pos_x': -481.05,'pos_y': 15.34,'pos_z': -643.19,
  2182. 'rot_x': 0,'rot_y': 568,'rot_z': 0,
  2183. },
  2184. {
  2185. 'type': Monster.altaroth,'unk1': 3,'unk2': 0xFF,
  2186. 'variant': 0,'room': 6,'quantity': -1,
  2187. 'pos_x': -692.26,'pos_y': -11.02,'pos_z': -235.13,
  2188. 'rot_x': 0,'rot_y': 608,'rot_z': 0,
  2189. },
  2190. {
  2191. 'type': Monster.altaroth,'unk1': 1,'unk2': 0xFF,
  2192. 'variant': 0,'room': 6,'quantity': 3,
  2193. 'pos_x': -417.82,'pos_y': -1.44,'pos_z': -343.46,
  2194. 'rot_x': 0,'rot_y': 147,'rot_z': 0,
  2195. },
  2196. ],
  2197. [
  2198. # Area 7 (Area 9 in Sandy Plains)
  2199. {
  2200. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2201. 'variant': 0,'room': 7,'quantity': 3,
  2202. 'pos_x': 4294.59,'pos_y': -75.65,'pos_z': -2925.29,
  2203. 'rot_x': 0,'rot_y': -130,'rot_z': 0,
  2204. },
  2205. {
  2206. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2207. 'variant': 0,'room': 7,'quantity': 2,
  2208. 'pos_x': 3995.30,'pos_y': -45.09,'pos_z': -2049.22,
  2209. 'rot_x': 0,'rot_y': -85,'rot_z': 0,
  2210. },
  2211. {
  2212. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2213. 'variant': 0,'room': 7,'quantity': 2,
  2214. 'pos_x': 4187.00,'pos_y': -17.07,'pos_z': -1574.97,
  2215. 'rot_x': 0,'rot_y': -17,'rot_z': 0,
  2216. },
  2217. {
  2218. 'type': Monster.jaggi,'unk1': 1,'unk2': 0xFF,
  2219. 'variant': 0,'room': 7,'quantity': 1,
  2220. 'pos_x': 3781.64,'pos_y': -66.86,'pos_z': -2570.78,
  2221. 'rot_x': 0,'rot_y': -130,'rot_z': 0,
  2222. },
  2223. ],
  2224. [
  2225. # Area 8 (Area 10 in Sandy Plains)
  2226. {
  2227. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  2228. 'variant': 0,'room': 8,'quantity': 7,
  2229. 'pos_x': 293.99,'pos_y': -170.31,'pos_z': 4049.95,
  2230. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  2231. },
  2232. {
  2233. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  2234. 'variant': 0,'room': 8,'quantity': 5,
  2235. 'pos_x': 124.95,'pos_y': -186.54,'pos_z': 3440.16,
  2236. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  2237. },
  2238. {
  2239. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  2240. 'variant': 0,'room': 8,'quantity': 3,
  2241. 'pos_x': -425.01,'pos_y': -179.30,'pos_z': 4509.84,
  2242. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  2243. },
  2244. {
  2245. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  2246. 'variant': 0,'room': 8,'quantity': 2,
  2247. 'pos_x': -714.48,'pos_y': -183.78,'pos_z': 4108.50,
  2248. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  2249. },
  2250. {
  2251. 'type': Monster.delex,'unk1': 1,'unk2': 0xFF,
  2252. 'variant': 0,'room': 8,'quantity': 1,
  2253. 'pos_x': -1021.27,'pos_y': -215.48,'pos_z': 3726.09,
  2254. 'rot_x': 0,'rot_y': 819,'rot_z': 0,
  2255. },
  2256. {
  2257. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2258. 'variant': 0,'room': 8,'quantity': -1,
  2259. 'pos_x': -1974.57,'pos_y': -209.48,'pos_z': -316.05,
  2260. 'rot_x': 0,'rot_y': -56,'rot_z': 0,
  2261. },
  2262. {
  2263. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2264. 'variant': 0,'room': 8,'quantity': -1,
  2265. 'pos_x': -1825.11,'pos_y': -210.91,'pos_z': -382.90,
  2266. 'rot_x': 0,'rot_y': 130,'rot_z': 0,
  2267. },
  2268. ],
  2269. [
  2270. # Area 9 (Area 7 in Sandy Plains)
  2271. {
  2272. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  2273. 'variant': 0,'room': 9,'quantity': 2,
  2274. 'pos_x': 3383.92,'pos_y': 2.65,'pos_z': 592.49,
  2275. 'rot_x': 0,'rot_y': -193,'rot_z': 0,
  2276. },
  2277. {
  2278. 'type': Monster.felyne,'unk1': 1,'unk2': 0xFF,
  2279. 'variant': 0,'room': 9,'quantity': 1,
  2280. 'pos_x': 2653.55,'pos_y': -22.59,'pos_z': 987.24,
  2281. 'rot_x': 0,'rot_y': -73,'rot_z': 0,
  2282. },
  2283. {
  2284. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2285. 'variant': 0,'room': 9,'quantity': -1,
  2286. 'pos_x': 2838.69,'pos_y': -28.00,'pos_z': 445.91,
  2287. 'rot_x': 0,'rot_y': -142,'rot_z': 0,
  2288. },
  2289. {
  2290. 'type': Monster.melynx,'unk1': 3,'unk2': 0xFF,
  2291. 'variant': 0,'room': 9,'quantity': -1,
  2292. 'pos_x': 2109.53,'pos_y': -26.57,'pos_z': 575.43,
  2293. 'rot_x': 0,'rot_y': -460,'rot_z': 0,
  2294. },
  2295. {
  2296. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2297. 'variant': 1,'room': 9,'quantity': -1,
  2298. 'pos_x': -1713.72,'pos_y': 1262.50,'pos_z': 2199.24,
  2299. 'rot_x': 273,'rot_y': -45,'rot_z': 0,
  2300. },
  2301. {
  2302. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2303. 'variant': 1,'room': 9,'quantity': 6,
  2304. 'pos_x': -1174.44,'pos_y': 1319.50,'pos_z': 1682.19,
  2305. 'rot_x': 0,'rot_y': -39,'rot_z': 0,
  2306. },
  2307. ],
  2308. [
  2309. # Area 10
  2310. ],
  2311. [
  2312. # Area 11 (Area 6 in Sandy Plains)
  2313. {
  2314. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  2315. 'variant': 0,'room': 11,'quantity': 2,
  2316. 'pos_x': 2195.89,'pos_y': 73.70,'pos_z': -720.92,
  2317. 'rot_x': 0,'rot_y': 39,'rot_z': 0,
  2318. },
  2319. {
  2320. 'type': Monster.giggi,'unk1': 1,'unk2': 0xFF,
  2321. 'variant': 6,'room': 11,'quantity': 1,
  2322. 'pos_x': -535.73,'pos_y': 1212.59,'pos_z': 896.44,
  2323. 'rot_x': 0,'rot_y': 169,'rot_z': 0,
  2324. },
  2325. {
  2326. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2327. 'variant': 0,'room': 11,'quantity': 2,
  2328. 'pos_x': -434.00,'pos_y': 198.96,'pos_z': 289.52,
  2329. 'rot_x': 0,'rot_y': -267,'rot_z': 0,
  2330. },
  2331. {
  2332. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2333. 'variant': 0,'room': 11,'quantity': 2,
  2334. 'pos_x': -802.69,'pos_y': 198.96,'pos_z': 66.62,
  2335. 'rot_x': 0,'rot_y': -216,'rot_z': 0,
  2336. },
  2337. {
  2338. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2339. 'variant': 0,'room': 11,'quantity': 2,
  2340. 'pos_x': -645.14,'pos_y': 288.96,'pos_z': -371.21,
  2341. 'rot_x': 0,'rot_y': -227,'rot_z': 0,
  2342. },
  2343. {
  2344. 'type': Monster.bnahabra3,'unk1': 1,'unk2': 0xFF,
  2345. 'variant': 0,'room': 11,'quantity': 1,
  2346. 'pos_x': -473.33,'pos_y': 168.96,'pos_z': -166.43,
  2347. 'rot_x': 0,'rot_y': -210,'rot_z': 0,
  2348. },
  2349. ],
  2350. ],
  2351. 'quest_info': {
  2352. 'quest_id': 61003,
  2353. 'name': "Jump Fourty-Eight Jaggi",
  2354. 'client': "Guild Subcontractor",
  2355. 'description': "Hunt 48 Great Jaggi",
  2356. 'details':
  2357. "I'm gonna get so fired for\n"
  2358. "this... The Great Jaggi some\n"
  2359. "hunter brought in just\n"
  2360. "escaped. Mind going after\n"
  2361. "them? You better hurry,\n"
  2362. "though. Bet they've got some\n"
  2363. "incredible materials, too.",
  2364. 'success_message': "Complete the Main Quest.",
  2365. 'flags': (
  2366. (0, 0, 0, 0, 0, 0, 0, 0),
  2367. (1, 1, 0, 0, 0, 0, 0, 0),
  2368. (0, 0, 0, 0, 0, 0, 0, 0),
  2369. (1, 0, 1, 0, 0, 0, 1, 1)
  2370. ),
  2371. 'penalty_per_cart': 1400,
  2372. 'quest_fee': 400,
  2373. 'time_limit': 50,
  2374. 'main_monster_1': Monster.bnahabra2,
  2375. 'main_monster_2': Monster.melynx,
  2376. 'location': LocationType.QUEST_LOCATION_SANDY_PLAINS,
  2377. 'quest_rank': QuestRankType.star_1,
  2378. 'hrp_restriction': QuestRestrictionType.RESTRICTION_NONE,
  2379. 'resources': ResourcesType.low_rank,
  2380. 'supply_set_number': 19,
  2381. 'starting_position': StartingPositionType.camp,
  2382. 'general_enemy_level': 0x0017,
  2383. 'summon': 0x64050219,
  2384. 'wave_1_transition_type': WaveType.none,
  2385. 'wave_1_transition_target': 0x0000,
  2386. 'wave_1_transition_quantity': 0x0000,
  2387. 'wave_2_transition_type': WaveType.none,
  2388. 'wave_2_transition_target': 0x0000,
  2389. 'wave_2_transition_quantity': 0x0000,
  2390. },
  2391. 'large_monsters': {
  2392. 'monster_1': {
  2393. 'type': Monster.great_jaggi,
  2394. 'starting_area': 0x00,
  2395. 'boss_id': 0xFF,
  2396. 'spawn_count': 0x10,
  2397. 'level': 0x17, # 0x01 through 0x3c
  2398. 'size': 0x64,
  2399. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  2400. 'size_spread': 0x01
  2401. },
  2402. 'monster_2': {
  2403. 'type': Monster.great_jaggi,
  2404. 'starting_area': 0x00,
  2405. 'boss_id': 0xFF,
  2406. 'spawn_count': 0x10,
  2407. 'level': 0x17, # 0x01 through 0x3c
  2408. 'size': 0x64,
  2409. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  2410. 'size_spread': 0x01
  2411. },
  2412. 'monster_3': {
  2413. 'type': Monster.great_jaggi,
  2414. 'starting_area': 0x00,
  2415. 'boss_id': 0xFF,
  2416. 'spawn_count': 0x10,
  2417. 'level': 0x17, # 0x01 through 0x3c
  2418. 'size': 0x64,
  2419. 'hp_spread': 0x01, # 0: fixed, 1: spread of 5, 2: spread of 3
  2420. 'size_spread': 0x01
  2421. }
  2422. },
  2423. 'objective_details': {
  2424. 'main_quest': {
  2425. 'type': 0x00000001,
  2426. 'objective_type': Monster.great_jaggi,
  2427. 'objective_num': 0x30,
  2428. 'zenny_reward': 15000,
  2429. 'hrp_reward': 750,
  2430. 'rewards_row_1': [
  2431. (ItemsType.great_jagi_claw, 2, 3),
  2432. (ItemsType.great_jagi_hide, 2, 12),
  2433. (ItemsType.kings_frill, 1, 10),
  2434. (ItemsType.rustshard, 1, 20),
  2435. (ItemsType.commendation, 1, 12),
  2436. (ItemsType.voucher, 2, 18),
  2437. (ItemsType.great_jagi_head, 1, 25)
  2438. ],
  2439. 'rewards_row_2': [
  2440. (ItemsType.mystery_charm, 1, 1),
  2441. (ItemsType.aquaglow_jewel, 1, 1),
  2442. (ItemsType.shining_charm, 1, 1),
  2443. (ItemsType.armor_sphere, 1, 1),
  2444. (ItemsType.armor_sphere_plus, 1, 1)
  2445. ],
  2446. },
  2447. 'subquest_1': {
  2448. 'description': "Hunt 24 Great Jaggi",
  2449. 'type': 0x00000001,
  2450. 'objective_type': Monster.great_jaggi,
  2451. 'objective_num': 0x18,
  2452. 'zenny_reward': 8000,
  2453. 'hrp_reward': 255,
  2454. 'rewards_row_1': [
  2455. (ItemsType.great_jagi_claw, 1, 1),
  2456. (ItemsType.great_jagi_hide, 1, 1),
  2457. (ItemsType.jagi_scale, 1, 1),
  2458. (ItemsType.screamer, 1, 1),
  2459. (ItemsType.kings_frill, 1, 1),
  2460. (ItemsType.bone_husk_s, 8, 1),
  2461. (ItemsType.great_jagi_head, 1, 1)
  2462. ],
  2463. },
  2464. 'subquest_2': {
  2465. 'description': "None",
  2466. 'type': 0,
  2467. 'objective_type': Monster.none,
  2468. 'objective_num': 0,
  2469. 'zenny_reward': 0,
  2470. 'hrp_reward': 0,
  2471. 'rewards_row_1': [],
  2472. }
  2473. },
  2474. 'unknown': {
  2475. # (2 for large mon quest, 3 for small/delivery, 5 for jhen/ala)
  2476. 'unk_12': 0x00000002,
  2477. 'unk_4': 0x00,
  2478. 'unk_5': 0x00,
  2479. 'unk_6': 0x00,
  2480. 'unk_7': 0x00000000,
  2481. }
  2482. }
  2483. # ---------- ARENA QUESTS ----------
  2484. """
  2485. 00 00 00 28
  2486. 00 00 00 FF
  2487. FF
  2488. 01
  2489. 01
  2490. 03
  2491. 00 00 00 00
  2492. BF 00 00 00
  2493. C5 9D 74 00
  2494. C5 3E 2B 33
  2495. 00 00 00 00
  2496. FF FF A4 00
  2497. 00 00 00 00
  2498. FF 00 00 00
  2499. 00 00 00 00
  2500. """
  2501. GRUDGE_MATCH_ROYAL_LUDROTH = {
  2502. 'small_monsters': [
  2503. [
  2504. # Area 0
  2505. ],
  2506. [
  2507. # Area 1
  2508. {
  2509. 'type': Monster.fly_wyv,'unk1': 1,'unk2': 0xFF,
  2510. 'variant': 3,'room': 1,'quantity': -1,
  2511. 'pos_x': -0.5,'pos_y': -5038.5,'pos_z': -3042.7,
  2512. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  2513. },
  2514. ],
  2515. ],
  2516. 'quest_info': {
  2517. 'quest_id': 0xEA61,
  2518. 'name': "Grudge Match: Royal Ludroth",
  2519. 'client': "Announcer/Receptionist",
  2520. 'description': "Slay a Royal Ludroth",
  2521. 'details':
  2522. "Ahoy, adrenaline junkies!\n"
  2523. "Next up is the regally maned\n"
  2524. "Royal Ludroth! Will the pressure\n"
  2525. "of facing this sea dragon on\n"
  2526. "its home surf with a strict\n"
  2527. "time limit leave the hunters\n"
  2528. "all washed up?",
  2529. 'success_message': "Complete the Main Quest.",
  2530. 'flags': (
  2531. (0, 0, 0, 0, 0, 1, 0, 0),
  2532. (1, 0, 0, 0, 1, 0, 0, 0),
  2533. (0, 0, 0, 0, 0, 0, 0, 0),
  2534. (1, 0, 0, 0, 1, 0, 1, 0)
  2535. ),
  2536. 'penalty_per_cart': 350,
  2537. 'quest_fee': 0,
  2538. 'time_limit': 50,
  2539. 'main_monster_1': Monster.none,
  2540. 'main_monster_2': Monster.none,
  2541. 'location': LocationType.QUEST_LOCATION_WATER_ARENA_2,
  2542. 'quest_rank': QuestRankType.star_1,
  2543. 'hrp_restriction': QuestRestrictionType.RESTRICTION_NONE,
  2544. 'resources': ResourcesType.arena,
  2545. 'supply_set_number': 0,
  2546. 'starting_position': StartingPositionType.camp,
  2547. 'general_enemy_level': 0x0017,
  2548. 'summon': 0x00000000,
  2549. 'wave_1_transition_type': WaveType.none,
  2550. 'wave_1_transition_target': 0x0000,
  2551. 'wave_1_transition_quantity': 0x0000,
  2552. 'wave_2_transition_type': WaveType.none,
  2553. 'wave_2_transition_target': 0x0000,
  2554. 'wave_2_transition_quantity': 0x0000,
  2555. },
  2556. 'large_monsters': {
  2557. 'monster_1': {
  2558. 'type': Monster.royal_ludroth,
  2559. 'starting_area': 0x00,
  2560. 'boss_id': 0x00,
  2561. 'spawn_count': 0x01,
  2562. 'level': 0x17, # 0x01 through 0x3c
  2563. 'size': 0x64,
  2564. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2565. 'size_spread': 0x00
  2566. },
  2567. 'monster_2': {
  2568. 'type': Monster.none,
  2569. 'starting_area': 0x00,
  2570. 'boss_id': 0x00,
  2571. 'spawn_count': 0x00,
  2572. 'level': 0x00, # 0x01 through 0x3c
  2573. 'size': 0x00,
  2574. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2575. 'size_spread': 0x00
  2576. },
  2577. 'monster_3': {
  2578. 'type': Monster.none,
  2579. 'starting_area': 0x00,
  2580. 'boss_id': 0x00,
  2581. 'spawn_count': 0x00,
  2582. 'level': 0x00, # 0x01 through 0x3c
  2583. 'size': 0x00,
  2584. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2585. 'size_spread': 0x00
  2586. }
  2587. },
  2588. 'objective_details': {
  2589. 'main_quest': {
  2590. 'type': 0x00000101,
  2591. 'objective_type': Monster.royal_ludroth,
  2592. 'objective_num': 0x01,
  2593. 'zenny_reward': 1000,
  2594. 'hrp_reward': 0,
  2595. 'rewards_row_1': [
  2596. (ItemsType.r_ludroth_coin, 1, 24),
  2597. (ItemsType.r_ludroth_coin, 2, 8),
  2598. (ItemsType.voucher, 1, 10),
  2599. (ItemsType.armor_sphere, 1, 24),
  2600. (ItemsType.steel_eg, 1, 18),
  2601. (ItemsType.pinnacle_coin, 1, 16)
  2602. ],
  2603. 'rewards_row_2': [],
  2604. },
  2605. 'subquest_1': {
  2606. 'description': "None",
  2607. 'type': 0x00000000,
  2608. 'objective_type': Monster.none,
  2609. 'objective_num': 0x00,
  2610. 'zenny_reward': 0,
  2611. 'hrp_reward': 0x00000000,
  2612. 'rewards_row_1': [],
  2613. },
  2614. 'subquest_2': {
  2615. 'description': "None",
  2616. 'type': 0x00000000,
  2617. 'objective_type': Monster.none,
  2618. 'objective_num': 0x00,
  2619. 'zenny_reward': 0,
  2620. 'hrp_reward': 0x00000000,
  2621. 'rewards_row_1': [],
  2622. },
  2623. },
  2624. 'unknown': {
  2625. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  2626. 'unk_12': 0x00000002,
  2627. 'unk_4': 0x00,
  2628. 'unk_5': 0x00,
  2629. 'unk_6': 0x00,
  2630. 'unk_7': 0x00000000,
  2631. },
  2632. 'arena_equipment': (
  2633. (
  2634. (EquipmentClasses.SnS, SnS.HydraKnife),
  2635. None, None,
  2636. Helmet.QurupecoHelm, Chestpiece.QurupecoMail,
  2637. Gauntlets.BlastBracelet, Faulds.SteelFaulds,
  2638. Leggings.IngotGreaves,
  2639. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  2640. (ItemsType.ration, 10), (ItemsType.oxygen_supply, 10),
  2641. (ItemsType.lifepowder, 2), (ItemsType.barrel_bomb_l, 3),
  2642. (ItemsType.barrel_bomb_s, 10)),
  2643. ()
  2644. ),
  2645. (
  2646. (EquipmentClasses.Greatsword, Greatsword.ChieftainsGrtSwd),
  2647. None, None,
  2648. Helmet.DrawEarring, Chestpiece.SteelMail,
  2649. Gauntlets.GobulVambraces, Faulds.GobulFaulds,
  2650. Leggings.HuntersGreaves,
  2651. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  2652. (ItemsType.ration, 10), (ItemsType.oxygen_supply, 10),
  2653. (ItemsType.might_pill, 2), (ItemsType.shock_trap, 1),
  2654. (ItemsType.ez_flash_bomb, 1)),
  2655. ()
  2656. ),
  2657. (
  2658. (EquipmentClasses.Hammer, Hammer.BoneBludgeon),
  2659. None, None,
  2660. Helmet.BarrothHelm, Chestpiece.BarrothMail,
  2661. Gauntlets.AlloyVambraces, Faulds.BarrothFaulds,
  2662. Leggings.BarrothGreaves,
  2663. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  2664. (ItemsType.ration, 10), (ItemsType.oxygen_supply, 10),
  2665. (ItemsType.paralysis_knife, 5), (ItemsType.ez_flash_bomb, 1)),
  2666. ()
  2667. ),
  2668. (
  2669. (EquipmentClasses.BowgunFrame, BowgunFrame.RoyalLauncher),
  2670. (EquipmentClasses.BowgunBarrel, BowgunBarrel.JaggidFire),
  2671. (EquipmentClasses.BowgunStock, BowgunStock.LightBowgun),
  2672. Helmet.AlloyCap, Chestpiece.AlloyVest,
  2673. Gauntlets.LagiacrusGuards, Faulds.AlloyCoat,
  2674. Leggings.PiscineLeggings,
  2675. ((ItemsType.potion, 10), (ItemsType.ration, 10),
  2676. (ItemsType.oxygen_supply, 10), (ItemsType.lifepowder, 2),
  2677. (ItemsType.shock_trap, 1), (ItemsType.barrel_bomb_l_plus, 2),
  2678. (ItemsType.barrel_bomb_l, 2)),
  2679. ((ItemsType.normal_s_lv2, 99), (ItemsType.pierce_s_lv1, 60),
  2680. (ItemsType.pierce_s_lv2, 50), (ItemsType.clust_s_lv1, 5),
  2681. (ItemsType.poison_s_lv1, 12), (ItemsType.para_s_lv1, 12))
  2682. )
  2683. )
  2684. }
  2685. GRUDGE_MATCH_BIRD_BRUTE = {
  2686. 'small_monsters': [
  2687. [
  2688. # Area 0
  2689. ],
  2690. [
  2691. # Area 1
  2692. {
  2693. 'type': Monster.fly_wyv,'unk1': 1,'unk2': 0xFF,
  2694. 'variant': 3,'room': 1,'quantity': -1,
  2695. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  2696. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  2697. },
  2698. ],
  2699. ],
  2700. 'quest_info': {
  2701. 'quest_id': 0xEA66,
  2702. 'name': "Grudge Match: Bird and Brute",
  2703. 'client': "Announcer/Receptionist",
  2704. 'description':
  2705. "Slay a Qurupeco\n"
  2706. "and a Barroth",
  2707. 'details':
  2708. "Double trouble! It's the\n"
  2709. "dirty-bird Qurupeco and the\n"
  2710. "land dragon Barroth -- heaven\n"
  2711. "and earth, laughter and tears,\n"
  2712. "in an ultimate contest! When\n"
  2713. "the dust clears, will it\n"
  2714. "reveal victory? Or tragedy?",
  2715. 'success_message': "Complete the Main Quest.",
  2716. 'flags': (
  2717. (0, 1, 0, 0, 0, 1, 0, 0),
  2718. (1, 0, 0, 0, 1, 0, 0, 0),
  2719. (0, 0, 0, 0, 0, 0, 0, 0),
  2720. (1, 0, 0, 0, 1, 0, 1, 0)
  2721. ),
  2722. 'penalty_per_cart': 350,
  2723. 'quest_fee': 0,
  2724. 'time_limit': 50,
  2725. 'main_monster_1': Monster.none,
  2726. 'main_monster_2': Monster.none,
  2727. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  2728. 'quest_rank': QuestRankType.star_4,
  2729. 'hrp_restriction': QuestRestrictionType.RESTRICTION_31_INITJOIN,
  2730. 'resources': ResourcesType.arena,
  2731. 'supply_set_number': 0,
  2732. 'starting_position': StartingPositionType.camp,
  2733. 'general_enemy_level': 0x0017,
  2734. 'summon': 0x00000000,
  2735. 'wave_1_transition_type': WaveType.none,
  2736. 'wave_1_transition_target': 0x0000,
  2737. 'wave_1_transition_quantity': 0x0000,
  2738. 'wave_2_transition_type': WaveType.none,
  2739. 'wave_2_transition_target': 0x0000,
  2740. 'wave_2_transition_quantity': 0x0000,
  2741. },
  2742. 'large_monsters': {
  2743. 'monster_1': {
  2744. 'type': Monster.qurupeco,
  2745. 'starting_area': 0x00,
  2746. 'boss_id': 0x00,
  2747. 'spawn_count': 0x01,
  2748. 'level': 0x17, # 0x01 through 0x3c
  2749. 'size': 0x64,
  2750. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2751. 'size_spread': 0x00
  2752. },
  2753. 'monster_2': {
  2754. 'type': Monster.barroth,
  2755. 'starting_area': 0x00,
  2756. 'boss_id': 0x01,
  2757. 'spawn_count': 0x01,
  2758. 'level': 0x17, # 0x01 through 0x3c
  2759. 'size': 0x64,
  2760. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2761. 'size_spread': 0x00
  2762. },
  2763. 'monster_3': {
  2764. 'type': Monster.none,
  2765. 'starting_area': 0x00,
  2766. 'boss_id': 0x00,
  2767. 'spawn_count': 0x00,
  2768. 'level': 0x00, # 0x01 through 0x3c
  2769. 'size': 0x00,
  2770. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2771. 'size_spread': 0x00
  2772. }
  2773. },
  2774. 'objective_details': {
  2775. 'main_quest': {
  2776. 'type': 0x00000101,
  2777. 'objective_type': Monster.qurupeco,
  2778. 'objective_num': 0x01,
  2779. 'zenny_reward': 1000,
  2780. 'hrp_reward': 0,
  2781. 'rewards_row_1': [
  2782. (ItemsType.qurupeco_coin, 1, 16),
  2783. (ItemsType.barroth_coin, 1, 20),
  2784. (ItemsType.voucher, 1, 14),
  2785. (ItemsType.armor_sphere_plus, 1, 10),
  2786. (ItemsType.adv_armor_sphere, 1, 5),
  2787. (ItemsType.steel_eg, 1, 15),
  2788. (ItemsType.silver_eg, 1, 5),
  2789. (ItemsType.hunter_king_coin, 1, 15)
  2790. ],
  2791. 'rewards_row_2': [],
  2792. },
  2793. 'subquest_1': {
  2794. 'description': "None",
  2795. 'type': 0x00000101,
  2796. 'objective_type': Monster.barroth,
  2797. 'objective_num': 0x01,
  2798. 'zenny_reward': 0,
  2799. 'hrp_reward': 0x00000000,
  2800. 'rewards_row_1': [],
  2801. },
  2802. 'subquest_2': {
  2803. 'description': "None",
  2804. 'type': 0x00000000,
  2805. 'objective_type': Monster.none,
  2806. 'objective_num': 0x00,
  2807. 'zenny_reward': 0,
  2808. 'hrp_reward': 0x00000000,
  2809. 'rewards_row_1': [],
  2810. },
  2811. },
  2812. 'unknown': {
  2813. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  2814. 'unk_12': 0x00000002,
  2815. 'unk_4': 0x00,
  2816. 'unk_5': 0x00,
  2817. 'unk_6': 0x00,
  2818. 'unk_7': 0x00000000,
  2819. },
  2820. 'arena_equipment': (
  2821. (
  2822. (EquipmentClasses.Switchaxe, Switchaxe.AssaultAxePlus),
  2823. None, None,
  2824. Helmet.GigginoxCapPlus, Chestpiece.AlloyMail,
  2825. Gauntlets.BaggiVambracesPlus, Faulds.GigginoxFauldsPlus,
  2826. Leggings.GigginoxGreaves,
  2827. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  2828. (ItemsType.whetstone, 20), (ItemsType.ration, 10),
  2829. (ItemsType.cleanser, 5), (ItemsType.barrel_bomb_l, 2),
  2830. (ItemsType.lifepowder, 1), (ItemsType.ez_shock_trap, 1),
  2831. (ItemsType.ez_flash_bomb, 2)),
  2832. ()
  2833. ),
  2834. (
  2835. (EquipmentClasses.Greatsword, Greatsword.CataclysmSword),
  2836. None, None,
  2837. Helmet.DrawEarring, Chestpiece.JaggiMailPlus,
  2838. Gauntlets.JaggiVambracesPlus, Faulds.JaggiFauldsPlus,
  2839. Leggings.BoneGreavesPlus,
  2840. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  2841. (ItemsType.whetstone, 20), (ItemsType.ration, 10),
  2842. (ItemsType.cleanser, 5), (ItemsType.barrel_bomb_l, 3),
  2843. (ItemsType.barrel_bomb_s, 2), (ItemsType.pitfall_trap, 1),
  2844. (ItemsType.ez_flash_bomb, 2)),
  2845. ()
  2846. ),
  2847. (
  2848. (EquipmentClasses.Lance, Lance.Undertaker),
  2849. None, None,
  2850. Helmet.DiablosCap, Chestpiece.AgnaktorMailPlus,
  2851. Gauntlets.SteelVambracesPlus, Faulds.SteelCoilPlus,
  2852. Leggings.AlloyGreaves,
  2853. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  2854. (ItemsType.whetstone, 20), (ItemsType.ration, 10),
  2855. (ItemsType.cleanser, 5), (ItemsType.barrel_bomb_l, 2),
  2856. (ItemsType.ez_flash_bomb, 1)),
  2857. ()
  2858. ),
  2859. (
  2860. (EquipmentClasses.BowgunFrame, BowgunFrame.PoisonStinger),
  2861. (EquipmentClasses.BowgunBarrel, BowgunBarrel.RathlingGunPlus),
  2862. (EquipmentClasses.BowgunStock, BowgunStock.LightBowgun),
  2863. Helmet.AgnaktorCapPlus, Chestpiece.AgnaktorVestPlus,
  2864. Gauntlets.AgnaktorGuardsPlus, Faulds.AgnaktorCoatPlus,
  2865. Leggings.RathalosLeggingsPlus,
  2866. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  2867. (ItemsType.ration, 10), (ItemsType.cleanser, 5),
  2868. (ItemsType.lifepowder, 2), (ItemsType.ez_flash_bomb, 1),
  2869. (ItemsType.sonic_bomb, 2)),
  2870. ((ItemsType.normal_s_lv2, 99), (ItemsType.normal_s_lv3, 99),
  2871. (ItemsType.pierce_s_lv2, 50), (ItemsType.clust_s_lv2, 5),
  2872. (ItemsType.crag_s_lv2, 9), (ItemsType.poison_s_lv1, 12),
  2873. (ItemsType.para_s_lv1, 12), (ItemsType.sleep_s_lv1, 12))
  2874. )
  2875. )
  2876. }
  2877. GRUDGE_MATCH_TWO_FLAMES = {
  2878. 'small_monsters': [
  2879. [
  2880. # Area 0
  2881. ],
  2882. [
  2883. # Area 1
  2884. {
  2885. 'type': Monster.fly_wyv,'unk1': 1,'unk2': 0xFF,
  2886. 'variant': 3,'room': 1,'quantity': -1,
  2887. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  2888. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  2889. },
  2890. ],
  2891. ],
  2892. 'quest_info': {
  2893. 'quest_id': 0xEA68,
  2894. 'name': "Grudge Match: The Two Flames",
  2895. 'client': "Announcer/Receptionist",
  2896. 'description':
  2897. "Slay a Rathalos\n"
  2898. "and a Rathian",
  2899. 'details':
  2900. "Wanted:\n"
  2901. "The description for this\n"
  2902. "quest! If you can find\n"
  2903. "it, please let us know!\n"
  2904. "Thanks!",
  2905. 'success_message': "Complete the Main Quest.",
  2906. 'flags': (
  2907. (0, 1, 0, 0, 0, 1, 0, 0),
  2908. (1, 0, 0, 0, 1, 0, 0, 0),
  2909. (0, 0, 0, 0, 0, 0, 0, 0),
  2910. (1, 0, 0, 0, 1, 0, 1, 0)
  2911. ),
  2912. 'penalty_per_cart': 350,
  2913. 'quest_fee': 0,
  2914. 'time_limit': 50,
  2915. 'main_monster_1': Monster.none,
  2916. 'main_monster_2': Monster.none,
  2917. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  2918. 'quest_rank': QuestRankType.star_5,
  2919. 'hrp_restriction': QuestRestrictionType.RESTRICTION_31_INITJOIN,
  2920. 'resources': ResourcesType.arena,
  2921. 'supply_set_number': 0,
  2922. 'starting_position': StartingPositionType.camp,
  2923. 'general_enemy_level': 0x0017,
  2924. 'summon': 0x00000000,
  2925. 'wave_1_transition_type': WaveType.none,
  2926. 'wave_1_transition_target': 0x0000,
  2927. 'wave_1_transition_quantity': 0x0000,
  2928. 'wave_2_transition_type': WaveType.none,
  2929. 'wave_2_transition_target': 0x0000,
  2930. 'wave_2_transition_quantity': 0x0000,
  2931. },
  2932. 'large_monsters': {
  2933. 'monster_1': {
  2934. 'type': Monster.rathalos,
  2935. 'starting_area': 0x00,
  2936. 'boss_id': 0x00,
  2937. 'spawn_count': 0x01,
  2938. 'level': 0x17, # 0x01 through 0x3c
  2939. 'size': 0x64,
  2940. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2941. 'size_spread': 0x00
  2942. },
  2943. 'monster_2': {
  2944. 'type': Monster.rathian,
  2945. 'starting_area': 0x00,
  2946. 'boss_id': 0x01,
  2947. 'spawn_count': 0x01,
  2948. 'level': 0x17, # 0x01 through 0x3c
  2949. 'size': 0x64,
  2950. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2951. 'size_spread': 0x00
  2952. },
  2953. 'monster_3': {
  2954. 'type': Monster.none,
  2955. 'starting_area': 0x00,
  2956. 'boss_id': 0x00,
  2957. 'spawn_count': 0x00,
  2958. 'level': 0x00, # 0x01 through 0x3c
  2959. 'size': 0x00,
  2960. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  2961. 'size_spread': 0x00
  2962. }
  2963. },
  2964. 'objective_details': {
  2965. 'main_quest': {
  2966. 'type': 0x00000101,
  2967. 'objective_type': Monster.rathalos,
  2968. 'objective_num': 0x01,
  2969. 'zenny_reward': 1000,
  2970. 'hrp_reward': 0,
  2971. 'rewards_row_1': [
  2972. (ItemsType.rathalos_coin, 1, 10),
  2973. (ItemsType.rathian_coin, 1, 24),
  2974. (ItemsType.voucher, 1, 14),
  2975. (ItemsType.armor_sphere_plus, 1, 10),
  2976. (ItemsType.adv_armor_sphere, 1, 5),
  2977. (ItemsType.steel_eg, 1, 15),
  2978. (ItemsType.silver_eg, 1, 5),
  2979. (ItemsType.hunter_king_coin, 1, 17)
  2980. ],
  2981. 'rewards_row_2': [],
  2982. },
  2983. 'subquest_1': {
  2984. 'description': "None",
  2985. 'type': 0x00000101,
  2986. 'objective_type': Monster.rathian,
  2987. 'objective_num': 0x01,
  2988. 'zenny_reward': 0,
  2989. 'hrp_reward': 0x00000000,
  2990. 'rewards_row_1': [],
  2991. },
  2992. 'subquest_2': {
  2993. 'description': "None",
  2994. 'type': 0x00000000,
  2995. 'objective_type': Monster.none,
  2996. 'objective_num': 0x00,
  2997. 'zenny_reward': 0,
  2998. 'hrp_reward': 0x00000000,
  2999. 'rewards_row_1': [],
  3000. },
  3001. },
  3002. 'unknown': {
  3003. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  3004. 'unk_12': 0x00000002,
  3005. 'unk_4': 0x00,
  3006. 'unk_5': 0x00,
  3007. 'unk_6': 0x00,
  3008. 'unk_7': 0x00000000,
  3009. },
  3010. 'arena_equipment': (
  3011. (
  3012. (EquipmentClasses.SnS, SnS.IcicleSpikePlus),
  3013. None, None,
  3014. Helmet.QurupecoHelmPlus, Chestpiece.QurupecoMailPlus,
  3015. Gauntlets.QurupecoVambracesPlus, Faulds.QurupecoCoilPlus,
  3016. Leggings.QurupecoGreavesPlus,
  3017. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  3018. (ItemsType.whetstone, 20), (ItemsType.ration, 10),
  3019. (ItemsType.might_pill, 2), (ItemsType.antidote, 2),
  3020. (ItemsType.lifepowder, 1), (ItemsType.dung_bomb, 1),
  3021. (ItemsType.paralysis_knife, 5), (ItemsType.pitfall_trap, 1),
  3022. (ItemsType.ez_flash_bomb, 5), (ItemsType.barrel_bomb_l_plus, 1),
  3023. (ItemsType.barrel_bomb_s, 1)),
  3024. ()
  3025. ),
  3026. (
  3027. (EquipmentClasses.Longsword, Longsword.Thunderclap),
  3028. None, None,
  3029. Helmet.SilenceEarring, Chestpiece.AlloyMailPlus,
  3030. Gauntlets.SteelVambracesPlus, Faulds.SteelCoilPlus,
  3031. Leggings.VangisGreaves,
  3032. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  3033. (ItemsType.whetstone, 20), (ItemsType.ration, 10),
  3034. (ItemsType.antidote, 2), (ItemsType.lifepowder, 1),
  3035. (ItemsType.dung_bomb, 1), (ItemsType.ez_flash_bomb, 2)),
  3036. ()
  3037. ),
  3038. (
  3039. (EquipmentClasses.Lance, Lance.SpiralLancePlus),
  3040. None, None,
  3041. Helmet.DemonEdgeEarring, Chestpiece.IngotMailPlus,
  3042. Gauntlets.AgnaktorVambracesPlus, Faulds.RhenoplosCoilPlus,
  3043. Leggings.IngotGreavesPlus,
  3044. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  3045. (ItemsType.whetstone, 20), (ItemsType.well_done_steak, 10),
  3046. (ItemsType.antidote, 2), (ItemsType.lifepowder, 1),
  3047. (ItemsType.dung_bomb, 1), (ItemsType.poison_knife, 5),
  3048. (ItemsType.shock_trap, 1), (ItemsType.ez_flash_bomb, 1)),
  3049. ()
  3050. ),
  3051. (
  3052. (EquipmentClasses.BowgunFrame, BowgunFrame.ThundacrusRex),
  3053. (EquipmentClasses.BowgunBarrel, BowgunBarrel.ThundacrusRex),
  3054. (EquipmentClasses.BowgunStock, BowgunStock.BlizzardCannon),
  3055. Helmet.EarringofFate, Chestpiece.UragaanVestPlus,
  3056. Gauntlets.BlastBracelet, Faulds.UragaanCoatPlus,
  3057. Leggings.UragaanLeggingsPlus,
  3058. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  3059. (ItemsType.ration, 10), (ItemsType.antidote, 2),
  3060. (ItemsType.lifepowder, 2), (ItemsType.dung_bomb, 1),
  3061. (ItemsType.shock_trap, 1), (ItemsType.ez_shock_trap, 1),
  3062. (ItemsType.pitfall_trap, 1), (ItemsType.ez_barrel_bomb_l, 1),
  3063. (ItemsType.barrel_bomb_l, 3), (ItemsType.barrel_bomb_s, 10)),
  3064. ((ItemsType.normal_s_lv2, 99), (ItemsType.normal_s_lv3, 99),
  3065. (ItemsType.pierce_s_lv3, 40), (ItemsType.demon_s_ii, 5),
  3066. (ItemsType.thunder_s, 60))
  3067. )
  3068. )
  3069. }
  3070. GRUDGE_MATCH_LAND_LORDS = {
  3071. 'small_monsters': [
  3072. [
  3073. # Area 0
  3074. ],
  3075. [
  3076. # Area 1
  3077. {
  3078. 'type': Monster.fly_wyv,'unk1': 1,'unk2': 0xFF,
  3079. 'variant': 3,'room': 1,'quantity': -1,
  3080. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3081. 'rot_x': 0,'rot_y': 170,'rot_z': 0,
  3082. },
  3083. {
  3084. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3085. 'variant': 8,'room': 1,'quantity': -1,
  3086. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3087. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3088. },
  3089. {
  3090. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3091. 'variant': 8,'room': 1,'quantity': -1,
  3092. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3093. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3094. },
  3095. {
  3096. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3097. 'variant': 8,'room': 1,'quantity': -1,
  3098. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3099. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3100. },
  3101. {
  3102. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3103. 'variant': 8,'room': 1,'quantity': -1,
  3104. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3105. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3106. },
  3107. {
  3108. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3109. 'variant': 8,'room': 1,'quantity': -1,
  3110. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3111. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3112. },
  3113. {
  3114. 'type': Monster.fly_wyv,'unk1': 3,'unk2': 0xFF,
  3115. 'variant': 8,'room': 1,'quantity': -1,
  3116. 'pos_x': -2404.5,'pos_y': -5038.5,'pos_z': -3542.7,
  3117. 'rot_x': 0,'rot_y': 1828,'rot_z': 0,
  3118. },
  3119. ],
  3120. ],
  3121. 'quest_info': {
  3122. 'quest_id': 0xEA6B,
  3123. 'name': "Grudge Match: Land Lords",
  3124. 'client': "Announcer/Receptionist",
  3125. 'description': "Slay all 3 monsters",
  3126. 'details':
  3127. "Wanted:\n"
  3128. "The description for this\n"
  3129. "quest! If you can find\n"
  3130. "it, please let us know!\n"
  3131. "Thanks!",
  3132. 'success_message': "Complete the Main Quest.",
  3133. 'flags': (
  3134. (0, 0, 1, 0, 0, 1, 0, 0),
  3135. (1, 0, 0, 0, 1, 0, 0, 0),
  3136. (0, 0, 0, 0, 0, 0, 0, 0),
  3137. (1, 0, 0, 0, 1, 0, 1, 0)
  3138. ),
  3139. 'penalty_per_cart': 1150,
  3140. 'quest_fee': 0,
  3141. 'time_limit': 50,
  3142. 'main_monster_1': Monster.none,
  3143. 'main_monster_2': Monster.none,
  3144. 'location': LocationType.QUEST_LOCATION_LAND_ARENA_1,
  3145. 'quest_rank': QuestRankType.urgent,
  3146. 'hrp_restriction': QuestRestrictionType.RESTRICTION_31_INITJOIN,
  3147. 'resources': ResourcesType.arena,
  3148. 'supply_set_number': 0,
  3149. 'starting_position': StartingPositionType.camp,
  3150. 'general_enemy_level': 0x0017,
  3151. 'summon': 0x00000000,
  3152. 'wave_1_transition_type': WaveType.none,
  3153. 'wave_1_transition_target': 0x0000,
  3154. 'wave_1_transition_quantity': 0x0000,
  3155. 'wave_2_transition_type': WaveType.none,
  3156. 'wave_2_transition_target': 0x0000,
  3157. 'wave_2_transition_quantity': 0x0000,
  3158. },
  3159. 'large_monsters': {
  3160. 'monster_1': {
  3161. 'type': Monster.barroth,
  3162. 'starting_area': 0x00,
  3163. 'boss_id': 0x00,
  3164. 'spawn_count': 0x01,
  3165. 'level': 0x17,
  3166. 'size': 0x64,
  3167. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  3168. 'size_spread': 0x00
  3169. },
  3170. 'monster_2': {
  3171. 'type': Monster.uragaan,
  3172. 'starting_area': 0x00,
  3173. 'boss_id': 0x01,
  3174. 'spawn_count': 0x01,
  3175. 'level': 0x17,
  3176. 'size': 0x64,
  3177. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  3178. 'size_spread': 0x00
  3179. },
  3180. 'monster_3': {
  3181. 'type': Monster.deviljho,
  3182. 'starting_area': 0x00,
  3183. 'boss_id': 0x02,
  3184. 'spawn_count': 0x01,
  3185. 'level': 0x12, # 0x01 through 0x3c
  3186. 'size': 0x64,
  3187. 'hp_spread': 0x00, # 0: fixed, 1: spread of 5, 2: spread of 3
  3188. 'size_spread': 0x00
  3189. }
  3190. },
  3191. 'objective_details': {
  3192. 'main_quest': {
  3193. 'type': 0x00020101,
  3194. 'objective_type': Monster.barroth,
  3195. 'objective_num': 0x01,
  3196. 'zenny_reward': 3000,
  3197. 'hrp_reward': 0,
  3198. 'rewards_row_1': [
  3199. (ItemsType.deviljho_coin, 1, 10),
  3200. (ItemsType.barroth_coin, 1, 10),
  3201. (ItemsType.uragaan_coin, 1, 15),
  3202. (ItemsType.voucher, 1, 14),
  3203. (ItemsType.adv_armor_sphere, 1, 10),
  3204. (ItemsType.hrd_armor_sphere, 1, 7),
  3205. (ItemsType.silver_eg, 1, 10),
  3206. (ItemsType.hunter_king_coin, 1, 24)
  3207. ],
  3208. 'rewards_row_2': [],
  3209. },
  3210. 'subquest_1': {
  3211. 'description': "None",
  3212. 'type': 0x00020101,
  3213. 'objective_type': Monster.uragaan,
  3214. 'objective_num': 0x01,
  3215. 'zenny_reward': 0,
  3216. 'hrp_reward': 0x00000000,
  3217. 'rewards_row_1': [],
  3218. },
  3219. 'subquest_2': {
  3220. 'description': "None",
  3221. 'type': 0x00020101,
  3222. 'objective_type': Monster.deviljho,
  3223. 'objective_num': 0x01,
  3224. 'zenny_reward': 0,
  3225. 'hrp_reward': 0x00000000,
  3226. 'rewards_row_1': [],
  3227. },
  3228. },
  3229. 'unknown': {
  3230. # 2 for large mon quest, 3 for small/delivery, 5 for jhen/ala
  3231. 'unk_12': 0x00000002,
  3232. 'unk_4': 0x00,
  3233. 'unk_5': 0x00,
  3234. 'unk_6': 0x00,
  3235. 'unk_7': 0x00000000,
  3236. },
  3237. 'arena_equipment': (
  3238. (
  3239. (EquipmentClasses.SnS, SnS.PlagueTabar),
  3240. None, None,
  3241. Helmet.UragaanHelmPlus, Chestpiece.UragaanMailPlus,
  3242. Gauntlets.UragaanVambracesPlus, Faulds.UragaanFauldsPlus,
  3243. Leggings.UragaanGreavesPlus,
  3244. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  3245. (ItemsType.mega_potion, 10), (ItemsType.energy_drink, 5),
  3246. (ItemsType.lifepowder, 3), (ItemsType.paralysis_knife, 5),
  3247. (ItemsType.sleep_knife, 5), (ItemsType.poison_knife, 5),
  3248. (ItemsType.tinged_meat, 5), (ItemsType.druged_meat, 5),
  3249. (ItemsType.poisoned_meat, 5), (ItemsType.pitfall_trap, 1),
  3250. (ItemsType.shock_trap, 1), (ItemsType.ez_shock_trap, 1),
  3251. (ItemsType.ez_flash_bomb, 5), (ItemsType.barrel_bomb_l_plus, 2),
  3252. (ItemsType.barrel_bomb_l, 3), (ItemsType.barrel_bomb_s, 10),
  3253. (ItemsType.max_potion, 2), (ItemsType.ancient_potion, 1),
  3254. (ItemsType.powercharm, 1), (ItemsType.armorcharm, 1),
  3255. (ItemsType.powertalon, 1), (ItemsType.armortalon, 1)),
  3256. ()
  3257. ),
  3258. (
  3259. (EquipmentClasses.Switchaxe, Switchaxe.GreatDemonbindG),
  3260. None, None,
  3261. Helmet.RathalosHelmPlus, Chestpiece.RathalosMailPlus,
  3262. Gauntlets.RathalosVambracesPlus, Faulds.RathalosFauldsPlus,
  3263. Leggings.RathalosGreavesPlus,
  3264. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  3265. (ItemsType.mega_potion, 10), (ItemsType.energy_drink, 5),
  3266. (ItemsType.lifepowder, 3), (ItemsType.dung_bomb, 5),
  3267. (ItemsType.paralysis_knife, 5), (ItemsType.sleep_knife, 5),
  3268. (ItemsType.poison_knife, 5), (ItemsType.tinged_meat, 5),
  3269. (ItemsType.druged_meat, 5), (ItemsType.poisoned_meat, 5),
  3270. (ItemsType.pitfall_trap, 1), (ItemsType.shock_trap, 1),
  3271. (ItemsType.ez_flash_bomb, 5), (ItemsType.barrel_bomb_l_plus, 1),
  3272. (ItemsType.max_potion, 2), (ItemsType.ancient_potion, 1),
  3273. (ItemsType.powercharm, 1), (ItemsType.armorcharm, 1),
  3274. (ItemsType.powertalon, 1), (ItemsType.armortalon, 1)),
  3275. ()
  3276. ),
  3277. (
  3278. (EquipmentClasses.Longsword, Longsword.ReaverCalamity),
  3279. None, None,
  3280. Helmet.StimulusEarring, Chestpiece.VangisMail,
  3281. Gauntlets.DoberVambraces, Faulds.DoberCoil,
  3282. Leggings.DamascusGreaves,
  3283. ((ItemsType.whetstone, 20), (ItemsType.potion, 10),
  3284. (ItemsType.mega_potion, 10), (ItemsType.energy_drink, 5),
  3285. (ItemsType.cleanser, 5), (ItemsType.lifepowder, 5),
  3286. (ItemsType.paralysis_knife, 5), (ItemsType.sleep_knife, 5),
  3287. (ItemsType.poison_knife, 5), (ItemsType.tinged_meat, 5),
  3288. (ItemsType.druged_meat, 5), (ItemsType.poisoned_meat, 5),
  3289. (ItemsType.pitfall_trap, 1), (ItemsType.shock_trap, 1),
  3290. (ItemsType.ez_shock_trap, 1), (ItemsType.ez_flash_bomb, 5),
  3291. (ItemsType.barrel_bomb_l_plus, 2), (ItemsType.barrel_bomb_l, 3),
  3292. (ItemsType.barrel_bomb_s, 10), (ItemsType.max_potion, 2),
  3293. (ItemsType.ancient_potion, 1), (ItemsType.powercharm, 1),
  3294. (ItemsType.armorcharm, 1), (ItemsType.armortalon, 1)),
  3295. ()
  3296. ),
  3297. (
  3298. (EquipmentClasses.BowgunFrame, BowgunFrame.Diablazooka),
  3299. (EquipmentClasses.BowgunBarrel, BowgunBarrel.DevilsGrin),
  3300. (EquipmentClasses.BowgunStock, BowgunStock.BlizzardCannon),
  3301. Helmet.BarrageEarring, Chestpiece.DamascusVest,
  3302. Gauntlets.DamascusGuards, Faulds.DamascusCoat,
  3303. Leggings.DamascusLeggings,
  3304. ((ItemsType.potion, 10), (ItemsType.mega_potion, 10),
  3305. (ItemsType.energy_drink, 5), (ItemsType.lifepowder, 3),
  3306. (ItemsType.paralysis_knife, 5), (ItemsType.sleep_knife, 5),
  3307. (ItemsType.poison_knife, 5), (ItemsType.tinged_meat, 5),
  3308. (ItemsType.druged_meat, 5), (ItemsType.pitfall_trap, 1),
  3309. (ItemsType.shock_trap, 1), (ItemsType.ez_shock_trap, 1),
  3310. (ItemsType.ez_flash_bomb, 5), (ItemsType.ez_barrel_bomb_l, 2),
  3311. (ItemsType.barrel_bomb_l_plus, 2), (ItemsType.barrel_bomb_l, 3),
  3312. (ItemsType.barrel_bomb_s, 10), (ItemsType.max_potion, 2),
  3313. (ItemsType.ancient_potion, 1), (ItemsType.powercharm, 1),
  3314. (ItemsType.armorcharm, 1), (ItemsType.powertalon, 1),
  3315. (ItemsType.armortalon, 1)),
  3316. ((ItemsType.normal_s_lv2, 99), (ItemsType.pierce_s_lv3, 40),
  3317. (ItemsType.crag_s_lv2, 9), (ItemsType.crag_s_lv3, 9),
  3318. (ItemsType.wyvernfire_lv1, 10), (ItemsType.water_s, 60),
  3319. (ItemsType.sleep_s_lv2, 8), (ItemsType.dragon_s, 20),
  3320. (ItemsType.demon_s_ii, 5))
  3321. )
  3322. )
  3323. }
  3324. if __name__ == "__main__":
  3325. QUESTS = []
  3326. QUESTS.append(QUEST_EVENT_JUMP_FOUR_JAGGI)
  3327. QUESTS.append(QUEST_EVENT_THE_PHANTOM_URAGAAN)
  3328. QUESTS.append(QUEST_EVENT_BLOOD_SPORT)
  3329. QUESTS.append(QUEST_EVENT_MERCY_MISSION)
  3330. QUESTS.append(QUEST_EVENT_FF_FREE_FOR_ALL)
  3331. QUESTS.append(QUEST_EVENT_RAGE_MATCH)
  3332. QUESTS.append(QUEST_EVENT_WORLD_EATER)
  3333. QUESTS.append(QUEST_EVENT_WHERE_GODS_FEAR_TO_TREAD)
  3334. QUESTS.append(QUEST_EVENT_GREEN_EGGS)
  3335. QUESTS.append(QUEST_EVENT_JUMP_FOURTY_EIGHT_JAGGI)
  3336. QUESTS.append(GRUDGE_MATCH_ROYAL_LUDROTH)
  3337. QUESTS.append(GRUDGE_MATCH_BIRD_BRUTE)
  3338. QUESTS.append(GRUDGE_MATCH_TWO_FLAMES)
  3339. QUESTS.append(GRUDGE_MATCH_LAND_LORDS)
  3340. for q in QUESTS:
  3341. EXPORT(q)
  3342. print("done")