From 42b851512d356362d2470f198a4780b95ab03f18 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 26 Feb 2024 14:21:36 -0300 Subject: [PATCH 01/11] fix: boolean_random error (#2323) --- data/scripts/movements/claw_of_the_noxious_spawn.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/scripts/movements/claw_of_the_noxious_spawn.lua b/data/scripts/movements/claw_of_the_noxious_spawn.lua index 77e0e60877c..8abef020ad9 100644 --- a/data/scripts/movements/claw_of_the_noxious_spawn.lua +++ b/data/scripts/movements/claw_of_the_noxious_spawn.lua @@ -3,8 +3,8 @@ local clawOfTheNoxiousSpawn = MoveEvent() function clawOfTheNoxiousSpawn.onEquip(player, item, slot, isCheck) if not isCheck then if not Tile(player:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) then - doTargetCombat(0, player, COMBAT_PHYSICALDAMAGE, -150, -200, CONST_ME_DRAWBLOOD) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, (math.boolean_random() and "It tightens around your wrist as you take it on." or "Ouch! The serpent claw stabbed you.")) + doTargetCombatHealth(0, player, COMBAT_PHYSICALDAMAGE, -150, -200, CONST_ME_DRAWBLOOD) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, (math.random(2) == 1 and "It tightens around your wrist as you take it on." or "Ouch! The serpent claw stabbed you.")) return true end end From 82d6b7d583afa9af402301186cad6dd528fe03eb Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Feb 2024 13:48:13 -0300 Subject: [PATCH 02/11] fix: change MESSAGE_LOOK to MESSAGE_TRADE (#2321) --- data-otservbr-global/npc/a_fluffy_squirrel.lua | 2 +- data-otservbr-global/npc/ahmet.lua | 2 +- data-otservbr-global/npc/al_dee.lua | 2 +- data-otservbr-global/npc/alaistar.lua | 2 +- data-otservbr-global/npc/albinius.lua | 2 +- data-otservbr-global/npc/aldo.lua | 2 +- data-otservbr-global/npc/alesar.lua | 2 +- data-otservbr-global/npc/alexander.lua | 2 +- data-otservbr-global/npc/alissa.lua | 2 +- data-otservbr-global/npc/allen.lua | 2 +- data-otservbr-global/npc/amra.lua | 2 +- data-otservbr-global/npc/andrew_lyze.lua | 2 +- data-otservbr-global/npc/anerui.lua | 2 +- data-otservbr-global/npc/angus.lua | 2 +- data-otservbr-global/npc/archery.lua | 2 +- data-otservbr-global/npc/archery_rook.lua | 2 +- data-otservbr-global/npc/ariella.lua | 2 +- data-otservbr-global/npc/arito.lua | 2 +- data-otservbr-global/npc/arkulius.lua | 2 +- data-otservbr-global/npc/armenius.lua | 2 +- data-otservbr-global/npc/asima.lua | 2 +- data-otservbr-global/npc/asnarus.lua | 2 +- data-otservbr-global/npc/asphota.lua | 2 +- data-otservbr-global/npc/atrad.lua | 2 +- data-otservbr-global/npc/auron.lua | 2 +- data-otservbr-global/npc/azil.lua | 2 +- data-otservbr-global/npc/baltim.lua | 2 +- data-otservbr-global/npc/bashira.lua | 2 +- data-otservbr-global/npc/battlemart.lua | 2 +- data-otservbr-global/npc/baxter.lua | 2 +- data-otservbr-global/npc/beatrice.lua | 2 +- data-otservbr-global/npc/benjamin.lua | 2 +- data-otservbr-global/npc/berenice.lua | 2 +- data-otservbr-global/npc/bertha.lua | 2 +- data-otservbr-global/npc/bezil.lua | 2 +- data-otservbr-global/npc/billy.lua | 2 +- data-otservbr-global/npc/black_bert.lua | 2 +- data-otservbr-global/npc/bolfona.lua | 2 +- data-otservbr-global/npc/bonifacius.lua | 2 +- data-otservbr-global/npc/boozer.lua | 2 +- data-otservbr-global/npc/borkas.lua | 2 +- data-otservbr-global/npc/brasith.lua | 2 +- data-otservbr-global/npc/brengus.lua | 2 +- data-otservbr-global/npc/briasol.lua | 2 +- data-otservbr-global/npc/buddel.lua | 2 +- data-otservbr-global/npc/buddel_helheim.lua | 2 +- data-otservbr-global/npc/buddel_okolnir.lua | 2 +- data-otservbr-global/npc/buddel_raider_camp.lua | 2 +- data-otservbr-global/npc/buddel_tyrsung.lua | 2 +- data-otservbr-global/npc/cael.lua | 2 +- data-otservbr-global/npc/canary.lua | 2 +- data-otservbr-global/npc/captain_haba_open_sea.lua | 2 +- data-otservbr-global/npc/captain_max.lua | 2 +- data-otservbr-global/npc/captain_max_calassa.lua | 2 +- data-otservbr-global/npc/carina.lua | 2 +- data-otservbr-global/npc/carlos.lua | 2 +- data-otservbr-global/npc/cedrik.lua | 2 +- data-otservbr-global/npc/chantalle.lua | 2 +- data-otservbr-global/npc/chartan.lua | 2 +- data-otservbr-global/npc/chemar.lua | 2 +- data-otservbr-global/npc/chephan.lua | 2 +- data-otservbr-global/npc/chondur.lua | 2 +- data-otservbr-global/npc/christine.lua | 2 +- data-otservbr-global/npc/chrystal.lua | 2 +- data-otservbr-global/npc/chuckles.lua | 2 +- data-otservbr-global/npc/cledwyn.lua | 2 +- data-otservbr-global/npc/clyde.lua | 2 +- data-otservbr-global/npc/coltrayne.lua | 2 +- data-otservbr-global/npc/cornelia.lua | 2 +- data-otservbr-global/npc/cruleo.lua | 2 +- data-otservbr-global/npc/dane.lua | 2 +- data-otservbr-global/npc/dankwart.lua | 2 +- data-otservbr-global/npc/dario.lua | 2 +- data-otservbr-global/npc/digger.lua | 2 +- data-otservbr-global/npc/dixi.lua | 2 +- data-otservbr-global/npc/donald_mcronald.lua | 2 +- data-otservbr-global/npc/dorbin.lua | 2 +- data-otservbr-global/npc/dorian.lua | 2 +- data-otservbr-global/npc/dove.lua | 2 +- data-otservbr-global/npc/duncan.lua | 2 +- data-otservbr-global/npc/eddy.lua | 2 +- data-otservbr-global/npc/edmund.lua | 2 +- data-otservbr-global/npc/edoch.lua | 2 +- data-otservbr-global/npc/edvard.lua | 2 +- data-otservbr-global/npc/elane.lua | 2 +- data-otservbr-global/npc/eliyas.lua | 2 +- data-otservbr-global/npc/elvith.lua | 2 +- data-otservbr-global/npc/eremo.lua | 2 +- data-otservbr-global/npc/esrik.lua | 2 +- data-otservbr-global/npc/evan.lua | 2 +- data-otservbr-global/npc/ezean.lua | 2 +- data-otservbr-global/npc/fadil.lua | 2 +- data-otservbr-global/npc/faloriel.lua | 2 +- data-otservbr-global/npc/fayla.lua | 2 +- data-otservbr-global/npc/feizuhl.lua | 2 +- data-otservbr-global/npc/fenech.lua | 2 +- data-otservbr-global/npc/fiona.lua | 2 +- data-otservbr-global/npc/flint.lua | 2 +- data-otservbr-global/npc/florentine.lua | 2 +- data-otservbr-global/npc/frans.lua | 2 +- data-otservbr-global/npc/frederik.lua | 2 +- data-otservbr-global/npc/frodo.lua | 2 +- data-otservbr-global/npc/fyodor.lua | 2 +- data-otservbr-global/npc/gail.lua | 2 +- data-otservbr-global/npc/galuna.lua | 2 +- data-otservbr-global/npc/gamel.lua | 2 +- data-otservbr-global/npc/gamon.lua | 2 +- data-otservbr-global/npc/ghorza.lua | 2 +- data-otservbr-global/npc/giri.lua | 2 +- data-otservbr-global/npc/gladys.lua | 2 +- data-otservbr-global/npc/gnomailion.lua | 2 +- data-otservbr-global/npc/gnomally.lua | 2 +- data-otservbr-global/npc/gnomegica.lua | 2 +- data-otservbr-global/npc/gnomejam.lua | 2 +- data-otservbr-global/npc/gnomerrow.lua | 2 +- data-otservbr-global/npc/gnomette.lua | 2 +- data-otservbr-global/npc/gnomfurry.lua | 2 +- data-otservbr-global/npc/gnomincia.lua | 2 +- data-otservbr-global/npc/gnomission.lua | 2 +- data-otservbr-global/npc/gnomux.lua | 2 +- data-otservbr-global/npc/gorn.lua | 2 +- data-otservbr-global/npc/gree_dee.lua | 2 +- data-otservbr-global/npc/grizzly_adams.lua | 2 +- data-otservbr-global/npc/h.l..lua | 2 +- data-otservbr-global/npc/haani.lua | 2 +- data-otservbr-global/npc/habdel.lua | 2 +- data-otservbr-global/npc/hairycles.lua | 2 +- data-otservbr-global/npc/halif.lua | 2 +- data-otservbr-global/npc/hamish.lua | 2 +- data-otservbr-global/npc/hanna.lua | 2 +- data-otservbr-global/npc/hardek.lua | 2 +- data-otservbr-global/npc/harog.lua | 2 +- data-otservbr-global/npc/haroun.lua | 2 +- data-otservbr-global/npc/henricus.lua | 2 +- data-otservbr-global/npc/herbert.lua | 2 +- data-otservbr-global/npc/hireling.lua | 2 +- data-otservbr-global/npc/hofech.lua | 2 +- data-otservbr-global/npc/hyacinth.lua | 2 +- data-otservbr-global/npc/imalas.lua | 2 +- data-otservbr-global/npc/imbuement_assistant.lua | 2 +- data-otservbr-global/npc/inkaef.lua | 2 +- data-otservbr-global/npc/irea.lua | 2 +- data-otservbr-global/npc/iriana.lua | 2 +- data-otservbr-global/npc/irmana.lua | 2 +- data-otservbr-global/npc/ishina.lua | 2 +- data-otservbr-global/npc/isika.lua | 2 +- data-otservbr-global/npc/iwan.lua | 2 +- data-otservbr-global/npc/iwar.lua | 2 +- data-otservbr-global/npc/jack_springer.lua | 2 +- data-otservbr-global/npc/jakahr.lua | 2 +- data-otservbr-global/npc/james.lua | 2 +- data-otservbr-global/npc/janz.lua | 2 +- data-otservbr-global/npc/jessica.lua | 2 +- data-otservbr-global/npc/jezzara.lua | 2 +- data-otservbr-global/npc/john.lua | 2 +- data-otservbr-global/npc/john_bounac.lua | 2 +- data-otservbr-global/npc/julian.lua | 2 +- data-otservbr-global/npc/julius.lua | 2 +- data-otservbr-global/npc/karl.lua | 2 +- data-otservbr-global/npc/khanna.lua | 2 +- data-otservbr-global/npc/kroox.lua | 2 +- data-otservbr-global/npc/lailene.lua | 2 +- data-otservbr-global/npc/larek.lua | 2 +- data-otservbr-global/npc/larry.lua | 2 +- data-otservbr-global/npc/lector.lua | 2 +- data-otservbr-global/npc/lee_delle.lua | 2 +- data-otservbr-global/npc/legola.lua | 2 +- data-otservbr-global/npc/liane.lua | 2 +- data-otservbr-global/npc/lily.lua | 2 +- data-otservbr-global/npc/livielle.lua | 2 +- data-otservbr-global/npc/lubo.lua | 2 +- data-otservbr-global/npc/luna.lua | 2 +- data-otservbr-global/npc/lurik.lua | 2 +- data-otservbr-global/npc/lyonel.lua | 2 +- data-otservbr-global/npc/malunga.lua | 2 +- data-otservbr-global/npc/maria.lua | 2 +- data-otservbr-global/npc/maro.lua | 2 +- data-otservbr-global/npc/maryza.lua | 2 +- data-otservbr-global/npc/maun.lua | 2 +- data-otservbr-global/npc/mehkesh.lua | 2 +- data-otservbr-global/npc/melfar.lua | 2 +- data-otservbr-global/npc/memech.lua | 2 +- data-otservbr-global/npc/messenger_of_santa.lua | 2 +- data-otservbr-global/npc/mirabell.lua | 2 +- data-otservbr-global/npc/miraia.lua | 2 +- data-otservbr-global/npc/mordecai.lua | 2 +- data-otservbr-global/npc/morpel.lua | 2 +- data-otservbr-global/npc/mortimer.lua | 2 +- data-otservbr-global/npc/mugluf.lua | 2 +- data-otservbr-global/npc/mugruu.lua | 2 +- data-otservbr-global/npc/nah_bob.lua | 2 +- data-otservbr-global/npc/nelliem.lua | 2 +- data-otservbr-global/npc/nelly.lua | 2 +- data-otservbr-global/npc/nezil.lua | 2 +- data-otservbr-global/npc/nicholas.lua | 2 +- data-otservbr-global/npc/nienna.lua | 2 +- data-otservbr-global/npc/ninos.lua | 2 +- data-otservbr-global/npc/nipuna.lua | 2 +- data-otservbr-global/npc/norbert.lua | 2 +- data-otservbr-global/npc/norma.lua | 2 +- data-otservbr-global/npc/nydala.lua | 2 +- data-otservbr-global/npc/obi.lua | 2 +- data-otservbr-global/npc/odemara.lua | 2 +- data-otservbr-global/npc/oiriz.lua | 2 +- data-otservbr-global/npc/oldrak.lua | 2 +- data-otservbr-global/npc/olrik.lua | 2 +- data-otservbr-global/npc/omur.lua | 2 +- data-otservbr-global/npc/orockle.lua | 2 +- data-otservbr-global/npc/peggy.lua | 2 +- data-otservbr-global/npc/pemaret.lua | 2 +- data-otservbr-global/npc/penny.lua | 2 +- data-otservbr-global/npc/perac.lua | 2 +- data-otservbr-global/npc/perod.lua | 2 +- data-otservbr-global/npc/pompan.lua | 2 +- data-otservbr-global/npc/pugwah.lua | 2 +- data-otservbr-global/npc/quero.lua | 2 +- data-otservbr-global/npc/rabaz.lua | 2 +- data-otservbr-global/npc/rachel.lua | 2 +- data-otservbr-global/npc/rafzan.lua | 2 +- data-otservbr-global/npc/ramina.lua | 2 +- data-otservbr-global/npc/rashid.lua | 2 +- data-otservbr-global/npc/rashid_custom.lua | 2 +- data-otservbr-global/npc/ray.lua | 2 +- data-otservbr-global/npc/red_lilly.lua | 2 +- data-otservbr-global/npc/redward.lua | 2 +- data-otservbr-global/npc/richard.lua | 2 +- data-otservbr-global/npc/robert.lua | 2 +- data-otservbr-global/npc/rock_in_a_hard_place.lua | 2 +- data-otservbr-global/npc/rodney.lua | 2 +- data-otservbr-global/npc/romella.lua | 2 +- data-otservbr-global/npc/romir.lua | 2 +- data-otservbr-global/npc/rose.lua | 2 +- data-otservbr-global/npc/rowenna.lua | 2 +- data-otservbr-global/npc/rudolph.lua | 2 +- data-otservbr-global/npc/runtel_blackspark.lua | 2 +- data-otservbr-global/npc/sam.lua | 2 +- data-otservbr-global/npc/sandra.lua | 2 +- data-otservbr-global/npc/sarina.lua | 2 +- data-otservbr-global/npc/satsu.lua | 2 +- data-otservbr-global/npc/scott.lua | 2 +- data-otservbr-global/npc/serafin.lua | 2 +- data-otservbr-global/npc/sessek.lua | 2 +- data-otservbr-global/npc/shanar.lua | 2 +- data-otservbr-global/npc/sherry_mcronald.lua | 2 +- data-otservbr-global/npc/shiantis.lua | 2 +- data-otservbr-global/npc/shiriel.lua | 2 +- data-otservbr-global/npc/siflind.lua | 2 +- data-otservbr-global/npc/sigurd.lua | 2 +- data-otservbr-global/npc/silas.lua | 2 +- data-otservbr-global/npc/simon_the_beggar.lua | 2 +- data-otservbr-global/npc/snake_eye.lua | 2 +- data-otservbr-global/npc/soilance.lua | 2 +- data-otservbr-global/npc/squeekquek.lua | 2 +- data-otservbr-global/npc/stan.lua | 2 +- data-otservbr-global/npc/sundara.lua | 2 +- data-otservbr-global/npc/swolt.lua | 2 +- data-otservbr-global/npc/taegen.lua | 2 +- data-otservbr-global/npc/talila.lua | 2 +- data-otservbr-global/npc/talphion.lua | 2 +- data-otservbr-global/npc/tamoril.lua | 2 +- data-otservbr-global/npc/tanaro.lua | 2 +- data-otservbr-global/npc/tandros.lua | 2 +- data-otservbr-global/npc/tarun.lua | 2 +- data-otservbr-global/npc/telas.lua | 2 +- data-otservbr-global/npc/tesha.lua | 2 +- data-otservbr-global/npc/tezila.lua | 2 +- data-otservbr-global/npc/the_librarian.lua | 2 +- data-otservbr-global/npc/the_lootmonger.lua | 2 +- data-otservbr-global/npc/thomas.lua | 2 +- data-otservbr-global/npc/timur.lua | 2 +- data-otservbr-global/npc/todd.lua | 2 +- data-otservbr-global/npc/tokel.lua | 2 +- data-otservbr-global/npc/tom.lua | 2 +- data-otservbr-global/npc/topsy.lua | 2 +- data-otservbr-global/npc/tothdral.lua | 2 +- data-otservbr-global/npc/turvy.lua | 2 +- data-otservbr-global/npc/ukea.lua | 2 +- data-otservbr-global/npc/ulrik.lua | 2 +- data-otservbr-global/npc/urkalio.lua | 2 +- data-otservbr-global/npc/ustan.lua | 2 +- data-otservbr-global/npc/uzgod.lua | 2 +- data-otservbr-global/npc/valentina.lua | 2 +- data-otservbr-global/npc/valindara.lua | 2 +- data-otservbr-global/npc/velvet.lua | 2 +- data-otservbr-global/npc/vera.lua | 2 +- data-otservbr-global/npc/victor.lua | 2 +- data-otservbr-global/npc/vincent.lua | 2 +- data-otservbr-global/npc/wally.lua | 2 +- data-otservbr-global/npc/willard.lua | 2 +- data-otservbr-global/npc/willie.lua | 2 +- data-otservbr-global/npc/xed.lua | 2 +- data-otservbr-global/npc/xelvar.lua | 2 +- data-otservbr-global/npc/xodet.lua | 2 +- data-otservbr-global/npc/yaman.lua | 2 +- data-otservbr-global/npc/yana.lua | 2 +- data-otservbr-global/npc/yanni.lua | 2 +- data-otservbr-global/npc/yasir.lua | 2 +- data-otservbr-global/npc/yoem.lua | 2 +- data-otservbr-global/npc/yonan.lua | 2 +- data-otservbr-global/npc/yulas.lua | 2 +- data-otservbr-global/npc/zaidal.lua | 2 +- data-otservbr-global/npc/zethra.lua | 2 +- data-otservbr-global/npc/zora.lua | 2 +- data-otservbr-global/npc/zuma_magehide.lua | 2 +- 304 files changed, 304 insertions(+), 304 deletions(-) diff --git a/data-otservbr-global/npc/a_fluffy_squirrel.lua b/data-otservbr-global/npc/a_fluffy_squirrel.lua index 2e9b6a33df5..d246e0e5579 100644 --- a/data-otservbr-global/npc/a_fluffy_squirrel.lua +++ b/data-otservbr-global/npc/a_fluffy_squirrel.lua @@ -34,7 +34,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ahmet.lua b/data-otservbr-global/npc/ahmet.lua index 15dde452fb6..3cb712f088e 100644 --- a/data-otservbr-global/npc/ahmet.lua +++ b/data-otservbr-global/npc/ahmet.lua @@ -61,7 +61,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/al_dee.lua b/data-otservbr-global/npc/al_dee.lua index 4b8bf1c5b0c..5ecaf2ceee7 100644 --- a/data-otservbr-global/npc/al_dee.lua +++ b/data-otservbr-global/npc/al_dee.lua @@ -49,7 +49,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/alaistar.lua b/data-otservbr-global/npc/alaistar.lua index b4e73f21824..e893975b24b 100644 --- a/data-otservbr-global/npc/alaistar.lua +++ b/data-otservbr-global/npc/alaistar.lua @@ -73,7 +73,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/albinius.lua b/data-otservbr-global/npc/albinius.lua index 3b03198b333..ca04c785848 100644 --- a/data-otservbr-global/npc/albinius.lua +++ b/data-otservbr-global/npc/albinius.lua @@ -32,7 +32,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/aldo.lua b/data-otservbr-global/npc/aldo.lua index e9338a292c7..6206a448980 100644 --- a/data-otservbr-global/npc/aldo.lua +++ b/data-otservbr-global/npc/aldo.lua @@ -48,7 +48,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/alesar.lua b/data-otservbr-global/npc/alesar.lua index b9c3b11e545..ca38fe37ac1 100644 --- a/data-otservbr-global/npc/alesar.lua +++ b/data-otservbr-global/npc/alesar.lua @@ -53,7 +53,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/alexander.lua b/data-otservbr-global/npc/alexander.lua index 7851a189a66..78f51e486c8 100644 --- a/data-otservbr-global/npc/alexander.lua +++ b/data-otservbr-global/npc/alexander.lua @@ -162,7 +162,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/alissa.lua b/data-otservbr-global/npc/alissa.lua index 32c78cf3847..467c34b0118 100644 --- a/data-otservbr-global/npc/alissa.lua +++ b/data-otservbr-global/npc/alissa.lua @@ -77,7 +77,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/allen.lua b/data-otservbr-global/npc/allen.lua index dc72b57c298..2421f752d87 100644 --- a/data-otservbr-global/npc/allen.lua +++ b/data-otservbr-global/npc/allen.lua @@ -87,7 +87,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/amra.lua b/data-otservbr-global/npc/amra.lua index c50edb3c46c..cd88a462dad 100644 --- a/data-otservbr-global/npc/amra.lua +++ b/data-otservbr-global/npc/amra.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/andrew_lyze.lua b/data-otservbr-global/npc/andrew_lyze.lua index c3cb68fa53e..82b1f9a61ce 100644 --- a/data-otservbr-global/npc/andrew_lyze.lua +++ b/data-otservbr-global/npc/andrew_lyze.lua @@ -32,7 +32,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/anerui.lua b/data-otservbr-global/npc/anerui.lua index 26a81e40ac1..0b6382a2b6a 100644 --- a/data-otservbr-global/npc/anerui.lua +++ b/data-otservbr-global/npc/anerui.lua @@ -83,7 +83,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/angus.lua b/data-otservbr-global/npc/angus.lua index 1616d1d50d2..3f8d80f6b4c 100644 --- a/data-otservbr-global/npc/angus.lua +++ b/data-otservbr-global/npc/angus.lua @@ -678,7 +678,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/archery.lua b/data-otservbr-global/npc/archery.lua index 55d1a7e5f89..fc5d37524f4 100644 --- a/data-otservbr-global/npc/archery.lua +++ b/data-otservbr-global/npc/archery.lua @@ -105,7 +105,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/archery_rook.lua b/data-otservbr-global/npc/archery_rook.lua index d86ad6ba1d7..ddebed46042 100644 --- a/data-otservbr-global/npc/archery_rook.lua +++ b/data-otservbr-global/npc/archery_rook.lua @@ -75,7 +75,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ariella.lua b/data-otservbr-global/npc/ariella.lua index 46746f4aa32..35ff38f6621 100644 --- a/data-otservbr-global/npc/ariella.lua +++ b/data-otservbr-global/npc/ariella.lua @@ -197,7 +197,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/arito.lua b/data-otservbr-global/npc/arito.lua index d2c526ddddb..a885cc91e20 100644 --- a/data-otservbr-global/npc/arito.lua +++ b/data-otservbr-global/npc/arito.lua @@ -113,7 +113,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/arkulius.lua b/data-otservbr-global/npc/arkulius.lua index 53193d74bb4..64abb564d17 100644 --- a/data-otservbr-global/npc/arkulius.lua +++ b/data-otservbr-global/npc/arkulius.lua @@ -203,7 +203,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/armenius.lua b/data-otservbr-global/npc/armenius.lua index 73b1e2f89b9..045a53af2c8 100644 --- a/data-otservbr-global/npc/armenius.lua +++ b/data-otservbr-global/npc/armenius.lua @@ -108,7 +108,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/asima.lua b/data-otservbr-global/npc/asima.lua index 83dab8bbe8b..645689c42d4 100644 --- a/data-otservbr-global/npc/asima.lua +++ b/data-otservbr-global/npc/asima.lua @@ -156,7 +156,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/asnarus.lua b/data-otservbr-global/npc/asnarus.lua index 6cbff33abf8..a733d90834b 100644 --- a/data-otservbr-global/npc/asnarus.lua +++ b/data-otservbr-global/npc/asnarus.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/asphota.lua b/data-otservbr-global/npc/asphota.lua index 41130190f0f..13e9b83f6c4 100644 --- a/data-otservbr-global/npc/asphota.lua +++ b/data-otservbr-global/npc/asphota.lua @@ -81,7 +81,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/atrad.lua b/data-otservbr-global/npc/atrad.lua index 24767c0c9da..2c07cf9725a 100644 --- a/data-otservbr-global/npc/atrad.lua +++ b/data-otservbr-global/npc/atrad.lua @@ -110,7 +110,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/auron.lua b/data-otservbr-global/npc/auron.lua index 23cf6f3be06..8b0b84538c5 100644 --- a/data-otservbr-global/npc/auron.lua +++ b/data-otservbr-global/npc/auron.lua @@ -58,7 +58,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/azil.lua b/data-otservbr-global/npc/azil.lua index 8f9f94021fe..b58c2ae2b6f 100644 --- a/data-otservbr-global/npc/azil.lua +++ b/data-otservbr-global/npc/azil.lua @@ -94,7 +94,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/baltim.lua b/data-otservbr-global/npc/baltim.lua index f078c3ed79c..d0b472f6bd2 100644 --- a/data-otservbr-global/npc/baltim.lua +++ b/data-otservbr-global/npc/baltim.lua @@ -142,7 +142,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/bashira.lua b/data-otservbr-global/npc/bashira.lua index bc738dd344d..cad33258c39 100644 --- a/data-otservbr-global/npc/bashira.lua +++ b/data-otservbr-global/npc/bashira.lua @@ -104,7 +104,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/battlemart.lua b/data-otservbr-global/npc/battlemart.lua index a34d2d3a46c..4cc010da066 100644 --- a/data-otservbr-global/npc/battlemart.lua +++ b/data-otservbr-global/npc/battlemart.lua @@ -223,7 +223,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/baxter.lua b/data-otservbr-global/npc/baxter.lua index 54a9f46c9eb..beb1dcdb237 100644 --- a/data-otservbr-global/npc/baxter.lua +++ b/data-otservbr-global/npc/baxter.lua @@ -81,7 +81,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/beatrice.lua b/data-otservbr-global/npc/beatrice.lua index d0e151d8d1f..89fe93286dc 100644 --- a/data-otservbr-global/npc/beatrice.lua +++ b/data-otservbr-global/npc/beatrice.lua @@ -124,7 +124,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/benjamin.lua b/data-otservbr-global/npc/benjamin.lua index c6aec11cbc6..ce3858886dc 100644 --- a/data-otservbr-global/npc/benjamin.lua +++ b/data-otservbr-global/npc/benjamin.lua @@ -99,7 +99,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/berenice.lua b/data-otservbr-global/npc/berenice.lua index 56d12e553f2..d1889c032cd 100644 --- a/data-otservbr-global/npc/berenice.lua +++ b/data-otservbr-global/npc/berenice.lua @@ -124,7 +124,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/bertha.lua b/data-otservbr-global/npc/bertha.lua index 5b858157105..339b91aae7e 100644 --- a/data-otservbr-global/npc/bertha.lua +++ b/data-otservbr-global/npc/bertha.lua @@ -139,7 +139,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/bezil.lua b/data-otservbr-global/npc/bezil.lua index fe6701d675b..8a28bd473e5 100644 --- a/data-otservbr-global/npc/bezil.lua +++ b/data-otservbr-global/npc/bezil.lua @@ -87,7 +87,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/billy.lua b/data-otservbr-global/npc/billy.lua index 1dcaa1e5a7c..fac70690f0f 100644 --- a/data-otservbr-global/npc/billy.lua +++ b/data-otservbr-global/npc/billy.lua @@ -165,7 +165,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/black_bert.lua b/data-otservbr-global/npc/black_bert.lua index bb60836e7f4..dc3f8420cb0 100644 --- a/data-otservbr-global/npc/black_bert.lua +++ b/data-otservbr-global/npc/black_bert.lua @@ -161,7 +161,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/bolfona.lua b/data-otservbr-global/npc/bolfona.lua index 7000dbef602..84028bfd03b 100644 --- a/data-otservbr-global/npc/bolfona.lua +++ b/data-otservbr-global/npc/bolfona.lua @@ -110,7 +110,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/bonifacius.lua b/data-otservbr-global/npc/bonifacius.lua index 70a6c51d2ae..cdd6b3666dc 100644 --- a/data-otservbr-global/npc/bonifacius.lua +++ b/data-otservbr-global/npc/bonifacius.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/boozer.lua b/data-otservbr-global/npc/boozer.lua index 7820007f1e8..ad959f07722 100644 --- a/data-otservbr-global/npc/boozer.lua +++ b/data-otservbr-global/npc/boozer.lua @@ -103,7 +103,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/borkas.lua b/data-otservbr-global/npc/borkas.lua index 7096b2813eb..df6da78c581 100644 --- a/data-otservbr-global/npc/borkas.lua +++ b/data-otservbr-global/npc/borkas.lua @@ -72,7 +72,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/brasith.lua b/data-otservbr-global/npc/brasith.lua index f29732aba81..b2939eb081b 100644 --- a/data-otservbr-global/npc/brasith.lua +++ b/data-otservbr-global/npc/brasith.lua @@ -84,7 +84,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/brengus.lua b/data-otservbr-global/npc/brengus.lua index 3ea0765b53e..75657c858d6 100644 --- a/data-otservbr-global/npc/brengus.lua +++ b/data-otservbr-global/npc/brengus.lua @@ -172,7 +172,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/briasol.lua b/data-otservbr-global/npc/briasol.lua index 5bfebbd1c72..6905011fee9 100644 --- a/data-otservbr-global/npc/briasol.lua +++ b/data-otservbr-global/npc/briasol.lua @@ -171,7 +171,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/buddel.lua b/data-otservbr-global/npc/buddel.lua index 0ae2a4ed640..051e79a2299 100644 --- a/data-otservbr-global/npc/buddel.lua +++ b/data-otservbr-global/npc/buddel.lua @@ -144,7 +144,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/buddel_helheim.lua b/data-otservbr-global/npc/buddel_helheim.lua index f7ca9f78696..b38470616aa 100644 --- a/data-otservbr-global/npc/buddel_helheim.lua +++ b/data-otservbr-global/npc/buddel_helheim.lua @@ -139,7 +139,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/buddel_okolnir.lua b/data-otservbr-global/npc/buddel_okolnir.lua index 34697e74fe3..387009f9df1 100644 --- a/data-otservbr-global/npc/buddel_okolnir.lua +++ b/data-otservbr-global/npc/buddel_okolnir.lua @@ -143,7 +143,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/buddel_raider_camp.lua b/data-otservbr-global/npc/buddel_raider_camp.lua index 2eed1e22108..2c6d9781296 100644 --- a/data-otservbr-global/npc/buddel_raider_camp.lua +++ b/data-otservbr-global/npc/buddel_raider_camp.lua @@ -144,7 +144,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/buddel_tyrsung.lua b/data-otservbr-global/npc/buddel_tyrsung.lua index 2fa1d05b2e3..541739f2f53 100644 --- a/data-otservbr-global/npc/buddel_tyrsung.lua +++ b/data-otservbr-global/npc/buddel_tyrsung.lua @@ -144,7 +144,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/cael.lua b/data-otservbr-global/npc/cael.lua index 53230def353..f377cdae411 100644 --- a/data-otservbr-global/npc/cael.lua +++ b/data-otservbr-global/npc/cael.lua @@ -40,7 +40,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/canary.lua b/data-otservbr-global/npc/canary.lua index acb3c9a9fff..3c6cdf3063e 100644 --- a/data-otservbr-global/npc/canary.lua +++ b/data-otservbr-global/npc/canary.lua @@ -44,7 +44,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/captain_haba_open_sea.lua b/data-otservbr-global/npc/captain_haba_open_sea.lua index 4401648ac1a..140ca090393 100644 --- a/data-otservbr-global/npc/captain_haba_open_sea.lua +++ b/data-otservbr-global/npc/captain_haba_open_sea.lua @@ -187,7 +187,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/captain_max.lua b/data-otservbr-global/npc/captain_max.lua index 6f163e95ac0..34eb7693cc2 100644 --- a/data-otservbr-global/npc/captain_max.lua +++ b/data-otservbr-global/npc/captain_max.lua @@ -96,7 +96,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/captain_max_calassa.lua b/data-otservbr-global/npc/captain_max_calassa.lua index b29cbb491f9..79f9404a4fc 100644 --- a/data-otservbr-global/npc/captain_max_calassa.lua +++ b/data-otservbr-global/npc/captain_max_calassa.lua @@ -80,7 +80,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/carina.lua b/data-otservbr-global/npc/carina.lua index 19774e893fc..d5373f30356 100644 --- a/data-otservbr-global/npc/carina.lua +++ b/data-otservbr-global/npc/carina.lua @@ -110,7 +110,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/carlos.lua b/data-otservbr-global/npc/carlos.lua index 0dd82f9ff99..df70b6ddb59 100644 --- a/data-otservbr-global/npc/carlos.lua +++ b/data-otservbr-global/npc/carlos.lua @@ -44,7 +44,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/cedrik.lua b/data-otservbr-global/npc/cedrik.lua index 4ba306c996d..04778320b96 100644 --- a/data-otservbr-global/npc/cedrik.lua +++ b/data-otservbr-global/npc/cedrik.lua @@ -262,7 +262,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chantalle.lua b/data-otservbr-global/npc/chantalle.lua index 8e4588c7dda..2615f6557da 100644 --- a/data-otservbr-global/npc/chantalle.lua +++ b/data-otservbr-global/npc/chantalle.lua @@ -162,7 +162,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chartan.lua b/data-otservbr-global/npc/chartan.lua index 11bf06f42e4..8be69fc06da 100644 --- a/data-otservbr-global/npc/chartan.lua +++ b/data-otservbr-global/npc/chartan.lua @@ -154,7 +154,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chemar.lua b/data-otservbr-global/npc/chemar.lua index e42fe02e828..4f00675f823 100644 --- a/data-otservbr-global/npc/chemar.lua +++ b/data-otservbr-global/npc/chemar.lua @@ -102,7 +102,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chephan.lua b/data-otservbr-global/npc/chephan.lua index e74d9ebd692..4321e2118d1 100644 --- a/data-otservbr-global/npc/chephan.lua +++ b/data-otservbr-global/npc/chephan.lua @@ -76,7 +76,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chondur.lua b/data-otservbr-global/npc/chondur.lua index 8eb4a38db3a..c0a1a000d22 100644 --- a/data-otservbr-global/npc/chondur.lua +++ b/data-otservbr-global/npc/chondur.lua @@ -403,7 +403,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/christine.lua b/data-otservbr-global/npc/christine.lua index 56acc6bcfa5..7763fc52288 100644 --- a/data-otservbr-global/npc/christine.lua +++ b/data-otservbr-global/npc/christine.lua @@ -80,7 +80,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chrystal.lua b/data-otservbr-global/npc/chrystal.lua index d41eadbecc3..54c70da0e81 100644 --- a/data-otservbr-global/npc/chrystal.lua +++ b/data-otservbr-global/npc/chrystal.lua @@ -92,7 +92,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/chuckles.lua b/data-otservbr-global/npc/chuckles.lua index 2e85097a6c4..51fb3f2add6 100644 --- a/data-otservbr-global/npc/chuckles.lua +++ b/data-otservbr-global/npc/chuckles.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/cledwyn.lua b/data-otservbr-global/npc/cledwyn.lua index 6cb6f5468d2..6e9efd9f76c 100644 --- a/data-otservbr-global/npc/cledwyn.lua +++ b/data-otservbr-global/npc/cledwyn.lua @@ -55,7 +55,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/clyde.lua b/data-otservbr-global/npc/clyde.lua index 5342e1e9bea..fcaf9ea011a 100644 --- a/data-otservbr-global/npc/clyde.lua +++ b/data-otservbr-global/npc/clyde.lua @@ -71,7 +71,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/coltrayne.lua b/data-otservbr-global/npc/coltrayne.lua index 2e2570b8bf1..92655a94ed5 100644 --- a/data-otservbr-global/npc/coltrayne.lua +++ b/data-otservbr-global/npc/coltrayne.lua @@ -166,7 +166,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/cornelia.lua b/data-otservbr-global/npc/cornelia.lua index cbfc2241cb4..c78b3482e78 100644 --- a/data-otservbr-global/npc/cornelia.lua +++ b/data-otservbr-global/npc/cornelia.lua @@ -136,7 +136,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/cruleo.lua b/data-otservbr-global/npc/cruleo.lua index a77f09ab157..219c66c2f94 100644 --- a/data-otservbr-global/npc/cruleo.lua +++ b/data-otservbr-global/npc/cruleo.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dane.lua b/data-otservbr-global/npc/dane.lua index 8516da1d7a1..c2e3c612414 100644 --- a/data-otservbr-global/npc/dane.lua +++ b/data-otservbr-global/npc/dane.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dankwart.lua b/data-otservbr-global/npc/dankwart.lua index 376f4f1fc80..dfc7bc2802d 100644 --- a/data-otservbr-global/npc/dankwart.lua +++ b/data-otservbr-global/npc/dankwart.lua @@ -66,7 +66,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dario.lua b/data-otservbr-global/npc/dario.lua index 538b3cfbf27..c679fb6e28c 100644 --- a/data-otservbr-global/npc/dario.lua +++ b/data-otservbr-global/npc/dario.lua @@ -100,7 +100,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/digger.lua b/data-otservbr-global/npc/digger.lua index bfb02202577..863595cbc32 100644 --- a/data-otservbr-global/npc/digger.lua +++ b/data-otservbr-global/npc/digger.lua @@ -72,7 +72,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dixi.lua b/data-otservbr-global/npc/dixi.lua index aae132421f4..241644914b9 100644 --- a/data-otservbr-global/npc/dixi.lua +++ b/data-otservbr-global/npc/dixi.lua @@ -176,7 +176,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/donald_mcronald.lua b/data-otservbr-global/npc/donald_mcronald.lua index 618047d0dd4..fa482ed4608 100644 --- a/data-otservbr-global/npc/donald_mcronald.lua +++ b/data-otservbr-global/npc/donald_mcronald.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dorbin.lua b/data-otservbr-global/npc/dorbin.lua index 128e6f68397..60a381d6a35 100644 --- a/data-otservbr-global/npc/dorbin.lua +++ b/data-otservbr-global/npc/dorbin.lua @@ -157,7 +157,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dorian.lua b/data-otservbr-global/npc/dorian.lua index 103c6b2abae..bdf1b61a8d0 100644 --- a/data-otservbr-global/npc/dorian.lua +++ b/data-otservbr-global/npc/dorian.lua @@ -240,7 +240,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/dove.lua b/data-otservbr-global/npc/dove.lua index 58adcf72025..2dadf044189 100644 --- a/data-otservbr-global/npc/dove.lua +++ b/data-otservbr-global/npc/dove.lua @@ -96,7 +96,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/duncan.lua b/data-otservbr-global/npc/duncan.lua index 6ce93b595a8..2bc4df38712 100644 --- a/data-otservbr-global/npc/duncan.lua +++ b/data-otservbr-global/npc/duncan.lua @@ -220,7 +220,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/eddy.lua b/data-otservbr-global/npc/eddy.lua index aeeb6497efa..e54bb0ca0cb 100644 --- a/data-otservbr-global/npc/eddy.lua +++ b/data-otservbr-global/npc/eddy.lua @@ -164,7 +164,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/edmund.lua b/data-otservbr-global/npc/edmund.lua index 37452b33972..d8635297949 100644 --- a/data-otservbr-global/npc/edmund.lua +++ b/data-otservbr-global/npc/edmund.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/edoch.lua b/data-otservbr-global/npc/edoch.lua index ff0d7b6efdc..754652ba507 100644 --- a/data-otservbr-global/npc/edoch.lua +++ b/data-otservbr-global/npc/edoch.lua @@ -86,7 +86,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/edvard.lua b/data-otservbr-global/npc/edvard.lua index e3e93b58551..912171fc988 100644 --- a/data-otservbr-global/npc/edvard.lua +++ b/data-otservbr-global/npc/edvard.lua @@ -166,7 +166,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/elane.lua b/data-otservbr-global/npc/elane.lua index 745ed3f7c2f..e84f211fe2c 100644 --- a/data-otservbr-global/npc/elane.lua +++ b/data-otservbr-global/npc/elane.lua @@ -255,7 +255,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/eliyas.lua b/data-otservbr-global/npc/eliyas.lua index f2c41e5a0b3..b25823acf0c 100644 --- a/data-otservbr-global/npc/eliyas.lua +++ b/data-otservbr-global/npc/eliyas.lua @@ -157,7 +157,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/elvith.lua b/data-otservbr-global/npc/elvith.lua index 8bec2126bbe..ea704df1b20 100644 --- a/data-otservbr-global/npc/elvith.lua +++ b/data-otservbr-global/npc/elvith.lua @@ -123,7 +123,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/eremo.lua b/data-otservbr-global/npc/eremo.lua index b7d35da536b..c61996e5318 100644 --- a/data-otservbr-global/npc/eremo.lua +++ b/data-otservbr-global/npc/eremo.lua @@ -239,7 +239,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/esrik.lua b/data-otservbr-global/npc/esrik.lua index 5af89e036c1..5890ff5843c 100644 --- a/data-otservbr-global/npc/esrik.lua +++ b/data-otservbr-global/npc/esrik.lua @@ -164,7 +164,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/evan.lua b/data-otservbr-global/npc/evan.lua index dc6af215d73..85d12fd0d0c 100644 --- a/data-otservbr-global/npc/evan.lua +++ b/data-otservbr-global/npc/evan.lua @@ -61,7 +61,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ezean.lua b/data-otservbr-global/npc/ezean.lua index 292a96987bf..c6bcdcbabf6 100644 --- a/data-otservbr-global/npc/ezean.lua +++ b/data-otservbr-global/npc/ezean.lua @@ -62,7 +62,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/fadil.lua b/data-otservbr-global/npc/fadil.lua index 8d67619dc96..3c641d0d7df 100644 --- a/data-otservbr-global/npc/fadil.lua +++ b/data-otservbr-global/npc/fadil.lua @@ -87,7 +87,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/faloriel.lua b/data-otservbr-global/npc/faloriel.lua index bcebb38758c..7d259c72ea3 100644 --- a/data-otservbr-global/npc/faloriel.lua +++ b/data-otservbr-global/npc/faloriel.lua @@ -113,7 +113,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/fayla.lua b/data-otservbr-global/npc/fayla.lua index bad96511346..948f8ed6cc2 100644 --- a/data-otservbr-global/npc/fayla.lua +++ b/data-otservbr-global/npc/fayla.lua @@ -66,7 +66,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/feizuhl.lua b/data-otservbr-global/npc/feizuhl.lua index e393f357601..5e8307a7bc0 100644 --- a/data-otservbr-global/npc/feizuhl.lua +++ b/data-otservbr-global/npc/feizuhl.lua @@ -164,7 +164,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/fenech.lua b/data-otservbr-global/npc/fenech.lua index d0a7e80d55f..7152c0ef9c5 100644 --- a/data-otservbr-global/npc/fenech.lua +++ b/data-otservbr-global/npc/fenech.lua @@ -168,7 +168,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/fiona.lua b/data-otservbr-global/npc/fiona.lua index 51111f61965..50e082004a6 100644 --- a/data-otservbr-global/npc/fiona.lua +++ b/data-otservbr-global/npc/fiona.lua @@ -153,7 +153,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/flint.lua b/data-otservbr-global/npc/flint.lua index c3ced94a30e..0b50a00df1f 100644 --- a/data-otservbr-global/npc/flint.lua +++ b/data-otservbr-global/npc/flint.lua @@ -157,7 +157,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/florentine.lua b/data-otservbr-global/npc/florentine.lua index bc21f320c9c..0a5d7b421c2 100644 --- a/data-otservbr-global/npc/florentine.lua +++ b/data-otservbr-global/npc/florentine.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/frans.lua b/data-otservbr-global/npc/frans.lua index e3583c002b3..8761a7d89d6 100644 --- a/data-otservbr-global/npc/frans.lua +++ b/data-otservbr-global/npc/frans.lua @@ -129,7 +129,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/frederik.lua b/data-otservbr-global/npc/frederik.lua index 10e4735fe1e..9b33ccf9684 100644 --- a/data-otservbr-global/npc/frederik.lua +++ b/data-otservbr-global/npc/frederik.lua @@ -153,7 +153,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/frodo.lua b/data-otservbr-global/npc/frodo.lua index ac5578018b2..d139f461cac 100644 --- a/data-otservbr-global/npc/frodo.lua +++ b/data-otservbr-global/npc/frodo.lua @@ -122,7 +122,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/fyodor.lua b/data-otservbr-global/npc/fyodor.lua index 009495795b7..1dda09a4d65 100644 --- a/data-otservbr-global/npc/fyodor.lua +++ b/data-otservbr-global/npc/fyodor.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gail.lua b/data-otservbr-global/npc/gail.lua index 9a0ddf21359..80a9b54b3e5 100644 --- a/data-otservbr-global/npc/gail.lua +++ b/data-otservbr-global/npc/gail.lua @@ -167,7 +167,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/galuna.lua b/data-otservbr-global/npc/galuna.lua index 817bb2f679a..491d76d3135 100644 --- a/data-otservbr-global/npc/galuna.lua +++ b/data-otservbr-global/npc/galuna.lua @@ -78,7 +78,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gamel.lua b/data-otservbr-global/npc/gamel.lua index 3391aafc59a..96e9cb0540d 100644 --- a/data-otservbr-global/npc/gamel.lua +++ b/data-otservbr-global/npc/gamel.lua @@ -166,7 +166,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gamon.lua b/data-otservbr-global/npc/gamon.lua index 5aa29b4c159..e858f43eb30 100644 --- a/data-otservbr-global/npc/gamon.lua +++ b/data-otservbr-global/npc/gamon.lua @@ -180,7 +180,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ghorza.lua b/data-otservbr-global/npc/ghorza.lua index 9e4301ee5ab..17f752e7435 100644 --- a/data-otservbr-global/npc/ghorza.lua +++ b/data-otservbr-global/npc/ghorza.lua @@ -150,7 +150,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/giri.lua b/data-otservbr-global/npc/giri.lua index 16e66addc9a..194706a2a02 100644 --- a/data-otservbr-global/npc/giri.lua +++ b/data-otservbr-global/npc/giri.lua @@ -128,7 +128,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gladys.lua b/data-otservbr-global/npc/gladys.lua index 3715d695f06..d9911e3f55b 100644 --- a/data-otservbr-global/npc/gladys.lua +++ b/data-otservbr-global/npc/gladys.lua @@ -90,7 +90,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomailion.lua b/data-otservbr-global/npc/gnomailion.lua index 6fcca35ded0..004000b9895 100644 --- a/data-otservbr-global/npc/gnomailion.lua +++ b/data-otservbr-global/npc/gnomailion.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomally.lua b/data-otservbr-global/npc/gnomally.lua index 5a5d764b17a..47b965fe0b0 100644 --- a/data-otservbr-global/npc/gnomally.lua +++ b/data-otservbr-global/npc/gnomally.lua @@ -37,7 +37,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomegica.lua b/data-otservbr-global/npc/gnomegica.lua index 904642c0360..0805ca33ace 100644 --- a/data-otservbr-global/npc/gnomegica.lua +++ b/data-otservbr-global/npc/gnomegica.lua @@ -149,7 +149,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomejam.lua b/data-otservbr-global/npc/gnomejam.lua index 312eed8d93f..a4eabd359a4 100644 --- a/data-otservbr-global/npc/gnomejam.lua +++ b/data-otservbr-global/npc/gnomejam.lua @@ -64,7 +64,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomerrow.lua b/data-otservbr-global/npc/gnomerrow.lua index d6104f4bbe9..6195495adec 100644 --- a/data-otservbr-global/npc/gnomerrow.lua +++ b/data-otservbr-global/npc/gnomerrow.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomette.lua b/data-otservbr-global/npc/gnomette.lua index c9b6e452010..9254a8f5ff4 100644 --- a/data-otservbr-global/npc/gnomette.lua +++ b/data-otservbr-global/npc/gnomette.lua @@ -60,7 +60,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomfurry.lua b/data-otservbr-global/npc/gnomfurry.lua index 8813c021df0..7fd6eb5eb2c 100644 --- a/data-otservbr-global/npc/gnomfurry.lua +++ b/data-otservbr-global/npc/gnomfurry.lua @@ -71,7 +71,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomincia.lua b/data-otservbr-global/npc/gnomincia.lua index 18f275e1f20..cde112fc646 100644 --- a/data-otservbr-global/npc/gnomincia.lua +++ b/data-otservbr-global/npc/gnomincia.lua @@ -61,7 +61,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomission.lua b/data-otservbr-global/npc/gnomission.lua index 41b77e5bba3..3a35ecc117d 100644 --- a/data-otservbr-global/npc/gnomission.lua +++ b/data-otservbr-global/npc/gnomission.lua @@ -235,7 +235,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gnomux.lua b/data-otservbr-global/npc/gnomux.lua index 64875c15f0e..454bee2af1e 100644 --- a/data-otservbr-global/npc/gnomux.lua +++ b/data-otservbr-global/npc/gnomux.lua @@ -38,7 +38,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gorn.lua b/data-otservbr-global/npc/gorn.lua index ed071402349..0d875652da9 100644 --- a/data-otservbr-global/npc/gorn.lua +++ b/data-otservbr-global/npc/gorn.lua @@ -161,7 +161,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/gree_dee.lua b/data-otservbr-global/npc/gree_dee.lua index c729fc9c56f..9415ef79105 100644 --- a/data-otservbr-global/npc/gree_dee.lua +++ b/data-otservbr-global/npc/gree_dee.lua @@ -91,7 +91,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/grizzly_adams.lua b/data-otservbr-global/npc/grizzly_adams.lua index 7e57aa3618d..b51e8ddf2ce 100644 --- a/data-otservbr-global/npc/grizzly_adams.lua +++ b/data-otservbr-global/npc/grizzly_adams.lua @@ -96,7 +96,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/h.l..lua b/data-otservbr-global/npc/h.l..lua index 20ade396bb2..c698a572e1f 100644 --- a/data-otservbr-global/npc/h.l..lua +++ b/data-otservbr-global/npc/h.l..lua @@ -184,7 +184,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/haani.lua b/data-otservbr-global/npc/haani.lua index 59ac6b43aa1..064b2ffe69e 100644 --- a/data-otservbr-global/npc/haani.lua +++ b/data-otservbr-global/npc/haani.lua @@ -163,7 +163,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/habdel.lua b/data-otservbr-global/npc/habdel.lua index f1ddeebcac0..d9371bb7c6a 100644 --- a/data-otservbr-global/npc/habdel.lua +++ b/data-otservbr-global/npc/habdel.lua @@ -169,7 +169,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hairycles.lua b/data-otservbr-global/npc/hairycles.lua index 7a780e99780..7ffcb21433d 100644 --- a/data-otservbr-global/npc/hairycles.lua +++ b/data-otservbr-global/npc/hairycles.lua @@ -514,7 +514,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/halif.lua b/data-otservbr-global/npc/halif.lua index cd0a3fe3d94..e2e55484d37 100644 --- a/data-otservbr-global/npc/halif.lua +++ b/data-otservbr-global/npc/halif.lua @@ -89,7 +89,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hamish.lua b/data-otservbr-global/npc/hamish.lua index b1ca1e915ee..b00d21393a6 100644 --- a/data-otservbr-global/npc/hamish.lua +++ b/data-otservbr-global/npc/hamish.lua @@ -214,7 +214,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hanna.lua b/data-otservbr-global/npc/hanna.lua index 2c2c5fc98e9..7fca4c908aa 100644 --- a/data-otservbr-global/npc/hanna.lua +++ b/data-otservbr-global/npc/hanna.lua @@ -204,7 +204,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hardek.lua b/data-otservbr-global/npc/hardek.lua index 8bbf623ee66..27f5ddc23a0 100644 --- a/data-otservbr-global/npc/hardek.lua +++ b/data-otservbr-global/npc/hardek.lua @@ -149,7 +149,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/harog.lua b/data-otservbr-global/npc/harog.lua index 3a5a4b59c7f..421356ec62e 100644 --- a/data-otservbr-global/npc/harog.lua +++ b/data-otservbr-global/npc/harog.lua @@ -33,7 +33,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/haroun.lua b/data-otservbr-global/npc/haroun.lua index a3d183eb879..33a4e1c2c72 100644 --- a/data-otservbr-global/npc/haroun.lua +++ b/data-otservbr-global/npc/haroun.lua @@ -142,7 +142,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/henricus.lua b/data-otservbr-global/npc/henricus.lua index 415fc2a08eb..d6d7beda8f4 100644 --- a/data-otservbr-global/npc/henricus.lua +++ b/data-otservbr-global/npc/henricus.lua @@ -379,7 +379,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/herbert.lua b/data-otservbr-global/npc/herbert.lua index 6d9fd578574..c8ccbd337c3 100644 --- a/data-otservbr-global/npc/herbert.lua +++ b/data-otservbr-global/npc/herbert.lua @@ -94,7 +94,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hireling.lua b/data-otservbr-global/npc/hireling.lua index 193b716ef04..145d846bd7e 100644 --- a/data-otservbr-global/npc/hireling.lua +++ b/data-otservbr-global/npc/hireling.lua @@ -366,7 +366,7 @@ function createHirelingType(HirelingName) end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hofech.lua b/data-otservbr-global/npc/hofech.lua index 1b6a6005f65..558e78018f3 100644 --- a/data-otservbr-global/npc/hofech.lua +++ b/data-otservbr-global/npc/hofech.lua @@ -125,7 +125,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/hyacinth.lua b/data-otservbr-global/npc/hyacinth.lua index ffe64c5871a..cbf37f8e9c6 100644 --- a/data-otservbr-global/npc/hyacinth.lua +++ b/data-otservbr-global/npc/hyacinth.lua @@ -236,7 +236,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/imalas.lua b/data-otservbr-global/npc/imalas.lua index 2748e44a451..67aaefe93bc 100644 --- a/data-otservbr-global/npc/imalas.lua +++ b/data-otservbr-global/npc/imalas.lua @@ -76,7 +76,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/imbuement_assistant.lua b/data-otservbr-global/npc/imbuement_assistant.lua index 19b8ac95671..4db7b665fe5 100644 --- a/data-otservbr-global/npc/imbuement_assistant.lua +++ b/data-otservbr-global/npc/imbuement_assistant.lua @@ -441,7 +441,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/inkaef.lua b/data-otservbr-global/npc/inkaef.lua index f7d5993f297..cd4eda5bfff 100644 --- a/data-otservbr-global/npc/inkaef.lua +++ b/data-otservbr-global/npc/inkaef.lua @@ -174,7 +174,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/irea.lua b/data-otservbr-global/npc/irea.lua index 0689ac055d0..2e74ed85737 100644 --- a/data-otservbr-global/npc/irea.lua +++ b/data-otservbr-global/npc/irea.lua @@ -70,7 +70,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/iriana.lua b/data-otservbr-global/npc/iriana.lua index 58580e757a4..a0300c247a7 100644 --- a/data-otservbr-global/npc/iriana.lua +++ b/data-otservbr-global/npc/iriana.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/irmana.lua b/data-otservbr-global/npc/irmana.lua index c542f20a90b..e106ef0a10c 100644 --- a/data-otservbr-global/npc/irmana.lua +++ b/data-otservbr-global/npc/irmana.lua @@ -221,7 +221,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ishina.lua b/data-otservbr-global/npc/ishina.lua index 2f3e0e127c2..1fd61200c15 100644 --- a/data-otservbr-global/npc/ishina.lua +++ b/data-otservbr-global/npc/ishina.lua @@ -197,7 +197,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/isika.lua b/data-otservbr-global/npc/isika.lua index 609955212f5..45f0bc43ed5 100644 --- a/data-otservbr-global/npc/isika.lua +++ b/data-otservbr-global/npc/isika.lua @@ -84,7 +84,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/iwan.lua b/data-otservbr-global/npc/iwan.lua index 10945042ac0..2cc24843318 100644 --- a/data-otservbr-global/npc/iwan.lua +++ b/data-otservbr-global/npc/iwan.lua @@ -136,7 +136,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/iwar.lua b/data-otservbr-global/npc/iwar.lua index 5082a43e2ed..d30d368bf5a 100644 --- a/data-otservbr-global/npc/iwar.lua +++ b/data-otservbr-global/npc/iwar.lua @@ -201,7 +201,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/jack_springer.lua b/data-otservbr-global/npc/jack_springer.lua index 3208e2aeb63..73cd671a47d 100644 --- a/data-otservbr-global/npc/jack_springer.lua +++ b/data-otservbr-global/npc/jack_springer.lua @@ -111,7 +111,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/jakahr.lua b/data-otservbr-global/npc/jakahr.lua index 6c35f332723..bf8be59ad4e 100644 --- a/data-otservbr-global/npc/jakahr.lua +++ b/data-otservbr-global/npc/jakahr.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/james.lua b/data-otservbr-global/npc/james.lua index 0efb74d88c4..478ca316432 100644 --- a/data-otservbr-global/npc/james.lua +++ b/data-otservbr-global/npc/james.lua @@ -65,7 +65,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/janz.lua b/data-otservbr-global/npc/janz.lua index ac080f4e876..f0cf97fde09 100644 --- a/data-otservbr-global/npc/janz.lua +++ b/data-otservbr-global/npc/janz.lua @@ -156,7 +156,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/jessica.lua b/data-otservbr-global/npc/jessica.lua index d9a59d11695..37ac18ed54a 100644 --- a/data-otservbr-global/npc/jessica.lua +++ b/data-otservbr-global/npc/jessica.lua @@ -161,7 +161,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/jezzara.lua b/data-otservbr-global/npc/jezzara.lua index 4e32ee5f444..78b803f69e5 100644 --- a/data-otservbr-global/npc/jezzara.lua +++ b/data-otservbr-global/npc/jezzara.lua @@ -85,7 +85,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/john.lua b/data-otservbr-global/npc/john.lua index b6d29e59920..19c6818b8b3 100644 --- a/data-otservbr-global/npc/john.lua +++ b/data-otservbr-global/npc/john.lua @@ -70,7 +70,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/john_bounac.lua b/data-otservbr-global/npc/john_bounac.lua index d1a25e22459..1f528abffe6 100644 --- a/data-otservbr-global/npc/john_bounac.lua +++ b/data-otservbr-global/npc/john_bounac.lua @@ -66,7 +66,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/julian.lua b/data-otservbr-global/npc/julian.lua index 737c0ed491b..9ce2ab0dc9b 100644 --- a/data-otservbr-global/npc/julian.lua +++ b/data-otservbr-global/npc/julian.lua @@ -66,7 +66,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/julius.lua b/data-otservbr-global/npc/julius.lua index 081ac142d80..ac3c660a29b 100644 --- a/data-otservbr-global/npc/julius.lua +++ b/data-otservbr-global/npc/julius.lua @@ -262,7 +262,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/karl.lua b/data-otservbr-global/npc/karl.lua index f2932cabb42..92d6ca95128 100644 --- a/data-otservbr-global/npc/karl.lua +++ b/data-otservbr-global/npc/karl.lua @@ -109,7 +109,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/khanna.lua b/data-otservbr-global/npc/khanna.lua index 6634cccddd5..02fcee7b6d5 100644 --- a/data-otservbr-global/npc/khanna.lua +++ b/data-otservbr-global/npc/khanna.lua @@ -178,7 +178,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/kroox.lua b/data-otservbr-global/npc/kroox.lua index 2c48309377c..020153a27bf 100644 --- a/data-otservbr-global/npc/kroox.lua +++ b/data-otservbr-global/npc/kroox.lua @@ -128,7 +128,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lailene.lua b/data-otservbr-global/npc/lailene.lua index 9716269138e..4542da2ee84 100644 --- a/data-otservbr-global/npc/lailene.lua +++ b/data-otservbr-global/npc/lailene.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/larek.lua b/data-otservbr-global/npc/larek.lua index 54374333064..910e0b403db 100644 --- a/data-otservbr-global/npc/larek.lua +++ b/data-otservbr-global/npc/larek.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/larry.lua b/data-otservbr-global/npc/larry.lua index 8dc7cb99690..25e973c0736 100644 --- a/data-otservbr-global/npc/larry.lua +++ b/data-otservbr-global/npc/larry.lua @@ -31,7 +31,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lector.lua b/data-otservbr-global/npc/lector.lua index db086b4c79e..98c41a9d72e 100644 --- a/data-otservbr-global/npc/lector.lua +++ b/data-otservbr-global/npc/lector.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lee_delle.lua b/data-otservbr-global/npc/lee_delle.lua index e12f14d09ac..f53e4649c88 100644 --- a/data-otservbr-global/npc/lee_delle.lua +++ b/data-otservbr-global/npc/lee_delle.lua @@ -207,7 +207,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/legola.lua b/data-otservbr-global/npc/legola.lua index 63e213a4c5f..ca2eafc3ac1 100644 --- a/data-otservbr-global/npc/legola.lua +++ b/data-otservbr-global/npc/legola.lua @@ -122,7 +122,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/liane.lua b/data-otservbr-global/npc/liane.lua index 8c52d7a5620..b483de917ae 100644 --- a/data-otservbr-global/npc/liane.lua +++ b/data-otservbr-global/npc/liane.lua @@ -109,7 +109,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lily.lua b/data-otservbr-global/npc/lily.lua index 7fc6926f780..fad82e1db11 100644 --- a/data-otservbr-global/npc/lily.lua +++ b/data-otservbr-global/npc/lily.lua @@ -303,7 +303,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/livielle.lua b/data-otservbr-global/npc/livielle.lua index c1882fd52e1..1741ce407ca 100644 --- a/data-otservbr-global/npc/livielle.lua +++ b/data-otservbr-global/npc/livielle.lua @@ -77,7 +77,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lubo.lua b/data-otservbr-global/npc/lubo.lua index 9d94120e6d4..97aea1169da 100644 --- a/data-otservbr-global/npc/lubo.lua +++ b/data-otservbr-global/npc/lubo.lua @@ -193,7 +193,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/luna.lua b/data-otservbr-global/npc/luna.lua index b9ee36fbe96..fe55cce5775 100644 --- a/data-otservbr-global/npc/luna.lua +++ b/data-otservbr-global/npc/luna.lua @@ -102,7 +102,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lurik.lua b/data-otservbr-global/npc/lurik.lua index e9b0a413fe1..b9ea973f6ed 100644 --- a/data-otservbr-global/npc/lurik.lua +++ b/data-otservbr-global/npc/lurik.lua @@ -162,7 +162,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/lyonel.lua b/data-otservbr-global/npc/lyonel.lua index 7ef86f4a77e..1111d8711b2 100644 --- a/data-otservbr-global/npc/lyonel.lua +++ b/data-otservbr-global/npc/lyonel.lua @@ -65,7 +65,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/malunga.lua b/data-otservbr-global/npc/malunga.lua index c7ebeb451a0..721743b73ce 100644 --- a/data-otservbr-global/npc/malunga.lua +++ b/data-otservbr-global/npc/malunga.lua @@ -139,7 +139,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/maria.lua b/data-otservbr-global/npc/maria.lua index 4da514e978a..7c63e11ac02 100644 --- a/data-otservbr-global/npc/maria.lua +++ b/data-otservbr-global/npc/maria.lua @@ -72,7 +72,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/maro.lua b/data-otservbr-global/npc/maro.lua index d956306e87e..7ba549262f7 100644 --- a/data-otservbr-global/npc/maro.lua +++ b/data-otservbr-global/npc/maro.lua @@ -90,7 +90,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/maryza.lua b/data-otservbr-global/npc/maryza.lua index 65dea8c1785..44901801fc4 100644 --- a/data-otservbr-global/npc/maryza.lua +++ b/data-otservbr-global/npc/maryza.lua @@ -105,7 +105,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/maun.lua b/data-otservbr-global/npc/maun.lua index a3e00a17e82..9e57ca6b862 100644 --- a/data-otservbr-global/npc/maun.lua +++ b/data-otservbr-global/npc/maun.lua @@ -134,7 +134,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mehkesh.lua b/data-otservbr-global/npc/mehkesh.lua index 6b5fd588212..509b4cd8080 100644 --- a/data-otservbr-global/npc/mehkesh.lua +++ b/data-otservbr-global/npc/mehkesh.lua @@ -86,7 +86,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/melfar.lua b/data-otservbr-global/npc/melfar.lua index 09654f76791..5decb928643 100644 --- a/data-otservbr-global/npc/melfar.lua +++ b/data-otservbr-global/npc/melfar.lua @@ -32,7 +32,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/memech.lua b/data-otservbr-global/npc/memech.lua index 4cdf86985ac..f7b3f9f9498 100644 --- a/data-otservbr-global/npc/memech.lua +++ b/data-otservbr-global/npc/memech.lua @@ -148,7 +148,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/messenger_of_santa.lua b/data-otservbr-global/npc/messenger_of_santa.lua index ef655ab11dd..e61b89218b5 100644 --- a/data-otservbr-global/npc/messenger_of_santa.lua +++ b/data-otservbr-global/npc/messenger_of_santa.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mirabell.lua b/data-otservbr-global/npc/mirabell.lua index 3036e9cef91..5bb5070245a 100644 --- a/data-otservbr-global/npc/mirabell.lua +++ b/data-otservbr-global/npc/mirabell.lua @@ -141,7 +141,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/miraia.lua b/data-otservbr-global/npc/miraia.lua index f59edc8658a..00101154766 100644 --- a/data-otservbr-global/npc/miraia.lua +++ b/data-otservbr-global/npc/miraia.lua @@ -212,7 +212,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mordecai.lua b/data-otservbr-global/npc/mordecai.lua index 36b3c5fe548..60063a423ba 100644 --- a/data-otservbr-global/npc/mordecai.lua +++ b/data-otservbr-global/npc/mordecai.lua @@ -159,7 +159,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/morpel.lua b/data-otservbr-global/npc/morpel.lua index 8e68d1dea45..3f58c58ae93 100644 --- a/data-otservbr-global/npc/morpel.lua +++ b/data-otservbr-global/npc/morpel.lua @@ -139,7 +139,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mortimer.lua b/data-otservbr-global/npc/mortimer.lua index 026c5d5595d..79c8d734640 100644 --- a/data-otservbr-global/npc/mortimer.lua +++ b/data-otservbr-global/npc/mortimer.lua @@ -688,7 +688,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mugluf.lua b/data-otservbr-global/npc/mugluf.lua index 09ac5148c2f..3fe25c7fd79 100644 --- a/data-otservbr-global/npc/mugluf.lua +++ b/data-otservbr-global/npc/mugluf.lua @@ -64,7 +64,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/mugruu.lua b/data-otservbr-global/npc/mugruu.lua index 5b55d8d10dc..7bf2e2efd08 100644 --- a/data-otservbr-global/npc/mugruu.lua +++ b/data-otservbr-global/npc/mugruu.lua @@ -85,7 +85,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nah_bob.lua b/data-otservbr-global/npc/nah_bob.lua index 30d4a06e2b1..e63fffef7ba 100644 --- a/data-otservbr-global/npc/nah_bob.lua +++ b/data-otservbr-global/npc/nah_bob.lua @@ -141,7 +141,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nelliem.lua b/data-otservbr-global/npc/nelliem.lua index bb5b4f3dcb6..fb5816563fe 100644 --- a/data-otservbr-global/npc/nelliem.lua +++ b/data-otservbr-global/npc/nelliem.lua @@ -76,7 +76,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nelly.lua b/data-otservbr-global/npc/nelly.lua index c0e84b3d904..8c3b123c47a 100644 --- a/data-otservbr-global/npc/nelly.lua +++ b/data-otservbr-global/npc/nelly.lua @@ -165,7 +165,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nezil.lua b/data-otservbr-global/npc/nezil.lua index 394c2fb13a9..5bb7cd4f5fb 100644 --- a/data-otservbr-global/npc/nezil.lua +++ b/data-otservbr-global/npc/nezil.lua @@ -87,7 +87,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nicholas.lua b/data-otservbr-global/npc/nicholas.lua index f91807784a3..bb8c45a9fa2 100644 --- a/data-otservbr-global/npc/nicholas.lua +++ b/data-otservbr-global/npc/nicholas.lua @@ -157,7 +157,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nienna.lua b/data-otservbr-global/npc/nienna.lua index 207b8ea356c..ab70992e7e2 100644 --- a/data-otservbr-global/npc/nienna.lua +++ b/data-otservbr-global/npc/nienna.lua @@ -82,7 +82,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ninos.lua b/data-otservbr-global/npc/ninos.lua index 3bfc131736d..d55c55939d8 100644 --- a/data-otservbr-global/npc/ninos.lua +++ b/data-otservbr-global/npc/ninos.lua @@ -98,7 +98,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nipuna.lua b/data-otservbr-global/npc/nipuna.lua index a3feb9a31ad..aa9d74cec52 100644 --- a/data-otservbr-global/npc/nipuna.lua +++ b/data-otservbr-global/npc/nipuna.lua @@ -169,7 +169,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/norbert.lua b/data-otservbr-global/npc/norbert.lua index b543ef850e4..cd2fb6327c4 100644 --- a/data-otservbr-global/npc/norbert.lua +++ b/data-otservbr-global/npc/norbert.lua @@ -66,7 +66,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/norma.lua b/data-otservbr-global/npc/norma.lua index 46919ab8b69..9842a07ebee 100644 --- a/data-otservbr-global/npc/norma.lua +++ b/data-otservbr-global/npc/norma.lua @@ -214,7 +214,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/nydala.lua b/data-otservbr-global/npc/nydala.lua index 7d6ae03a0b5..b7db88f0baa 100644 --- a/data-otservbr-global/npc/nydala.lua +++ b/data-otservbr-global/npc/nydala.lua @@ -163,7 +163,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/obi.lua b/data-otservbr-global/npc/obi.lua index bd8a675815c..d63995619da 100644 --- a/data-otservbr-global/npc/obi.lua +++ b/data-otservbr-global/npc/obi.lua @@ -156,7 +156,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/odemara.lua b/data-otservbr-global/npc/odemara.lua index 544396e547a..bcfe94bf8eb 100644 --- a/data-otservbr-global/npc/odemara.lua +++ b/data-otservbr-global/npc/odemara.lua @@ -133,7 +133,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/oiriz.lua b/data-otservbr-global/npc/oiriz.lua index a8529294420..3a5d3a6b411 100644 --- a/data-otservbr-global/npc/oiriz.lua +++ b/data-otservbr-global/npc/oiriz.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/oldrak.lua b/data-otservbr-global/npc/oldrak.lua index 4803575d9d6..ff5860fa322 100644 --- a/data-otservbr-global/npc/oldrak.lua +++ b/data-otservbr-global/npc/oldrak.lua @@ -32,7 +32,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/olrik.lua b/data-otservbr-global/npc/olrik.lua index acc84db4584..42886e71318 100644 --- a/data-otservbr-global/npc/olrik.lua +++ b/data-otservbr-global/npc/olrik.lua @@ -100,7 +100,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/omur.lua b/data-otservbr-global/npc/omur.lua index c13732b2e84..8d869c2eca0 100644 --- a/data-otservbr-global/npc/omur.lua +++ b/data-otservbr-global/npc/omur.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/orockle.lua b/data-otservbr-global/npc/orockle.lua index 96cc4203556..373a86e2ad2 100644 --- a/data-otservbr-global/npc/orockle.lua +++ b/data-otservbr-global/npc/orockle.lua @@ -88,7 +88,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/peggy.lua b/data-otservbr-global/npc/peggy.lua index e97cfc63ed0..6c67820332a 100644 --- a/data-otservbr-global/npc/peggy.lua +++ b/data-otservbr-global/npc/peggy.lua @@ -156,7 +156,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/pemaret.lua b/data-otservbr-global/npc/pemaret.lua index 79876e466ee..ab8ea5ecc62 100644 --- a/data-otservbr-global/npc/pemaret.lua +++ b/data-otservbr-global/npc/pemaret.lua @@ -120,7 +120,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/penny.lua b/data-otservbr-global/npc/penny.lua index 97a5de4899f..cc20d497bf5 100644 --- a/data-otservbr-global/npc/penny.lua +++ b/data-otservbr-global/npc/penny.lua @@ -80,7 +80,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/perac.lua b/data-otservbr-global/npc/perac.lua index 408d51daecc..1cc368953de 100644 --- a/data-otservbr-global/npc/perac.lua +++ b/data-otservbr-global/npc/perac.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/perod.lua b/data-otservbr-global/npc/perod.lua index a213716efa9..b0bc5e7a57d 100644 --- a/data-otservbr-global/npc/perod.lua +++ b/data-otservbr-global/npc/perod.lua @@ -159,7 +159,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/pompan.lua b/data-otservbr-global/npc/pompan.lua index f84a7b48906..19fed2f7ed0 100644 --- a/data-otservbr-global/npc/pompan.lua +++ b/data-otservbr-global/npc/pompan.lua @@ -89,7 +89,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/pugwah.lua b/data-otservbr-global/npc/pugwah.lua index 4a885648fe0..9e9007a7667 100644 --- a/data-otservbr-global/npc/pugwah.lua +++ b/data-otservbr-global/npc/pugwah.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/quero.lua b/data-otservbr-global/npc/quero.lua index 86fd8349a86..7932b8c065f 100644 --- a/data-otservbr-global/npc/quero.lua +++ b/data-otservbr-global/npc/quero.lua @@ -64,7 +64,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rabaz.lua b/data-otservbr-global/npc/rabaz.lua index ea4ab74eba0..3e47da6a5ca 100644 --- a/data-otservbr-global/npc/rabaz.lua +++ b/data-otservbr-global/npc/rabaz.lua @@ -194,7 +194,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rachel.lua b/data-otservbr-global/npc/rachel.lua index 6372c630bfd..3206c99864a 100644 --- a/data-otservbr-global/npc/rachel.lua +++ b/data-otservbr-global/npc/rachel.lua @@ -177,7 +177,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rafzan.lua b/data-otservbr-global/npc/rafzan.lua index 4484e652c54..9ab44019f04 100644 --- a/data-otservbr-global/npc/rafzan.lua +++ b/data-otservbr-global/npc/rafzan.lua @@ -96,7 +96,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ramina.lua b/data-otservbr-global/npc/ramina.lua index 2990e802d2f..b115ca4b6f9 100644 --- a/data-otservbr-global/npc/ramina.lua +++ b/data-otservbr-global/npc/ramina.lua @@ -73,7 +73,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rashid.lua b/data-otservbr-global/npc/rashid.lua index ac7343722b8..7c719f0c655 100644 --- a/data-otservbr-global/npc/rashid.lua +++ b/data-otservbr-global/npc/rashid.lua @@ -439,7 +439,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rashid_custom.lua b/data-otservbr-global/npc/rashid_custom.lua index b7b09cbaf41..421427ee795 100644 --- a/data-otservbr-global/npc/rashid_custom.lua +++ b/data-otservbr-global/npc/rashid_custom.lua @@ -441,7 +441,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ray.lua b/data-otservbr-global/npc/ray.lua index 948b0e79f8b..aaae5d40c25 100644 --- a/data-otservbr-global/npc/ray.lua +++ b/data-otservbr-global/npc/ray.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/red_lilly.lua b/data-otservbr-global/npc/red_lilly.lua index d6356714954..eb91a4aa813 100644 --- a/data-otservbr-global/npc/red_lilly.lua +++ b/data-otservbr-global/npc/red_lilly.lua @@ -142,7 +142,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/redward.lua b/data-otservbr-global/npc/redward.lua index d3abec89a24..78fb1c749fb 100644 --- a/data-otservbr-global/npc/redward.lua +++ b/data-otservbr-global/npc/redward.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/richard.lua b/data-otservbr-global/npc/richard.lua index f3998786dae..d38b6c93b0b 100644 --- a/data-otservbr-global/npc/richard.lua +++ b/data-otservbr-global/npc/richard.lua @@ -49,7 +49,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/robert.lua b/data-otservbr-global/npc/robert.lua index 7b9c50d6a9c..794d1bcb122 100644 --- a/data-otservbr-global/npc/robert.lua +++ b/data-otservbr-global/npc/robert.lua @@ -164,7 +164,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rock_in_a_hard_place.lua b/data-otservbr-global/npc/rock_in_a_hard_place.lua index c4850ad6c96..64ee5e08174 100644 --- a/data-otservbr-global/npc/rock_in_a_hard_place.lua +++ b/data-otservbr-global/npc/rock_in_a_hard_place.lua @@ -315,7 +315,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rodney.lua b/data-otservbr-global/npc/rodney.lua index cdf8f949211..9adc859e493 100644 --- a/data-otservbr-global/npc/rodney.lua +++ b/data-otservbr-global/npc/rodney.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/romella.lua b/data-otservbr-global/npc/romella.lua index 03e3a4b596b..50caf76084e 100644 --- a/data-otservbr-global/npc/romella.lua +++ b/data-otservbr-global/npc/romella.lua @@ -128,7 +128,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/romir.lua b/data-otservbr-global/npc/romir.lua index 4e950d46f5d..11ea038d266 100644 --- a/data-otservbr-global/npc/romir.lua +++ b/data-otservbr-global/npc/romir.lua @@ -157,7 +157,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rose.lua b/data-otservbr-global/npc/rose.lua index 294a595a8ca..d8be4f8c59e 100644 --- a/data-otservbr-global/npc/rose.lua +++ b/data-otservbr-global/npc/rose.lua @@ -98,7 +98,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rowenna.lua b/data-otservbr-global/npc/rowenna.lua index 36899e2eced..1286e52c5ff 100644 --- a/data-otservbr-global/npc/rowenna.lua +++ b/data-otservbr-global/npc/rowenna.lua @@ -113,7 +113,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/rudolph.lua b/data-otservbr-global/npc/rudolph.lua index 57459be7222..ffbe381ddb2 100644 --- a/data-otservbr-global/npc/rudolph.lua +++ b/data-otservbr-global/npc/rudolph.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/runtel_blackspark.lua b/data-otservbr-global/npc/runtel_blackspark.lua index 82b86acaeed..0722946c735 100644 --- a/data-otservbr-global/npc/runtel_blackspark.lua +++ b/data-otservbr-global/npc/runtel_blackspark.lua @@ -105,7 +105,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sam.lua b/data-otservbr-global/npc/sam.lua index 225752f03ce..cd3a517c147 100644 --- a/data-otservbr-global/npc/sam.lua +++ b/data-otservbr-global/npc/sam.lua @@ -244,7 +244,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sandra.lua b/data-otservbr-global/npc/sandra.lua index 566e627a53f..69bc18a17b7 100644 --- a/data-otservbr-global/npc/sandra.lua +++ b/data-otservbr-global/npc/sandra.lua @@ -203,7 +203,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sarina.lua b/data-otservbr-global/npc/sarina.lua index bbb91887289..3429b5f6d35 100644 --- a/data-otservbr-global/npc/sarina.lua +++ b/data-otservbr-global/npc/sarina.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/satsu.lua b/data-otservbr-global/npc/satsu.lua index 964a55d5992..d925e5b5d37 100644 --- a/data-otservbr-global/npc/satsu.lua +++ b/data-otservbr-global/npc/satsu.lua @@ -70,7 +70,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/scott.lua b/data-otservbr-global/npc/scott.lua index 09e52cf9074..8068ae2f6dd 100644 --- a/data-otservbr-global/npc/scott.lua +++ b/data-otservbr-global/npc/scott.lua @@ -69,7 +69,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/serafin.lua b/data-otservbr-global/npc/serafin.lua index 95462c3182f..fe6a57ca249 100644 --- a/data-otservbr-global/npc/serafin.lua +++ b/data-otservbr-global/npc/serafin.lua @@ -102,7 +102,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sessek.lua b/data-otservbr-global/npc/sessek.lua index 6ef704d11df..ee7f56a2536 100644 --- a/data-otservbr-global/npc/sessek.lua +++ b/data-otservbr-global/npc/sessek.lua @@ -67,7 +67,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/shanar.lua b/data-otservbr-global/npc/shanar.lua index 2a6e9d9f23b..157a27000ac 100644 --- a/data-otservbr-global/npc/shanar.lua +++ b/data-otservbr-global/npc/shanar.lua @@ -123,7 +123,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sherry_mcronald.lua b/data-otservbr-global/npc/sherry_mcronald.lua index 8cc27797e71..58afd1977e9 100644 --- a/data-otservbr-global/npc/sherry_mcronald.lua +++ b/data-otservbr-global/npc/sherry_mcronald.lua @@ -75,7 +75,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/shiantis.lua b/data-otservbr-global/npc/shiantis.lua index 0408caf8522..08493c2cf2e 100644 --- a/data-otservbr-global/npc/shiantis.lua +++ b/data-otservbr-global/npc/shiantis.lua @@ -151,7 +151,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/shiriel.lua b/data-otservbr-global/npc/shiriel.lua index 3019f8b6521..546bb26447b 100644 --- a/data-otservbr-global/npc/shiriel.lua +++ b/data-otservbr-global/npc/shiriel.lua @@ -150,7 +150,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/siflind.lua b/data-otservbr-global/npc/siflind.lua index 4abd935ce0b..5ac37322855 100644 --- a/data-otservbr-global/npc/siflind.lua +++ b/data-otservbr-global/npc/siflind.lua @@ -283,7 +283,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sigurd.lua b/data-otservbr-global/npc/sigurd.lua index 146cec25b98..cca63a33e3e 100644 --- a/data-otservbr-global/npc/sigurd.lua +++ b/data-otservbr-global/npc/sigurd.lua @@ -147,7 +147,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/silas.lua b/data-otservbr-global/npc/silas.lua index 7b0cd216c49..87271b1c8f3 100644 --- a/data-otservbr-global/npc/silas.lua +++ b/data-otservbr-global/npc/silas.lua @@ -85,7 +85,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/simon_the_beggar.lua b/data-otservbr-global/npc/simon_the_beggar.lua index e7acdf99800..84cf524075b 100644 --- a/data-otservbr-global/npc/simon_the_beggar.lua +++ b/data-otservbr-global/npc/simon_the_beggar.lua @@ -32,7 +32,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/snake_eye.lua b/data-otservbr-global/npc/snake_eye.lua index ef2bddd8c9f..4eade5af763 100644 --- a/data-otservbr-global/npc/snake_eye.lua +++ b/data-otservbr-global/npc/snake_eye.lua @@ -89,7 +89,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/soilance.lua b/data-otservbr-global/npc/soilance.lua index 94cc241bc6f..4474f979744 100644 --- a/data-otservbr-global/npc/soilance.lua +++ b/data-otservbr-global/npc/soilance.lua @@ -62,7 +62,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/squeekquek.lua b/data-otservbr-global/npc/squeekquek.lua index 6bd0691383d..5f6217f538b 100644 --- a/data-otservbr-global/npc/squeekquek.lua +++ b/data-otservbr-global/npc/squeekquek.lua @@ -37,7 +37,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/stan.lua b/data-otservbr-global/npc/stan.lua index dfe354079eb..4769e9c0080 100644 --- a/data-otservbr-global/npc/stan.lua +++ b/data-otservbr-global/npc/stan.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/sundara.lua b/data-otservbr-global/npc/sundara.lua index b2bae1d8fbd..c1364240fa9 100644 --- a/data-otservbr-global/npc/sundara.lua +++ b/data-otservbr-global/npc/sundara.lua @@ -173,7 +173,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/swolt.lua b/data-otservbr-global/npc/swolt.lua index e6b9ad7cff7..5d8a7b48830 100644 --- a/data-otservbr-global/npc/swolt.lua +++ b/data-otservbr-global/npc/swolt.lua @@ -93,7 +93,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/taegen.lua b/data-otservbr-global/npc/taegen.lua index 0b3d7697ba5..5df29712232 100644 --- a/data-otservbr-global/npc/taegen.lua +++ b/data-otservbr-global/npc/taegen.lua @@ -92,7 +92,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/talila.lua b/data-otservbr-global/npc/talila.lua index 3e96fc4ed39..c3d374ee1fb 100644 --- a/data-otservbr-global/npc/talila.lua +++ b/data-otservbr-global/npc/talila.lua @@ -216,7 +216,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/talphion.lua b/data-otservbr-global/npc/talphion.lua index 0902aee6371..9a7ec7ae7e6 100644 --- a/data-otservbr-global/npc/talphion.lua +++ b/data-otservbr-global/npc/talphion.lua @@ -94,7 +94,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tamoril.lua b/data-otservbr-global/npc/tamoril.lua index 164cc36a8c6..654355d9be5 100644 --- a/data-otservbr-global/npc/tamoril.lua +++ b/data-otservbr-global/npc/tamoril.lua @@ -113,7 +113,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tanaro.lua b/data-otservbr-global/npc/tanaro.lua index 147e11522cf..bf43db15d79 100644 --- a/data-otservbr-global/npc/tanaro.lua +++ b/data-otservbr-global/npc/tanaro.lua @@ -74,7 +74,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tandros.lua b/data-otservbr-global/npc/tandros.lua index 40c0216e8cf..e25ba65f2a3 100644 --- a/data-otservbr-global/npc/tandros.lua +++ b/data-otservbr-global/npc/tandros.lua @@ -160,7 +160,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tarun.lua b/data-otservbr-global/npc/tarun.lua index e07b7b92346..31f56602f81 100644 --- a/data-otservbr-global/npc/tarun.lua +++ b/data-otservbr-global/npc/tarun.lua @@ -85,7 +85,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/telas.lua b/data-otservbr-global/npc/telas.lua index 1e62a8eae91..6c0690fc5c8 100644 --- a/data-otservbr-global/npc/telas.lua +++ b/data-otservbr-global/npc/telas.lua @@ -137,7 +137,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tesha.lua b/data-otservbr-global/npc/tesha.lua index 0dc4a253b30..95e31f97cb7 100644 --- a/data-otservbr-global/npc/tesha.lua +++ b/data-otservbr-global/npc/tesha.lua @@ -148,7 +148,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tezila.lua b/data-otservbr-global/npc/tezila.lua index 853816e90eb..dab92c807f5 100644 --- a/data-otservbr-global/npc/tezila.lua +++ b/data-otservbr-global/npc/tezila.lua @@ -125,7 +125,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/the_librarian.lua b/data-otservbr-global/npc/the_librarian.lua index 16d1226d297..45b786342de 100644 --- a/data-otservbr-global/npc/the_librarian.lua +++ b/data-otservbr-global/npc/the_librarian.lua @@ -109,7 +109,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/the_lootmonger.lua b/data-otservbr-global/npc/the_lootmonger.lua index 8eb8e41b54e..e0c2b03da32 100644 --- a/data-otservbr-global/npc/the_lootmonger.lua +++ b/data-otservbr-global/npc/the_lootmonger.lua @@ -79,7 +79,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/thomas.lua b/data-otservbr-global/npc/thomas.lua index 1f8f5b0d353..ed20c24b02e 100644 --- a/data-otservbr-global/npc/thomas.lua +++ b/data-otservbr-global/npc/thomas.lua @@ -75,7 +75,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/timur.lua b/data-otservbr-global/npc/timur.lua index 18b225587a6..f2a23509601 100644 --- a/data-otservbr-global/npc/timur.lua +++ b/data-otservbr-global/npc/timur.lua @@ -100,7 +100,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/todd.lua b/data-otservbr-global/npc/todd.lua index c3d3fea7065..25c8cb98813 100644 --- a/data-otservbr-global/npc/todd.lua +++ b/data-otservbr-global/npc/todd.lua @@ -97,7 +97,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tokel.lua b/data-otservbr-global/npc/tokel.lua index 2602065da91..b70ce6ba5f7 100644 --- a/data-otservbr-global/npc/tokel.lua +++ b/data-otservbr-global/npc/tokel.lua @@ -64,7 +64,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tom.lua b/data-otservbr-global/npc/tom.lua index 413d3eda230..c278a728d77 100644 --- a/data-otservbr-global/npc/tom.lua +++ b/data-otservbr-global/npc/tom.lua @@ -290,7 +290,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/topsy.lua b/data-otservbr-global/npc/topsy.lua index b7b68e6a71e..395fd23cbeb 100644 --- a/data-otservbr-global/npc/topsy.lua +++ b/data-otservbr-global/npc/topsy.lua @@ -183,7 +183,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/tothdral.lua b/data-otservbr-global/npc/tothdral.lua index c2b33e18db3..494115a1caf 100644 --- a/data-otservbr-global/npc/tothdral.lua +++ b/data-otservbr-global/npc/tothdral.lua @@ -69,7 +69,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/turvy.lua b/data-otservbr-global/npc/turvy.lua index 889d4583b27..b579efb9c75 100644 --- a/data-otservbr-global/npc/turvy.lua +++ b/data-otservbr-global/npc/turvy.lua @@ -148,7 +148,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ukea.lua b/data-otservbr-global/npc/ukea.lua index ce5d8086150..33ec0ef7a1b 100644 --- a/data-otservbr-global/npc/ukea.lua +++ b/data-otservbr-global/npc/ukea.lua @@ -161,7 +161,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ulrik.lua b/data-otservbr-global/npc/ulrik.lua index 5a7d35c67e7..8a7cb33f11a 100644 --- a/data-otservbr-global/npc/ulrik.lua +++ b/data-otservbr-global/npc/ulrik.lua @@ -131,7 +131,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/urkalio.lua b/data-otservbr-global/npc/urkalio.lua index 31330195c82..dbcbbc238b1 100644 --- a/data-otservbr-global/npc/urkalio.lua +++ b/data-otservbr-global/npc/urkalio.lua @@ -69,7 +69,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/ustan.lua b/data-otservbr-global/npc/ustan.lua index bc18b39fdef..b7c037ae6e9 100644 --- a/data-otservbr-global/npc/ustan.lua +++ b/data-otservbr-global/npc/ustan.lua @@ -101,7 +101,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/uzgod.lua b/data-otservbr-global/npc/uzgod.lua index 49f1f59f636..698ad8ea579 100644 --- a/data-otservbr-global/npc/uzgod.lua +++ b/data-otservbr-global/npc/uzgod.lua @@ -203,7 +203,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/valentina.lua b/data-otservbr-global/npc/valentina.lua index 52d54447c8a..006495432fa 100644 --- a/data-otservbr-global/npc/valentina.lua +++ b/data-otservbr-global/npc/valentina.lua @@ -45,7 +45,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/valindara.lua b/data-otservbr-global/npc/valindara.lua index 0a9efc5593e..69655358dfe 100644 --- a/data-otservbr-global/npc/valindara.lua +++ b/data-otservbr-global/npc/valindara.lua @@ -221,7 +221,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/velvet.lua b/data-otservbr-global/npc/velvet.lua index f5a19f9c3e3..b8368a19349 100644 --- a/data-otservbr-global/npc/velvet.lua +++ b/data-otservbr-global/npc/velvet.lua @@ -83,7 +83,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/vera.lua b/data-otservbr-global/npc/vera.lua index a4112e9466e..609ab307d91 100644 --- a/data-otservbr-global/npc/vera.lua +++ b/data-otservbr-global/npc/vera.lua @@ -159,7 +159,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/victor.lua b/data-otservbr-global/npc/victor.lua index 81718da1382..e0a57424abe 100644 --- a/data-otservbr-global/npc/victor.lua +++ b/data-otservbr-global/npc/victor.lua @@ -60,7 +60,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/vincent.lua b/data-otservbr-global/npc/vincent.lua index eb2dcec6956..58f933670f7 100644 --- a/data-otservbr-global/npc/vincent.lua +++ b/data-otservbr-global/npc/vincent.lua @@ -86,7 +86,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/wally.lua b/data-otservbr-global/npc/wally.lua index 7ce470e14cd..6c86eee523d 100644 --- a/data-otservbr-global/npc/wally.lua +++ b/data-otservbr-global/npc/wally.lua @@ -63,7 +63,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/willard.lua b/data-otservbr-global/npc/willard.lua index 75c6d1173bd..f35d20ad231 100644 --- a/data-otservbr-global/npc/willard.lua +++ b/data-otservbr-global/npc/willard.lua @@ -207,7 +207,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/willie.lua b/data-otservbr-global/npc/willie.lua index 1f7197099af..d4936298ba9 100644 --- a/data-otservbr-global/npc/willie.lua +++ b/data-otservbr-global/npc/willie.lua @@ -38,7 +38,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/xed.lua b/data-otservbr-global/npc/xed.lua index 2d76c2cfca8..c1eded467e3 100644 --- a/data-otservbr-global/npc/xed.lua +++ b/data-otservbr-global/npc/xed.lua @@ -68,7 +68,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/xelvar.lua b/data-otservbr-global/npc/xelvar.lua index 9c93ff40724..9180dee6f3b 100644 --- a/data-otservbr-global/npc/xelvar.lua +++ b/data-otservbr-global/npc/xelvar.lua @@ -133,7 +133,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/xodet.lua b/data-otservbr-global/npc/xodet.lua index 8b9c7bc453a..2d8832bd964 100644 --- a/data-otservbr-global/npc/xodet.lua +++ b/data-otservbr-global/npc/xodet.lua @@ -178,7 +178,7 @@ end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yaman.lua b/data-otservbr-global/npc/yaman.lua index 07d335fab70..3c66cd888e5 100644 --- a/data-otservbr-global/npc/yaman.lua +++ b/data-otservbr-global/npc/yaman.lua @@ -168,7 +168,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yana.lua b/data-otservbr-global/npc/yana.lua index 40032a3f4c4..d5d110d75f7 100644 --- a/data-otservbr-global/npc/yana.lua +++ b/data-otservbr-global/npc/yana.lua @@ -49,7 +49,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yanni.lua b/data-otservbr-global/npc/yanni.lua index 6f81f88f9c7..588e9483804 100644 --- a/data-otservbr-global/npc/yanni.lua +++ b/data-otservbr-global/npc/yanni.lua @@ -94,7 +94,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yasir.lua b/data-otservbr-global/npc/yasir.lua index d924cd5a31d..d576b611e53 100644 --- a/data-otservbr-global/npc/yasir.lua +++ b/data-otservbr-global/npc/yasir.lua @@ -653,7 +653,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yoem.lua b/data-otservbr-global/npc/yoem.lua index 885e3bbef52..0d1725580a4 100644 --- a/data-otservbr-global/npc/yoem.lua +++ b/data-otservbr-global/npc/yoem.lua @@ -167,7 +167,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yonan.lua b/data-otservbr-global/npc/yonan.lua index c0faddfda2f..44dbb8dd83c 100644 --- a/data-otservbr-global/npc/yonan.lua +++ b/data-otservbr-global/npc/yonan.lua @@ -97,7 +97,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/yulas.lua b/data-otservbr-global/npc/yulas.lua index 194d10916c7..911c56b45cf 100644 --- a/data-otservbr-global/npc/yulas.lua +++ b/data-otservbr-global/npc/yulas.lua @@ -65,7 +65,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/zaidal.lua b/data-otservbr-global/npc/zaidal.lua index 798989e2b32..ed119fed9db 100644 --- a/data-otservbr-global/npc/zaidal.lua +++ b/data-otservbr-global/npc/zaidal.lua @@ -69,7 +69,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/zethra.lua b/data-otservbr-global/npc/zethra.lua index 850e5467f93..e3961fed94e 100644 --- a/data-otservbr-global/npc/zethra.lua +++ b/data-otservbr-global/npc/zethra.lua @@ -76,7 +76,7 @@ end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) diff --git a/data-otservbr-global/npc/zora.lua b/data-otservbr-global/npc/zora.lua index 4c526769b4e..f9b3a458d52 100644 --- a/data-otservbr-global/npc/zora.lua +++ b/data-otservbr-global/npc/zora.lua @@ -126,7 +126,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end diff --git a/data-otservbr-global/npc/zuma_magehide.lua b/data-otservbr-global/npc/zuma_magehide.lua index 924959a513e..3633331a0bf 100644 --- a/data-otservbr-global/npc/zuma_magehide.lua +++ b/data-otservbr-global/npc/zuma_magehide.lua @@ -79,7 +79,7 @@ npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBac end -- On sell npc shop message npcType.onSellItem = function(npc, player, itemId, subtype, amount, ignore, name, totalCost) - player:sendTextMessage(MESSAGE_LOOK, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) + player:sendTextMessage(MESSAGE_TRADE, string.format("Sold %ix %s for %i gold.", amount, name, totalCost)) end -- On check npc shop message (look item) npcType.onCheckItem = function(npc, player, clientId, subType) end From eea0fc858b04574e61bbc0822960714ee828dfc2 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Feb 2024 14:10:41 -0300 Subject: [PATCH 03/11] refactor: jean pierre foods (#2320) Close #2122 --- .../actions/other/jean_pierre_food.lua | 224 ------------------ .../scripts/movements/others/drowning.lua | 36 --- .../actions/items/banana_chocolate_shake.lua | 18 ++ data/scripts/actions/items/blessed_steak.lua | 19 ++ data/scripts/actions/items/carrot_cake.lua | 26 ++ .../actions/items/coconut_shrimp_bake.lua | 31 +++ .../actions/items/demonic_candy_ball.lua | 72 ++++++ .../actions/items/filled_jalapeno_peppers.lua | 23 ++ data/scripts/actions/items/hireling_foods.lua | 4 +- .../actions/items/hydra_tongue_salad.lua | 35 +++ .../actions/items/northern_fishburger.lua | 26 ++ .../actions/items/pot_of_blackjack.lua | 35 +++ data/scripts/actions/items/potions.lua | 6 +- .../actions/items/roasted_dragon_wings.lua | 26 ++ data/scripts/actions/items/rotworm_stew.lua | 19 ++ .../actions/items/sweet_mangonaise_elixir.lua | 53 +++++ .../items/tropical_fried_terrorbird.lua | 26 ++ .../actions/items/veggie_casserole.lua | 26 ++ .../scripts/movements/drowning.lua | 31 ++- .../functions/core/game/global_functions.cpp | 18 -- .../functions/core/game/global_functions.hpp | 2 - 21 files changed, 465 insertions(+), 291 deletions(-) delete mode 100644 data-otservbr-global/scripts/actions/other/jean_pierre_food.lua delete mode 100644 data-otservbr-global/scripts/movements/others/drowning.lua create mode 100644 data/scripts/actions/items/banana_chocolate_shake.lua create mode 100644 data/scripts/actions/items/blessed_steak.lua create mode 100644 data/scripts/actions/items/carrot_cake.lua create mode 100644 data/scripts/actions/items/coconut_shrimp_bake.lua create mode 100644 data/scripts/actions/items/demonic_candy_ball.lua create mode 100644 data/scripts/actions/items/filled_jalapeno_peppers.lua create mode 100644 data/scripts/actions/items/hydra_tongue_salad.lua create mode 100644 data/scripts/actions/items/northern_fishburger.lua create mode 100644 data/scripts/actions/items/pot_of_blackjack.lua create mode 100644 data/scripts/actions/items/roasted_dragon_wings.lua create mode 100644 data/scripts/actions/items/rotworm_stew.lua create mode 100644 data/scripts/actions/items/sweet_mangonaise_elixir.lua create mode 100644 data/scripts/actions/items/tropical_fried_terrorbird.lua create mode 100644 data/scripts/actions/items/veggie_casserole.lua rename {data-canary => data}/scripts/movements/drowning.lua (50%) diff --git a/data-otservbr-global/scripts/actions/other/jean_pierre_food.lua b/data-otservbr-global/scripts/actions/other/jean_pierre_food.lua deleted file mode 100644 index 71627cfc61c..00000000000 --- a/data-otservbr-global/scripts/actions/other/jean_pierre_food.lua +++ /dev/null @@ -1,224 +0,0 @@ -local conditions = { - CONDITION_POISON, - CONDITION_FIRE, - CONDITION_ENERGY, - CONDITION_PARALYZE, - CONDITION_DRUNK, - CONDITION_DROWN, - CONDITION_FREEZING, - CONDITION_DAZZLED, - CONDITION_CURSED, - CONDITION_BLEEDING, -} -local condition_shield = Condition(CONDITION_ATTRIBUTES) -condition_shield:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreDefense) -condition_shield:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) -condition_shield:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_shield:setParameter(CONDITION_PARAM_SKILL_SHIELD, 10) -condition_shield:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -local condition_ml = Condition(CONDITION_ATTRIBUTES) -condition_ml:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreMagic) -condition_ml:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) -condition_ml:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_ml:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 5) -condition_ml:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -local condition_melee = Condition(CONDITION_ATTRIBUTES) -condition_melee:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreMelee) -condition_melee:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) -condition_melee:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_melee:setParameter(CONDITION_PARAM_SKILL_MELEE, 10) -condition_melee:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -local condition_dist = Condition(CONDITION_ATTRIBUTES) -condition_dist:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreDistance) -condition_dist:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) -condition_dist:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_dist:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 10) -condition_dist:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -local condition_f = Condition(CONDITION_ATTRIBUTES) -condition_f:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreFishing) -condition_f:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) -condition_f:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_f:setParameter(CONDITION_PARAM_SKILL_FISHING, 50) -condition_f:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -local condition_speed = Condition(CONDITION_HASTE) -condition_speed:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) -condition_speed:setParameter(CONDITION_PARAM_SPEED, 729) -local combat_i = Combat() -combat_i:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) -combat_i:setParameter(COMBAT_PARAM_AGGRESSIVE, 0) -local condition_i = Condition(CONDITION_INVISIBLE) -condition_i:setParameter(CONDITION_PARAM_TICKS, 600000) -combat_i:addCondition(condition_i) -local itemIds = { [9079] = 0, [9080] = 1, [9081] = 2, [9082] = 3, [9083] = 4, [9084] = 5, [9085] = 6, [9086] = 7, [9087] = 8, [9088] = 9, [11584] = 10, [11586] = 11, [11587] = 12, [11588] = 13 } - -local jeanPierreFood = Action() - -function jeanPierreFood.onUse(player, item, frompos, item2, topos) - local cid = player:getId() - if player:getStorageValue(17110 + itemIds[item.itemid]) > os.time() then - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") - return true - end - player:setStorageValue(17110 + itemIds[item.itemid], os.time() + (15 * 60)) - - if item.itemid == 9079 then - item:remove(1) - Creature(cid):addHealth(getCreatureMaxHealth(cid) - getCreatureHealth(cid)) - player:say("Gulp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your health has been refilled.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9080 then - item:remove(1) - for i = 1, #conditions do - doRemoveCondition(cid, conditions[i]) - end - player:say("Chomp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel better body condition.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9081 then - item:remove(1) - Creature(cid):addCondition(condition_shield) - player:say("Chomp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel less vulnerable.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9082 then - item:remove(1) - Creature(cid):addCondition(condition_ml) - player:say("Chomp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel smarter.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9083 then - item:remove(1) - player:say("Slurp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't really know what this did to you, but suddenly you feel very happy.") - player:getPosition():sendMagicEffect(CONST_ME_HEARTS) - return true - elseif item.itemid == 9084 then - item:remove(1) - Creature(cid):addCondition(condition_melee) - player:say("Yum.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel stronger.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9085 then - item:remove(1) - Creature(cid):addCondition(condition_speed) - player:say("Munch.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your speed has been increased.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9086 then - item:remove(1) - Creature(cid):addMana(Creature(cid):getMaxMana() - Creature(cid):getMana()) - player:say("Chomp.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your mana has been refilled.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9087 then - item:remove(1) - Creature(cid):addCondition(condition_dist) - player:say("Mmmm.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel more focused.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 9088 then - item:remove(1) - Creature(cid):addCondition(condition_f) - player:say("Smack.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You felt fishing inspiration.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 11584 then - item:remove(1) - player:setStorageValue(15287, os.time() + 86400) - player:say("Yum.", TALKTYPE_MONSTER_SAY) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Underwater walking speed increased.") - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 11586 then - if math.random(1, 5) == 5 then - item:remove(1) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You take the last gulp from the large bowl. No leftovers!") - else - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You take a gulp from the large bowl, but there's still some blackjack in it.") - end - Creature(cid):addHealth(getCreatureMaxHealth(cid) - getCreatureHealth(cid)) - player:say("Gulp.", TALKTYPE_MONSTER_SAY) - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 11587 then - item:remove(1) - local c = { condition_shield, condition_ml, condition_melee, condition_dist, condition_speed } - local r = math.random(1, 4) - if r == 1 then - Creature(cid):addCondition(c[math.random(1, #c)]) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel stronger, but you have no idea what was increased.") - elseif r == 2 then - doSetCreatureLight(cid, 15, 154, 60 * 60 * 1000) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel enlightened.") - elseif r == 3 then - Creature(cid):addCondition(condition_i) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You became invisible.") - elseif r == 4 then - Creature(cid):addHealth(getCreatureMaxHealth(cid) - getCreatureHealth(cid)) - Creature(cid):addMana(Creature(cid):getMaxMana() - Creature(cid):getMana()) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your vitality has been restored.") - end - player:say("Smack.", TALKTYPE_MONSTER_SAY) - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - return true - elseif item.itemid == 11588 then - local ring = getPlayerSlotItem(cid, CONST_SLOT_RING) - local r_t = { - [3095] = 3092, - [3096] = 3093, - [6300] = 6299, - [3099] = 3097, - [3088] = 3051, - [3089] = 3052, - [3048] = 3048, - [3087] = 3050, - [16264] = 16114, - [3100] = 3098, - [12670] = 12669, - [3086] = 3049, - [3094] = 3091, - [3090] = 3053, - } - if ring.itemid == 0 then - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No ring equipped.") - player:getPosition():sendMagicEffect(CONST_ME_POFF) - return true - end - - if r_t[ring.itemid] ~= nil then - item:remove(1) - if ring.itemid == r_t[ring.itemid] then - r_m_am = 20 - else - r_m_am = 1 - end - - for i = 1, 10 do - doPlayerAddItem(cid, r_t[ring.itemid], r_m_am) - end - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your ring has been multiplied.") - player:say("Slurp!", TALKTYPE_MONSTER_SAY) - return true - else - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "This ring cannot be multiplied.") - player:getPosition():sendMagicEffect(CONST_ME_POFF) - return true - end - end -end - -for index, value in pairs(itemIds) do - jeanPierreFood:id(index) -end - -jeanPierreFood:register() diff --git a/data-otservbr-global/scripts/movements/others/drowning.lua b/data-otservbr-global/scripts/movements/others/drowning.lua deleted file mode 100644 index 6f4fbd7efa6..00000000000 --- a/data-otservbr-global/scripts/movements/others/drowning.lua +++ /dev/null @@ -1,36 +0,0 @@ -local condition = Condition(CONDITION_DROWN) -condition:setParameter(CONDITION_PARAM_PERIODICDAMAGE, -20) -condition:setParameter(CONDITION_PARAM_TICKS, -1) -condition:setParameter(CONDITION_PARAM_TICKINTERVAL, 2000) - -local drowning = MoveEvent() -drowning:type("stepin") - -function drowning.onStepIn(player, item, position, fromPosition) - if player:isPlayer() then - local headItem = player:getSlotItem(CONST_SLOT_HEAD) - if headItem and table.contains({ 5460, 11585, 13995 }, headItem.itemid) then - return true - elseif math.random(1, 10) == 1 then - position:sendMagicEffect(CONST_ME_BUBBLES) - end - player:addCondition(condition) - end - return true -end - -drowning:id(5404, 5405, 5406, 5407, 5408, 5409, 5743, 5764, 8755, 8756, 8757, 9291) -drowning:register() - -drowning = MoveEvent() -drowning:type("stepout") - -function drowning.onStepOut(creature, item, position, fromPosition) - if creature:isPlayer() then - creature:removeCondition(CONDITION_DROWN) - end - return true -end - -drowning:id(5404, 5405, 5406, 5407, 5408, 5409, 5743, 5764, 8755, 8756, 8757, 9291) -drowning:register() diff --git a/data/scripts/actions/items/banana_chocolate_shake.lua b/data/scripts/actions/items/banana_chocolate_shake.lua new file mode 100644 index 00000000000..083b4f965da --- /dev/null +++ b/data/scripts/actions/items/banana_chocolate_shake.lua @@ -0,0 +1,18 @@ +local bananaChocolateShake = Action() + +function bananaChocolateShake.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't really know what this did to you, but suddenly you feel very happy.") + player:say("Slurp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_HEARTS) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +bananaChocolateShake:id(9083) +bananaChocolateShake:register() diff --git a/data/scripts/actions/items/blessed_steak.lua b/data/scripts/actions/items/blessed_steak.lua new file mode 100644 index 00000000000..32b2d12162e --- /dev/null +++ b/data/scripts/actions/items/blessed_steak.lua @@ -0,0 +1,19 @@ +local blessedSteak = Action() + +function blessedSteak.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addMana(player:getMaxMana()) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your mana has been refilled.") + player:say("Chomp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +blessedSteak:id(9086) +blessedSteak:register() diff --git a/data/scripts/actions/items/carrot_cake.lua b/data/scripts/actions/items/carrot_cake.lua new file mode 100644 index 00000000000..28432188685 --- /dev/null +++ b/data/scripts/actions/items/carrot_cake.lua @@ -0,0 +1,26 @@ +local distanceCondition = Condition(CONDITION_ATTRIBUTES) +distanceCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreDistance) +distanceCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +distanceCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +distanceCondition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 10) +distanceCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local carrotCake = Action() + +function carrotCake.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(distanceCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel more focused.") + player:say("Mmmm.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +carrotCake:id(9087) +carrotCake:register() diff --git a/data/scripts/actions/items/coconut_shrimp_bake.lua b/data/scripts/actions/items/coconut_shrimp_bake.lua new file mode 100644 index 00000000000..bc7ba97ddd3 --- /dev/null +++ b/data/scripts/actions/items/coconut_shrimp_bake.lua @@ -0,0 +1,31 @@ +local coconutShrimpBake = Action() + +function coconutShrimpBake.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + local headItem = player:getSlotItem(CONST_SLOT_HEAD) + if not headItem then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You should only eat this dish when wearing a helmet of the deep or a depth galea and walking underwater.") + return true + end + + local acceptableHelmets = { 5460, 11585, 13995 } + if not table.contains(acceptableHelmets, headItem:getId()) then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You should only eat this dish when wearing a helmet of the deep or a depth galea and walking underwater.") + return true + end + + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your underwater walking speed while wearing a " .. headItem:getName() .. " has increased for twenty-four hours.") + player:say("Yum.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) + player:setExhaustion("special-foods-cooldown", 10 * 60) + player:setExhaustion("coconut-shrimp-bake", 24 * 60 * 60) + item:remove(1) + return true +end + +coconutShrimpBake:id(11584) +coconutShrimpBake:register() diff --git a/data/scripts/actions/items/demonic_candy_ball.lua b/data/scripts/actions/items/demonic_candy_ball.lua new file mode 100644 index 00000000000..c2e44c1efb1 --- /dev/null +++ b/data/scripts/actions/items/demonic_candy_ball.lua @@ -0,0 +1,72 @@ +local defenseCondition = Condition(CONDITION_ATTRIBUTES) +defenseCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreDefense) +defenseCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +defenseCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +defenseCondition:setParameter(CONDITION_PARAM_SKILL_SHIELD, 10) +defenseCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local magicLevelCondition = Condition(CONDITION_ATTRIBUTES) +magicLevelCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreMagicLevel) +magicLevelCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +magicLevelCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +magicLevelCondition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 5) +magicLevelCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local meleeCondition = Condition(CONDITION_ATTRIBUTES) +meleeCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreMelee) +meleeCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +meleeCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +meleeCondition:setParameter(CONDITION_PARAM_SKILL_MELEE, 10) +meleeCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local distanceCondition = Condition(CONDITION_ATTRIBUTES) +distanceCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreDistance) +distanceCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +distanceCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +distanceCondition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 10) +distanceCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local speedCondition = Condition(CONDITION_HASTE) +speedCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +speedCondition:setParameter(CONDITION_PARAM_SPEED, 729) + +local lightCondition = Condition(CONDITION_LIGHT) +lightCondition:setParameter(CONDITION_PARAM_LIGHT_LEVEL, 15) +lightCondition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 154) +lightCondition:setTicks(60 * 60 * 1000) + +local demonicCandyBall = Action() + +function demonicCandyBall.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + local availableConditions = { defenseCondition, magicLevelCondition, meleeCondition, distanceCondition, speedCondition } + local randomConditionIndex = math.random(1, 4) + + if randomConditionIndex == 1 then + player:addCondition(availableConditions[math.random(1, #availableConditions)]) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel stronger, but you have no idea what was increased.") + elseif randomConditionIndex == 2 then + player:addCondition(lightCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel enlightened.") + elseif randomConditionIndex == 3 then + player:addCondition(condition_i) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You became invisible.") + elseif randomConditionIndex == 4 then + player:addHealth(player:getMaxHealth()) + player:addMana(player:getMaxMana()) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your vitality has been restored.") + end + + player:say("Smack.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +demonicCandyBall:id(11587) +demonicCandyBall:register() diff --git a/data/scripts/actions/items/filled_jalapeno_peppers.lua b/data/scripts/actions/items/filled_jalapeno_peppers.lua new file mode 100644 index 00000000000..57df8d6b191 --- /dev/null +++ b/data/scripts/actions/items/filled_jalapeno_peppers.lua @@ -0,0 +1,23 @@ +local speedCondition = Condition(CONDITION_HASTE) +speedCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +speedCondition:setParameter(CONDITION_PARAM_SPEED, 729) + +local filledJalapenoPeppers = Action() + +function filledJalapenoPeppers.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(speedCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your speed has been increased.") + player:say("Munch.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +filledJalapenoPeppers:id(9085) +filledJalapenoPeppers:register() diff --git a/data/scripts/actions/items/hireling_foods.lua b/data/scripts/actions/items/hireling_foods.lua index 6b86c8d242a..30783fde9c8 100644 --- a/data/scripts/actions/items/hireling_foods.lua +++ b/data/scripts/actions/items/hireling_foods.lua @@ -42,7 +42,7 @@ function hirelingFoods.onUse(player, item, fromPosition, target, toPosition, isH return true end - if player:hasExhaustion("hireling-foods-cooldown") then + if player:hasExhaustion("special-foods-cooldown") then player:sendCancelMessage("You're still too full to eat any gourmet dishes for a while.") return true end @@ -56,7 +56,7 @@ function hirelingFoods.onUse(player, item, fromPosition, target, toPosition, isH end player:say(dish.message, TALKTYPE_MONSTER_SAY) - player:setExhaustion("hireling-foods-cooldown", 10 * 60) + player:setExhaustion("special-foods-cooldown", 10 * 60) item:remove(1) return true diff --git a/data/scripts/actions/items/hydra_tongue_salad.lua b/data/scripts/actions/items/hydra_tongue_salad.lua new file mode 100644 index 00000000000..4c8cad3258a --- /dev/null +++ b/data/scripts/actions/items/hydra_tongue_salad.lua @@ -0,0 +1,35 @@ +local conditionsToRemove = { + CONDITION_POISON, + CONDITION_FIRE, + CONDITION_ENERGY, + CONDITION_PARALYZE, + CONDITION_DRUNK, + CONDITION_DROWN, + CONDITION_FREEZING, + CONDITION_DAZZLED, + CONDITION_CURSED, + CONDITION_BLEEDING, +} + +local hydraTongueSalad = Action() + +function hydraTongueSalad.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + for _, conditionType in ipairs(conditionsToRemove) do + player:removeCondition(conditionType) + end + + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel better body condition.") + player:say("Chomp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +hydraTongueSalad:id(9080) +hydraTongueSalad:register() diff --git a/data/scripts/actions/items/northern_fishburger.lua b/data/scripts/actions/items/northern_fishburger.lua new file mode 100644 index 00000000000..3648ba102b3 --- /dev/null +++ b/data/scripts/actions/items/northern_fishburger.lua @@ -0,0 +1,26 @@ +local fishingCondition = Condition(CONDITION_ATTRIBUTES) +fishingCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreFishing) +fishingCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +fishingCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +fishingCondition:setParameter(CONDITION_PARAM_SKILL_FISHING, 50) +fishingCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local northernFishburger = Action() + +function northernFishburger.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(fishingCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You felt fishing inspiration.") + player:say("Smack.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +northernFishburger:id(9088) +northernFishburger:register() diff --git a/data/scripts/actions/items/pot_of_blackjack.lua b/data/scripts/actions/items/pot_of_blackjack.lua new file mode 100644 index 00000000000..fd4cc52b920 --- /dev/null +++ b/data/scripts/actions/items/pot_of_blackjack.lua @@ -0,0 +1,35 @@ +local potOfBlackjack = Action() + +function potOfBlackjack.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + local remainingGulps = player:kv():get("pot-of-blackjack") or math.random(2, 4) + + if remainingGulps > 0 then + remainingGulps = remainingGulps - 1 + player:kv():set("pot-of-blackjack", remainingGulps) + + local message + if remainingGulps > 0 then + message = "You take a gulp from the large bowl, but there's still some blackjack in it." + else + message = "You take the last gulp from the large bowl. No leftovers!" + end + + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, message) + end + + player:addHealth(5000) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You take a gulp from the large bowl.") + player:say("Gulp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +potOfBlackjack:id(11586) +potOfBlackjack:register() diff --git a/data/scripts/actions/items/potions.lua b/data/scripts/actions/items/potions.lua index 55bf20e0e18..02e92349363 100644 --- a/data/scripts/actions/items/potions.lua +++ b/data/scripts/actions/items/potions.lua @@ -1,19 +1,19 @@ local berserk = Condition(CONDITION_ATTRIBUTES) berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) -berserk:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreMelee) +berserk:setParameter(CONDITION_PARAM_SUBID, JeanPierreMelee) berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5) berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local mastermind = Condition(CONDITION_ATTRIBUTES) mastermind:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) -mastermind:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreMagic) +mastermind:setParameter(CONDITION_PARAM_SUBID, JeanPierreMagicLevel) mastermind:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3) mastermind:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local bullseye = Condition(CONDITION_ATTRIBUTES) bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) -bullseye:setParameter(CONDITION_PARAM_SUBID, AttrSubId_JeanPierreDistance) +bullseye:setParameter(CONDITION_PARAM_SUBID, JeanPierreDistance) bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5) bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true) diff --git a/data/scripts/actions/items/roasted_dragon_wings.lua b/data/scripts/actions/items/roasted_dragon_wings.lua new file mode 100644 index 00000000000..719c7fa0e20 --- /dev/null +++ b/data/scripts/actions/items/roasted_dragon_wings.lua @@ -0,0 +1,26 @@ +local defenseCondition = Condition(CONDITION_ATTRIBUTES) +defenseCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreDefense) +defenseCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +defenseCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +defenseCondition:setParameter(CONDITION_PARAM_SKILL_SHIELD, 10) +defenseCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local roastedDragonWings = Action() + +function roastedDragonWings.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(defenseCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel less vulnerable.") + player:say("Chomp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +roastedDragonWings:id(9081) +roastedDragonWings:register() diff --git a/data/scripts/actions/items/rotworm_stew.lua b/data/scripts/actions/items/rotworm_stew.lua new file mode 100644 index 00000000000..7b965da5857 --- /dev/null +++ b/data/scripts/actions/items/rotworm_stew.lua @@ -0,0 +1,19 @@ +local rotwormStew = Action() + +function rotwormStew.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addHealth(player:getMaxHealth()) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your health has been refilled.") + player:say("Gulp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +rotwormStew:id(9079) +rotwormStew:register() diff --git a/data/scripts/actions/items/sweet_mangonaise_elixir.lua b/data/scripts/actions/items/sweet_mangonaise_elixir.lua new file mode 100644 index 00000000000..fc5d1f33272 --- /dev/null +++ b/data/scripts/actions/items/sweet_mangonaise_elixir.lua @@ -0,0 +1,53 @@ +local ringMultiplicationTable = { + [3048] = 3048, + [3049] = 3086, + [3050] = 3087, + [3051] = 3088, + [3052] = 3089, + [3053] = 3090, + [3091] = 3094, + [3092] = 3095, + [3093] = 3096, + [3097] = 3099, + [3098] = 3100, + [6299] = 6300, + [12669] = 12670, + [16114] = 16264, +} + +local sweetMangonaiseElixir = Action() + +function sweetMangonaiseElixir.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + local playerRing = player:getSlotItem(CONST_SLOT_RING) + if not playerRing or not table.contains(ringMultiplicationTable, playerRing:getId()) then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No ring equipped.") + player:getPosition():sendMagicEffect(CONST_ME_POFF) + return true + end + + local ringId = ringMultiplicationTable[playerRing:getId()] + if not ringId then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "This ring cannot be multiplied.") + player:getPosition():sendMagicEffect(CONST_ME_POFF) + return false + end + + for i = 1, 10 do + player:addItem(ringId) + end + + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your ring has been multiplied.") + player:say("Slurp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +sweetMangonaiseElixir:id(11588) +sweetMangonaiseElixir:register() diff --git a/data/scripts/actions/items/tropical_fried_terrorbird.lua b/data/scripts/actions/items/tropical_fried_terrorbird.lua new file mode 100644 index 00000000000..342ba545a25 --- /dev/null +++ b/data/scripts/actions/items/tropical_fried_terrorbird.lua @@ -0,0 +1,26 @@ +local magicLevelCondition = Condition(CONDITION_ATTRIBUTES) +magicLevelCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreMagicLevel) +magicLevelCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +magicLevelCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +magicLevelCondition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 5) +magicLevelCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local tropicalFriedTerrorbird = Action() + +function tropicalFriedTerrorbird.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(magicLevelCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel smarter.") + player:say("Chomp.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +tropicalFriedTerrorbird:id(9082) +tropicalFriedTerrorbird:register() diff --git a/data/scripts/actions/items/veggie_casserole.lua b/data/scripts/actions/items/veggie_casserole.lua new file mode 100644 index 00000000000..d0ef6c99a78 --- /dev/null +++ b/data/scripts/actions/items/veggie_casserole.lua @@ -0,0 +1,26 @@ +local meleeCondition = Condition(CONDITION_ATTRIBUTES) +meleeCondition:setParameter(CONDITION_PARAM_SUBID, JeanPierreMelee) +meleeCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) +meleeCondition:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000) +meleeCondition:setParameter(CONDITION_PARAM_SKILL_MELEE, 10) +meleeCondition:setParameter(CONDITION_PARAM_FORCEUPDATE, true) + +local veggieCasserole = Action() + +function veggieCasserole.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("special-foods-cooldown") then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You need to wait before using it again.") + return true + end + + player:addCondition(meleeCondition) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You feel stronger.") + player:say("Yum.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + player:setExhaustion("special-foods-cooldown", 10 * 60) + item:remove(1) + return true +end + +veggieCasserole:id(9084) +veggieCasserole:register() diff --git a/data-canary/scripts/movements/drowning.lua b/data/scripts/movements/drowning.lua similarity index 50% rename from data-canary/scripts/movements/drowning.lua rename to data/scripts/movements/drowning.lua index 00266d57d1e..a32dcb216cb 100644 --- a/data-canary/scripts/movements/drowning.lua +++ b/data/scripts/movements/drowning.lua @@ -3,16 +3,31 @@ condition:setParameter(CONDITION_PARAM_PERIODICDAMAGE, -20) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_TICKINTERVAL, 2000) +local conditionHaste = Condition(CONDITION_HASTE) +conditionHaste:setTicks(-1) +conditionHaste:setFormula(1.0, 300, 1.0, 300) + local drowning = MoveEvent() drowning:type("stepin") function drowning.onStepIn(creature, item, position, fromPosition) - if creature:isPlayer() then - if math.random(1, 10) == 1 then - position:sendMagicEffect(CONST_ME_BUBBLES) + local player = creature:getPlayer() + if not player then + return false + end + + local headItem = player:getSlotItem(CONST_SLOT_HEAD) + if headItem and table.contains({ 5460, 11585, 13995 }, headItem:getId()) then + if player:hasExhaustion("coconut-shrimp-bake") then + player:addCondition(conditionHaste) end - creature:addCondition(condition) + + return true + elseif math.random(1, 10) == 1 then + position:sendMagicEffect(CONST_ME_BUBBLES) end + + player:addCondition(condition) return true end @@ -23,9 +38,13 @@ drowning = MoveEvent() drowning:type("stepout") function drowning.onStepOut(creature, item, position, fromPosition) - if creature:isPlayer() then - creature:removeCondition(CONDITION_DROWN) + local player = creature:getPlayer() + if not player then + return false end + + player:removeCondition(CONDITION_DROWN) + player:removeCondition(CONDITION_HASTE) return true end diff --git a/src/lua/functions/core/game/global_functions.cpp b/src/lua/functions/core/game/global_functions.cpp index 4c956dcb6d4..cbb133211f8 100644 --- a/src/lua/functions/core/game/global_functions.cpp +++ b/src/lua/functions/core/game/global_functions.cpp @@ -94,24 +94,6 @@ int GlobalFunctions::luaDoPlayerAddItem(lua_State* L) { return 1; } -int GlobalFunctions::luaDoSetCreatureLight(lua_State* L) { - // doSetCreatureLight(cid, lightLevel, lightColor, time) - std::shared_ptr creature = getCreature(L, 1); - if (!creature) { - reportErrorFunc(getErrorDesc(LUA_ERROR_PLAYER_NOT_FOUND)); - pushBoolean(L, false); - return 1; - } - - uint16_t level = getNumber(L, 2); - uint16_t color = getNumber(L, 3); - uint32_t time = getNumber(L, 4); - std::shared_ptr condition = Condition::createCondition(CONDITIONID_COMBAT, CONDITION_LIGHT, time, level | (color << 8)); - creature->addCondition(condition); - pushBoolean(L, true); - return 1; -} - int GlobalFunctions::luaIsValidUID(lua_State* L) { // isValidUID(uid) pushBoolean(L, getScriptEnv()->getThingByUID(getNumber(L, -1)) != nullptr); diff --git a/src/lua/functions/core/game/global_functions.hpp b/src/lua/functions/core/game/global_functions.hpp index 1b9f3fbe12f..cef752c6695 100644 --- a/src/lua/functions/core/game/global_functions.hpp +++ b/src/lua/functions/core/game/global_functions.hpp @@ -25,7 +25,6 @@ class GlobalFunctions final : LuaScriptInterface { lua_register(L, "doAreaCombatMana", GlobalFunctions::luaDoAreaCombatMana); lua_register(L, "doChallengeCreature", GlobalFunctions::luaDoChallengeCreature); lua_register(L, "doPlayerAddItem", GlobalFunctions::luaDoPlayerAddItem); - lua_register(L, "doSetCreatureLight", GlobalFunctions::luaDoSetCreatureLight); lua_register(L, "doTargetCombatCondition", GlobalFunctions::luaDoTargetCombatCondition); lua_register(L, "doTargetCombatDispel", GlobalFunctions::luaDoTargetCombatDispel); lua_register(L, "doTargetCombatHealth", GlobalFunctions::luaDoTargetCombatHealth); @@ -66,7 +65,6 @@ class GlobalFunctions final : LuaScriptInterface { static int luaDoAreaCombatMana(lua_State* L); static int luaDoChallengeCreature(lua_State* L); static int luaDoPlayerAddItem(lua_State* L); - static int luaDoSetCreatureLight(lua_State* L); static int luaDoTargetCombatCondition(lua_State* L); static int luaDoTargetCombatDispel(lua_State* L); static int luaDoTargetCombatHealth(lua_State* L); From ecd84ca1c2f28b6fd867f28397dd82e123e2716f Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Feb 2024 14:11:20 -0300 Subject: [PATCH 04/11] chore: move closing door to core (#2324) --- .../scripts/movements/others/closing_door.lua | 125 ------------------ .../scripts/movements/closing_door.lua | 7 + 2 files changed, 7 insertions(+), 125 deletions(-) delete mode 100644 data-otservbr-global/scripts/movements/others/closing_door.lua rename {data-canary => data}/scripts/movements/closing_door.lua (99%) diff --git a/data-otservbr-global/scripts/movements/others/closing_door.lua b/data-otservbr-global/scripts/movements/others/closing_door.lua deleted file mode 100644 index 448d208b20f..00000000000 --- a/data-otservbr-global/scripts/movements/others/closing_door.lua +++ /dev/null @@ -1,125 +0,0 @@ --- Level and quests closing door (onStepIn). --- This prevents a player who has not yet done the quest, from crossing the player who has already done so, skipping the entire quest and going straight to the final reward. -local closingDoor = MoveEvent() - -local doorIds = {} -for index, value in ipairs(QuestDoorTable) do - if not table.contains(doorIds, value.openDoor) then - table.insert(doorIds, value.openDoor) - end -end -for index, value in ipairs(LevelDoorTable) do - if not table.contains(doorIds, value.openDoor) then - table.insert(doorIds, value.openDoor) - end -end -local skipActionIds = { - 12107, -} - -function closingDoor.onStepIn(creature, item, position, fromPosition) - local player = creature:getPlayer() - if not player then - return - end - - for index, value in ipairs(QuestDoorTable) do - if value.openDoor == item.itemid then - if player:getStorageValue(item.actionid) ~= -1 or table.contains(skipActionIds, item.actionid) then - return true - else - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "The door seems to be sealed against unwanted intruders.") - player:teleportTo(fromPosition, true) - return false - end - end - end - for index, value in ipairs(LevelDoorTable) do - if value.openDoor == item.itemid then - if item.actionid > 0 and player:getLevel() >= item.actionid - 1000 then - return true - else - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Only the worthy may pass.") - player:teleportTo(fromPosition, true) - return false - end - end - end - return true -end - -for index, value in ipairs(doorIds) do - closingDoor:id(value) -end - -closingDoor:register() - --- Level and quests closing door (onStepOut). --- This closes the door after the player passes through it. -local closingDoor = MoveEvent() - -local doorIds = {} -for index, value in ipairs(QuestDoorTable) do - if not table.contains(doorIds, value.openDoor) then - table.insert(doorIds, value.openDoor) - end -end -for index, value in ipairs(LevelDoorTable) do - if not table.contains(doorIds, value.openDoor) then - table.insert(doorIds, value.openDoor) - end -end - -function closingDoor.onStepOut(creature, item, position, fromPosition) - local player = creature:getPlayer() - if not player then - return - end - - local tile = Tile(position) - if tile:getCreatureCount() > 0 then - return true - end - - local newPosition = { x = position.x + 1, y = position.y, z = position.z } - local query = Tile(newPosition):queryAdd(creature) - if query ~= RETURNVALUE_NOERROR or query == RETURNVALUE_NOTENOUGHROOM then - newPosition.x = newPosition.x - 1 - newPosition.y = newPosition.y + 1 - query = Tile(newPosition):queryAdd(creature) - end - - if query == RETURNVALUE_NOERROR or query ~= RETURNVALUE_NOTENOUGHROOM then - position:relocateTo(newPosition) - end - - local i, tileItem, tileCount = 1, true, tile:getThingCount() - while tileItem and i < tileCount do - tileItem = tile:getThing(i) - if tileItem and tileItem:getUniqueId() ~= item.uid and tileItem:getType():isMovable() then - tileItem:remove() - else - i = i + 1 - end - end - - for index, value in ipairs(LevelDoorTable) do - if value.openDoor == item.itemid then - item:transform(value.closedDoor) - item:getPosition():sendSingleSoundEffect(SOUND_EFFECT_TYPE_ACTION_CLOSE_DOOR) - end - end - for index, value in ipairs(QuestDoorTable) do - if value.openDoor == item.itemid then - item:transform(value.closedDoor) - item:getPosition():sendSingleSoundEffect(SOUND_EFFECT_TYPE_ACTION_CLOSE_DOOR) - end - end - return true -end - -for index, value in ipairs(doorIds) do - closingDoor:id(value) -end - -closingDoor:register() diff --git a/data-canary/scripts/movements/closing_door.lua b/data/scripts/movements/closing_door.lua similarity index 99% rename from data-canary/scripts/movements/closing_door.lua rename to data/scripts/movements/closing_door.lua index a8d1f928c15..3a63407267e 100644 --- a/data-canary/scripts/movements/closing_door.lua +++ b/data/scripts/movements/closing_door.lua @@ -10,6 +10,7 @@ for index, value in ipairs(QuestDoorTable) do table.insert(doorIds, value.openDoor) end end + for index, value in ipairs(LevelDoorTable) do if not table.contains(doorIds, value.openDoor) then table.insert(doorIds, value.openDoor) @@ -33,6 +34,7 @@ function closingDoor.onStepIn(creature, item, position, fromPosition) end end end + for index, value in ipairs(LevelDoorTable) do if value.openDoor == item.itemid then if item.actionid > 0 and player:getLevel() >= item.actionid - 1000 then @@ -66,6 +68,7 @@ for index, value in ipairs(QuestDoorTable) do table.insert(doorIds, value.openDoor) end end + for index, value in ipairs(LevelDoorTable) do if not table.contains(doorIds, value.openDoor) then table.insert(doorIds, value.openDoor) @@ -79,12 +82,14 @@ function closingDoor.onStepOut(creature, item, position, fromPosition) end local tile = Tile(position) + if tile:getCreatureCount() > 0 then return true end local newPosition = { x = position.x + 1, y = position.y, z = position.z } local query = Tile(newPosition):queryAdd(creature) + if query ~= RETURNVALUE_NOERROR or query == RETURNVALUE_NOTENOUGHROOM then newPosition.x = newPosition.x - 1 newPosition.y = newPosition.y + 1 @@ -96,6 +101,7 @@ function closingDoor.onStepOut(creature, item, position, fromPosition) end local i, tileItem, tileCount = 1, true, tile:getThingCount() + while tileItem and i < tileCount do tileItem = tile:getThing(i) if tileItem and tileItem:getUniqueId() ~= item.uid and tileItem:getType():isMovable() then @@ -110,6 +116,7 @@ function closingDoor.onStepOut(creature, item, position, fromPosition) item:transform(value.closedDoor) end end + for index, value in ipairs(QuestDoorTable) do if value.openDoor == item.itemid then item:transform(value.closedDoor) From a43d91ceafc92b7ca22cf8639330b072240e4e63 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Feb 2024 16:48:25 -0300 Subject: [PATCH 05/11] fix: gold pouch condition (#2327) Close #2294 --- src/game/game.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/game/game.cpp b/src/game/game.cpp index ddccb42dbcf..c17f16b1a17 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -5285,7 +5285,8 @@ void Game::playerSetManagedContainer(uint32_t playerId, ObjectCategory_t categor } std::shared_ptr container = thing->getContainer(); - if (!container || (container->getID() == ITEM_GOLD_POUCH && category != OBJECTCATEGORY_GOLD && !g_configManager().getBoolean(TOGGLE_GOLD_POUCH_ALLOW_ANYTHING, __FUNCTION__))) { + auto allowConfig = !g_configManager().getBoolean(TOGGLE_GOLD_POUCH_ALLOW_ANYTHING, __FUNCTION__) || !g_configManager().getBoolean(TOGGLE_GOLD_POUCH_QUICKLOOT_ONLY, __FUNCTION__); + if (!container || (container->getID() == ITEM_GOLD_POUCH && category != OBJECTCATEGORY_GOLD) && !allowConfig) { player->sendCancelMessage(RETURNVALUE_NOTPOSSIBLE); return; } From 06c4bcdd51ea46027cab8eb5daaf64069cf49e25 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 27 Feb 2024 16:48:52 -0300 Subject: [PATCH 06/11] improve: warning about compat file workarounds (#2326) Close #1974 --------- Co-authored-by: Luan Luciano --- .../npc/cranky_lizard_crone.lua | 43 ++++++---- data-otservbr-global/npc/eruaran.lua | 60 ++++++++------ .../actions/other/string_of_mending.lua | 48 +++-------- .../heart_of_destruction/final_lever.lua | 21 ++--- .../heart_of_destruction/sparks_lever.lua | 10 +-- .../mysterious_metal_egg.lua | 6 +- .../rottin_wood_and_married_men/corpse.lua | 14 ++-- .../rottin_wood_and_married_men/trap.lua | 24 +++--- .../depolarized_death.lua | 9 ++- .../scripts/movements/others/trap.lua | 11 ++- .../eruption_of_destruction_explosion.lua | 17 ++-- .../spells/monster/gaz'haragoth_death.lua | 17 ++-- data/libs/compat/compat.lua | 79 +++++++++++++++---- data/scripts/talkactions/gm/spy.lua | 14 ++-- 14 files changed, 220 insertions(+), 153 deletions(-) diff --git a/data-otservbr-global/npc/cranky_lizard_crone.lua b/data-otservbr-global/npc/cranky_lizard_crone.lua index 6d71f873f54..94261410724 100644 --- a/data-otservbr-global/npc/cranky_lizard_crone.lua +++ b/data-otservbr-global/npc/cranky_lizard_crone.lua @@ -48,16 +48,20 @@ local already = "It seems you already have this addon, don't you try to mock me --WAYFARER START -- function WayfarerFirst(npc, creature, message, keywords, parameters, node) - if isPremium(creature) then - local addon = getPlayerStorageValue(creature, Storage.WayfarerOutfit) - if addon == -1 then - if getPlayerItemCount(creature, 11701) >= 1 then - if doPlayerRemoveItem(creature, 11701, 1) then + local player = Player(creature) + if not player then + return + end + + if player:isPremium() then + if player:getStorageValue(Storage.WayfarerOutfit) < 1 then + if player:getItemCount(11701) > 0 then + if player:removeItem(11701, 1) then npcHandler:say(newaddon, npc, creature) - doSendMagicEffect(getCreaturePosition(creature), 13) - doPlayerAddOutfit(creature, 366, 1) - doPlayerAddOutfit(creature, 367, 1) - setPlayerStorageValue(creature, Storage.WayfarerOutfit, 1) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) + player:addOutfitAddon(366, 1) + player:addOutfitAddon(367, 1) + player:setStorageValue(Storage.WayfarerOutfit, 1) end else npcHandler:say(noItems, npc, creature) @@ -69,15 +73,20 @@ function WayfarerFirst(npc, creature, message, keywords, parameters, node) end function WayfarerSecond(npc, creature, message, keywords, parameters, node) - if isPremium(creature) then - if getPlayerStorageValue(creature, Storage.WayfarerOutfit + 1) == -1 then - if getPlayerItemCount(creature, 11700) >= 1 then - if doPlayerRemoveItem(creature, 11700, 1) then + local player = Player(creature) + if not player then + return + end + + if player:isPremium() then + if player:getStorageValue(Storage.WayfarerOutfit + 1) < 1 then + if player:getItemCount(11700) > 0 then + if player:removeItem(11700, 1) then npcHandler:say(newaddon, npc, creature) - doSendMagicEffect(getCreaturePosition(creature), 13) - doPlayerAddOutfit(creature, 366, 2) - doPlayerAddOutfit(creature, 367, 2) - setPlayerStorageValue(creature, Storage.WayfarerOutfit + 1, 1) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) + player:addOutfitAddon(366, 2) + player:addOutfitAddon(367, 2) + player:setStorageValue(Storage.WayfarerOutfit + 1, 1) end else npcHandler:say(noItems, npc, creature) diff --git a/data-otservbr-global/npc/eruaran.lua b/data-otservbr-global/npc/eruaran.lua index 51c5f17d4e0..541d5bd409c 100644 --- a/data-otservbr-global/npc/eruaran.lua +++ b/data-otservbr-global/npc/eruaran.lua @@ -150,15 +150,20 @@ local ACTION = { -- dream START -- local function dreamFirst(npc, creature, message, keywords, parameters, node) - if isPremium(creature) then - if getPlayerStorageValue(creature, storage + 1) == -1 then - if getPlayerItemCount(creature, 20276) >= 1 then - if doPlayerRemoveItem(creature, 20276, 1) then - npcHandler:say(newAddon, npc, creature) - doSendMagicEffect(getCreaturePosition(creature), 13) - doPlayerAddOutfit(creature, 577, 1) - doPlayerAddOutfit(creature, 578, 1) - setPlayerStorageValue(creature, storage + 1, 1) + local player = Player(creature) + if not player then + return + end + + if player:isPremium() then + if player:getStorageValue(storage + 1) < 1 then + if player:getItemCount(20276) > 0 then + if player:removeItem(20276, 1) then + npcHandler:say(newaddon, npc, creature) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) + player:addOutfitAddon(577, 1) + player:addOutfitAddon(577, 1) + player:setStorageValue(storage + 1, 1) end else npcHandler:say(noItems, npc, creature) @@ -170,15 +175,20 @@ local function dreamFirst(npc, creature, message, keywords, parameters, node) end local function dreamSecond(npc, creature, message, keywords, parameters, node) - if isPremium(creature) then - if getPlayerStorageValue(creature, storage) == -1 then - if getPlayerItemCount(creature, 20275) >= 1 then - if doPlayerRemoveItem(creature, 20275, 1) then - npcHandler:say(newAddon, npc, creature) - doSendMagicEffect(getCreaturePosition(creature), 13) - doPlayerAddOutfit(creature, 577, 2) - doPlayerAddOutfit(creature, 578, 2) - setPlayerStorageValue(creature, storage, 1) + local player = Player(creature) + if not player then + return + end + + if player:isPremium() then + if player:getStorageValue(storage) < 1 then + if player:getItemCount(20275) > 0 then + if player:removeItem(20275, 1) then + npcHandler:say(newaddon, npc, creature) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) + player:addOutfitAddon(577, 2) + player:addOutfitAddon(577, 2) + player:setStorageValue(storage, 1) end else npcHandler:say(noItems, npc, creature) @@ -192,7 +202,9 @@ end local function greetCallback(npc, creature) local player = Player(creature) - local playerId = player:getId() + if not player then + return true + end if player:getStorageValue(Storage.EruaranGreeting) > 0 then npcHandler:setMessage(MESSAGE_GREET, "Ashari Lillithy, so we meet {again}! What brings you here this time, general {information}, {transform}, {improve}, {create}, {outfit}, or {talk}?") @@ -204,13 +216,17 @@ local function greetCallback(npc, creature) end local function creatureSayCallback(npc, creature, type, message) - local player = Player(creature) - local playerId = player:getId() - if not npcHandler:checkInteraction(npc, creature) then return false end + local player = Player(creature) + if not player then + return true + end + + local playerId = player:getId() + if MsgContains(message, "create") then npcHandler:say("You can try to create {sword}s, {axe}s, {club}s, {bow}s, {crossbow}s and {spellbook}s.", npc, creature) npcHandler:setTopic(playerId, 1) diff --git a/data-otservbr-global/scripts/actions/other/string_of_mending.lua b/data-otservbr-global/scripts/actions/other/string_of_mending.lua index f2159f2737d..7689c9b05df 100644 --- a/data-otservbr-global/scripts/actions/other/string_of_mending.lua +++ b/data-otservbr-global/scripts/actions/other/string_of_mending.lua @@ -1,46 +1,22 @@ ------------- --- Alternative to no-magic style. --- Description here ----- - ----- string of mending id "20208"----- -local ITEMS = { - [12737] = { -----Broken Ring Id "12737" Ring of ending "20182" - { "ring of ending", 50.50 }, ----- 1.97 es la probabilidad de crear el item - }, -} - local stringOfMending = Action() ----- onUse [opt] --- @param cid Player ID --- @param item Item ID --- @param fromPosition Current Position --- @param[opt] itemEx Item change --- @param[opt] toPosition Nem position -function stringOfMending.onUse(cid, item, fromPosition, itemEx, toPosition) - local cadena = ITEMS[itemEx.itemid] - if cadena == nil then +function stringOfMending.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if not target or target.itemid ~= 12737 then return false end - local iEx = Item(itemEx.uid) - local random, chance = math.random() * 100, 0 - - for i = 1, #cadena do - chance = chance + cadena[i][2] - if random <= chance then - iEx:transform(cadena[i][1]) - iEx:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) - Item(item.uid):remove(1) - return true - end + local random = math.random(100) + if random <= 50 then + target:transform(20182) -- ring of ending + target:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) + item:remove(1) + return true end - iEx:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) - Item(item.uid):remove(1) - iEx:remove() - doCreatureSay(cid, "50% chance, the item was broken.", TALKTYPE_MONSTER_SAY) + target:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) + item:remove(1) + target:remove() + player:say("50% chance, the item was broken.", TALKTYPE_MONSTER_SAY) return true end diff --git a/data-otservbr-global/scripts/actions/quests/heart_of_destruction/final_lever.lua b/data-otservbr-global/scripts/actions/quests/heart_of_destruction/final_lever.lua index fe1d83724f1..c2d74bbf885 100644 --- a/data-otservbr-global/scripts/actions/quests/heart_of_destruction/final_lever.lua +++ b/data-otservbr-global/scripts/actions/quests/heart_of_destruction/final_lever.lua @@ -69,9 +69,10 @@ local function changeArea() local creatures = tile:getCreatures() if creatures and #creatures > 0 then if theHungerKilled == false then - for _, c in pairs(creatures) do - if isMonster(c) then - c:teleportTo({ x = 32244, y = 31369, z = 14 }) + for _, creature in pairs(creatures) do + local monster = Monster(creature) + if monster then + monster:teleportTo({ x = 32244, y = 31369, z = 14 }) end end else @@ -97,9 +98,10 @@ local function changeArea() local creatures = tile:getCreatures() if creatures and #creatures > 0 then if theDestructionKilled == false then - for _, c in pairs(creatures) do - if isMonster(c) then - c:teleportTo({ x = 32271, y = 31313, z = 14 }) + for _, creature in pairs(creatures) do + local monster = Monster(creature) + if monster then + monster:teleportTo({ x = 32271, y = 31313, z = 14 }) end end else @@ -125,9 +127,10 @@ local function changeArea() local creatures = tile:getCreatures() if creatures and #creatures > 0 then if theRageKilled == false then - for _, c in pairs(creatures) do - if isMonster(c) then - c:teleportTo({ x = 32299, y = 31369, z = 14 }) + for _, creature in pairs(creatures) do + local monster = Monster(creature) + if monster then + monster:teleportTo({ x = 32299, y = 31369, z = 14 }) end end else diff --git a/data-otservbr-global/scripts/actions/quests/heart_of_destruction/sparks_lever.lua b/data-otservbr-global/scripts/actions/quests/heart_of_destruction/sparks_lever.lua index 9a87b0eea72..8ef36379605 100644 --- a/data-otservbr-global/scripts/actions/quests/heart_of_destruction/sparks_lever.lua +++ b/data-otservbr-global/scripts/actions/quests/heart_of_destruction/sparks_lever.lua @@ -120,11 +120,11 @@ function renewSparks() if tile then local creatures = tile:getCreatures() if creatures and #creatures > 0 then - for _, c in pairs(creatures) do - local cPos = c:getPosition() - if isMonster(c) and c:getName() == "Unstable Spark" then - cPos:sendMagicEffect(3) - c:remove() + for _, creature in pairs(creatures) do + local monster = Monster(creature) + if monster and monster:getName() == "Unstable Spark" then + monster:getPosition():sendMagicEffect(3) + monster:remove() end end end diff --git a/data-otservbr-global/scripts/actions/quests/mysterious_ornate/mysterious_metal_egg.lua b/data-otservbr-global/scripts/actions/quests/mysterious_ornate/mysterious_metal_egg.lua index 0486d075dc8..cf26310169d 100644 --- a/data-otservbr-global/scripts/actions/quests/mysterious_ornate/mysterious_metal_egg.lua +++ b/data-otservbr-global/scripts/actions/quests/mysterious_ornate/mysterious_metal_egg.lua @@ -1,7 +1,7 @@ local mysterious = Action() -function mysterious.onUse(cid, item, fromPosition, itemEx, toPosition) - local p = { x = 33672, y = 31884, z = 5 } -- where to tp to 33672, 31884, 5 - doCreatureSay(cid, "This metal egg seems to be locked by a strange mechanism. The time for it to reveal its contents has not yet come.", TALKTYPE_MONSTER_SAY) + +function mysterious.onUse(player, item, fromPosition, target, toPosition, isHotkey) + player:say("This metal egg seems to be locked by a strange mechanism. The time for it to reveal its contents has not yet come.", TALKTYPE_MONSTER_SAY) end mysterious:id(19065, 22739) diff --git a/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/corpse.lua b/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/corpse.lua index a3b4d32341f..d6699dc7fd6 100644 --- a/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/corpse.lua +++ b/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/corpse.lua @@ -1,11 +1,13 @@ local rottinWoodCorpse = Action() -function rottinWoodCorpse.onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) + +function rottinWoodCorpse.onUse(player, item, fromPosition, target, toPosition, isHotkey) if item.itemid == 12189 then - if (getPlayerStorageValue(cid, Storage.RottinWoodAndMaried.Mission03) == 5) and getPlayerStorageValue(cid, Storage.RottinWoodAndMaried.Corpse) < 4 then - doCreatureSay(cid, "You take no more gold than you actually need and release the merchant who makes away the very second you remove the ropes.", TALKTYPE_MONSTER_SAY) - doPlayerAddItem(cid, 3031, 100) - doRemoveItem(item.uid, 1) - setPlayerStorageValue(cid, Storage.RottinWoodAndMaried.Corpse, getPlayerStorageValue(cid, Storage.RottinWoodAndMaried.Corpse) + 1) + local storageRottinWoodAndMariedCorpse = player:getStorageValue(Storage.RottinWoodAndMaried.Corpse) + if player:getStorageValue(Storage.RottinWoodAndMaried.Mission03) == 5 and storageRottinWoodAndMariedCorpse < 4 then + player:say("You take no more gold than you actually need and release the merchant who makes away the very second you remove the ropes.", TALKTYPE_MONSTER_SAY) + player:addItem(3031, 1) + player:setStorageValue(Storage.RottinWoodAndMaried.Corpse, storageRottinWoodAndMariedCorpse + 1) + item:remove(1) end end return true diff --git a/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/trap.lua b/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/trap.lua index 54703c2a30d..4d324bb7cd2 100644 --- a/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/trap.lua +++ b/data-otservbr-global/scripts/actions/quests/rottin_wood_and_married_men/trap.lua @@ -1,15 +1,17 @@ function removeMonster() doRemoveItem(getTileItemById({ x = 32662, y = 32190, z = 7 }, 2768).uid, 1) - doSendMagicEffect({ x = 32662, y = 32190, z = 7 }, 45) - TOP_LEFT_CORNER = { x = 32651, y = 32178, z = 7, stackpos = 253 } - BOTTOM_RIGHT_CORNER = { x = 32668, y = 32190, z = 7, stackpos = 253 } + Position(32662, 32190, 7):sendMagicEffect(CONST_ME_STONES) + local TOP_LEFT_CORNER = { x = 32651, y = 32178, z = 7 } + local BOTTOM_RIGHT_CORNER = { x = 32668, y = 32190, z = 7 } + for Py = TOP_LEFT_CORNER.y, BOTTOM_RIGHT_CORNER.y do for Px = TOP_LEFT_CORNER.x, BOTTOM_RIGHT_CORNER.x do - creature = getThingfromPos({ x = Px, y = Py, z = 7, stackpos = 253 }) - if isMonster(creature.uid) then - if getCreatureName(creature.uid) == "Travelling Merchant" then - --doRemoveCreature(creature.uid) - doSendMagicEffect({ x = Px, y = Py, z = 7 }, 45) + local tile = Tile(Position({ x = Px, y = Py, z = 7 })) + if tile then + local monster = tile:getTopCreature() + if monster and monster:isMonster() and monster:getName() == "Travelling Merchant" then + -- monster:remove() + monster:getPosition():sendMagicEffect(CONST_ME_STONES) --setPlayerStorageValue(cid, Storage.RottinWoodAndMaried.Trap, -1) end end @@ -19,8 +21,8 @@ function removeMonster() end function removeTrap() - TOP_LEFT_CORNER = { x = 32651, y = 32178, z = 7, stackpos = 253 } - BOTTOM_RIGHT_CORNER = { x = 32668, y = 32190, z = 7, stackpos = 253 } + local TOP_LEFT_CORNER = { x = 32651, y = 32178, z = 7, stackpos = 253 } + local BOTTOM_RIGHT_CORNER = { x = 32668, y = 32190, z = 7, stackpos = 253 } for Py = TOP_LEFT_CORNER.y, BOTTOM_RIGHT_CORNER.y do for Px = TOP_LEFT_CORNER.x, BOTTOM_RIGHT_CORNER.x do local trap = getTileItemById({ x = Px, y = Py, z = 7 }, 12187) @@ -48,7 +50,7 @@ function rottinWoodtrap.onUse(cid, item, fromPosition, itemEx, toPosition, isHot doRemoveItem(item.uid, 1) Game.createItem(12187, 1, toPosition) doTeleportThing(cid, { x = 32660, y = 32193, z = 7 }) - doSendMagicEffect(getCreaturePosition(cid), 45) + Player(cid):getPosition():sendMagicEffect(CONST_ME_STONES) Game.createItem(2768, 1, { x = 32662, y = 32190, z = 7 }) -- small fir tree ----------------------- SUMMON MERCHANT ----------------------------- doSummonCreature("Travelling Merchant", { x = 32656, y = 32182, z = 7 }) diff --git a/data-otservbr-global/scripts/creaturescripts/quests/heart_of_destruction/depolarized_death.lua b/data-otservbr-global/scripts/creaturescripts/quests/heart_of_destruction/depolarized_death.lua index 1b18872fedd..5713ea3d54c 100644 --- a/data-otservbr-global/scripts/creaturescripts/quests/heart_of_destruction/depolarized_death.lua +++ b/data-otservbr-global/scripts/creaturescripts/quests/heart_of_destruction/depolarized_death.lua @@ -9,10 +9,11 @@ local function setStorage() if tile then local creatures = tile:getCreatures() if creatures and #creatures > 0 then - for _, c in pairs(creatures) do - if isPlayer(c) then - if c:getStorageValue(14322) < 1 then - c:setStorageValue(14322, 1) -- Access to boss Anomaly + for _, creature in pairs(creatures) do + local player = Player(creature) + if player then + if player:getStorageValue(14322) < 1 then + player:setStorageValue(14322, 1) -- Access to boss Anomaly end end end diff --git a/data-otservbr-global/scripts/movements/others/trap.lua b/data-otservbr-global/scripts/movements/others/trap.lua index 155209b7245..09fa89bfc2d 100644 --- a/data-otservbr-global/scripts/movements/others/trap.lua +++ b/data-otservbr-global/scripts/movements/others/trap.lua @@ -14,11 +14,16 @@ function trap.onStepIn(creature, item, position, fromPosition) return true end - if Tile(position):hasFlag(TILESTATE_PROTECTIONZONE) then + local tile = Tile(position) + if not tile then + return true + end + + if tile:hasFlag(TILESTATE_PROTECTIONZONE) then return true end - if Tile(position):getItemCountById(3482) > 1 then + if tile:getItemCountById(3482) > 1 then return true end @@ -30,7 +35,7 @@ function trap.onStepIn(creature, item, position, fromPosition) item:transform(trap.transformTo) end - if item.itemid == 12368 and getCreatureName(creature.uid) == "Starving Wolf" then + if item.itemid == 12368 and creature:getName() == "Starving Wolf" then position:sendMagicEffect(CONST_ME_STUN) creature:remove() Game.createItem(12369, 1, position) diff --git a/data-otservbr-global/scripts/spells/monster/eruption_of_destruction_explosion.lua b/data-otservbr-global/scripts/spells/monster/eruption_of_destruction_explosion.lua index 0f8a01f2102..fbbe4922f14 100644 --- a/data-otservbr-global/scripts/spells/monster/eruption_of_destruction_explosion.lua +++ b/data-otservbr-global/scripts/spells/monster/eruption_of_destruction_explosion.lua @@ -44,16 +44,17 @@ function onTargetTile(creature, pos) end end if #creatureTable ~= nil and #creatureTable > 0 then + local min = 4000 + local max = 6000 for r = 1, #creatureTable do if creatureTable[r] ~= creature then - local min = 4000 - local max = 6000 - local player = Player(creatureTable[r]) - - if isPlayer(creatureTable[r]) == true and table.contains(vocation, player:getVocation():getBaseId()) then - doTargetCombatHealth(creature, creatureTable[r], COMBAT_FIREDAMAGE, -min, -max, CONST_ME_NONE) - elseif isMonster(creatureTable[r]) == true then - doTargetCombatHealth(creature, creatureTable[r], COMBAT_FIREDAMAGE, -min, -max, CONST_ME_NONE) + local creatureInTable = Creature(creatureTable[r]) + if creatureInTable then + if creatureInTable:isPlayer() == true and table.contains(vocation, creatureInTable:getVocation():getBaseId()) then + doTargetCombatHealth(creature, creatureTable[r], COMBAT_FIREDAMAGE, -min, -max, CONST_ME_NONE) + elseif creatureInTable:isMonster() == true then + doTargetCombatHealth(creature, creatureTable[r], COMBAT_FIREDAMAGE, -min, -max, CONST_ME_NONE) + end end end end diff --git a/data-otservbr-global/scripts/spells/monster/gaz'haragoth_death.lua b/data-otservbr-global/scripts/spells/monster/gaz'haragoth_death.lua index c00b15b6038..ea42a9645fd 100644 --- a/data-otservbr-global/scripts/spells/monster/gaz'haragoth_death.lua +++ b/data-otservbr-global/scripts/spells/monster/gaz'haragoth_death.lua @@ -44,16 +44,17 @@ function onTargetTile(creature, pos) end end if #creatureTable ~= nil and #creatureTable > 0 then + local min = 30000 + local max = 30000 for r = 1, #creatureTable do if creatureTable[r] ~= creature then - local min = 30000 - local max = 30000 - local player = Player(creatureTable[r]) - - if isPlayer(creatureTable[r]) == true and table.contains(vocation, player:getVocation():getBaseId()) then - doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE) - elseif isMonster(creatureTable[r]) == true then - doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE) + local creatureInTable = Creature(creatureTable[r]) + if creatureInTable then + if creatureInTable:isPlayer() and table.contains(vocation, creatureInTable:getVocation():getBaseId()) then + doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE) + elseif creatureInTable:isMonster() then + doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE) + end end end end diff --git a/data/libs/compat/compat.lua b/data/libs/compat/compat.lua index ca2c88efe1e..061d1dbe47e 100644 --- a/data/libs/compat/compat.lua +++ b/data/libs/compat/compat.lua @@ -7,12 +7,6 @@ result.getDataLong = result.getNumber result.getDataString = result.getString result.getDataStream = result.getStream -STACKPOS_GROUND = 0 -STACKPOS_FIRST_ITEM_ABOVE_GROUNDTILE = 1 -STACKPOS_SECOND_ITEM_ABOVE_GROUNDTILE = 2 -STACKPOS_THIRD_ITEM_ABOVE_GROUNDTILE = 3 -STACKPOS_FOURTH_ITEM_ABOVE_GROUNDTILE = 4 -STACKPOS_FIFTH_ITEM_ABOVE_GROUNDTILE = 5 STACKPOS_TOP_CREATURE = 253 STACKPOS_TOP_FIELD = 254 STACKPOS_TOP_MOVABLE_ITEM_OR_CREATURE = 255 @@ -21,9 +15,6 @@ THING_TYPE_PLAYER = CREATURETYPE_PLAYER + 1 THING_TYPE_MONSTER = CREATURETYPE_MONSTER + 1 THING_TYPE_NPC = CREATURETYPE_NPC + 1 -COMBAT_POISONDAMAGE = COMBAT_EARTHDAMAGE -CONDITION_EXHAUST = CONDITION_EXHAUST_WEAPON - function pushThing(thing) local t = { uid = 0, itemid = 0, type = 0, actionid = 0 } if thing then @@ -62,7 +53,7 @@ Combat.setCondition = function(...) end setCombatCondition = function(...) - logger.warn("[setCombatCondition] - Function was renamed to addCombatCondition and will be removed in the future") + logger.warn("[setCombatCondition] - Function was renamed to Combat.addCondition and will be removed in the future") Combat.addCondition(...) end @@ -73,73 +64,121 @@ addDamageCondition = Condition.addDamage addOutfitCondition = Condition.setOutfit function doCombat(cid, combat, var) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'doCombat(cid, combat, var)' is outdated. Please use the new format 'combat:execute(cid, var)'. Update needed at: Line {}, Source: {}.", line, source) return combat:execute(cid, var) end function isCreature(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isCreature(cid)' is outdated. Please use the new format 'Creature(cid)'. Update needed at: Line {}, Source: {}.", line, source) return Creature(cid) ~= nil end function isPlayer(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isPlayer(cid)' is outdated. Please use the new format 'Player(cid)'. Update needed at: Line {}, Source: {}.", line, source) return Player(cid) ~= nil end function isMonster(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isMonster(cid)' is outdated. Please use the new format 'Monster(cid)'. Update needed at: Line {}, Source: {}.", line, source) return Monster(cid) ~= nil end function isSummon(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isSummon(cid)' is outdated. Please use the new format 'c:getMaster()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) return Creature(cid):getMaster() ~= nil end function isNpc(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isNpc(cid)' is outdated. Please use the new format 'Npc(cid)'. Update needed at: Line {}, Source: {}.", line, source) return Npc(cid) ~= nil end function isItem(uid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isItem(uid)' is outdated. Please use the new format 'Item(uid)'. Update needed at: Line {}, Source: {}.", line, source) return Item(uid) ~= nil end function isContainer(uid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'isContainer(uid)' is outdated. Please use the new format 'Container(uid)'. Update needed at: Line {}, Source: {}.", line, source) return Container(uid) ~= nil end function getCreatureName(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureName(cid)' is outdated. Please use the new format 'c:getName()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getName() or false end function getCreatureHealth(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureHealth(cid)' is outdated. Please use the new format 'c:getHealth()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getHealth() or false end function getCreatureMaxHealth(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureMaxHealth(cid)' is outdated. Please use the new format 'c:getMaxHealth()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getMaxHealth() or false end function getCreaturePosition(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreaturePosition(cid)' is outdated. Please use the new format 'c:getPosition()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getPosition() or false end function getCreatureOutfit(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureOutfit(cid)' is outdated. Please use the new format 'c:getOutfit()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getOutfit() or false end function getCreatureSpeed(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureSpeed(cid)' is outdated. Please use the new format 'c:getSpeed()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getSpeed() or false end function getCreatureBaseSpeed(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureBaseSpeed(cid)' is outdated. Please use the new format 'c:getBaseSpeed()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:getBaseSpeed() or false end function getCreatureTarget(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureTarget(cid)' is outdated. Please use the new format 'c:getTarget():getId()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) if c then local target = c:getTarget() @@ -149,6 +188,9 @@ function getCreatureTarget(cid) end function getCreatureMaster(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'getCreatureMaster(cid)' is outdated. Please use the new format 'c:getMaster():getId()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) if c then local master = c:getMaster() @@ -159,7 +201,7 @@ end function getCreatureSummons(cid) local c = Creature(cid) - if c == nil then + if not c then return false end @@ -173,16 +215,25 @@ end getCreaturePos = getCreaturePosition function doCreatureAddHealth(cid, health) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'doCreatureAddHealth(cid, health)' is outdated. Please use the new format 'c:addHealth(health)', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:addHealth(health) or false end function doRemoveCreature(cid) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'doRemoveCreature(cid)' is outdated. Please use the new format 'c:remove()', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:remove() or false end function doCreatureSetLookDir(cid, direction) + local line = debug.getinfo(2).currentline + local source = debug.getinfo(2).source:match("@?(.*)") + logger.warn("Deprecation Warning: The function 'doCreatureSetLookDir(cid, direction)' is outdated. Please use the new format 'c:setDirection(direction)', where 'c' refers to a Creature (player or monster). Update needed at: Line {}, Source: {}.", line, source) local c = Creature(cid) return c and c:setDirection(direction) or false end @@ -560,7 +611,7 @@ function getPlayerGUIDByName(name) local resultId = db.storeQuery("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if resultId ~= false then local guid = Result.getNumber(resultId, "id") - result.free(resultId) + Result.free(resultId) return guid end return 0 @@ -575,7 +626,7 @@ function getAccountNumberByPlayerName(name) local resultId = db.storeQuery("SELECT `account_id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if resultId ~= false then local accountId = Result.getNumber(resultId, "account_id") - result.free(resultId) + Result.free(resultId) return accountId end return 0 @@ -1010,7 +1061,7 @@ function getGuildId(guildName) end local guildId = Result.getNumber(resultId, "id") - result.free(resultId) + Result.free(resultId) return guildId end diff --git a/data/scripts/talkactions/gm/spy.lua b/data/scripts/talkactions/gm/spy.lua index 4466bc70d6d..7cd5c68ca56 100644 --- a/data/scripts/talkactions/gm/spy.lua +++ b/data/scripts/talkactions/gm/spy.lua @@ -1,4 +1,4 @@ -local function getItemsInContainer(cont, sep) +local function getItemsInContainer(container, sep) local text = "" local tsep = "" local count @@ -6,9 +6,9 @@ local function getItemsInContainer(cont, sep) tsep = tsep .. "-" end tsep = tsep .. ">" - for i = 0, getContainerSize(cont.uid) - 1 do - local item = getContainerItem(cont.uid, i) - if not isContainer(item.uid) then + for slot = 0, container:getSize() - 1 do + local item = container:getItem(slot) + if not item:isContainer() then if item.type > 0 then count = "(" .. item.type .. "x)" else @@ -16,7 +16,7 @@ local function getItemsInContainer(cont, sep) end text = text .. "\n" .. tsep .. ItemType(item.itemid):getName() .. " " .. count else - if getContainerSize(item.uid) > 0 then + if item:getSize() > 0 then text = text .. "\n" .. tsep .. ItemType(item.itemd):getName() text = text .. getItemsInContainer(item, sep + 2) else @@ -42,12 +42,12 @@ function spy.onSay(player, words, param) if target and target:isPlayer() then local slotName = { "Helmet", "Amulet", "Backpack", "Armor", "Right Hand", "Left Hand", "Legs", "Boots", "Ring", "Arrow" } - local text = "Equipments of " .. Creature(target):getName() + local text = "Equipments of " .. target:getName() for i = 1, 10 do text = text .. "\n\n" local item = target:getSlotItem(i) if item and item.itemid > 0 then - if isContainer(item.uid) then + if item:isContainer() then text = text .. slotName[i] .. ": " .. ItemType(item.itemid):getName() .. getItemsInContainer(item, 1) else local count From cac9b5fa41316d3b11e049578d26975583d2475d Mon Sep 17 00:00:00 2001 From: Majesty <32709570+majestyotbr@users.noreply.github.com> Date: Wed, 28 Feb 2024 08:40:27 -0300 Subject: [PATCH 07/11] fix: readme and visual studio solution (#2329) --- README.md | 8 ----- vcproj/canary.vcxproj | 2 +- vcproj/settings.props | 84 +++++++++++++++++++++---------------------- 3 files changed, 43 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index fd632b2c067..119850ea7ea 100644 --- a/README.md +++ b/README.md @@ -98,14 +98,6 @@ other open-source initiatives. JetBrains -## Project supported by [TNT Cloud](https://tntcloudbr.com.br/) - -Thanks for supporting our open-source project with your game cloud hosting services. - - - TNT Cloud - Game Hosting - - ### Partners [![Supported by OTServ Brasil](https://raw.githubusercontent.com/otbr/otserv-brasil/main/otbr.png)](https://forums.otserv.com.br) diff --git a/vcproj/canary.vcxproj b/vcproj/canary.vcxproj index 32f876988ee..e31fdbad08a 100644 --- a/vcproj/canary.vcxproj +++ b/vcproj/canary.vcxproj @@ -485,7 +485,7 @@ vcpkg_installed x64-windows - true + false false diff --git a/vcproj/settings.props b/vcproj/settings.props index 0bec82ecbb2..35625d790b9 100644 --- a/vcproj/settings.props +++ b/vcproj/settings.props @@ -24,28 +24,28 @@ jsoncpp.lib; abseil_dll.lib; argon2.lib; - opentelemetry_common.lib; - opentelemetry_exporter_in_memory.lib; - opentelemetry_exporter_ostream_logs.lib; - opentelemetry_exporter_ostream_metrics.lib; - opentelemetry_exporter_ostream_span.lib; - opentelemetry_exporter_otlp_http.lib; - opentelemetry_exporter_otlp_http_client.lib; - opentelemetry_exporter_otlp_http_log.lib; - opentelemetry_exporter_otlp_http_metric.lib; - opentelemetry_exporter_prometheus.lib; - opentelemetry_http_client_curl.lib; - opentelemetry_logs.lib; - opentelemetry_metrics.lib; - opentelemetry_otlp_recordable.lib; - opentelemetry_proto.lib; - opentelemetry_resources.lib; - opentelemetry_trace.lib; - opentelemetry_version.lib; - prometheus-cpp-core.lib; - prometheus-cpp-pull.lib; - civetweb.lib; - civetweb-cpp.lib + opentelemetry_common.lib; + opentelemetry_exporter_in_memory.lib; + opentelemetry_exporter_ostream_logs.lib; + opentelemetry_exporter_ostream_metrics.lib; + opentelemetry_exporter_ostream_span.lib; + opentelemetry_exporter_otlp_http.lib; + opentelemetry_exporter_otlp_http_client.lib; + opentelemetry_exporter_otlp_http_log.lib; + opentelemetry_exporter_otlp_http_metric.lib; + opentelemetry_exporter_prometheus.lib; + opentelemetry_http_client_curl.lib; + opentelemetry_logs.lib; + opentelemetry_metrics.lib; + opentelemetry_otlp_recordable.lib; + opentelemetry_proto.lib; + opentelemetry_resources.lib; + opentelemetry_trace.lib; + opentelemetry_version.lib; + prometheus-cpp-core.lib; + prometheus-cpp-pull.lib; + civetweb.lib; + civetweb-cpp.lib comctl32.lib; @@ -63,26 +63,26 @@ jsoncpp.lib; abseil_dll.lib; argon2.lib; - opentelemetry_common.lib; - opentelemetry_exporter_in_memory.lib; - opentelemetry_exporter_ostream_logs.lib; - opentelemetry_exporter_ostream_metrics.lib; - opentelemetry_exporter_ostream_span.lib; - opentelemetry_exporter_otlp_http.lib; - opentelemetry_exporter_otlp_http_client.lib; - opentelemetry_exporter_otlp_http_log.lib; - opentelemetry_exporter_otlp_http_metric.lib; - opentelemetry_exporter_prometheus.lib; - opentelemetry_http_client_curl.lib; - opentelemetry_logs.lib; - opentelemetry_metrics.lib; - opentelemetry_otlp_recordable.lib; - opentelemetry_proto.lib; - opentelemetry_resources.lib; - opentelemetry_trace.lib; - opentelemetry_version.lib; - civetweb.lib; - civetweb-cpp.lib + opentelemetry_common.lib; + opentelemetry_exporter_in_memory.lib; + opentelemetry_exporter_ostream_logs.lib; + opentelemetry_exporter_ostream_metrics.lib; + opentelemetry_exporter_ostream_span.lib; + opentelemetry_exporter_otlp_http.lib; + opentelemetry_exporter_otlp_http_client.lib; + opentelemetry_exporter_otlp_http_log.lib; + opentelemetry_exporter_otlp_http_metric.lib; + opentelemetry_exporter_prometheus.lib; + opentelemetry_http_client_curl.lib; + opentelemetry_logs.lib; + opentelemetry_metrics.lib; + opentelemetry_otlp_recordable.lib; + opentelemetry_proto.lib; + opentelemetry_resources.lib; + opentelemetry_trace.lib; + opentelemetry_version.lib; + civetweb.lib; + civetweb-cpp.lib From 355fca65dfe92b73d01a82b2d081064e97fa6e64 Mon Sep 17 00:00:00 2001 From: Eduardo Dantas Date: Thu, 29 Feb 2024 09:09:16 -0300 Subject: [PATCH 08/11] improve: rework in unscripted weapons and moveevents (#1494) Add moveevent and weapons unscripted to load in items.xml Added "chain" logic, which can be configured in config.lua By default, the system is activated, it can be deactivated by setting the "toggleChainSystem" config tag to false and it will work to attack various creatures with the rod/wand or club/sword/axe weapon. The default creature limit is 5. Conversor link: https://github.com/dudantas/weapon-moveevents-conversor --------- Co-authored-by: Luan Santos --- .clang-format | 4 +- config.lua.dist | 6 +- .../movements/unscripted_movements.lua | 18485 -------------- .../scripts/weapons/unscripted_weapons.lua | 5141 ---- .../equipment/unscripted_equipments.lua | 20059 ---------------- .../scripts/weapons/unscripted_weapons.lua | 5378 ----- data/items/items.xml | 6965 +++++- src/account/account_repository_db.cpp | 4 +- src/config/config_enums.hpp | 2 + src/config/configmanager.cpp | 2 + src/creatures/combat/combat.cpp | 130 +- src/creatures/combat/combat.hpp | 24 +- src/items/functions/item/item_parse.cpp | 295 + src/items/functions/item/item_parse.hpp | 3 + src/items/items.cpp | 10 +- src/items/items_definitions.hpp | 1 + src/items/weapons/weapons.cpp | 100 +- src/items/weapons/weapons.hpp | 50 +- src/lua/creature/movement.cpp | 29 +- src/lua/creature/movement.hpp | 15 +- src/protobuf/appearances.pb.cc | 10027 -------- src/protobuf/appearances.pb.h | 11506 --------- src/protobuf/kv.pb.cc | 1247 - src/protobuf/kv.pb.h | 1441 -- src/utils/tools.cpp | 45 +- src/utils/tools.hpp | 4 +- 26 files changed, 7412 insertions(+), 73561 deletions(-) delete mode 100644 data-canary/scripts/movements/unscripted_movements.lua delete mode 100644 data-canary/scripts/weapons/unscripted_weapons.lua delete mode 100644 data-otservbr-global/scripts/movements/equipment/unscripted_equipments.lua delete mode 100644 data-otservbr-global/scripts/weapons/unscripted_weapons.lua delete mode 100644 src/protobuf/appearances.pb.cc delete mode 100644 src/protobuf/appearances.pb.h delete mode 100644 src/protobuf/kv.pb.cc delete mode 100644 src/protobuf/kv.pb.h diff --git a/.clang-format b/.clang-format index 2e0a78842d6..de45e1b2e7a 100644 --- a/.clang-format +++ b/.clang-format @@ -24,12 +24,13 @@ AlwaysBreakBeforeMultilineStrings: false AlwaysBreakTemplateDeclarations: MultiLine BinPackArguments: true BinPackParameters: true +BreakBeforeBraces: Custom BraceWrapping: AfterCaseLabel: false AfterClass: false AfterControlStatement: false AfterEnum: false - AfterFunction: true + AfterFunction: false AfterNamespace: false AfterObjCDeclaration: false AfterStruct: false @@ -42,7 +43,6 @@ BraceWrapping: SplitEmptyRecord: true SplitEmptyNamespace: true BreakBeforeBinaryOperators: All -BreakBeforeBraces: Attach BreakBeforeInheritanceComma: false BreakInheritanceList: BeforeColon BreakBeforeTernaryOperators: true diff --git a/config.lua.dist b/config.lua.dist index 073281be273..d667bb48952 100644 --- a/config.lua.dist +++ b/config.lua.dist @@ -419,11 +419,15 @@ multiplierSpeedOnFist = 5 maxSpeedOnFist = 500 disableLegacyRaids = false disableMonsterArmor = false -combatChainDelay = 50 minElementalResistance = -200 maxElementalResistance = 200 maxDamageReflection = 200 +-- Chain system +toggleChainSystem = true +combatChainDelay = 50 +combatChainTargets = 5 + -- Global server Save -- NOTE: globalServerSaveNotifyDuration in minutes globalServerSaveNotifyMessage = true diff --git a/data-canary/scripts/movements/unscripted_movements.lua b/data-canary/scripts/movements/unscripted_movements.lua deleted file mode 100644 index 1d080a031ed..00000000000 --- a/data-canary/scripts/movements/unscripted_movements.lua +++ /dev/null @@ -1,18485 +0,0 @@ -local items = { - { - -- mutant bone kilt - itemid = 40595, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- mutant bone kilt - itemid = 40595, - type = "deequip", - slot = "legs", - level = 300, - }, - { - -- alchemist's notepad - itemid = 40594, - type = "equip", - slot = "shield", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- alchemist's notepad - itemid = 40594, - type = "deequip", - slot = "shield", - level = 250, - }, - { - -- mutant bone boots - itemid = 40593, - type = "equip", - slot = "feet", - level = 250, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- mutant bone boots - itemid = 40593, - type = "deequip", - slot = "feet", - level = 250, - }, - { - -- alchemist's boots - itemid = 40592, - type = "equip", - slot = "feet", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- alchemist's boots - itemid = 40592, - type = "deequip", - slot = "feet", - level = 250, - }, - { - -- mutated skin armor - itemid = 40591, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mutated skin armor - itemid = 40591, - type = "deequip", - slot = "armor", - level = 270, - }, - { - -- Mutated Skin Legs - itemid = 40590, - type = "equip", - slot = "legs", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- Mutated Skin Legs - itemid = 40590, - type = "deequip", - slot = "legs", - level = 270, - }, - { - -- Stitched Mutant Hide Legs - itemid = 40589, - type = "equip", - slot = "legs", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Stitched Mutant Hide Legs - itemid = 40589, - type = "deequip", - slot = "legs", - level = 270, - }, - { - -- Antler-Horn Helmet - itemid = 40588, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Antler-Horn Helmet - itemid = 40588, - type = "deequip", - slot = "head", - level = 250, - }, - { - -- 25 years backpack - itemid = 39693, - type = "equip", - slot = "backpack", - }, - { - -- 25 years backpack - itemid = 39693, - type = "deequip", - slot = "backpack", - }, - { - -- turtle amulet - itemid = 39235, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted turtle amulet - itemid = 39235, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted turtle amulet - itemid = 39234, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted turtle amulet - itemid = 39234, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted turtle amulet - itemid = 39233, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted turtle amulet - itemid = 39233, - type = "deequip", - slot = "necklace", - }, - { - -- arboreal ring - itemid = 39188, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal ring - itemid = 39188, - type = "deequip", - slot = "ring", - }, - { - -- charged arboreal ring - itemid = 39187, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- charged arboreal ring - itemid = 39187, - type = "deequip", - slot = "ring", - }, - { - -- charged arboreal ring - itemid = 39186, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- charged arboreal ring - itemid = 39186, - type = "deequip", - slot = "ring", - }, - { - -- arcanomancer sigil - itemid = 39185, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer sigil - itemid = 39185, - type = "deequip", - slot = "ring", - }, - { - -- charged arcanomancer ring - itemid = 39184, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- charged arcanomancer ring - itemid = 39184, - type = "deequip", - slot = "ring", - }, - { - -- charged arcanomancer sigil - itemid = 39183, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- charged arcanomancer sigil - itemid = 39183, - type = "deequip", - slot = "ring", - }, - { - -- alicorn ring - itemid = 39182, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- charged alicorn ring - itemid = 39182, - type = "deequip", - slot = "ring", - }, - { - -- charged alicorn ring - itemid = 39181, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- charged alicorn ring - itemid = 39181, - type = "deequip", - slot = "ring", - }, - { - -- charged alicorn ring - itemid = 39180, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- charged alicorn ring - itemid = 39180, - type = "deequip", - slot = "ring", - }, - { - -- spiritthorn ring - itemid = 39179, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn ring - itemid = 39179, - type = "deequip", - slot = "ring", - }, - { - -- charged spiritthorn ring - itemid = 39178, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- charged spiritthorn ring - itemid = 39178, - type = "deequip", - slot = "ring", - }, - { - -- charged spiritthorn ring - itemid = 39177, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- charged spiritthorn ring - itemid = 39177, - type = "deequip", - slot = "ring", - }, - { - -- midnight sarong - itemid = 39167, - type = "equip", - slot = "legs", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- midnight sarong - itemid = 39167, - type = "deequip", - slot = "legs", - }, - { - -- dawnfire pantaloons - itemid = 39166, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- dawnfire pantaloons - itemid = 39166, - type = "deequip", - slot = "legs", - }, - { - -- midnight tunic - itemid = 39165, - type = "equip", - slot = "armor", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- midnight tunic - itemid = 39165, - type = "deequip", - slot = "armor", - }, - { - -- dawnfire sherwani - itemid = 39164, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- dawnfire sherwani - itemid = 39164, - type = "deequip", - slot = "armor", - }, - { - -- naga rod - itemid = 39163, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- naga rod - itemid = 39163, - type = "deequip", - slot = "hand", - }, - { - -- naga wand - itemid = 39162, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- naga wand - itemid = 39162, - type = "deequip", - slot = "hand", - }, - { - -- feverbloom boots - itemid = 39161, - type = "equip", - slot = "feet", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- feverbloom boots - itemid = 39161, - type = "deequip", - slot = "feet", - }, - { - -- naga quiver - itemid = 39160, - type = "equip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- naga quiver - itemid = 39160, - type = "deequip", - slot = "right-hand", - }, - { - -- naga crossbow - itemid = 39159, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- naga crossbow - itemid = 39159, - type = "deequip", - slot = "hand", - }, - { - -- frostflower boots - itemid = 39158, - type = "equip", - slot = "feet", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostflower boots - itemid = 39158, - type = "deequip", - slot = "feet", - }, - { - -- naga club - itemid = 39157, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga club - itemid = 39157, - type = "deequip", - slot = "hand", - }, - { - -- naga axe - itemid = 39156, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga axe - itemid = 39156, - type = "deequip", - slot = "hand", - }, - { - -- naga sword - itemid = 39155, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga sword - itemid = 39155, - type = "deequip", - slot = "hand", - }, - { - -- arboreal tome - itemid = 39154, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal tome - itemid = 39154, - type = "deequip", - slot = "shield", - }, - { - -- arboreal crown - itemid = 39153, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal crown - itemid = 39153, - type = "deequip", - slot = "head", - }, - { - -- arcanomancer folio - itemid = 39152, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer folio - itemid = 39152, - type = "deequip", - slot = "shield", - }, - { - -- arcanomancer regalia - itemid = 39151, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer regalia - itemid = 39151, - type = "deequip", - slot = "head", - }, - { - -- alicorn quiver - itemid = 39150, - type = "equip", - slot = "right-hand", - level = 400, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- alicorn quiver - itemid = 39150, - type = "deequip", - slot = "right-hand", - }, - { - -- alicorn headguard - itemid = 39149, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- alicorn headguard - itemid = 39149, - type = "deequip", - slot = "head", - }, - { - -- spiritthorn helmet - itemid = 39148, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn helmet - itemid = 39148, - type = "deequip", - slot = "head", - }, - { - -- spiritthorn armor - itemid = 39147, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Knight", true, true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn armor - itemid = 39147, - type = "deequip", - slot = "armor", - }, - { - -- changing backpack - itemid = 37536, - type = "equip", - slot = "backpack", - }, - { - -- changing backpack - itemid = 37536, - type = "deequip", - slot = "backpack", - }, - { - -- lilypad backpack - itemid = 37554, - type = "equip", - slot = "backpack", - }, - { - -- lilypad backpack - itemid = 37554, - type = "deequip", - slot = "backpack", - }, - { - -- gilded eldritch rod - itemid = 36675, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- gilded eldritch rod - itemid = 36675, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemid = 36674, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemid = 36674, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch tome - itemid = 36673, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch tome - itemid = 36673, - type = "deequip", - slot = "shield", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch folio - itemid = 36672, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch folio - itemid = 36672, - type = "deequip", - slot = "shield", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch hood - itemid = 36671, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch hood - itemid = 36671, - type = "deequip", - slot = "head", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch cowl - itemid = 36670, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch cowl - itemid = 36670, - type = "deequip", - slot = "head", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch wand - itemid = 36669, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch wand - itemid = 36669, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemid = 36668, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemid = 36668, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch breeches - itemid = 36667, - type = "equip", - slot = "legs", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch breeches - itemid = 36667, - type = "deequip", - slot = "legs", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch quiver - itemid = 36666, - type = "equip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch quiver - itemid = 36666, - type = "deequip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch bow - itemid = 36665, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch bow - itemid = 36665, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemid = 36664, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemid = 36664, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch cuirass - itemid = 36663, - type = "equip", - slot = "armor", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch cuirass - itemid = 36663, - type = "deequip", - slot = "armor", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch greataxe - itemid = 36662, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch greataxe - itemid = 36662, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemid = 36661, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemid = 36661, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemid = 36660, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemid = 36660, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemid = 36659, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemid = 36659, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemid = 36658, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemid = 36658, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemid = 36657, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemid = 36657, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch shield - itemid = 36656, - type = "equip", - slot = "shield", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch shield - itemid = 36656, - type = "deequip", - slot = "shield", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spectral bolt (no decay) - itemid = 35902, - type = "equip", - slot = "ammo", - }, - { - -- spectral bolt (no decay) - itemid = 35902, - type = "deequip", - slot = "ammo", - }, - { - -- red quiver - itemid = 35849, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- red quiver - itemid = 35849, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- blue quiver - itemid = 35848, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- blue quiver - itemid = 35848, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- quiver - itemid = 35562, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- quiver - itemid = 35562, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle quiver - itemid = 35524, - type = "equip", - slot = "right-hand", - level = 150, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle quiver - itemid = 35524, - type = "deequip", - slot = "right-hand", - level = 150, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- exotic amulet - itemid = 35523, - type = "equip", - slot = "necklace", - level = 180, - }, - { - -- exotic amulet - itemid = 35523, - type = "deequip", - slot = "necklace", - }, - { - -- jungle wand - itemid = 35522, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- jungle wand - itemid = 35522, - type = "deequip", - slot = "hand", - }, - { - -- jungle rod - itemid = 35521, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- jungle rod - itemid = 35521, - type = "deequip", - slot = "hand", - }, - { - -- make-do boots - itemid = 35520, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- make-do boots - itemid = 35520, - type = "deequip", - slot = "feet", - }, - { - -- makeshift boots - itemid = 35519, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- makeshift boots - itemid = 35519, - type = "deequip", - slot = "feet", - }, - { - -- jungle bow - itemid = 35518, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle bow - itemid = 35518, - type = "deequip", - slot = "hand", - }, - { - -- bast legs - itemid = 35517, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bast legs - itemid = 35517, - type = "deequip", - slot = "legs", - }, - { - -- exotic legs - itemid = 35516, - type = "equip", - slot = "legs", - level = 130, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- exotic legs - itemid = 35516, - type = "deequip", - slot = "legs", - }, - { - -- throwing axe - itemid = 35515, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- throwing axe - itemid = 35515, - type = "deequip", - slot = "hand", - }, - { - -- jungle flail - itemid = 35514, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jungle flail - itemid = 35514, - type = "deequip", - slot = "hand", - }, - { - -- lion hammer - itemid = 34254, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion hammer - itemid = 34254, - type = "deequip", - slot = "hand", - }, - { - -- lion axe - itemid = 34253, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion axe - itemid = 34253, - type = "deequip", - slot = "hand", - }, - { - -- lion amulet - itemid = 34158, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- lion amulet - itemid = 34158, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- lion plate - itemid = 34157, - type = "deequip", - slot = "armor", - level = 270, - }, - { - -- lion plate - itemid = 34157, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion spangenhelm - itemid = 34156, - type = "deequip", - slot = "head", - }, - { - -- lion spangenhelm - itemid = 34156, - type = "equip", - slot = "head", - level = 230, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- lion longsword - itemid = 34155, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion longsword - itemid = 34155, - type = "deequip", - slot = "hand", - }, - { - -- lion spellbook - itemid = 34153, - type = "deequip", - slot = "shield", - }, - { - -- lion spellbook - itemid = 34153, - type = "equip", - slot = "shield", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lion wand - itemid = 34152, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- lion wand - itemid = 34152, - type = "deequip", - slot = "hand", - }, - { - -- lion rod - itemid = 34151, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- lion rod - itemid = 34151, - type = "deequip", - slot = "hand", - }, - { - -- lion longbow - itemid = 34150, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- lion longbow - itemid = 34150, - type = "deequip", - slot = "hand", - }, - { - -- soulbastion shield - itemid = 34099, - type = "deequip", - slot = "shield", - }, - { - -- soulbastion shield - itemid = 34099, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- pair of soulstalkers - itemid = 34098, - type = "deequip", - slot = "feet", - }, - { - -- pair of soulstalkers - itemid = 34098, - type = "equip", - slot = "feet", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- pair of soulwalkers - itemid = 34097, - type = "deequip", - slot = "feet", - }, - { - -- pair of soulwalkers - itemid = 34097, - type = "equip", - slot = "feet", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshroud armor - itemid = 34096, - type = "deequip", - slot = "armor", - }, - { - -- soulshroud armor - itemid = 34096, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soulmantel armor - itemid = 34095, - type = "deequip", - slot = "armor", - }, - { - -- soulmantel armor - itemid = 34095, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulshell armor - itemid = 34094, - type = "deequip", - slot = "armor", - level = 400, - }, - { - -- soulshell armor - itemid = 34094, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulstrider legs - itemid = 34093, - type = "deequip", - slot = "legs", - level = 400, - }, - { - -- soulstrider legs - itemid = 34093, - type = "equip", - slot = "legs", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soulshanks legs - itemid = 34092, - type = "deequip", - slot = "legs", - level = 400, - }, - { - -- soulshanks legs - itemid = 34092, - type = "equip", - slot = "legs", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulhexer - itemid = 34091, - type = "deequip", - slot = "hand", - }, - { - -- soulhexer - itemid = 34091, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soultainter - itemid = 34090, - type = "deequip", - slot = "hand", - }, - { - -- soultainter - itemid = 34090, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulpiercer - itemid = 34089, - type = "deequip", - slot = "hand", - }, - { - -- soulpiercer - itemid = 34089, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulbleeder - itemid = 34088, - type = "deequip", - slot = "hand", - }, - { - -- soulbleeder - itemid = 34088, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulmaimer - itemid = 34087, - type = "deequip", - slot = "hand", - }, - { - -- soulmaimer - itemid = 34087, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcrusher - itemid = 34086, - type = "deequip", - slot = "hand", - }, - { - -- soulcrusher - itemid = 34086, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- souleater - itemid = 34085, - type = "deequip", - slot = "hand", - }, - { - -- souleater - itemid = 34085, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulbiter - itemid = 34084, - type = "deequip", - slot = "hand", - }, - { - -- soulbiter - itemid = 34084, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshredder - itemid = 34083, - type = "deequip", - slot = "hand", - }, - { - -- soulshredder - itemid = 34083, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcutter - itemid = 34082, - type = "deequip", - slot = "hand", - }, - { - -- soulcutter - itemid = 34082, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion ring - itemid = 34080, - type = "deequip", - slot = "ring", - level = 270, - }, - { - -- lion ring - itemid = 34080, - type = "equip", - slot = "ring", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Lit Torch (Sparkling) - itemid = 34016, - type = "equip", - slot = "ammo", - }, - { - -- Lit Torch (Sparkling) - itemid = 34016, - type = "deequip", - slot = "ammo", - }, - { - -- pair of old bracers - itemid = 32705, - type = "equip", - slot = "armor", - }, - { - -- pair of old bracers - itemid = 32705, - type = "deequip", - slot = "armor", - }, - { - -- ring of souls - itemid = 32636, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of souls - itemid = 32636, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- ring of souls - itemid = 32635, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of souls - itemid = 32635, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- spooky hood - itemid = 32630, - type = "equip", - slot = "head", - }, - { - -- spooky hood - itemid = 32630, - type = "deequip", - slot = "head", - }, - { - -- ghost chestplate - itemid = 32628, - type = "equip", - slot = "armor", - level = 230, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ghost chestplate - itemid = 32628, - type = "deequip", - slot = "armor", - level = 230, - }, - { - -- ring of souls - itemid = 32621, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of souls - itemid = 32621, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- ghost backpack - itemid = 32620, - type = "equip", - slot = "backpack", - }, - { - -- ghost backpack - itemid = 32620, - type = "deequip", - slot = "backpack", - }, - { - -- pair of nightmare boots - itemid = 32619, - type = "equip", - slot = "feet", - level = 140, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- pair of nightmare boots - itemid = 32619, - type = "deequip", - slot = "feet", - level = 140, - }, - { - -- soulful legs - itemid = 32618, - type = "equip", - slot = "legs", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- soulful legs - itemid = 32618, - type = "deequip", - slot = "legs", - level = 180, - }, - { - -- fabulous legs - itemid = 32617, - type = "equip", - slot = "legs", - level = 225, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- fabulous legs - itemid = 32617, - type = "deequip", - slot = "legs", - level = 225, - }, - { - -- phantasmal axe - itemid = 32616, - type = "equip", - slot = "hand", - }, - { - -- phantasmal axe - itemid = 32616, - type = "deequip", - slot = "hand", - }, - { - -- burial shroud - itemid = 32585, - type = "equip", - slot = "armor", - }, - { - -- burial shroud - itemid = 32585, - type = "deequip", - slot = "armor", - }, - { - -- meat hammer - itemid = 32093, - type = "equip", - slot = "hand", - }, - { - -- meat hammer - itemid = 32093, - type = "deequip", - slot = "hand", - }, - { - -- note about two souls - itemid = 31676, - type = "equip", - slot = "necklace", - }, - { - -- note about two souls - itemid = 31676, - type = "deequip", - slot = "necklace", - }, - { - -- the cobra amulet - itemid = 31631, - type = "equip", - slot = "necklace", - level = 250, - }, - { - -- the cobra amulet - itemid = 31631, - type = "deequip", - slot = "necklace", - level = 250, - }, - { - -- winged backpack - itemid = 31625, - type = "equip", - slot = "backpack", - }, - { - -- winged backpack - itemid = 31625, - type = "deequip", - slot = "backpack", - }, - { - -- blister ring - itemid = 31621, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- blister ring - itemid = 31621, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- winged boots - itemid = 31617, - type = "equip", - slot = "feet", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- winged boots - itemid = 31617, - type = "deequip", - slot = "feet", - level = 220, - }, - { - -- blister ring - itemid = 31616, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- blister ring - itemid = 31616, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- tagralt blade - itemid = 31614, - type = "equip", - slot = "hand", - }, - { - -- tagralt blade - itemid = 31614, - type = "deequip", - slot = "hand", - }, - { - -- toga mortis - itemid = 31583, - type = "equip", - slot = "armor", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- toga mortis - itemid = 31583, - type = "deequip", - slot = "armor", - level = 220, - }, - { - -- galea mortis - itemid = 31582, - type = "equip", - slot = "head", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- galea mortis - itemid = 31582, - type = "deequip", - slot = "head", - level = 220, - }, - { - -- bow of cataclysm - itemid = 31581, - type = "equip", - slot = "hand", - }, - { - -- bow of cataclysm - itemid = 31581, - type = "deequip", - slot = "hand", - }, - { - -- mortal mace - itemid = 31580, - type = "equip", - slot = "hand", - }, - { - -- mortal mace - itemid = 31580, - type = "deequip", - slot = "hand", - }, - { - -- embrace of nature - itemid = 31579, - type = "equip", - slot = "armor", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- embrace of nature - itemid = 31579, - type = "deequip", - slot = "armor", - level = 220, - }, - { - -- bear skin - itemid = 31578, - type = "equip", - slot = "armor", - level = 230, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- bear skin - itemid = 31578, - type = "deequip", - slot = "armor", - level = 230, - }, - { - -- terra helmet - itemid = 31577, - type = "equip", - slot = "head", - level = 230, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- terra helmet - itemid = 31577, - type = "deequip", - slot = "head", - level = 230, - }, - { - -- blister ring - itemid = 31557, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- blister ring - itemid = 31557, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- rainbow amulet - itemid = 31556, - type = "equip", - slot = "necklace", - level = 220, - }, - { - -- rainbow amulet - itemid = 31556, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- sphinx tiara - itemid = 31438, - type = "equip", - slot = "head", - }, - { - -- sphinx tiara - itemid = 31438, - type = "deequip", - slot = "head", - }, - { - -- gryphon mask - itemid = 31433, - type = "equip", - slot = "head", - }, - { - -- gryphon mask - itemid = 31433, - type = "deequip", - slot = "head", - }, - { - -- symbol of sun and sea - itemid = 31431, - type = "equip", - slot = "ring", - }, - { - -- symbol of sun and sea - itemid = 31431, - type = "deequip", - slot = "ring", - }, - { - -- silver mask - itemid = 31370, - type = "equip", - slot = "head", - }, - { - -- silver mask - itemid = 31370, - type = "deequip", - slot = "head", - }, - { - -- ring of secret thoughts - itemid = 31306, - type = "equip", - slot = "ring", - }, - { - -- ring of secret thoughts - itemid = 31306, - type = "deequip", - slot = "ring", - }, - { - -- jade amulet - itemid = 31268, - type = "equip", - slot = "necklace", - }, - { - -- jade amulet - itemid = 31268, - type = "deequip", - slot = "necklace", - }, - { - -- ring of secret thoughts - itemid = 31263, - type = "equip", - slot = "ring", - }, - { - -- ring of secret thoughts - itemid = 31263, - type = "deequip", - slot = "ring", - }, - { - -- amulet of theurgy - itemid = 30403, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- amulet of theurgy - itemid = 30403, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- enchanted theurgic amulet - itemid = 30402, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- enchanted theurgic amulet - itemid = 30402, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- amulet of theurgy - itemid = 30401, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- amulet of theurgy - itemid = 30401, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- cobra rod - itemid = 30400, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- cobra rod - itemid = 30400, - type = "deequip", - slot = "hand", - level = 220, - }, - { - -- cobra wand - itemid = 30399, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- cobra wand - itemid = 30399, - type = "deequip", - slot = "hand", - level = 270, - }, - { - -- cobra sword - itemid = 30398, - type = "equip", - slot = "hand", - }, - { - -- cobra sword - itemid = 30398, - type = "deequip", - slot = "hand", - }, - { - -- cobra hood - itemid = 30397, - type = "equip", - slot = "head", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra hood - itemid = 30397, - type = "deequip", - slot = "head", - level = 270, - }, - { - -- cobra axe - itemid = 30396, - type = "equip", - slot = "hand", - }, - { - -- cobra axe - itemid = 30396, - type = "deequip", - slot = "hand", - }, - { - -- cobra club - itemid = 30395, - type = "equip", - slot = "hand", - }, - { - -- cobra club - itemid = 30395, - type = "deequip", - slot = "hand", - }, - { - -- cobra boots - itemid = 30394, - type = "equip", - slot = "feet", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra boots - itemid = 30394, - type = "deequip", - slot = "feet", - level = 220, - }, - { - -- cobra crossbow - itemid = 30393, - type = "equip", - slot = "hand", - }, - { - -- cobra crossbow - itemid = 30393, - type = "deequip", - slot = "hand", - }, - { - -- rainbow necklace - itemid = 30323, - type = "equip", - slot = "necklace", - level = 220, - }, - { - -- rainbow necklace - itemid = 30323, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- ice hatchet - itemid = 30283, - type = "equip", - slot = "hand", - }, - { - -- ice hatchet - itemid = 30283, - type = "deequip", - slot = "hand", - }, - { - -- frozen claw - itemid = 30279, - type = "equip", - slot = "ring", - }, - { - -- frozen claw - itemid = 30279, - type = "deequip", - slot = "ring", - }, - { - -- the crown of the percht queen - itemid = 30276, - type = "equip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30276, - type = "deequip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30275, - type = "equip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30275, - type = "deequip", - slot = "head", - }, - { - -- festive backpack - itemid = 30197, - type = "equip", - slot = "backpack", - }, - { - -- festive backpack - itemid = 30197, - type = "deequip", - slot = "backpack", - }, - { - -- yetislippers - itemid = 30196, - type = "equip", - slot = "feet", - }, - { - -- yetislippers - itemid = 30196, - type = "deequip", - slot = "feet", - }, - { - -- pendulet - itemid = 30345, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- pendulet - itemid = 30345, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- enchanted pendulet - itemid = 30344, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted pendulet - itemid = 30344, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- sleep shawl - itemid = 30343, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- sleep shawl - itemid = 30343, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- enchanted sleep shawl - itemid = 30342, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted sleep shawl - itemid = 30342, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- shield of endless search - itemid = 30181, - type = "equip", - slot = "shield", - }, - { - -- shield of endless search - itemid = 30181, - type = "deequip", - slot = "shield", - }, - { - -- spirit guide - itemid = 29431, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spirit guide - itemid = 29431, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- ectoplasmic shield - itemid = 29430, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ectoplasmic shield - itemid = 29430, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- dark whispers - itemid = 29427, - type = "equip", - slot = "head", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- dark whispers - itemid = 29427, - type = "deequip", - slot = "head", - level = 180, - }, - { - -- brain in a jar - itemid = 29426, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- brain in a jar - itemid = 29426, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- energized limb - itemid = 29425, - type = "equip", - slot = "hand", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- energized limb - itemid = 29425, - type = "deequip", - slot = "hand", - level = 180, - }, - { - -- pair of dreamwalkers - itemid = 29424, - type = "equip", - slot = "feet", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- pair of dreamwalkers - itemid = 29424, - type = "deequip", - slot = "feet", - level = 180, - }, - { - -- dream shroud - itemid = 29423, - type = "equip", - slot = "armor", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- dream shroud - itemid = 29423, - type = "deequip", - slot = "armor", - level = 180, - }, - { - -- winterblade - itemid = 29422, - type = "equip", - slot = "hand", - }, - { - -- winterblade - itemid = 29422, - type = "deequip", - slot = "hand", - }, - { - -- summerblade - itemid = 29421, - type = "equip", - slot = "hand", - }, - { - -- summerblade - itemid = 29421, - type = "deequip", - slot = "hand", - }, - { - -- shoulder plate - itemid = 29420, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- shoulder plate - itemid = 29420, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- resizer - itemid = 29419, - type = "equip", - slot = "hand", - }, - { - -- resizer - itemid = 29419, - type = "deequip", - slot = "hand", - }, - { - -- living armor - itemid = 29418, - type = "equip", - slot = "armor", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- living armor - itemid = 29418, - type = "deequip", - slot = "armor", - level = 180, - }, - { - -- living vine bow - itemid = 29417, - type = "equip", - slot = "hand", - }, - { - -- living vine bow - itemid = 29417, - type = "deequip", - slot = "hand", - }, - { - -- golden axe - itemid = 29286, - type = "equip", - slot = "hand", - }, - { - -- golden axe - itemid = 29286, - type = "deequip", - slot = "hand", - }, - { - -- book backpack - itemid = 28571, - type = "equip", - slot = "backpack", - }, - { - -- book backpack - itemid = 28571, - type = "deequip", - slot = "backpack", - }, - { - -- wand of destruction test - itemid = 28479, - type = "equip", - slot = "hand", - }, - { - -- wand of destruction test - itemid = 28479, - type = "deequip", - slot = "hand", - }, - { - -- umbral master bow test - itemid = 28478, - type = "equip", - slot = "hand", - }, - { - -- umbral master bow test - itemid = 28478, - type = "deequip", - slot = "hand", - }, - { - -- ornate testtplate - itemid = 28475, - type = "equip", - slot = "armor", - }, - { - -- ornate testtplate - itemid = 28475, - type = "deequip", - slot = "armor", - }, - { - -- sorcerer test weapon - itemid = 28466, - type = "equip", - slot = "hand", - }, - { - -- sorcerer test weapon - itemid = 28466, - type = "deequip", - slot = "hand", - }, - { - -- bow of destruction test - itemid = 28465, - type = "equip", - slot = "hand", - }, - { - -- bow of destruction test - itemid = 28465, - type = "deequip", - slot = "hand", - }, - { - -- test weapon for knights - itemid = 28464, - type = "equip", - slot = "hand", - }, - { - -- test weapon for knights - itemid = 28464, - type = "deequip", - slot = "hand", - }, - { - -- sulphurous demonbone - itemid = 28832, - type = "equip", - slot = "hand", - }, - { - -- sulphurous demonbone - itemid = 28832, - type = "deequip", - slot = "hand", - }, - { - -- unliving demonbone - itemid = 28831, - type = "equip", - slot = "hand", - }, - { - -- unliving demonbone - itemid = 28831, - type = "deequip", - slot = "hand", - }, - { - -- energized demonbone - itemid = 28830, - type = "equip", - slot = "hand", - }, - { - -- energized demonbone - itemid = 28830, - type = "deequip", - slot = "hand", - }, - { - -- rotten demonbone - itemid = 28829, - type = "equip", - slot = "hand", - }, - { - -- rotten demonbone - itemid = 28829, - type = "deequip", - slot = "hand", - }, - { - -- deepling fork - itemid = 28826, - type = "equip", - slot = "hand", - level = 230, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling fork - itemid = 28826, - type = "deequip", - slot = "hand", - level = 230, - }, - { - -- deepling ceremonial dagger - itemid = 28825, - type = "equip", - slot = "hand", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling ceremonial dagger - itemid = 28825, - type = "deequip", - slot = "hand", - level = 180, - }, - { - -- falcon mace - itemid = 28725, - type = "equip", - slot = "hand", - }, - { - -- falcon mace - itemid = 28725, - type = "deequip", - slot = "hand", - }, - { - -- falcon battleaxe - itemid = 28724, - type = "equip", - slot = "hand", - }, - { - -- falcon battleaxe - itemid = 28724, - type = "deequip", - slot = "hand", - }, - { - -- falcon longsword - itemid = 28723, - type = "equip", - slot = "hand", - }, - { - -- falcon longsword - itemid = 28723, - type = "deequip", - slot = "hand", - }, - { - -- falcon escutcheon - itemid = 28722, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon escutcheon - itemid = 28722, - type = "deequip", - slot = "shield", - level = 300, - }, - { - -- falcon shield - itemid = 28721, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon shield - itemid = 28721, - type = "deequip", - slot = "shield", - level = 300, - }, - { - -- falcon greaves - itemid = 28720, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon greaves - itemid = 28720, - type = "deequip", - slot = "legs", - level = 300, - }, - { - -- falcon plate - itemid = 28719, - type = "equip", - slot = "armor", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon plate - itemid = 28719, - type = "deequip", - slot = "armor", - level = 300, - }, - { - -- falcon bow - itemid = 28718, - type = "equip", - slot = "hand", - }, - { - -- falcon bow - itemid = 28718, - type = "deequip", - slot = "hand", - }, - { - -- falcon wand - itemid = 28717, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- falcon wand - itemid = 28717, - type = "deequip", - slot = "hand", - level = 300, - }, - { - -- falcon rod - itemid = 28716, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- falcon rod - itemid = 28716, - type = "deequip", - slot = "hand", - level = 300, - }, - { - -- falcon coif - itemid = 28715, - type = "equip", - slot = "head", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon coif - itemid = 28715, - type = "deequip", - slot = "head", - level = 300, - }, - { - -- falcon circlet - itemid = 28714, - type = "equip", - slot = "head", - level = 300, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- falcon circlet - itemid = 28714, - type = "deequip", - slot = "head", - level = 300, - }, - { - -- silver chimes - itemid = 12126, - type = "equip", - slot = "shield", - }, - { - -- silver chimes - itemid = 12126, - type = "deequip", - slot = "shield", - }, - { - -- suspicious device - itemid = 27653, - type = "equip", - slot = "necklace", - }, - { - -- suspicious device - itemid = 27653, - type = "deequip", - slot = "necklace", - }, - { - -- gnome sword - itemid = 27651, - type = "equip", - slot = "hand", - }, - { - -- gnome sword - itemid = 27651, - type = "deequip", - slot = "hand", - }, - { - -- gnome shield - itemid = 27650, - type = "equip", - slot = "shield", - level = 200, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - { "Elite Knight" }, - }, - }, - { - -- gnome shield - itemid = 27650, - type = "deequip", - slot = "shield", - level = 200, - }, - { - -- gnome legs - itemid = 27649, - type = "equip", - slot = "legs", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gnome legs - itemid = 27649, - type = "deequip", - slot = "legs", - level = 200, - }, - { - -- gnome armor - itemid = 27648, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- gnome armor - itemid = 27648, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- gnome helmet - itemid = 27647, - type = "equip", - slot = "head", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gnome helmet - itemid = 27647, - type = "deequip", - slot = "head", - level = 200, - }, - { - -- foxtail amulet - itemid = 27565, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- foxtail amulet - itemid = 27565, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- mallet handle - itemid = 27525, - type = "equip", - slot = "hand", - }, - { - -- mallet handle - itemid = 27525, - type = "deequip", - slot = "hand", - }, - { - -- strange mallet - itemid = 27523, - type = "equip", - slot = "hand", - }, - { - -- strange mallet - itemid = 27523, - type = "deequip", - slot = "hand", - }, - { - -- blue spectacles - itemid = 27522, - type = "equip", - slot = "head", - }, - { - -- blue spectacles - itemid = 27522, - type = "deequip", - slot = "head", - }, - { - -- rod of destruction - itemid = 27458, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of destruction - itemid = 27458, - type = "deequip", - slot = "hand", - level = 200, - }, - { - -- wand of destruction - itemid = 27457, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of destruction - itemid = 27457, - type = "deequip", - slot = "hand", - level = 200, - }, - { - -- crossbow of destruction - itemid = 27456, - type = "equip", - slot = "hand", - }, - { - -- crossbow of destruction - itemid = 27456, - type = "deequip", - slot = "hand", - }, - { - -- bow of destruction - itemid = 27455, - type = "equip", - slot = "hand", - }, - { - -- bow of destruction - itemid = 27455, - type = "deequip", - slot = "hand", - }, - { - -- hammer of destruction - itemid = 27454, - type = "equip", - slot = "hand", - }, - { - -- hammer of destruction - itemid = 27454, - type = "deequip", - slot = "hand", - }, - { - -- mace of destruction - itemid = 27453, - type = "equip", - slot = "hand", - }, - { - -- mace of destruction - itemid = 27453, - type = "deequip", - slot = "hand", - }, - { - -- chopper of destruction - itemid = 27452, - type = "equip", - slot = "hand", - }, - { - -- chopper of destruction - itemid = 27452, - type = "deequip", - slot = "hand", - }, - { - -- axe of destruction - itemid = 27451, - type = "equip", - slot = "hand", - }, - { - -- axe of destruction - itemid = 27451, - type = "deequip", - slot = "hand", - }, - { - -- slayer of destruction - itemid = 27450, - type = "equip", - slot = "hand", - }, - { - -- slayer of destruction - itemid = 27450, - type = "deequip", - slot = "hand", - }, - { - -- blade of destruction - itemid = 27449, - type = "equip", - slot = "hand", - }, - { - -- blade of destruction - itemid = 27449, - type = "deequip", - slot = "hand", - }, - { - -- Journal Shield - itemid = 26947, - type = "equip", - slot = "shield", - }, - { - -- Journal Shield - itemid = 26947, - type = "deequip", - slot = "shield", - }, - { - -- reflecting crown - itemid = 26190, - type = "equip", - slot = "head", - }, - { - -- reflecting crown - itemid = 26190, - type = "deequip", - slot = "head", - }, - { - -- incandescent crown - itemid = 26189, - type = "equip", - slot = "head", - }, - { - -- incandescent crown - itemid = 26189, - type = "deequip", - slot = "head", - }, - { - -- iron crown - itemid = 26188, - type = "equip", - slot = "head", - }, - { - -- iron crown - itemid = 26188, - type = "deequip", - slot = "head", - }, - { - -- leaf crown - itemid = 26187, - type = "equip", - slot = "head", - }, - { - -- leaf crown - itemid = 26187, - type = "deequip", - slot = "head", - }, - { - -- ornate carving hammer - itemid = 26061, - type = "equip", - slot = "hand", - }, - { - -- ornate carving hammer - itemid = 26061, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving hammer - itemid = 26060, - type = "equip", - slot = "hand", - }, - { - -- valuable carving hammer - itemid = 26060, - type = "deequip", - slot = "hand", - }, - { - -- plain carving hammer - itemid = 26059, - type = "equip", - slot = "hand", - }, - { - -- plain carving hammer - itemid = 26059, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving mace - itemid = 26058, - type = "equip", - slot = "hand", - }, - { - -- ornate carving mace - itemid = 26058, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving mace - itemid = 26057, - type = "equip", - slot = "hand", - }, - { - -- valuable carving mace - itemid = 26057, - type = "deequip", - slot = "hand", - }, - { - -- plain carving mace - itemid = 26056, - type = "equip", - slot = "hand", - }, - { - -- plain carving mace - itemid = 26056, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving chopper - itemid = 26055, - type = "equip", - slot = "hand", - }, - { - -- ornate carving chopper - itemid = 26055, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving chopper - itemid = 26054, - type = "equip", - slot = "hand", - }, - { - -- valuable carving chopper - itemid = 26054, - type = "deequip", - slot = "hand", - }, - { - -- plain carving chopper - itemid = 26053, - type = "equip", - slot = "hand", - }, - { - -- plain carving chopper - itemid = 26053, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving axe - itemid = 26052, - type = "equip", - slot = "hand", - }, - { - -- ornate carving axe - itemid = 26052, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving axe - itemid = 26051, - type = "equip", - slot = "hand", - }, - { - -- valuable carving axe - itemid = 26051, - type = "deequip", - slot = "hand", - }, - { - -- plain carving axe - itemid = 26050, - type = "equip", - slot = "hand", - }, - { - -- plain carving axe - itemid = 26050, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving slayer - itemid = 26049, - type = "equip", - slot = "hand", - }, - { - -- ornate carving slayer - itemid = 26049, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving slayer - itemid = 26048, - type = "equip", - slot = "hand", - }, - { - -- valuable carving slayer - itemid = 26048, - type = "deequip", - slot = "hand", - }, - { - -- plain carving slayer - itemid = 26047, - type = "equip", - slot = "hand", - }, - { - -- plain carving slayer - itemid = 26047, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving blade - itemid = 26046, - type = "equip", - slot = "hand", - }, - { - -- ornate carving blade - itemid = 26046, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving blade - itemid = 26045, - type = "equip", - slot = "hand", - }, - { - -- valuable carving blade - itemid = 26045, - type = "deequip", - slot = "hand", - }, - { - -- plain carving blade - itemid = 26044, - type = "equip", - slot = "hand", - }, - { - -- plain carving blade - itemid = 26044, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy hammer - itemid = 26031, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy hammer - itemid = 26031, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy hammer - itemid = 26030, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy hammer - itemid = 26030, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy hammer - itemid = 26029, - type = "equip", - slot = "hand", - }, - { - -- plain remedy hammer - itemid = 26029, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy mace - itemid = 26028, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy mace - itemid = 26028, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy mace - itemid = 26027, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy mace - itemid = 26027, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy mace - itemid = 26026, - type = "equip", - slot = "hand", - }, - { - -- plain remedy mace - itemid = 26026, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy chopper - itemid = 26025, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy chopper - itemid = 26025, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy chopper - itemid = 26024, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy chopper - itemid = 26024, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy chopper - itemid = 26023, - type = "equip", - slot = "hand", - }, - { - -- plain remedy chopper - itemid = 26023, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy axe - itemid = 26022, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy axe - itemid = 26022, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy axe - itemid = 26021, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy axe - itemid = 26021, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy axe - itemid = 26020, - type = "equip", - slot = "hand", - }, - { - -- plain remedy axe - itemid = 26020, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy slayer - itemid = 26019, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy slayer - itemid = 26019, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy slayer - itemid = 26018, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy slayer - itemid = 26018, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy slayer - itemid = 26017, - type = "equip", - slot = "hand", - }, - { - -- plain remedy slayer - itemid = 26017, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy blade - itemid = 26016, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy blade - itemid = 26016, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy blade - itemid = 26015, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy blade - itemid = 26015, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy blade - itemid = 26014, - type = "equip", - slot = "hand", - }, - { - -- plain remedy blade - itemid = 26014, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem hammer - itemid = 26000, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem hammer - itemid = 26000, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem hammer - itemid = 25999, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem hammer - itemid = 25999, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem hammer - itemid = 25998, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem hammer - itemid = 25998, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem mace - itemid = 25997, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem mace - itemid = 25997, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem mace - itemid = 25996, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem mace - itemid = 25996, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem mace - itemid = 25995, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem mace - itemid = 25995, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem chopper - itemid = 25994, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem chopper - itemid = 25994, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem chopper - itemid = 25993, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem chopper - itemid = 25993, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem chopper - itemid = 25992, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem chopper - itemid = 25992, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem axe - itemid = 25991, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem axe - itemid = 25991, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem axe - itemid = 25990, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem axe - itemid = 25990, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem axe - itemid = 25989, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem axe - itemid = 25989, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem slayer - itemid = 25988, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem slayer - itemid = 25988, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem slayer - itemid = 25987, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem slayer - itemid = 25987, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem slayer - itemid = 25986, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem slayer - itemid = 25986, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem blade - itemid = 25985, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem blade - itemid = 25985, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem blade - itemid = 25984, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem blade - itemid = 25984, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem blade - itemid = 25983, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem blade - itemid = 25983, - type = "deequip", - slot = "hand", - }, - { - -- mathmaster shield (souvenir) - itemid = 25982, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield (souvenir) - itemid = 25982, - type = "deequip", - slot = "shield", - }, - { - -- energy war hammer replica - itemid = 25974, - type = "equip", - slot = "hand", - }, - { - -- energy war hammer replica - itemid = 25974, - type = "deequip", - slot = "hand", - }, - { - -- energy orcish maul replica - itemid = 25973, - type = "equip", - slot = "hand", - }, - { - -- energy orcish maul replica - itemid = 25973, - type = "deequip", - slot = "hand", - }, - { - -- energy basher replica - itemid = 25972, - type = "equip", - slot = "hand", - }, - { - -- energy basher replica - itemid = 25972, - type = "deequip", - slot = "hand", - }, - { - -- energy crystal mace replica - itemid = 25971, - type = "equip", - slot = "hand", - }, - { - -- energy crystal mace replica - itemid = 25971, - type = "deequip", - slot = "hand", - }, - { - -- energy clerical mace replica - itemid = 25970, - type = "equip", - slot = "hand", - }, - { - -- energy clerical mace replica - itemid = 25970, - type = "deequip", - slot = "hand", - }, - { - -- energy war axe replica - itemid = 25969, - type = "equip", - slot = "hand", - }, - { - -- energy war axe replica - itemid = 25969, - type = "deequip", - slot = "hand", - }, - { - -- energy headchopper replica - itemid = 25968, - type = "equip", - slot = "hand", - }, - { - -- energy headchopper replica - itemid = 25968, - type = "deequip", - slot = "hand", - }, - { - -- energy heroic axe replica - itemid = 25967, - type = "equip", - slot = "hand", - }, - { - -- energy heroic axe replica - itemid = 25967, - type = "deequip", - slot = "hand", - }, - { - -- energy knight axe replica - itemid = 25966, - type = "equip", - slot = "hand", - }, - { - -- energy knight axe replica - itemid = 25966, - type = "deequip", - slot = "hand", - }, - { - -- energy barbarian axe replica - itemid = 25965, - type = "equip", - slot = "hand", - }, - { - -- energy barbarian axe replica - itemid = 25965, - type = "deequip", - slot = "hand", - }, - { - -- energy dragon slayer replica - itemid = 25964, - type = "equip", - slot = "hand", - }, - { - -- energy dragon slayer replica - itemid = 25964, - type = "deequip", - slot = "hand", - }, - { - -- energy blacksteel replica - itemid = 25963, - type = "equip", - slot = "hand", - }, - { - -- energy blacksteel replica - itemid = 25963, - type = "deequip", - slot = "hand", - }, - { - -- energy mystic blade replica - itemid = 25962, - type = "equip", - slot = "hand", - }, - { - -- energy mystic blade replica - itemid = 25962, - type = "deequip", - slot = "hand", - }, - { - -- energy relic sword replica - itemid = 25961, - type = "equip", - slot = "hand", - }, - { - -- energy relic sword replica - itemid = 25961, - type = "deequip", - slot = "hand", - }, - { - -- energy spike sword replica - itemid = 25960, - type = "equip", - slot = "hand", - }, - { - -- energy spike sword replica - itemid = 25960, - type = "deequip", - slot = "hand", - }, - { - -- earth war hammer replica - itemid = 25959, - type = "equip", - slot = "hand", - }, - { - -- earth war hammer replica - itemid = 25959, - type = "deequip", - slot = "hand", - }, - { - -- earth orcish maul replica - itemid = 25958, - type = "equip", - slot = "hand", - }, - { - -- earth orcish maul replica - itemid = 25958, - type = "deequip", - slot = "hand", - }, - { - -- earth basher replica - itemid = 25957, - type = "equip", - slot = "hand", - }, - { - -- earth basher replica - itemid = 25957, - type = "deequip", - slot = "hand", - }, - { - -- earth crystal mace replica - itemid = 25956, - type = "equip", - slot = "hand", - }, - { - -- earth crystal mace replica - itemid = 25956, - type = "deequip", - slot = "hand", - }, - { - -- earth clerical mace replica - itemid = 25955, - type = "equip", - slot = "hand", - }, - { - -- earth clerical mace replica - itemid = 25955, - type = "deequip", - slot = "hand", - }, - { - -- earth war axe replica - itemid = 25954, - type = "equip", - slot = "hand", - }, - { - -- earth war axe replica - itemid = 25954, - type = "deequip", - slot = "hand", - }, - { - -- earth headchopper replica - itemid = 25953, - type = "equip", - slot = "hand", - }, - { - -- earth headchopper replica - itemid = 25953, - type = "deequip", - slot = "hand", - }, - { - -- earth heroic axe replica - itemid = 25952, - type = "equip", - slot = "hand", - }, - { - -- earth heroic axe replica - itemid = 25952, - type = "deequip", - slot = "hand", - }, - { - -- earth knight axe replica - itemid = 25951, - type = "equip", - slot = "hand", - }, - { - -- earth knight axe replica - itemid = 25951, - type = "deequip", - slot = "hand", - }, - { - -- earth barbarian axe replica - itemid = 25950, - type = "equip", - slot = "hand", - }, - { - -- earth barbarian axe replica - itemid = 25950, - type = "deequip", - slot = "hand", - }, - { - -- earth dragon slayer replica - itemid = 25949, - type = "equip", - slot = "hand", - }, - { - -- earth dragon slayer replica - itemid = 25949, - type = "deequip", - slot = "hand", - }, - { - -- earth blacksteel replica - itemid = 25948, - type = "equip", - slot = "hand", - }, - { - -- earth blacksteel replica - itemid = 25948, - type = "deequip", - slot = "hand", - }, - { - -- earth mystic blade replica - itemid = 25947, - type = "equip", - slot = "hand", - }, - { - -- earth mystic blade replica - itemid = 25947, - type = "deequip", - slot = "hand", - }, - { - -- earth relic sword replica - itemid = 25946, - type = "equip", - slot = "hand", - }, - { - -- earth relic sword replica - itemid = 25946, - type = "deequip", - slot = "hand", - }, - { - -- earth spike sword replica - itemid = 25945, - type = "equip", - slot = "hand", - }, - { - -- earth spike sword replica - itemid = 25945, - type = "deequip", - slot = "hand", - }, - { - -- icy war hammer replica - itemid = 25944, - type = "equip", - slot = "hand", - }, - { - -- icy war hammer replica - itemid = 25944, - type = "deequip", - slot = "hand", - }, - { - -- icy orcish maul replica - itemid = 25943, - type = "equip", - slot = "hand", - }, - { - -- icy orcish maul replica - itemid = 25943, - type = "deequip", - slot = "hand", - }, - { - -- icy basher replica - itemid = 25942, - type = "equip", - slot = "hand", - }, - { - -- icy basher replica - itemid = 25942, - type = "deequip", - slot = "hand", - }, - { - -- icy crystal mace replica - itemid = 25941, - type = "equip", - slot = "hand", - }, - { - -- icy crystal mace replica - itemid = 25941, - type = "deequip", - slot = "hand", - }, - { - -- icy clerical mace replica - itemid = 25940, - type = "equip", - slot = "hand", - }, - { - -- icy clerical mace replica - itemid = 25940, - type = "deequip", - slot = "hand", - }, - { - -- icy war axe replica - itemid = 25939, - type = "equip", - slot = "hand", - }, - { - -- icy war axe replica - itemid = 25939, - type = "deequip", - slot = "hand", - }, - { - -- icy headchopper replica - itemid = 25938, - type = "equip", - slot = "hand", - }, - { - -- icy headchopper replica - itemid = 25938, - type = "deequip", - slot = "hand", - }, - { - -- icy heroic axe replica - itemid = 25937, - type = "equip", - slot = "hand", - }, - { - -- icy heroic axe replica - itemid = 25937, - type = "deequip", - slot = "hand", - }, - { - -- icy knight axe replica - itemid = 25936, - type = "equip", - slot = "hand", - }, - { - -- icy knight axe replica - itemid = 25936, - type = "deequip", - slot = "hand", - }, - { - -- icy barbarian axe replica - itemid = 25935, - type = "equip", - slot = "hand", - }, - { - -- icy barbarian axe replica - itemid = 25935, - type = "deequip", - slot = "hand", - }, - { - -- icy dragon slayer replica - itemid = 25934, - type = "equip", - slot = "hand", - }, - { - -- icy dragon slayer replica - itemid = 25934, - type = "deequip", - slot = "hand", - }, - { - -- icy blacksteel replica - itemid = 25933, - type = "equip", - slot = "hand", - }, - { - -- icy blacksteel replica - itemid = 25933, - type = "deequip", - slot = "hand", - }, - { - -- icy mystic blade replica - itemid = 25932, - type = "equip", - slot = "hand", - }, - { - -- icy mystic blade replica - itemid = 25932, - type = "deequip", - slot = "hand", - }, - { - -- icy relic sword replica - itemid = 25931, - type = "equip", - slot = "hand", - }, - { - -- icy relic sword replica - itemid = 25931, - type = "deequip", - slot = "hand", - }, - { - -- icy spike sword replica - itemid = 25930, - type = "equip", - slot = "hand", - }, - { - -- icy spike sword replica - itemid = 25930, - type = "deequip", - slot = "hand", - }, - { - -- fiery war hammer replica - itemid = 25929, - type = "equip", - slot = "hand", - }, - { - -- fiery war hammer replica - itemid = 25929, - type = "deequip", - slot = "hand", - }, - { - -- fiery orcish maul replica - itemid = 25928, - type = "equip", - slot = "hand", - }, - { - -- fiery orcish maul replica - itemid = 25928, - type = "deequip", - slot = "hand", - }, - { - -- fiery basher replica - itemid = 25927, - type = "equip", - slot = "hand", - }, - { - -- fiery basher replica - itemid = 25927, - type = "deequip", - slot = "hand", - }, - { - -- fiery crystal mace replica - itemid = 25926, - type = "equip", - slot = "hand", - }, - { - -- fiery crystal mace replica - itemid = 25926, - type = "deequip", - slot = "hand", - }, - { - -- fiery clerical mace replica - itemid = 25925, - type = "equip", - slot = "hand", - }, - { - -- fiery clerical mace replica - itemid = 25925, - type = "deequip", - slot = "hand", - }, - { - -- fiery war axe replica - itemid = 25924, - type = "equip", - slot = "hand", - }, - { - -- fiery war axe replica - itemid = 25924, - type = "deequip", - slot = "hand", - }, - { - -- fiery headchopper replica - itemid = 25923, - type = "equip", - slot = "hand", - }, - { - -- fiery headchopper replica - itemid = 25923, - type = "deequip", - slot = "hand", - }, - { - -- fiery heroic axe replica - itemid = 25922, - type = "equip", - slot = "hand", - }, - { - -- fiery heroic axe replica - itemid = 25922, - type = "deequip", - slot = "hand", - }, - { - -- fiery knight axe replica - itemid = 25921, - type = "equip", - slot = "hand", - }, - { - -- fiery knight axe replica - itemid = 25921, - type = "deequip", - slot = "hand", - }, - { - -- fiery barbarian axe replica - itemid = 25920, - type = "equip", - slot = "hand", - }, - { - -- fiery barbarian axe replica - itemid = 25920, - type = "deequip", - slot = "hand", - }, - { - -- fiery dragon slayer replica - itemid = 25919, - type = "equip", - slot = "hand", - }, - { - -- fiery dragon slayer replica - itemid = 25919, - type = "deequip", - slot = "hand", - }, - { - -- fiery blacksteel replica - itemid = 25918, - type = "equip", - slot = "hand", - }, - { - -- fiery blacksteel replica - itemid = 25918, - type = "deequip", - slot = "hand", - }, - { - -- fiery mystic blade replica - itemid = 25917, - type = "equip", - slot = "hand", - }, - { - -- fiery mystic blade replica - itemid = 25917, - type = "deequip", - slot = "hand", - }, - { - -- fiery relic sword replica - itemid = 25916, - type = "equip", - slot = "hand", - }, - { - -- fiery relic sword replica - itemid = 25916, - type = "deequip", - slot = "hand", - }, - { - -- fiery spike sword replica - itemid = 25915, - type = "equip", - slot = "hand", - }, - { - -- fiery spike sword replica - itemid = 25915, - type = "deequip", - slot = "hand", - }, - { - -- blossom bag - itemid = 25780, - type = "equip", - slot = "backpack", - }, - { - -- blossom bag - itemid = 25780, - type = "deequip", - slot = "backpack", - }, - { - -- swan feather cloak - itemid = 25779, - type = "equip", - slot = "armor", - level = 60, - }, - { - -- swan feather cloak - itemid = 25779, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- wand of darkness - itemid = 25760, - type = "equip", - slot = "hand", - level = 41, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of darkness - itemid = 25760, - type = "deequip", - slot = "hand", - level = 41, - }, - { - -- royal star - itemid = 25759, - type = "equip", - slot = "hand", - }, - { - -- royal star - itemid = 25759, - type = "deequip", - slot = "hand", - }, - { - -- spectral bolt - itemid = 25758, - type = "equip", - slot = "ammo", - }, - { - -- spectral bolt - itemid = 25758, - type = "deequip", - slot = "ammo", - }, - { - -- leaf star - itemid = 25735, - type = "equip", - slot = "hand", - }, - { - -- leaf star - itemid = 25735, - type = "deequip", - slot = "hand", - }, - { - -- dream blossom staff - itemid = 25700, - type = "equip", - slot = "hand", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- dream blossom staff - itemid = 25700, - type = "deequip", - slot = "hand", - level = 80, - }, - { - -- wooden spellbook - itemid = 25699, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- wooden spellbook - itemid = 25699, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- butterfly ring - itemid = 25698, - type = "equip", - slot = "ring", - level = 50, - }, - { - -- butterfly ring - itemid = 25698, - type = "deequip", - slot = "ring", - level = 50, - }, - { - -- glowing rubbish amulet - itemid = 25297, - type = "equip", - slot = "necklace", - }, - { - -- glowing rubbish amulet - itemid = 25297, - type = "deequip", - slot = "necklace", - }, - { - -- rubbish amulet - itemid = 25296, - type = "equip", - slot = "necklace", - }, - { - -- rubbish amulet - itemid = 25296, - type = "deequip", - slot = "necklace", - }, - { - -- porcelain mask - itemid = 25088, - type = "equip", - slot = "head", - }, - { - -- porcelain mask - itemid = 25088, - type = "deequip", - slot = "head", - }, - { - -- filthy bunnyslippers - itemid = 24409, - type = "equip", - slot = "feet", - }, - { - -- filthy bunnyslippers - itemid = 24409, - type = "deequip", - slot = "feet", - }, - { - -- rusty winged helmet - itemid = 24405, - type = "equip", - slot = "head", - }, - { - -- rusty winged helmet - itemid = 24405, - type = "deequip", - slot = "head", - }, - { - -- tatty Dragon scale legs - itemid = 24404, - type = "equip", - slot = "legs", - }, - { - -- tatty Dragon scale legs - itemid = 24404, - type = "deequip", - slot = "legs", - }, - { - -- chocolatey dragon scale legs - itemid = 24402, - type = "equip", - slot = "legs", - }, - { - -- chocolatey dragon scale legs - itemid = 24402, - type = "deequip", - slot = "legs", - }, - { - -- Ferumbras' Candy Hat - itemid = 24397, - type = "equip", - slot = "head", - }, - { - -- Ferumbras' Candy Hat - itemid = 24397, - type = "deequip", - slot = "head", - }, - { - -- birthday backpack - itemid = 24395, - type = "equip", - slot = "backpack", - }, - { - -- birthday backpack - itemid = 24395, - type = "deequip", - slot = "backpack", - }, - { - -- pillow backpack - itemid = 24393, - type = "equip", - slot = "backpack", - }, - { - -- pillow backpack - itemid = 24393, - type = "deequip", - slot = "backpack", - }, - { - -- collar of red plasma - itemid = 23544, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- collar of red plasma - itemid = 23544, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of green plasma - itemid = 23543, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- collar of green plasma - itemid = 23543, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of blue plasma - itemid = 23542, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- collar of blue plasma - itemid = 23542, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- ring of red plasma - itemid = 23534, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ring of red plasma - itemid = 23534, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of red plasma - itemid = 23533, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ring of red plasma - itemid = 23533, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of green plasma - itemid = 23532, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ring of green plasma - itemid = 23532, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of green plasma - itemid = 23531, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ring of green plasma - itemid = 23531, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of blue plasma - itemid = 23530, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ring of blue plasma - itemid = 23530, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of blue plasma - itemid = 23529, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ring of blue plasma - itemid = 23529, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- collar of red plasma - itemid = 23528, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- collar of red plasma - itemid = 23528, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of green plasma - itemid = 23527, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- collar of green plasma - itemid = 23527, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of blue plasma - itemid = 23526, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- collar of blue plasma - itemid = 23526, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- energetic backpack - itemid = 23525, - type = "equip", - slot = "backpack", - }, - { - -- energetic backpack - itemid = 23525, - type = "deequip", - slot = "backpack", - }, - { - -- void boots - itemid = 23477, - type = "equip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23477, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23476, - type = "equip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23476, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- tiara of power - itemid = 23475, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- tiara of power - itemid = 23475, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- tiara of power - itemid = 23474, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- tiara of power - itemid = 23474, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- rod of carving - itemid = 23339, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of carving - itemid = 23339, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of carving - itemid = 23335, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of carving - itemid = 23335, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of carving - itemid = 23331, - type = "equip", - slot = "hand", - }, - { - -- crossbow of carving - itemid = 23331, - type = "deequip", - slot = "hand", - }, - { - -- bow of carving - itemid = 23327, - type = "equip", - slot = "hand", - }, - { - -- bow of carving - itemid = 23327, - type = "deequip", - slot = "hand", - }, - { - -- hammer of carving - itemid = 23323, - type = "equip", - slot = "hand", - }, - { - -- hammer of carving - itemid = 23323, - type = "deequip", - slot = "hand", - }, - { - -- mace of carving - itemid = 23319, - type = "equip", - slot = "hand", - }, - { - -- mace of carving - itemid = 23319, - type = "deequip", - slot = "hand", - }, - { - -- chopper of carving - itemid = 23315, - type = "equip", - slot = "hand", - }, - { - -- chopper of carving - itemid = 23315, - type = "deequip", - slot = "hand", - }, - { - -- axe of carving - itemid = 23311, - type = "equip", - slot = "hand", - }, - { - -- axe of carving - itemid = 23311, - type = "deequip", - slot = "hand", - }, - { - -- slayer of carving - itemid = 23307, - type = "equip", - slot = "hand", - }, - { - -- slayer of carving - itemid = 23307, - type = "deequip", - slot = "hand", - }, - { - -- blade of carving - itemid = 23303, - type = "equip", - slot = "hand", - }, - { - -- blade of carving - itemid = 23303, - type = "deequip", - slot = "hand", - }, - { - -- rod of remedy - itemid = 23299, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of remedy - itemid = 23299, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of remedy - itemid = 23295, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of remedy - itemid = 23295, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of remedy - itemid = 23291, - type = "equip", - slot = "hand", - }, - { - -- crossbow of remedy - itemid = 23291, - type = "deequip", - slot = "hand", - }, - { - -- bow of remedy - itemid = 23287, - type = "equip", - slot = "hand", - }, - { - -- bow of remedy - itemid = 23287, - type = "deequip", - slot = "hand", - }, - { - -- mace of remedy - itemid = 23279, - type = "equip", - slot = "hand", - }, - { - -- mace of remedy - itemid = 23279, - type = "deequip", - slot = "hand", - }, - { - -- chopper of remedy - itemid = 23275, - type = "equip", - slot = "hand", - }, - { - -- chopper of remedy - itemid = 23275, - type = "deequip", - slot = "hand", - }, - { - -- axe of remedy - itemid = 23271, - type = "equip", - slot = "hand", - }, - { - -- axe of remedy - itemid = 23271, - type = "deequip", - slot = "hand", - }, - { - -- slayer of remedy - itemid = 23267, - type = "equip", - slot = "hand", - }, - { - -- slayer of remedy - itemid = 23267, - type = "deequip", - slot = "hand", - }, - { - -- blade of remedy - itemid = 23263, - type = "equip", - slot = "hand", - }, - { - -- blade of remedy - itemid = 23263, - type = "deequip", - slot = "hand", - }, - { - -- rod of mayhem - itemid = 23232, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of mayhem - itemid = 23232, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of mayhem - itemid = 23231, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of mayhem - itemid = 23231, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of mayhem - itemid = 23230, - type = "equip", - slot = "hand", - }, - { - -- crossbow of mayhem - itemid = 23230, - type = "deequip", - slot = "hand", - }, - { - -- bow of mayhem - itemid = 23229, - type = "equip", - slot = "hand", - }, - { - -- bow of mayhem - itemid = 23229, - type = "deequip", - slot = "hand", - }, - { - -- hammer of mayhem - itemid = 23228, - type = "equip", - slot = "hand", - }, - { - -- hammer of mayhem - itemid = 23228, - type = "deequip", - slot = "hand", - }, - { - -- mace of mayhem - itemid = 23227, - type = "equip", - slot = "hand", - }, - { - -- mace of mayhem - itemid = 23227, - type = "deequip", - slot = "hand", - }, - { - -- chopper of mayhem - itemid = 23226, - type = "equip", - slot = "hand", - }, - { - -- chopper of mayhem - itemid = 23226, - type = "deequip", - slot = "hand", - }, - { - -- axe of mayhem - itemid = 23225, - type = "equip", - slot = "hand", - }, - { - -- axe of mayhem - itemid = 23225, - type = "deequip", - slot = "hand", - }, - { - -- slayer of mayhem - itemid = 23224, - type = "equip", - slot = "hand", - }, - { - -- slayer of mayhem - itemid = 23224, - type = "deequip", - slot = "hand", - }, - { - -- blade of mayhem - itemid = 23223, - type = "equip", - slot = "hand", - }, - { - -- blade of mayhem - itemid = 23223, - type = "deequip", - slot = "hand", - }, - { - -- shield of destiny - itemid = 22890, - type = "equip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22890, - type = "deequip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22889, - type = "equip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22889, - type = "deequip", - slot = "shield", - }, - { - -- rift crossbow - itemid = 22867, - type = "equip", - slot = "hand", - }, - { - -- rift crossbow - itemid = 22867, - type = "deequip", - slot = "hand", - }, - { - -- rift bow - itemid = 22866, - type = "equip", - slot = "hand", - }, - { - -- rift bow - itemid = 22866, - type = "deequip", - slot = "hand", - }, - { - -- boots of homecoming - itemid = 22774, - type = "equip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22774, - type = "deequip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22773, - type = "equip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22773, - type = "deequip", - slot = "feet", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22768, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22768, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22767, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22767, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' staff (enchanted) - itemid = 22766, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (enchanted) - itemid = 22766, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- ferumbras' staff (failed) - itemid = 22765, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (failed) - itemid = 22765, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- Ferumbras' staff - itemid = 22764, - type = "equip", - slot = "hand", - }, - { - -- Ferumbras' staff - itemid = 22764, - type = "deequip", - slot = "hand", - }, - { - -- maimer - itemid = 22762, - type = "equip", - slot = "hand", - }, - { - -- maimer - itemid = 22762, - type = "deequip", - slot = "hand", - }, - { - -- Impaler of the igniter - itemid = 22760, - type = "equip", - slot = "hand", - }, - { - -- Impaler of the igniter - itemid = 22760, - type = "deequip", - slot = "hand", - }, - { - -- plague bite - itemid = 22759, - type = "equip", - slot = "hand", - }, - { - -- plague bite - itemid = 22759, - type = "deequip", - slot = "hand", - }, - { - -- death gaze - itemid = 22758, - type = "equip", - slot = "shield", - level = 200, - }, - { - -- death gaze - itemid = 22758, - type = "deequip", - slot = "shield", - level = 200, - }, - { - -- shroud of despair - itemid = 22757, - type = "equip", - slot = "head", - level = 150, - }, - { - -- shroud of despair - itemid = 22757, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- treader of torment - itemid = 22756, - type = "equip", - slot = "feet", - }, - { - -- treader of torment - itemid = 22756, - type = "deequip", - slot = "feet", - }, - { - -- book of lies - itemid = 22755, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- book of lies - itemid = 22755, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- visage of the end days - itemid = 22754, - type = "equip", - slot = "head", - }, - { - -- visage of the end days - itemid = 22754, - type = "deequip", - slot = "head", - }, - { - -- ancient amulet - itemid = 22746, - type = "equip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 22746, - type = "deequip", - slot = "necklace", - }, - { - -- rift lance - itemid = 22727, - type = "equip", - slot = "hand", - }, - { - -- rift lance - itemid = 22727, - type = "deequip", - slot = "hand", - }, - { - -- rift shield - itemid = 22726, - type = "equip", - slot = "shield", - }, - { - -- rift shield - itemid = 22726, - type = "deequip", - slot = "shield", - }, - { - -- rattling gourd - itemid = 22651, - type = "equip", - slot = "shield", - }, - { - -- rattling gourd - itemid = 22651, - type = "deequip", - slot = "shield", - }, - { - -- gourd - itemid = 22650, - type = "equip", - slot = "shield", - }, - { - -- gourd - itemid = 22650, - type = "deequip", - slot = "shield", - }, - { - -- frostmind raiment - itemid = 22537, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- frostmind raiment - itemid = 22537, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thundermind raiment - itemid = 22536, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- thundermind raiment - itemid = 22536, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthmind raiment - itemid = 22535, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- earthmind raiment - itemid = 22535, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- firemind raiment - itemid = 22534, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- firemind raiment - itemid = 22534, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostsoul tabard - itemid = 22533, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- frostsoul tabard - itemid = 22533, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thundersoul tabard - itemid = 22532, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- thundersoul tabard - itemid = 22532, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthsoul tabard - itemid = 22531, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- earthsoul tabard - itemid = 22531, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- firesoul tabard - itemid = 22530, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- firesoul tabard - itemid = 22530, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart platemail - itemid = 22529, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart platemail - itemid = 22529, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart hauberk - itemid = 22528, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart hauberk - itemid = 22528, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart cuirass - itemid = 22527, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart cuirass - itemid = 22527, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart platemail - itemid = 22526, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart platemail - itemid = 22526, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart hauberk - itemid = 22525, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart hauberk - itemid = 22525, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart cuirass - itemid = 22524, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart cuirass - itemid = 22524, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart platemail - itemid = 22523, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart platemail - itemid = 22523, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart hauberk - itemid = 22522, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart hauberk - itemid = 22522, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart cuirass - itemid = 22521, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart cuirass - itemid = 22521, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart platemail - itemid = 22520, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart platemail - itemid = 22520, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart hauberk - itemid = 22519, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart hauberk - itemid = 22519, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart cuirass - itemid = 22518, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart cuirass - itemid = 22518, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- onyx pendant - itemid = 22195, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- onyx pendant - itemid = 22195, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- shamanic mask - itemid = 22192, - type = "equip", - slot = "head", - }, - { - -- shamanic mask - itemid = 22192, - type = "deequip", - slot = "head", - }, - { - -- painted gourd rattle - itemid = 22190, - type = "equip", - slot = "shield", - }, - { - -- painted gourd rattle - itemid = 22190, - type = "deequip", - slot = "shield", - }, - { - -- ogre sceptra - itemid = 22183, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- ogre sceptra - itemid = 22183, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- ogre choppa - itemid = 22172, - type = "equip", - slot = "hand", - }, - { - -- ogre choppa - itemid = 22172, - type = "deequip", - slot = "hand", - }, - { - -- ogre klubba - itemid = 22171, - type = "equip", - slot = "hand", - }, - { - -- ogre klubba - itemid = 22171, - type = "deequip", - slot = "hand", - }, - { - -- house silversun's signet ring - itemid = 22170, - type = "equip", - slot = "ring", - }, - { - -- house silversun's signet ring - itemid = 22170, - type = "deequip", - slot = "ring", - }, - { - -- dark wizard's crown - itemid = 22154, - type = "equip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22154, - type = "deequip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22153, - type = "equip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22153, - type = "deequip", - slot = "head", - }, - { - -- enchanted werewolf amulet - itemid = 22134, - type = "equip", - slot = "necklace", - }, - { - -- enchanted werewolf amulet - itemid = 22134, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted werewolf helmet - itemid = 22130, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted werewolf helmet - itemid = 22130, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - itemid = 22129, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted werewolf helmet - itemid = 22129, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - itemid = 22128, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- enchanted werewolf helmet - itemid = 22128, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - itemid = 22127, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- enchanted werewolf helmet - itemid = 22127, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- wereboar loincloth - itemid = 22087, - type = "equip", - slot = "legs", - }, - { - -- wereboar loincloth - itemid = 22087, - type = "deequip", - slot = "legs", - }, - { - -- badger boots - itemid = 22086, - type = "equip", - slot = "feet", - level = 60, - }, - { - -- badger boots - itemid = 22086, - type = "deequip", - slot = "feet", - level = 60, - }, - { - -- fur armor - itemid = 22085, - type = "equip", - slot = "armor", - level = 50, - }, - { - -- fur armor - itemid = 22085, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- wolf backpack - itemid = 22084, - type = "equip", - slot = "backpack", - }, - { - -- wolf backpack - itemid = 22084, - type = "deequip", - slot = "backpack", - }, - { - -- werewolf helmet - itemid = 22062, - type = "equip", - slot = "head", - level = 100, - }, - { - -- werewolf helmet - itemid = 22062, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- werewolf amulet - itemid = 22060, - type = "equip", - slot = "necklace", - }, - { - -- werewolf amulet - itemid = 22060, - type = "deequip", - slot = "necklace", - }, - { - -- oriental shoes - itemid = 21981, - type = "equip", - slot = "feet", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- oriental shoes - itemid = 21981, - type = "deequip", - slot = "feet", - level = 80, - }, - { - -- sweetheart ring - itemid = 21955, - type = "equip", - slot = "ring", - }, - { - -- sweetheart ring - itemid = 21955, - type = "deequip", - slot = "ring", - }, - { - -- crest of the deep seas - itemid = 21892, - type = "equip", - slot = "head", - level = 80, - }, - { - -- crest of the deep seas - itemid = 21892, - type = "deequip", - slot = "head", - level = 80, - }, - { - -- brandon's wedding ring - itemid = 21745, - type = "equip", - slot = "ring", - }, - { - -- brandon's wedding ring - itemid = 21745, - type = "deequip", - slot = "ring", - }, - { - -- simple arrow - itemid = 21470, - type = "equip", - slot = "ammo", - }, - { - -- simple arrow - itemid = 21470, - type = "deequip", - slot = "ammo", - }, - { - -- war backpack - itemid = 21445, - type = "equip", - slot = "backpack", - }, - { - -- war backpack - itemid = 21445, - type = "deequip", - slot = "backpack", - }, - { - -- the Lion's Heart - itemid = 21439, - type = "equip", - slot = "necklace", - }, - { - -- the Lion's Heart - itemid = 21439, - type = "deequip", - slot = "necklace", - }, - { - -- shopping bag - itemid = 21411, - type = "equip", - slot = "backpack", - }, - { - -- shopping bag - itemid = 21411, - type = "deequip", - slot = "backpack", - }, - { - -- broken wooden shield - itemid = 21401, - type = "equip", - slot = "shield", - }, - { - -- broken wooden shield - itemid = 21401, - type = "deequip", - slot = "shield", - }, - { - -- spellbook of the novice - itemid = 21400, - type = "equip", - slot = "shield", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of the novice - itemid = 21400, - type = "deequip", - slot = "shield", - }, - { - -- the chiller - itemid = 21350, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- the chiller - itemid = 21350, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- the scorcher - itemid = 21348, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- the scorcher - itemid = 21348, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- glooth backpack - itemid = 21295, - type = "equip", - slot = "backpack", - }, - { - -- glooth backpack - itemid = 21295, - type = "deequip", - slot = "backpack", - }, - { - -- feedbag - itemid = 21292, - type = "equip", - slot = "backpack", - }, - { - -- feedbag - itemid = 21292, - type = "deequip", - slot = "backpack", - }, - { - -- one hit wonder - itemid = 21219, - type = "equip", - slot = "hand", - }, - { - -- one hit wonder - itemid = 21219, - type = "deequip", - slot = "hand", - }, - { - -- glooth amulet - itemid = 21183, - type = "equip", - slot = "necklace", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glooth amulet - itemid = 21183, - type = "deequip", - slot = "necklace", - level = 75, - }, - { - -- glooth axe - itemid = 21180, - type = "equip", - slot = "hand", - }, - { - -- glooth axe - itemid = 21180, - type = "deequip", - slot = "hand", - }, - { - -- glooth blade - itemid = 21179, - type = "equip", - slot = "hand", - }, - { - -- glooth blade - itemid = 21179, - type = "deequip", - slot = "hand", - }, - { - -- glooth club - itemid = 21178, - type = "equip", - slot = "hand", - }, - { - -- glooth club - itemid = 21178, - type = "deequip", - slot = "hand", - }, - { - -- cowtana - itemid = 21177, - type = "equip", - slot = "hand", - }, - { - -- cowtana - itemid = 21177, - type = "deequip", - slot = "hand", - }, - { - -- execowtioner axe - itemid = 21176, - type = "equip", - slot = "hand", - }, - { - -- execowtioner axe - itemid = 21176, - type = "deequip", - slot = "hand", - }, - { - -- mino shield - itemid = 21175, - type = "equip", - slot = "shield", - }, - { - -- mino shield - itemid = 21175, - type = "deequip", - slot = "shield", - }, - { - -- mino lance - itemid = 21174, - type = "equip", - slot = "hand", - }, - { - -- mino lance - itemid = 21174, - type = "deequip", - slot = "hand", - }, - { - -- moohtant cudgel - itemid = 21173, - type = "equip", - slot = "hand", - }, - { - -- moohtant cudgel - itemid = 21173, - type = "deequip", - slot = "hand", - }, - { - -- glooth whip - itemid = 21172, - type = "equip", - slot = "hand", - }, - { - -- glooth whip - itemid = 21172, - type = "deequip", - slot = "hand", - }, - { - -- metal bat - itemid = 21171, - type = "equip", - slot = "hand", - }, - { - -- metal bat - itemid = 21171, - type = "deequip", - slot = "hand", - }, - { - -- gearwheel chain - itemid = 21170, - type = "equip", - slot = "necklace", - level = 75, - }, - { - -- gearwheel chain - itemid = 21170, - type = "deequip", - slot = "necklace", - level = 75, - }, - { - -- metal spats - itemid = 21169, - type = "equip", - slot = "feet", - level = 50, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- metal spats - itemid = 21169, - type = "deequip", - slot = "feet", - level = 50, - }, - { - -- alloy legs - itemid = 21168, - type = "equip", - slot = "legs", - level = 60, - }, - { - -- alloy legs - itemid = 21168, - type = "deequip", - slot = "legs", - level = 60, - }, - { - -- heat core - itemid = 21167, - type = "equip", - slot = "armor", - }, - { - -- heat core - itemid = 21167, - type = "deequip", - slot = "armor", - }, - { - -- mooh'tah plate - itemid = 21166, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- mooh'tah plate - itemid = 21166, - type = "deequip", - slot = "armor", - }, - { - -- rubber cap - itemid = 21165, - type = "equip", - slot = "head", - level = 70, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- rubber cap - itemid = 21165, - type = "deequip", - slot = "head", - level = 70, - }, - { - -- glooth cape - itemid = 21164, - type = "equip", - slot = "armor", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glooth cape - itemid = 21164, - type = "deequip", - slot = "armor", - level = 40, - }, - { - -- glooth spear - itemid = 21158, - type = "equip", - slot = "hand", - }, - { - -- glooth spear - itemid = 21158, - type = "deequip", - slot = "hand", - }, - { - -- cake backpack - itemid = 20347, - type = "equip", - slot = "backpack", - }, - { - -- cake backpack - itemid = 20347, - type = "deequip", - slot = "backpack", - }, - { - -- unstable ring of ending - itemid = 20209, - type = "equip", - slot = "ring", - }, - { - -- unstable ring of ending - itemid = 20209, - type = "deequip", - slot = "ring", - }, - { - -- broken visor - itemid = 20184, - type = "equip", - slot = "head", - }, - { - -- broken visor - itemid = 20184, - type = "deequip", - slot = "head", - }, - { - -- ring of ending - itemid = 20182, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of ending - itemid = 20182, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- eerie song book - itemid = 20140, - type = "equip", - slot = "shield", - }, - { - -- eerie song book - itemid = 20140, - type = "deequip", - slot = "shield", - }, - { - -- umbral master spellbook - itemid = 20090, - type = "equip", - slot = "shield", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- umbral master spellbook - itemid = 20090, - type = "deequip", - slot = "shield", - level = 250, - }, - { - -- umbral spellbook - itemid = 20089, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- umbral spellbook - itemid = 20089, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- crude umbral spellbook - itemid = 20088, - type = "equip", - slot = "shield", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- crude umbral spellbook - itemid = 20088, - type = "deequip", - slot = "shield", - level = 75, - }, - { - -- umbral master crossbow - itemid = 20087, - type = "equip", - slot = "hand", - }, - { - -- umbral master crossbow - itemid = 20087, - type = "deequip", - slot = "hand", - }, - { - -- umbral crossbow - itemid = 20086, - type = "equip", - slot = "hand", - }, - { - -- umbral crossbow - itemid = 20086, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral crossbow - itemid = 20085, - type = "equip", - slot = "hand", - }, - { - -- crude umbral crossbow - itemid = 20085, - type = "deequip", - slot = "hand", - }, - { - -- umbral master bow - itemid = 20084, - type = "equip", - slot = "hand", - }, - { - -- umbral master bow - itemid = 20084, - type = "deequip", - slot = "hand", - }, - { - -- umbral bow - itemid = 20083, - type = "equip", - slot = "hand", - }, - { - -- umbral bow - itemid = 20083, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral bow - itemid = 20082, - type = "equip", - slot = "hand", - }, - { - -- crude umbral bow - itemid = 20082, - type = "deequip", - slot = "hand", - }, - { - -- umbral master hammer - itemid = 20081, - type = "equip", - slot = "hand", - }, - { - -- umbral master hammer - itemid = 20081, - type = "deequip", - slot = "hand", - }, - { - -- umbral hammer - itemid = 20080, - type = "equip", - slot = "hand", - }, - { - -- umbral hammer - itemid = 20080, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral hammer - itemid = 20079, - type = "equip", - slot = "hand", - }, - { - -- crude umbral hammer - itemid = 20079, - type = "deequip", - slot = "hand", - }, - { - -- umbral master mace - itemid = 20078, - type = "equip", - slot = "hand", - }, - { - -- umbral master mace - itemid = 20078, - type = "deequip", - slot = "hand", - }, - { - -- umbral mace - itemid = 20077, - type = "equip", - slot = "hand", - }, - { - -- umbral mace - itemid = 20077, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral mace - itemid = 20076, - type = "equip", - slot = "hand", - }, - { - -- crude umbral mace - itemid = 20076, - type = "deequip", - slot = "hand", - }, - { - -- umbral master chopper - itemid = 20075, - type = "equip", - slot = "hand", - }, - { - -- umbral master chopper - itemid = 20075, - type = "deequip", - slot = "hand", - }, - { - -- umbral chopper - itemid = 20074, - type = "equip", - slot = "hand", - }, - { - -- umbral chopper - itemid = 20074, - type = "deequip", - slot = "hand", - }, - { - -- guardian halberd - itemid = 20073, - type = "equip", - slot = "hand", - }, - { - -- guardian halberd - itemid = 20073, - type = "deequip", - slot = "hand", - }, - { - -- umbral master axe - itemid = 20072, - type = "equip", - slot = "hand", - }, - { - -- umbral master axe - itemid = 20072, - type = "deequip", - slot = "hand", - }, - { - -- umbral axe - itemid = 20071, - type = "equip", - slot = "hand", - }, - { - -- umbral axe - itemid = 20071, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral axe - itemid = 20070, - type = "equip", - slot = "hand", - }, - { - -- crude umbral axe - itemid = 20070, - type = "deequip", - slot = "hand", - }, - { - -- umbral master slayer - itemid = 20069, - type = "equip", - slot = "hand", - }, - { - -- umbral master slayer - itemid = 20069, - type = "deequip", - slot = "hand", - }, - { - -- umbral slayer - itemid = 20068, - type = "equip", - slot = "hand", - }, - { - -- umbral slayer - itemid = 20068, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral slayer - itemid = 20067, - type = "equip", - slot = "hand", - }, - { - -- crude umbral slayer - itemid = 20067, - type = "deequip", - slot = "hand", - }, - { - -- umbral masterblade - itemid = 20066, - type = "equip", - slot = "hand", - }, - { - -- umbral masterblade - itemid = 20066, - type = "deequip", - slot = "hand", - }, - { - -- umbral blade - itemid = 20065, - type = "equip", - slot = "hand", - }, - { - -- umbral blade - itemid = 20065, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral blade - itemid = 20064, - type = "equip", - slot = "hand", - }, - { - -- crude umbral blade - itemid = 20064, - type = "deequip", - slot = "hand", - }, - { - -- strange good night songs - itemid = 20050, - type = "equip", - slot = "shield", - }, - { - -- strange good night songs - itemid = 20050, - type = "deequip", - slot = "shield", - }, - { - -- furious frock - itemid = 19391, - type = "equip", - slot = "armor", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- furious frock - itemid = 19391, - type = "deequip", - slot = "armor", - level = 130, - }, - { - -- vampire silk slippers - itemid = 19374, - type = "equip", - slot = "feet", - }, - { - -- vampire silk slippers - itemid = 19374, - type = "deequip", - slot = "feet", - }, - { - -- haunted mirror piece - itemid = 19373, - type = "equip", - slot = "shield", - }, - { - -- haunted mirror piece - itemid = 19373, - type = "deequip", - slot = "shield", - }, - { - -- goo shell - itemid = 19372, - type = "equip", - slot = "armor", - }, - { - -- goo shell - itemid = 19372, - type = "deequip", - slot = "armor", - }, - { - -- icy culottes - itemid = 19366, - type = "equip", - slot = "legs", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- icy culottes - itemid = 19366, - type = "deequip", - slot = "legs", - }, - { - -- runic ice shield - itemid = 19363, - type = "equip", - slot = "shield", - }, - { - -- runic ice shield - itemid = 19363, - type = "deequip", - slot = "shield", - }, - { - -- icicle bow - itemid = 19362, - type = "equip", - slot = "hand", - }, - { - -- icicle bow - itemid = 19362, - type = "deequip", - slot = "hand", - }, - { - -- horn - itemid = 19359, - type = "equip", - slot = "ring", - }, - { - -- horn - itemid = 19359, - type = "deequip", - slot = "ring", - }, - { - -- albino plate - itemid = 19358, - type = "equip", - slot = "armor", - }, - { - -- albino plate - itemid = 19358, - type = "deequip", - slot = "armor", - }, - { - -- shrunken head necklace - itemid = 19357, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- shrunken head necklace - itemid = 19357, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- triple bolt crossbow - itemid = 19356, - type = "equip", - slot = "hand", - }, - { - -- triple bolt crossbow - itemid = 19356, - type = "deequip", - slot = "hand", - }, - { - -- pannier backpack - itemid = 19159, - type = "equip", - slot = "backpack", - }, - { - -- pannier backpack - itemid = 19159, - type = "deequip", - slot = "backpack", - }, - { - -- friendship amulet - itemid = 19153, - type = "equip", - slot = "necklace", - }, - { - -- friendship amulet - itemid = 19153, - type = "deequip", - slot = "necklace", - }, - { - -- vampire's signet ring - itemid = 18935, - type = "equip", - slot = "ring", - }, - { - -- vampire's signet ring - itemid = 18935, - type = "deequip", - slot = "ring", - }, - { - -- spiky club - itemid = 17859, - type = "equip", - slot = "hand", - }, - { - -- spiky club - itemid = 17859, - type = "deequip", - slot = "hand", - }, - { - -- helmet of the lost - itemid = 17852, - type = "equip", - slot = "head", - }, - { - -- helmet of the lost - itemid = 17852, - type = "deequip", - slot = "head", - }, - { - -- leather harness - itemid = 17846, - type = "equip", - slot = "armor", - }, - { - -- leather harness - itemid = 17846, - type = "deequip", - slot = "armor", - }, - { - -- buckle - itemid = 17829, - type = "equip", - slot = "armor", - }, - { - -- buckle - itemid = 17829, - type = "deequip", - slot = "armor", - }, - { - -- pair of iron fists - itemid = 17828, - type = "equip", - slot = "hand", - }, - { - -- pair of iron fists - itemid = 17828, - type = "deequip", - slot = "hand", - }, - { - -- swampling club - itemid = 17824, - type = "equip", - slot = "hand", - }, - { - -- swampling club - itemid = 17824, - type = "deequip", - slot = "hand", - }, - { - -- life preserver - itemid = 17813, - type = "equip", - slot = "hand", - }, - { - -- life preserver - itemid = 17813, - type = "deequip", - slot = "hand", - }, - { - -- ratana - itemid = 17812, - type = "equip", - slot = "hand", - }, - { - -- ratana - itemid = 17812, - type = "deequip", - slot = "hand", - }, - { - -- spike shield - itemid = 17810, - type = "equip", - slot = "shield", - }, - { - -- spike shield - itemid = 17810, - type = "deequip", - slot = "shield", - }, - { - -- sorc and druid staff - itemid = 17111, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "None", true }, - }, - }, - { - -- sorc and druid staff - itemid = 17111, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- mean paladin spear - itemid = 17110, - type = "equip", - slot = "hand", - }, - { - -- mean paladin spear - itemid = 17110, - type = "deequip", - slot = "hand", - }, - { - -- mean knight sword - itemid = 17109, - type = "equip", - slot = "hand", - }, - { - -- mean knight sword - itemid = 17109, - type = "deequip", - slot = "hand", - }, - { - -- prismatic ring - itemid = 16264, - type = "equip", - slot = "ring", - level = 120, - }, - { - -- prismatic ring - itemid = 16264, - type = "deequip", - slot = "ring", - level = 120, - }, - { - -- shiny blade - itemid = 16175, - type = "equip", - slot = "hand", - }, - { - -- shiny blade - itemid = 16175, - type = "deequip", - slot = "hand", - }, - { - -- mycological bow - itemid = 16164, - type = "equip", - slot = "hand", - }, - { - -- mycological bow - itemid = 16164, - type = "deequip", - slot = "hand", - }, - { - -- crystal crossbow - itemid = 16163, - type = "equip", - slot = "hand", - }, - { - -- crystal crossbow - itemid = 16163, - type = "deequip", - slot = "hand", - }, - { - -- mycological mace - itemid = 16162, - type = "equip", - slot = "hand", - }, - { - -- mycological mace - itemid = 16162, - type = "deequip", - slot = "hand", - }, - { - -- crystalline axe - itemid = 16161, - type = "equip", - slot = "hand", - }, - { - -- crystalline axe - itemid = 16161, - type = "deequip", - slot = "hand", - }, - { - -- crystalline sword - itemid = 16160, - type = "equip", - slot = "hand", - }, - { - -- crystalline sword - itemid = 16160, - type = "deequip", - slot = "hand", - }, - { - -- envenomed arrow - itemid = 16143, - type = "equip", - slot = "ammo", - }, - { - -- envenomed arrow - itemid = 16143, - type = "deequip", - slot = "ammo", - }, - { - -- drill bolt - itemid = 16142, - type = "equip", - slot = "ammo", - }, - { - -- drill bolt - itemid = 16142, - type = "deequip", - slot = "ammo", - }, - { - -- prismatic bolt - itemid = 16141, - type = "equip", - slot = "ammo", - }, - { - -- prismatic bolt - itemid = 16141, - type = "deequip", - slot = "ammo", - }, - { - -- glacial rod - itemid = 16118, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- glacial rod - itemid = 16118, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- muck rod - itemid = 16117, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- muck rod - itemid = 16117, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- prismatic shield - itemid = 16116, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- prismatic shield - itemid = 16116, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- wand of everblazing - itemid = 16115, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of everblazing - itemid = 16115, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- prismatic ring - itemid = 16114, - type = "equip", - slot = "ring", - level = 120, - }, - { - -- prismatic ring - itemid = 16114, - type = "deequip", - slot = "ring", - level = 120, - }, - { - -- prismatic necklace - itemid = 16113, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- prismatic necklace - itemid = 16113, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- prismatic boots - itemid = 16112, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic boots - itemid = 16112, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- prismatic legs - itemid = 16111, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic legs - itemid = 16111, - type = "deequip", - slot = "legs", - level = 150, - }, - { - -- prismatic armor - itemid = 16110, - type = "equip", - slot = "armor", - level = 120, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic armor - itemid = 16110, - type = "deequip", - slot = "armor", - level = 120, - }, - { - -- prismatic helmet - itemid = 16109, - type = "equip", - slot = "head", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- prismatic helmet - itemid = 16109, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- gill necklace - itemid = 16108, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- gill necklace - itemid = 16108, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- spellbook of vigilance - itemid = 16107, - type = "equip", - slot = "shield", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of vigilance - itemid = 16107, - type = "deequip", - slot = "shield", - level = 130, - }, - { - -- gill legs - itemid = 16106, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill legs - itemid = 16106, - type = "deequip", - slot = "legs", - level = 150, - }, - { - -- gill coat - itemid = 16105, - type = "equip", - slot = "armor", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill coat - itemid = 16105, - type = "deequip", - slot = "armor", - level = 150, - }, - { - -- gill gugel - itemid = 16104, - type = "equip", - slot = "head", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill gugel - itemid = 16104, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- crystal backpack - itemid = 16100, - type = "equip", - slot = "backpack", - }, - { - -- crystal backpack - itemid = 16100, - type = "deequip", - slot = "backpack", - }, - { - -- mushroom backpack - itemid = 16099, - type = "equip", - slot = "backpack", - }, - { - -- mushroom backpack - itemid = 16099, - type = "deequip", - slot = "backpack", - }, - { - -- wand of defiance - itemid = 16096, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of defiance - itemid = 16096, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- crystalline arrow - itemid = 15793, - type = "equip", - slot = "ammo", - }, - { - -- crystalline arrow - itemid = 15793, - type = "deequip", - slot = "ammo", - }, - { - -- crystal bolt - itemid = 15792, - type = "equip", - slot = "ammo", - }, - { - -- crystal bolt - itemid = 15792, - type = "deequip", - slot = "ammo", - }, - { - -- spellbook of ancient arcana - itemid = 14769, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of ancient arcana - itemid = 14769, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- thorn spitter - itemid = 14768, - type = "equip", - slot = "hand", - }, - { - -- thorn spitter - itemid = 14768, - type = "deequip", - slot = "hand", - }, - { - -- mathmaster shield - itemid = 14761, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14761, - type = "deequip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14760, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14760, - type = "deequip", - slot = "shield", - }, - { - -- anniversary backpack - itemid = 14674, - type = "equip", - slot = "backpack", - }, - { - -- anniversary backpack - itemid = 14674, - type = "deequip", - slot = "backpack", - }, - { - -- vortex bolt - itemid = 14252, - type = "equip", - slot = "ammo", - }, - { - -- vortex bolt - itemid = 14252, - type = "deequip", - slot = "ammo", - }, - { - -- tarsal arrow - itemid = 14251, - type = "equip", - slot = "ammo", - }, - { - -- tarsal arrow - itemid = 14251, - type = "deequip", - slot = "ammo", - }, - { - -- deepling squelcher - itemid = 14250, - type = "equip", - slot = "hand", - }, - { - -- deepling squelcher - itemid = 14250, - type = "deequip", - slot = "hand", - }, - { - -- buggy backpack - itemid = 14249, - type = "equip", - slot = "backpack", - }, - { - -- buggy backpack - itemid = 14249, - type = "deequip", - slot = "backpack", - }, - { - -- deepling backpack - itemid = 14248, - type = "equip", - slot = "backpack", - }, - { - -- deepling backpack - itemid = 14248, - type = "deequip", - slot = "backpack", - }, - { - -- ornate crossbow - itemid = 14247, - type = "equip", - slot = "hand", - }, - { - -- ornate crossbow - itemid = 14247, - type = "deequip", - slot = "hand", - }, - { - -- hive bow - itemid = 14246, - type = "equip", - slot = "hand", - }, - { - -- hive bow - itemid = 14246, - type = "deequip", - slot = "hand", - }, - { - -- hive scythe - itemid = 14089, - type = "equip", - slot = "hand", - }, - { - -- hive scythe - itemid = 14089, - type = "deequip", - slot = "hand", - }, - { - -- carapace shield - itemid = 14088, - type = "equip", - slot = "shield", - }, - { - -- carapace shield - itemid = 14088, - type = "deequip", - slot = "shield", - }, - { - -- grasshopper legs - itemid = 14087, - type = "equip", - slot = "legs", - level = 75, - }, - { - -- grasshopper legs - itemid = 14087, - type = "deequip", - slot = "legs", - level = 75, - }, - { - -- calopteryx cape - itemid = 14086, - type = "equip", - slot = "armor", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- calopteryx cape - itemid = 14086, - type = "deequip", - slot = "armor", - level = 80, - }, - { - -- guardian axe - itemid = 14043, - type = "equip", - slot = "hand", - }, - { - -- guardian axe - itemid = 14043, - type = "deequip", - slot = "hand", - }, - { - -- warrior's shield - itemid = 14042, - type = "equip", - slot = "shield", - }, - { - -- warrior's shield - itemid = 14042, - type = "deequip", - slot = "shield", - }, - { - -- warrior's axe - itemid = 14040, - type = "equip", - slot = "hand", - }, - { - -- warrior's axe - itemid = 14040, - type = "deequip", - slot = "hand", - }, - { - -- ornate mace - itemid = 14001, - type = "equip", - slot = "hand", - }, - { - -- ornate mace - itemid = 14001, - type = "deequip", - slot = "hand", - }, - { - -- ornate shield - itemid = 14000, - type = "equip", - slot = "shield", - level = 130, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate shield - itemid = 14000, - type = "deequip", - slot = "shield", - level = 130, - }, - { - -- ornate legs - itemid = 13999, - type = "equip", - slot = "legs", - level = 185, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate legs - itemid = 13999, - type = "deequip", - slot = "legs", - level = 185, - }, - { - -- depth scutum - itemid = 13998, - type = "equip", - slot = "shield", - level = 120, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- depth scutum - itemid = 13998, - type = "deequip", - slot = "shield", - level = 120, - }, - { - -- depth calcei - itemid = 13997, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- depth calcei - itemid = 13997, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- depth ocrea - itemid = 13996, - type = "equip", - slot = "legs", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- depth ocrea - itemid = 13996, - type = "deequip", - slot = "legs", - level = 130, - }, - { - -- depth galea - itemid = 13995, - type = "equip", - slot = "head", - level = 150, - }, - { - -- depth galea - itemid = 13995, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- depth lorica - itemid = 13994, - type = "equip", - slot = "armor", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- depth lorica - itemid = 13994, - type = "deequip", - slot = "armor", - level = 150, - }, - { - -- ornate chestplate - itemid = 13993, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate chestplate - itemid = 13993, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- deepling axe - itemid = 13991, - type = "equip", - slot = "hand", - }, - { - -- deepling axe - itemid = 13991, - type = "deequip", - slot = "hand", - }, - { - -- necklace of the deep - itemid = 13990, - type = "equip", - slot = "necklace", - level = 120, - }, - { - -- necklace of the deep - itemid = 13990, - type = "deequip", - slot = "necklace", - level = 120, - }, - { - -- deepling staff - itemid = 13987, - type = "equip", - slot = "hand", - }, - { - -- deepling staff - itemid = 13987, - type = "deequip", - slot = "hand", - }, - { - -- the Epic Wisdom - itemid = 12810, - type = "equip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12810, - type = "deequip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12809, - type = "equip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12809, - type = "deequip", - slot = "head", - }, - { - -- shimmer wand - itemid = 12741, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- shimmer wand - itemid = 12741, - type = "deequip", - slot = "hand", - level = 40, - }, - { - -- broken ring of ending - itemid = 12737, - type = "equip", - slot = "ring", - }, - { - -- broken ring of ending - itemid = 12737, - type = "deequip", - slot = "ring", - }, - { - -- shimmer bow - itemid = 12733, - type = "equip", - slot = "hand", - }, - { - -- shimmer bow - itemid = 12733, - type = "deequip", - slot = "hand", - }, - { - -- shimmer rod - itemid = 12732, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- shimmer rod - itemid = 12732, - type = "deequip", - slot = "hand", - level = 40, - }, - { - -- shimmer sword - itemid = 12731, - type = "equip", - slot = "hand", - }, - { - -- shimmer sword - itemid = 12731, - type = "deequip", - slot = "hand", - }, - { - -- heavy trident - itemid = 12683, - type = "equip", - slot = "hand", - }, - { - -- heavy trident - itemid = 12683, - type = "deequip", - slot = "hand", - }, - { - -- wooden sword - itemid = 12673, - type = "equip", - slot = "hand", - }, - { - -- wooden sword - itemid = 12673, - type = "deequip", - slot = "hand", - }, - { - -- star ring - itemid = 12670, - type = "equip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12670, - type = "deequip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12669, - type = "equip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12669, - type = "deequip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- wand of dimensions - itemid = 12603, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of dimensions - itemid = 12603, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- mage's cap - itemid = 12599, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- mage's cap - itemid = 12599, - type = "deequip", - slot = "head", - }, - { - -- fish tail (equipped) - itemid = 11543, - type = "equip", - slot = "feet", - }, - { - -- fish tail (equipped) - itemid = 11543, - type = "deequip", - slot = "feet", - }, - { - -- golden hyena pendant - itemid = 12543, - type = "equip", - slot = "necklace", - }, - { - -- golden hyena pendant - itemid = 12543, - type = "deequip", - slot = "necklace", - }, - { - -- golden scorpion pendant - itemid = 12542, - type = "equip", - slot = "necklace", - }, - { - -- golden scorpion pendant - itemid = 12542, - type = "deequip", - slot = "necklace", - }, - { - -- old cape - itemid = 11701, - type = "equip", - slot = "armor", - }, - { - -- old cape - itemid = 11701, - type = "deequip", - slot = "armor", - }, - { - -- sedge hat - itemid = 11700, - type = "equip", - slot = "head", - }, - { - -- sedge hat - itemid = 11700, - type = "deequip", - slot = "head", - }, - { - -- loot bag - itemid = 11698, - type = "equip", - slot = "backpack", - }, - { - -- loot bag - itemid = 11698, - type = "deequip", - slot = "backpack", - }, - { - -- blade of corruption - itemid = 11693, - type = "equip", - slot = "hand", - }, - { - -- blade of corruption - itemid = 11693, - type = "deequip", - slot = "hand", - }, - { - -- snake god's sceptre - itemid = 11692, - type = "equip", - slot = "hand", - }, - { - -- snake god's sceptre - itemid = 11692, - type = "deequip", - slot = "hand", - }, - { - -- snake god's wristguard - itemid = 11691, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- snake god's wristguard - itemid = 11691, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- draken boots - itemid = 4033, - type = "equip", - slot = "feet", - level = 80, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- draken boots - itemid = 4033, - type = "deequip", - slot = "feet", - level = 80, - }, - { - -- elite draken helmet - itemid = 11689, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- elite draken helmet - itemid = 11689, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- shield of corruption - itemid = 11688, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- shield of corruption - itemid = 11688, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- royal scale robe - itemid = 11687, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- royal scale robe - itemid = 11687, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- royal draken mail - itemid = 11686, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- royal draken mail - itemid = 11686, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- cobra crown - itemid = 11674, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- cobra crown - itemid = 11674, - type = "deequip", - slot = "head", - }, - { - -- twiceslicer - itemid = 11657, - type = "equip", - slot = "hand", - }, - { - -- twiceslicer - itemid = 11657, - type = "deequip", - slot = "hand", - }, - { - -- elite draken mail - itemid = 11651, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- elite draken mail - itemid = 11651, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- fish tail (unequipped) - itemid = 11542, - type = "equip", - slot = "feet", - }, - { - -- fish tail (unequipped) - itemid = 11542, - type = "deequip", - slot = "feet", - }, - { - -- ornamented brooch - itemid = 11468, - type = "equip", - slot = "necklace", - }, - { - -- ornamented brooch - itemid = 11468, - type = "deequip", - slot = "necklace", - }, - { - -- lucky clover amulet - itemid = 10476, - type = "equip", - slot = "necklace", - }, - { - -- lucky clover amulet - itemid = 10476, - type = "deequip", - slot = "necklace", - }, - { - -- beetle necklace - itemid = 10457, - type = "equip", - slot = "necklace", - }, - { - -- beetle necklace - itemid = 10457, - type = "deequip", - slot = "necklace", - }, - { - -- jade hat - itemid = 10451, - type = "equip", - slot = "head", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- jade hat - itemid = 10451, - type = "deequip", - slot = "head", - level = 60, - }, - { - -- Zaoan robe - itemid = 10439, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- Zaoan robe - itemid = 10439, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- spellweaver's robe - itemid = 10438, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellweaver's robe - itemid = 10438, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- wailing widow's necklace - itemid = 10412, - type = "equip", - slot = "necklace", - }, - { - -- wailing widow's necklace - itemid = 10412, - type = "deequip", - slot = "necklace", - }, - { - -- Zaoan halberd - itemid = 10406, - type = "equip", - slot = "hand", - }, - { - -- Zaoan halberd - itemid = 10406, - type = "deequip", - slot = "hand", - }, - { - -- twin hooks - itemid = 10392, - type = "equip", - slot = "hand", - }, - { - -- twin hooks - itemid = 10392, - type = "deequip", - slot = "hand", - }, - { - -- drachaku - itemid = 10391, - type = "equip", - slot = "hand", - }, - { - -- drachaku - itemid = 10391, - type = "deequip", - slot = "hand", - }, - { - -- Zaoan sword - itemid = 10390, - type = "equip", - slot = "hand", - }, - { - -- Zaoan sword - itemid = 10390, - type = "deequip", - slot = "hand", - }, - { - -- sai - itemid = 10389, - type = "equip", - slot = "hand", - }, - { - -- sai - itemid = 10389, - type = "deequip", - slot = "hand", - }, - { - -- drakinata - itemid = 10388, - type = "equip", - slot = "hand", - }, - { - -- drakinata - itemid = 10388, - type = "deequip", - slot = "hand", - }, - { - -- Zaoan legs - itemid = 10387, - type = "equip", - slot = "legs", - }, - { - -- Zaoan legs - itemid = 10387, - type = "deequip", - slot = "legs", - }, - { - -- zaoan shoes - itemid = 10386, - type = "equip", - slot = "feet", - }, - { - -- zaoan shoes - itemid = 10386, - type = "deequip", - slot = "feet", - }, - { - -- Zaoan helmet - itemid = 10385, - type = "equip", - slot = "head", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- Zaoan helmet - itemid = 10385, - type = "deequip", - slot = "head", - }, - { - -- Zaoan armor - itemid = 10384, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- Zaoan armor - itemid = 10384, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- santa backpack - itemid = 10346, - type = "equip", - slot = "backpack", - }, - { - -- santa backpack - itemid = 10346, - type = "deequip", - slot = "backpack", - }, - { - -- minotaur backpack - itemid = 10327, - type = "equip", - slot = "backpack", - }, - { - -- minotaur backpack - itemid = 10327, - type = "deequip", - slot = "backpack", - }, - { - -- dragon backpack - itemid = 10326, - type = "equip", - slot = "backpack", - }, - { - -- dragon backpack - itemid = 10326, - type = "deequip", - slot = "backpack", - }, - { - -- expedition bag - itemid = 10325, - type = "equip", - slot = "backpack", - }, - { - -- expedition bag - itemid = 10325, - type = "deequip", - slot = "backpack", - }, - { - -- expedition backpack - itemid = 10324, - type = "equip", - slot = "backpack", - }, - { - -- expedition backpack - itemid = 10324, - type = "deequip", - slot = "backpack", - }, - { - -- guardian boots - itemid = 10323, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- guardian boots - itemid = 10323, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- heart backpack - itemid = 10202, - type = "equip", - slot = "backpack", - }, - { - -- heart backpack - itemid = 10202, - type = "deequip", - slot = "backpack", - }, - { - -- dragon scale boots - itemid = 10201, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- dragon scale boots - itemid = 10201, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- crystal boots - itemid = 10200, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crystal boots - itemid = 10200, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- witch hat - itemid = 9653, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- witch hat - itemid = 9653, - type = "deequip", - slot = "head", - }, - { - -- crown backpack - itemid = 9605, - type = "equip", - slot = "backpack", - }, - { - -- crown backpack - itemid = 9605, - type = "deequip", - slot = "backpack", - }, - { - -- moon backpack - itemid = 9604, - type = "equip", - slot = "backpack", - }, - { - -- moon backpack - itemid = 9604, - type = "deequip", - slot = "backpack", - }, - { - -- orange bag - itemid = 9603, - type = "equip", - slot = "backpack", - }, - { - -- orange bag - itemid = 9603, - type = "deequip", - slot = "backpack", - }, - { - -- orange backpack - itemid = 9602, - type = "equip", - slot = "backpack", - }, - { - -- orange backpack - itemid = 9602, - type = "deequip", - slot = "backpack", - }, - { - -- demon backpack - itemid = 9601, - type = "equip", - slot = "backpack", - }, - { - -- demon backpack - itemid = 9601, - type = "deequip", - slot = "backpack", - }, - { - -- broken wedding ring - itemid = 9593, - type = "equip", - slot = "ring", - }, - { - -- broken wedding ring - itemid = 9593, - type = "deequip", - slot = "ring", - }, - { - -- engraved wedding ring - itemid = 9585, - type = "equip", - slot = "ring", - }, - { - -- engraved wedding ring - itemid = 9585, - type = "deequip", - slot = "ring", - }, - { - -- the shield Nevermourn - itemid = 9447, - type = "equip", - slot = "shield", - }, - { - -- the shield Nevermourn - itemid = 9447, - type = "deequip", - slot = "shield", - }, - { - -- the rain coat - itemid = 9446, - type = "equip", - slot = "armor", - }, - { - -- the rain coat - itemid = 9446, - type = "deequip", - slot = "armor", - }, - { - -- the shield Nevermourn - itemid = 9401, - type = "equip", - slot = "shield", - }, - { - -- the shield Nevermourn - itemid = 9401, - type = "deequip", - slot = "shield", - }, - { - -- the rain coat - itemid = 9400, - type = "equip", - slot = "armor", - }, - { - -- the rain coat - itemid = 9400, - type = "deequip", - slot = "armor", - }, - { - -- mighty helm of green sparks - itemid = 9399, - type = "equip", - slot = "head", - }, - { - -- mighty helm of green sparks - itemid = 9399, - type = "deequip", - slot = "head", - }, - { - -- incredible mumpiz slayer - itemid = 9396, - type = "equip", - slot = "hand", - }, - { - -- incredible mumpiz slayer - itemid = 9396, - type = "deequip", - slot = "hand", - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9394, - type = "equip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9394, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9392, - type = "equip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9392, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- poet's fencing quill - itemid = 9387, - type = "equip", - slot = "hand", - }, - { - -- poet's fencing quill - itemid = 9387, - type = "deequip", - slot = "hand", - }, - { - -- farmer's avenger - itemid = 9386, - type = "equip", - slot = "hand", - }, - { - -- farmer's avenger - itemid = 9386, - type = "deequip", - slot = "hand", - }, - { - -- club of the fury - itemid = 9385, - type = "equip", - slot = "hand", - }, - { - -- club of the fury - itemid = 9385, - type = "deequip", - slot = "hand", - }, - { - -- scythe of the reaper - itemid = 9384, - type = "equip", - slot = "hand", - }, - { - -- scythe of the reaper - itemid = 9384, - type = "deequip", - slot = "hand", - }, - { - -- trousers of the ancients - itemid = 9383, - type = "equip", - slot = "legs", - }, - { - -- trousers of the ancients - itemid = 9383, - type = "deequip", - slot = "legs", - }, - { - -- helmet of nature - itemid = 9382, - type = "equip", - slot = "head", - }, - { - -- helmet of nature - itemid = 9382, - type = "deequip", - slot = "head", - }, - { - -- helmet of ultimate terror - itemid = 9381, - type = "equip", - slot = "head", - }, - { - -- helmet of ultimate terror - itemid = 9381, - type = "deequip", - slot = "head", - }, - { - -- shield of care - itemid = 9380, - type = "equip", - slot = "shield", - }, - { - -- shield of care - itemid = 9380, - type = "deequip", - slot = "shield", - }, - { - -- heavy metal t-shirt - itemid = 9379, - type = "equip", - slot = "armor", - }, - { - -- heavy metal t-shirt - itemid = 9379, - type = "deequip", - slot = "armor", - }, - { - -- musician's bow - itemid = 9378, - type = "equip", - slot = "hand", - }, - { - -- musician's bow - itemid = 9378, - type = "deequip", - slot = "hand", - }, - { - -- shield of the white knight - itemid = 3537, - type = "equip", - slot = "shield", - }, - { - -- shield of the white knight - itemid = 3537, - type = "deequip", - slot = "shield", - }, - { - -- stale bread of ancientness - itemid = 9376, - type = "equip", - slot = "hand", - }, - { - -- stale bread of ancientness - itemid = 9376, - type = "deequip", - slot = "hand", - }, - { - -- pointed rabbitslayer - itemid = 9375, - type = "equip", - slot = "hand", - }, - { - -- pointed rabbitslayer - itemid = 9375, - type = "deequip", - slot = "hand", - }, - { - -- odd hat - itemid = 9374, - type = "equip", - slot = "head", - }, - { - -- odd hat - itemid = 9374, - type = "deequip", - slot = "head", - }, - { - -- glutton's mace - itemid = 9373, - type = "equip", - slot = "hand", - }, - { - -- glutton's mace - itemid = 9373, - type = "deequip", - slot = "hand", - }, - { - -- meat shield - itemid = 9372, - type = "equip", - slot = "shield", - }, - { - -- meat shield - itemid = 9372, - type = "deequip", - slot = "shield", - }, - { - -- shockwave amulet - itemid = 9304, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- shockwave amulet - itemid = 9304, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- leviathan's amulet - itemid = 9303, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- leviathan's amulet - itemid = 9303, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- sacred tree amulet - itemid = 9302, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- sacred tree amulet - itemid = 9302, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- bonfire amulet - itemid = 9301, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- bonfire amulet - itemid = 9301, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- laurel wreath - itemid = 9221, - type = "equip", - slot = "head", - }, - { - -- laurel wreath - itemid = 9221, - type = "deequip", - slot = "head", - }, - { - -- bronze medal - itemid = 9217, - type = "equip", - slot = "necklace", - }, - { - -- bronze medal - itemid = 9217, - type = "deequip", - slot = "necklace", - }, - { - -- silver medal - itemid = 9216, - type = "equip", - slot = "necklace", - }, - { - -- silver medal - itemid = 9216, - type = "deequip", - slot = "necklace", - }, - { - -- gold medal - itemid = 9215, - type = "equip", - slot = "necklace", - }, - { - -- gold medal - itemid = 9215, - type = "deequip", - slot = "necklace", - }, - { - -- grey bag - itemid = 9151, - type = "equip", - slot = "backpack", - }, - { - -- grey bag - itemid = 9151, - type = "deequip", - slot = "backpack", - }, - { - -- batwing hat - itemid = 9103, - type = "equip", - slot = "head", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- batwing hat - itemid = 9103, - type = "deequip", - slot = "head", - level = 50, - }, - { - -- pair firewalker boots - itemid = 9019, - type = "equip", - slot = "feet", - level = 130, - }, - { - -- pair firewalker boots - itemid = 9019, - type = "deequip", - slot = "feet", - level = 130, - }, - { - -- firewalker boots - itemid = 9018, - type = "equip", - slot = "feet", - level = 130, - }, - { - -- firewalker boots - itemid = 9018, - type = "deequip", - slot = "feet", - level = 130, - }, - { - -- coconut shoes - itemid = 9017, - type = "equip", - slot = "feet", - }, - { - -- coconut shoes - itemid = 9017, - type = "deequip", - slot = "feet", - }, - { - -- flower dress - itemid = 9015, - type = "equip", - slot = "armor", - }, - { - -- flower dress - itemid = 9015, - type = "deequip", - slot = "armor", - }, - { - -- leaf legs - itemid = 9014, - type = "equip", - slot = "legs", - }, - { - -- leaf legs - itemid = 9014, - type = "deequip", - slot = "legs", - }, - { - -- flower wreath - itemid = 9013, - type = "equip", - slot = "head", - }, - { - -- flower wreath - itemid = 9013, - type = "deequip", - slot = "head", - }, - { - -- yalahari mask - itemid = 8864, - type = "equip", - slot = "head", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- yalahari mask - itemid = 8864, - type = "deequip", - slot = "head", - level = 80, - }, - { - -- yalahari leg piece - itemid = 8863, - type = "equip", - slot = "legs", - level = 80, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- yalahari leg piece - itemid = 8863, - type = "deequip", - slot = "legs", - level = 80, - }, - { - -- yalahari armor - itemid = 8862, - type = "equip", - slot = "armor", - level = 80, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- yalahari armor - itemid = 8862, - type = "deequip", - slot = "armor", - level = 80, - }, - { - -- brocade bag - itemid = 8861, - type = "equip", - slot = "backpack", - }, - { - -- brocade bag - itemid = 8861, - type = "deequip", - slot = "backpack", - }, - { - -- brocade backpack - itemid = 8860, - type = "equip", - slot = "backpack", - }, - { - -- brocade backpack - itemid = 8860, - type = "deequip", - slot = "backpack", - }, - { - -- golden bag - itemid = 655, - type = "equip", - slot = "backpack", - }, - { - -- golden bag - itemid = 655, - type = "deequip", - slot = "backpack", - }, - { - -- purple bag - itemid = 653, - type = "equip", - slot = "backpack", - }, - { - -- purple bag - itemid = 653, - type = "deequip", - slot = "backpack", - }, - { - -- the calamity - itemid = 8104, - type = "equip", - slot = "hand", - }, - { - -- the calamity - itemid = 8104, - type = "deequip", - slot = "hand", - }, - { - -- the epiphany - itemid = 8103, - type = "equip", - slot = "hand", - }, - { - -- the epiphany - itemid = 8103, - type = "deequip", - slot = "hand", - }, - { - -- emerald sword - itemid = 8102, - type = "equip", - slot = "hand", - }, - { - -- emerald sword - itemid = 8102, - type = "deequip", - slot = "hand", - }, - { - -- the stomper - itemid = 8101, - type = "equip", - slot = "hand", - }, - { - -- the stomper - itemid = 8101, - type = "deequip", - slot = "hand", - }, - { - -- obsidian truncheon - itemid = 8100, - type = "equip", - slot = "hand", - }, - { - -- obsidian truncheon - itemid = 8100, - type = "deequip", - slot = "hand", - }, - { - -- dark trinity mace - itemid = 8099, - type = "equip", - slot = "hand", - }, - { - -- dark trinity mace - itemid = 8099, - type = "deequip", - slot = "hand", - }, - { - -- demonwing axe - itemid = 8098, - type = "equip", - slot = "hand", - }, - { - -- demonwing axe - itemid = 8098, - type = "deequip", - slot = "hand", - }, - { - -- solar axe - itemid = 8097, - type = "equip", - slot = "hand", - }, - { - -- solar axe - itemid = 8097, - type = "deequip", - slot = "hand", - }, - { - -- hellforged axe - itemid = 8096, - type = "equip", - slot = "hand", - }, - { - -- hellforged axe - itemid = 8096, - type = "deequip", - slot = "hand", - }, - { - -- ranger legs - itemid = 8095, - type = "equip", - slot = "legs", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ranger legs - itemid = 8095, - type = "deequip", - slot = "legs", - }, - { - -- wand of voodoo - itemid = 8094, - type = "equip", - slot = "hand", - level = 42, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of voodoo - itemid = 8094, - type = "deequip", - slot = "hand", - level = 42, - }, - { - -- wand of draconia - itemid = 8093, - type = "equip", - slot = "hand", - level = 22, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of draconia - itemid = 8093, - type = "deequip", - slot = "hand", - level = 22, - }, - { - -- wand of starmstorm - itemid = 8092, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of starmstorm - itemid = 8092, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- spellbook of dark mysteries - itemid = 8090, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of dark mysteries - itemid = 8090, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- springsprout rod - itemid = 8084, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- springsprout rod - itemid = 8084, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- northwind rod - itemid = 8083, - type = "equip", - slot = "hand", - level = 22, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- northwind rod - itemid = 8083, - type = "deequip", - slot = "hand", - level = 22, - }, - { - -- underworld rod - itemid = 8082, - type = "equip", - slot = "hand", - level = 42, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- underworld rod - itemid = 8082, - type = "deequip", - slot = "hand", - level = 42, - }, - { - -- terran rainbow shield - itemid = 8081, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- terran rainbow shield - itemid = 8081, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- sparking rainbow shield - itemid = 8080, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sparking rainbow shield - itemid = 8080, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- icy rainbow shield - itemid = 8079, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy rainbow shield - itemid = 8079, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- fiery rainbow shield - itemid = 8078, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery rainbow shield - itemid = 8078, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- rainbow shield - itemid = 8077, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rainbow shield - itemid = 8077, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- spellscroll of prophecies - itemid = 8076, - type = "equip", - slot = "shield", - level = 70, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellscroll of prophecies - itemid = 8076, - type = "deequip", - slot = "shield", - level = 70, - }, - { - -- spellbook of lost souls - itemid = 8075, - type = "equip", - slot = "shield", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of lost souls - itemid = 8075, - type = "deequip", - slot = "shield", - level = 60, - }, - { - -- spellbook of mind control - itemid = 8074, - type = "equip", - slot = "shield", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of mind control - itemid = 8074, - type = "deequip", - slot = "shield", - level = 50, - }, - { - -- spellbook of warding - itemid = 8073, - type = "equip", - slot = "shield", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of warding - itemid = 8073, - type = "deequip", - slot = "shield", - level = 40, - }, - { - -- spellbook of enlightenment - itemid = 8072, - type = "equip", - slot = "shield", - level = 30, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of enlightenment - itemid = 8072, - type = "deequip", - slot = "shield", - level = 30, - }, - { - -- ethno coat - itemid = 8064, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ethno coat - itemid = 8064, - type = "deequip", - slot = "armor", - }, - { - -- paladin armor - itemid = 8063, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- paladin armor - itemid = 8063, - type = "deequip", - slot = "armor", - }, - { - -- robe of the underworld - itemid = 8062, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- robe of the underworld - itemid = 8062, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- skullcracker armor - itemid = 8061, - type = "equip", - slot = "armor", - level = 85, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- skullcracker armor - itemid = 8061, - type = "deequip", - slot = "armor", - level = 85, - }, - { - -- master archer's armor - itemid = 8060, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- master archer's armor - itemid = 8060, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- frozen plate - itemid = 8059, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- frozen plate - itemid = 8059, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- molten plate - itemid = 8058, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- molten plate - itemid = 8058, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- divine plate - itemid = 8057, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- divine plate - itemid = 8057, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- oceanborn leviathan armor - itemid = 8056, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- oceanborn leviathan armor - itemid = 8056, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- windborn colossus armor - itemid = 8055, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- windborn colossus armor - itemid = 8055, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- earthborn titan armor - itemid = 8054, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthborn titan armor - itemid = 8054, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- fireborn giant armor - itemid = 8053, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireborn giant armor - itemid = 8053, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- swamplair armor - itemid = 8052, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- swamplair armor - itemid = 8052, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- voltage armor - itemid = 8051, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- voltage armor - itemid = 8051, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- crystalline armor - itemid = 8050, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crystalline armor - itemid = 8050, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- lavos armor - itemid = 8049, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- lavos armor - itemid = 8049, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- girl's dress - itemid = 8048, - type = "equip", - slot = "armor", - }, - { - -- girl's dress - itemid = 8048, - type = "deequip", - slot = "armor", - }, - { - -- tunic - itemid = 8047, - type = "equip", - slot = "armor", - }, - { - -- tunic - itemid = 8047, - type = "deequip", - slot = "armor", - }, - { - -- summer dress - itemid = 8046, - type = "equip", - slot = "armor", - }, - { - -- summer dress - itemid = 8046, - type = "deequip", - slot = "armor", - }, - { - -- hibiscus dress - itemid = 8045, - type = "equip", - slot = "armor", - }, - { - -- hibiscus dress - itemid = 8045, - type = "deequip", - slot = "armor", - }, - { - -- belted cape - itemid = 8044, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- belted cape - itemid = 8044, - type = "deequip", - slot = "armor", - }, - { - -- focus cape - itemid = 8043, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- focus cape - itemid = 8043, - type = "deequip", - slot = "armor", - }, - { - -- spirit cloak - itemid = 8042, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spirit cloak - itemid = 8042, - type = "deequip", - slot = "armor", - }, - { - -- greenwood coat - itemid = 8041, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- greenwood coat - itemid = 8041, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- velvet mantle - itemid = 8040, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- velvet mantle - itemid = 8040, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- dragon robe - itemid = 8039, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- dragon robe - itemid = 8039, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- robe of the ice queen - itemid = 8038, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- robe of the ice queen - itemid = 8038, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- dark lord's cape - itemid = 8037, - type = "equip", - slot = "armor", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- dark lord's cape - itemid = 8037, - type = "deequip", - slot = "armor", - level = 65, - }, - { - -- elethriel's elemental bow - itemid = 8030, - type = "equip", - slot = "hand", - }, - { - -- elethriel's elemental bow - itemid = 8030, - type = "deequip", - slot = "hand", - }, - { - -- silkweaver bow - itemid = 8029, - type = "equip", - slot = "hand", - }, - { - -- silkweaver bow - itemid = 8029, - type = "deequip", - slot = "hand", - }, - { - -- yol's bow - itemid = 8028, - type = "equip", - slot = "hand", - }, - { - -- yol's bow - itemid = 8028, - type = "deequip", - slot = "hand", - }, - { - -- composite hornbow - itemid = 8027, - type = "equip", - slot = "hand", - }, - { - -- composite hornbow - itemid = 8027, - type = "deequip", - slot = "hand", - }, - { - -- warsinger bow - itemid = 8026, - type = "equip", - slot = "hand", - }, - { - -- warsinger bow - itemid = 8026, - type = "deequip", - slot = "hand", - }, - { - -- ironworker - itemid = 8025, - type = "equip", - slot = "hand", - }, - { - -- ironworker - itemid = 8025, - type = "deequip", - slot = "hand", - }, - { - -- devileye - itemid = 8024, - type = "equip", - slot = "hand", - }, - { - -- devileye - itemid = 8024, - type = "deequip", - slot = "hand", - }, - { - -- royal crossbow - itemid = 8023, - type = "equip", - slot = "hand", - }, - { - -- royal crossbow - itemid = 8023, - type = "deequip", - slot = "hand", - }, - { - -- chain bolter - itemid = 8022, - type = "equip", - slot = "hand", - }, - { - -- chain bolter - itemid = 8022, - type = "deequip", - slot = "hand", - }, - { - -- modified crossbow - itemid = 8021, - type = "equip", - slot = "hand", - }, - { - -- modified crossbow - itemid = 8021, - type = "deequip", - slot = "hand", - }, - { - -- witchhunter's coat - itemid = 7993, - type = "equip", - slot = "armor", - level = 50, - }, - { - -- witchhunter's coat - itemid = 7993, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- mage hat - itemid = 7992, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- mage hat - itemid = 7992, - type = "deequip", - slot = "head", - }, - { - -- magician's robe - itemid = 7991, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magician's robe - itemid = 7991, - type = "deequip", - slot = "armor", - }, - { - -- jagged sword - itemid = 7774, - type = "equip", - slot = "hand", - }, - { - -- jagged sword - itemid = 7774, - type = "deequip", - slot = "hand", - }, - { - -- steel axe - itemid = 7773, - type = "equip", - slot = "hand", - }, - { - -- steel axe - itemid = 7773, - type = "deequip", - slot = "hand", - }, - { - -- Jerom's family necklace - itemid = 7754, - type = "equip", - slot = "necklace", - }, - { - -- Jerom's family necklace - itemid = 7754, - type = "deequip", - slot = "necklace", - }, - { - -- Koshei's ancient amulet - itemid = 7532, - type = "equip", - slot = "necklace", - }, - { - -- Koshei's ancient amulet - itemid = 7532, - type = "deequip", - slot = "necklace", - }, - { - -- crimson sword - itemid = 860, - type = "equip", - slot = "hand", - }, - { - -- crimson sword - itemid = 860, - type = "deequip", - slot = "hand", - }, - { - -- shapeshifter ring - itemid = 908, - type = "equip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 908, - type = "deequip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 907, - type = "equip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 904, - type = "deequip", - slot = "ring", - }, - { - -- jester hat - itemid = 894, - type = "equip", - slot = "head", - }, - { - -- jester hat - itemid = 894, - type = "deequip", - slot = "head", - }, - { - -- terra hood - itemid = 830, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra hood - itemid = 830, - type = "deequip", - slot = "head", - }, - { - -- glacier mask - itemid = 829, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier mask - itemid = 829, - type = "deequip", - slot = "head", - }, - { - -- lightning headband - itemid = 828, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning headband - itemid = 828, - type = "deequip", - slot = "head", - }, - { - -- magma monocle - itemid = 827, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma monocle - itemid = 827, - type = "deequip", - slot = "head", - }, - { - -- magma coat - itemid = 826, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma coat - itemid = 826, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- lightning robe - itemid = 825, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning robe - itemid = 825, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- glacier robe - itemid = 824, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier robe - itemid = 824, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- glacier kilt - itemid = 823, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier kilt - itemid = 823, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- lightning legs - itemid = 822, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning legs - itemid = 822, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- magma legs - itemid = 821, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma legs - itemid = 821, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- lightning boots - itemid = 820, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning boots - itemid = 820, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- glacier shoes - itemid = 819, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier shoes - itemid = 819, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- magma boots - itemid = 818, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma boots - itemid = 818, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- magma amulet - itemid = 817, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- magma amulet - itemid = 817, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- lightning pendant - itemid = 816, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- lightning pendant - itemid = 816, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- glacier amulet - itemid = 815, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- glacier amulet - itemid = 815, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- terra amulet - itemid = 814, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- terra amulet - itemid = 814, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- terra boots - itemid = 813, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra boots - itemid = 813, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- terra legs - itemid = 812, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra legs - itemid = 812, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- terra mantle - itemid = 811, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra mantle - itemid = 811, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- energy war hammer - itemid = 810, - type = "equip", - slot = "hand", - }, - { - -- energy war hammer - itemid = 810, - type = "deequip", - slot = "hand", - }, - { - -- energy orcish maul - itemid = 809, - type = "equip", - slot = "hand", - }, - { - -- energy orcish maul - itemid = 809, - type = "deequip", - slot = "hand", - }, - { - -- energy cranial basher - itemid = 808, - type = "equip", - slot = "hand", - }, - { - -- energy cranial basher - itemid = 808, - type = "deequip", - slot = "hand", - }, - { - -- energy crystal mace - itemid = 807, - type = "equip", - slot = "hand", - }, - { - -- energy crystal mace - itemid = 807, - type = "deequip", - slot = "hand", - }, - { - -- energy clerical mace - itemid = 806, - type = "equip", - slot = "hand", - }, - { - -- energy clerical mace - itemid = 806, - type = "deequip", - slot = "hand", - }, - { - -- energy war axe - itemid = 805, - type = "equip", - slot = "hand", - }, - { - -- energy war axe - itemid = 805, - type = "deequip", - slot = "hand", - }, - { - -- energy headchopper - itemid = 804, - type = "equip", - slot = "hand", - }, - { - -- energy headchopper - itemid = 804, - type = "deequip", - slot = "hand", - }, - { - -- energy heroic axe - itemid = 803, - type = "equip", - slot = "hand", - }, - { - -- energy heroic axe - itemid = 803, - type = "deequip", - slot = "hand", - }, - { - -- energy knight axe - itemid = 802, - type = "equip", - slot = "hand", - }, - { - -- energy knight axe - itemid = 802, - type = "deequip", - slot = "hand", - }, - { - -- energy barbarian axe - itemid = 801, - type = "equip", - slot = "hand", - }, - { - -- energy barbarian axe - itemid = 801, - type = "deequip", - slot = "hand", - }, - { - -- energy dragon slayer - itemid = 798, - type = "equip", - slot = "hand", - }, - { - -- energy dragon slayer - itemid = 798, - type = "deequip", - slot = "hand", - }, - { - -- energy blacksteel sword - itemid = 797, - type = "equip", - slot = "hand", - }, - { - -- energy blacksteel sword - itemid = 797, - type = "deequip", - slot = "hand", - }, - { - -- energy mystic blade - itemid = 796, - type = "equip", - slot = "hand", - }, - { - -- energy mystic blade - itemid = 796, - type = "deequip", - slot = "hand", - }, - { - -- energy relic sword - itemid = 795, - type = "equip", - slot = "hand", - }, - { - -- energy relic sword - itemid = 795, - type = "deequip", - slot = "hand", - }, - { - -- energy spike sword - itemid = 794, - type = "equip", - slot = "hand", - }, - { - -- energy spike sword - itemid = 794, - type = "deequip", - slot = "hand", - }, - { - -- earth war hammer - itemid = 793, - type = "equip", - slot = "hand", - }, - { - -- earth war hammer - itemid = 793, - type = "deequip", - slot = "hand", - }, - { - -- earth orcish maul - itemid = 792, - type = "equip", - slot = "hand", - }, - { - -- earth orcish maul - itemid = 792, - type = "deequip", - slot = "hand", - }, - { - -- earth cranial basher - itemid = 791, - type = "equip", - slot = "hand", - }, - { - -- earth cranial basher - itemid = 791, - type = "deequip", - slot = "hand", - }, - { - -- earth crystal mace - itemid = 790, - type = "equip", - slot = "hand", - }, - { - -- earth crystal mace - itemid = 790, - type = "deequip", - slot = "hand", - }, - { - -- earth clerical mace - itemid = 789, - type = "equip", - slot = "hand", - }, - { - -- earth clerical mace - itemid = 789, - type = "deequip", - slot = "hand", - }, - { - -- earth war axe - itemid = 788, - type = "equip", - slot = "hand", - }, - { - -- earth war axe - itemid = 788, - type = "deequip", - slot = "hand", - }, - { - -- earth headchopper - itemid = 787, - type = "equip", - slot = "hand", - }, - { - -- earth headchopper - itemid = 787, - type = "deequip", - slot = "hand", - }, - { - -- earth heroic axe - itemid = 786, - type = "equip", - slot = "hand", - }, - { - -- earth heroic axe - itemid = 786, - type = "deequip", - slot = "hand", - }, - { - -- earth knight axe - itemid = 785, - type = "equip", - slot = "hand", - }, - { - -- earth knight axe - itemid = 785, - type = "deequip", - slot = "hand", - }, - { - -- earth barbarian axe - itemid = 784, - type = "equip", - slot = "hand", - }, - { - -- earth barbarian axe - itemid = 784, - type = "deequip", - slot = "hand", - }, - { - -- earth dragon slayer - itemid = 783, - type = "equip", - slot = "hand", - }, - { - -- earth dragon slayer - itemid = 783, - type = "deequip", - slot = "hand", - }, - { - -- earth blacksteel sword - itemid = 782, - type = "equip", - slot = "hand", - }, - { - -- earth blacksteel sword - itemid = 782, - type = "deequip", - slot = "hand", - }, - { - -- earth mystic blade - itemid = 781, - type = "equip", - slot = "hand", - }, - { - -- earth mystic blade - itemid = 781, - type = "deequip", - slot = "hand", - }, - { - -- earth relic sword - itemid = 780, - type = "equip", - slot = "hand", - }, - { - -- earth relic sword - itemid = 780, - type = "deequip", - slot = "hand", - }, - { - -- earth spike sword - itemid = 779, - type = "equip", - slot = "hand", - }, - { - -- earth spike sword - itemid = 779, - type = "deequip", - slot = "hand", - }, - { - -- earth arrow - itemid = 774, - type = "equip", - slot = "ammo", - }, - { - -- earth arrow - itemid = 774, - type = "deequip", - slot = "ammo", - }, - { - -- flaming arrow - itemid = 763, - type = "equip", - slot = "ammo", - }, - { - -- flaming arrow - itemid = 763, - type = "deequip", - slot = "ammo", - }, - { - -- shiver arrow - itemid = 762, - type = "equip", - slot = "ammo", - }, - { - -- shiver arrow - itemid = 762, - type = "deequip", - slot = "ammo", - }, - { - -- flash arrow - itemid = 761, - type = "equip", - slot = "ammo", - }, - { - -- flash arrow - itemid = 761, - type = "deequip", - slot = "ammo", - }, - { - -- icy war hammer - itemid = 693, - type = "equip", - slot = "hand", - }, - { - -- icy war hammer - itemid = 693, - type = "deequip", - slot = "hand", - }, - { - -- icy orcish maul - itemid = 692, - type = "equip", - slot = "hand", - }, - { - -- icy orcish maul - itemid = 692, - type = "deequip", - slot = "hand", - }, - { - -- icy cranial basher - itemid = 691, - type = "equip", - slot = "hand", - }, - { - -- icy cranial basher - itemid = 691, - type = "deequip", - slot = "hand", - }, - { - -- icy crystal mace - itemid = 690, - type = "equip", - slot = "hand", - }, - { - -- icy crystal mace - itemid = 690, - type = "deequip", - slot = "hand", - }, - { - -- icy clerical mace - itemid = 689, - type = "equip", - slot = "hand", - }, - { - -- icy clerical mace - itemid = 689, - type = "deequip", - slot = "hand", - }, - { - -- icy war axe - itemid = 688, - type = "equip", - slot = "hand", - }, - { - -- icy war axe - itemid = 688, - type = "deequip", - slot = "hand", - }, - { - -- icy headchopper - itemid = 687, - type = "equip", - slot = "hand", - }, - { - -- icy headchopper - itemid = 687, - type = "deequip", - slot = "hand", - }, - { - -- icy heroic axe - itemid = 686, - type = "equip", - slot = "hand", - }, - { - -- icy heroic axe - itemid = 686, - type = "deequip", - slot = "hand", - }, - { - -- icy knight axe - itemid = 685, - type = "equip", - slot = "hand", - }, - { - -- icy knight axe - itemid = 685, - type = "deequip", - slot = "hand", - }, - { - -- icy barbarian axe - itemid = 684, - type = "equip", - slot = "hand", - }, - { - -- icy barbarian axe - itemid = 684, - type = "deequip", - slot = "hand", - }, - { - -- icy dragon slayer - itemid = 683, - type = "equip", - slot = "hand", - }, - { - -- icy dragon slayer - itemid = 683, - type = "deequip", - slot = "hand", - }, - { - -- icy blacksteel sword - itemid = 682, - type = "equip", - slot = "hand", - }, - { - -- icy blacksteel sword - itemid = 682, - type = "deequip", - slot = "hand", - }, - { - -- icy mystic blade - itemid = 681, - type = "equip", - slot = "hand", - }, - { - -- icy mystic blade - itemid = 681, - type = "deequip", - slot = "hand", - }, - { - -- icy relic sword - itemid = 680, - type = "equip", - slot = "hand", - }, - { - -- icy relic sword - itemid = 680, - type = "deequip", - slot = "hand", - }, - { - -- icy spike sword - itemid = 679, - type = "equip", - slot = "hand", - }, - { - -- icy spike sword - itemid = 679, - type = "deequip", - slot = "hand", - }, - { - -- fiery war hammer - itemid = 674, - type = "equip", - slot = "hand", - }, - { - -- fiery war hammer - itemid = 674, - type = "deequip", - slot = "hand", - }, - { - -- fiery orcish maul - itemid = 673, - type = "equip", - slot = "hand", - }, - { - -- fiery orcish maul - itemid = 673, - type = "deequip", - slot = "hand", - }, - { - -- fiery cranial basher - itemid = 672, - type = "equip", - slot = "hand", - }, - { - -- fiery cranial basher - itemid = 672, - type = "deequip", - slot = "hand", - }, - { - -- fiery crystal mace - itemid = 671, - type = "equip", - slot = "hand", - }, - { - -- fiery crystal mace - itemid = 671, - type = "deequip", - slot = "hand", - }, - { - -- fiery clerical mace - itemid = 670, - type = "equip", - slot = "hand", - }, - { - -- fiery clerical mace - itemid = 670, - type = "deequip", - slot = "hand", - }, - { - -- fiery war axe - itemid = 669, - type = "equip", - slot = "hand", - }, - { - -- fiery war axe - itemid = 669, - type = "deequip", - slot = "hand", - }, - { - -- fiery headchopper - itemid = 668, - type = "equip", - slot = "hand", - }, - { - -- fiery headchopper - itemid = 668, - type = "deequip", - slot = "hand", - }, - { - -- fiery heroic axe - itemid = 667, - type = "equip", - slot = "hand", - }, - { - -- fiery heroic axe - itemid = 667, - type = "deequip", - slot = "hand", - }, - { - -- fiery knight axe - itemid = 666, - type = "equip", - slot = "hand", - }, - { - -- fiery knight axe - itemid = 666, - type = "deequip", - slot = "hand", - }, - { - -- fiery barbarian axe - itemid = 665, - type = "equip", - slot = "hand", - }, - { - -- fiery barbarian axe - itemid = 665, - type = "deequip", - slot = "hand", - }, - { - -- fiery dragon slayer - itemid = 664, - type = "equip", - slot = "hand", - }, - { - -- fiery dragon slayer - itemid = 664, - type = "deequip", - slot = "hand", - }, - { - -- fiery blacksteel sword - itemid = 663, - type = "equip", - slot = "hand", - }, - { - -- fiery blacksteel sword - itemid = 663, - type = "deequip", - slot = "hand", - }, - { - -- fiery mystic blade - itemid = 662, - type = "equip", - slot = "hand", - }, - { - -- fiery mystic blade - itemid = 662, - type = "deequip", - slot = "hand", - }, - { - -- fiery relic sword - itemid = 661, - type = "equip", - slot = "hand", - }, - { - -- fiery relic sword - itemid = 661, - type = "deequip", - slot = "hand", - }, - { - -- fiery spike sword - itemid = 660, - type = "equip", - slot = "hand", - }, - { - -- fiery spike sword - itemid = 660, - type = "deequip", - slot = "hand", - }, - { - -- blue legs - itemid = 645, - type = "equip", - slot = "legs", - }, - { - -- blue legs - itemid = 645, - type = "deequip", - slot = "legs", - }, - { - -- suspicious signet ring - itemid = 406, - type = "equip", - slot = "ring", - }, - { - -- suspicious signet ring - itemid = 406, - type = "deequip", - slot = "ring", - }, - { - -- family signet ring - itemid = 349, - type = "equip", - slot = "ring", - }, - { - -- family signet ring - itemid = 349, - type = "deequip", - slot = "ring", - }, - { - -- mining helmet - itemid = 139, - type = "equip", - slot = "head", - }, - { - -- mining helmet - itemid = 139, - type = "deequip", - slot = "head", - }, - { - -- mammoth fur shorts - itemid = 7464, - type = "equip", - slot = "legs", - }, - { - -- mammoth fur shorts - itemid = 7464, - type = "deequip", - slot = "legs", - }, - { - -- mammoth fur cape - itemid = 7463, - type = "equip", - slot = "armor", - }, - { - -- mammoth fur cape - itemid = 7463, - type = "deequip", - slot = "armor", - }, - { - -- ragnir helmet - itemid = 7462, - type = "equip", - slot = "head", - }, - { - -- ragnir helmet - itemid = 7462, - type = "deequip", - slot = "head", - }, - { - -- krimhorn helmet - itemid = 7461, - type = "equip", - slot = "head", - }, - { - -- krimhorn helmet - itemid = 7461, - type = "deequip", - slot = "head", - }, - { - -- norse shield - itemid = 7460, - type = "equip", - slot = "shield", - }, - { - -- norse shield - itemid = 7460, - type = "deequip", - slot = "shield", - }, - { - -- pair of earmuffs - itemid = 7459, - type = "equip", - slot = "head", - }, - { - -- pair of earmuffs - itemid = 7459, - type = "deequip", - slot = "head", - }, - { - -- fur cap - itemid = 7458, - type = "equip", - slot = "head", - }, - { - -- fur cap - itemid = 7458, - type = "deequip", - slot = "head", - }, - { - -- fur boots - itemid = 7457, - type = "equip", - slot = "feet", - }, - { - -- fur boots - itemid = 7457, - type = "deequip", - slot = "feet", - }, - { - -- noble axe - itemid = 7456, - type = "equip", - slot = "hand", - }, - { - -- noble axe - itemid = 7456, - type = "deequip", - slot = "hand", - }, - { - -- mythril axe - itemid = 7455, - type = "equip", - slot = "hand", - }, - { - -- mythril axe - itemid = 7455, - type = "deequip", - slot = "hand", - }, - { - -- glorious axe - itemid = 7454, - type = "equip", - slot = "hand", - }, - { - -- glorious axe - itemid = 7454, - type = "deequip", - slot = "hand", - }, - { - -- executioner - itemid = 7453, - type = "equip", - slot = "hand", - }, - { - -- executioner - itemid = 7453, - type = "deequip", - slot = "hand", - }, - { - -- spiked squelcher - itemid = 7452, - type = "equip", - slot = "hand", - }, - { - -- spiked squelcher - itemid = 7452, - type = "deequip", - slot = "hand", - }, - { - -- shadow sceptre - itemid = 7451, - type = "equip", - slot = "hand", - }, - { - -- shadow sceptre - itemid = 7451, - type = "deequip", - slot = "hand", - }, - { - -- hammer of prophecy - itemid = 7450, - type = "equip", - slot = "hand", - }, - { - -- hammer of prophecy - itemid = 7450, - type = "deequip", - slot = "hand", - }, - { - -- crystal sword - itemid = 7449, - type = "equip", - slot = "hand", - }, - { - -- crystal sword - itemid = 7449, - type = "deequip", - slot = "hand", - }, - { - -- elvish bow - itemid = 7438, - type = "equip", - slot = "hand", - }, - { - -- elvish bow - itemid = 7438, - type = "deequip", - slot = "hand", - }, - { - -- sapphire hammer - itemid = 7437, - type = "equip", - slot = "hand", - }, - { - -- sapphire hammer - itemid = 7437, - type = "deequip", - slot = "hand", - }, - { - -- angelic axe - itemid = 7436, - type = "equip", - slot = "hand", - }, - { - -- angelic axe - itemid = 7436, - type = "deequip", - slot = "hand", - }, - { - -- impaler - itemid = 7435, - type = "equip", - slot = "hand", - }, - { - -- impaler - itemid = 7435, - type = "deequip", - slot = "hand", - }, - { - -- royal axe - itemid = 7434, - type = "equip", - slot = "hand", - }, - { - -- royal axe - itemid = 7434, - type = "deequip", - slot = "hand", - }, - { - -- ravenwing - itemid = 7433, - type = "equip", - slot = "hand", - }, - { - -- ravenwing - itemid = 7433, - type = "deequip", - slot = "hand", - }, - { - -- furry club - itemid = 7432, - type = "equip", - slot = "hand", - }, - { - -- furry club - itemid = 7432, - type = "deequip", - slot = "hand", - }, - { - -- demonbone - itemid = 7431, - type = "equip", - slot = "hand", - }, - { - -- demonbone - itemid = 7431, - type = "deequip", - slot = "hand", - }, - { - -- dragonbone staff - itemid = 7430, - type = "equip", - slot = "hand", - }, - { - -- dragonbone staff - itemid = 7430, - type = "deequip", - slot = "hand", - }, - { - -- blessed sceptre - itemid = 7429, - type = "equip", - slot = "hand", - }, - { - -- blessed sceptre - itemid = 7429, - type = "deequip", - slot = "hand", - }, - { - -- bonebreaker - itemid = 7428, - type = "equip", - slot = "hand", - }, - { - -- bonebreaker - itemid = 7428, - type = "deequip", - slot = "hand", - }, - { - -- chaos mace - itemid = 7427, - type = "equip", - slot = "hand", - }, - { - -- chaos mace - itemid = 7427, - type = "deequip", - slot = "hand", - }, - { - -- amber staff - itemid = 7426, - type = "equip", - slot = "hand", - }, - { - -- amber staff - itemid = 7426, - type = "deequip", - slot = "hand", - }, - { - -- taurus mace - itemid = 7425, - type = "equip", - slot = "hand", - }, - { - -- taurus mace - itemid = 7425, - type = "deequip", - slot = "hand", - }, - { - -- lunar staff - itemid = 7424, - type = "equip", - slot = "hand", - }, - { - -- lunar staff - itemid = 7424, - type = "deequip", - slot = "hand", - }, - { - -- skullcrusher - itemid = 7423, - type = "equip", - slot = "hand", - }, - { - -- skullcrusher - itemid = 7423, - type = "deequip", - slot = "hand", - }, - { - -- jade hammer - itemid = 7422, - type = "equip", - slot = "hand", - }, - { - -- jade hammer - itemid = 7422, - type = "deequip", - slot = "hand", - }, - { - -- onyx flail - itemid = 7421, - type = "equip", - slot = "hand", - }, - { - -- onyx flail - itemid = 7421, - type = "deequip", - slot = "hand", - }, - { - -- reaper's axe - itemid = 7420, - type = "equip", - slot = "hand", - }, - { - -- reaper's axe - itemid = 7420, - type = "deequip", - slot = "hand", - }, - { - -- dreaded cleaver - itemid = 7419, - type = "equip", - slot = "hand", - }, - { - -- dreaded cleaver - itemid = 7419, - type = "deequip", - slot = "hand", - }, - { - -- nightmare blade - itemid = 7418, - type = "equip", - slot = "hand", - }, - { - -- nightmare blade - itemid = 7418, - type = "deequip", - slot = "hand", - }, - { - -- runed sword - itemid = 7417, - type = "equip", - slot = "hand", - }, - { - -- runed sword - itemid = 7417, - type = "deequip", - slot = "hand", - }, - { - -- bloody edge - itemid = 7416, - type = "equip", - slot = "hand", - }, - { - -- bloody edge - itemid = 7416, - type = "deequip", - slot = "hand", - }, - { - -- cranial basher - itemid = 7415, - type = "equip", - slot = "hand", - }, - { - -- cranial basher - itemid = 7415, - type = "deequip", - slot = "hand", - }, - { - -- abyss hammer - itemid = 7414, - type = "equip", - slot = "hand", - }, - { - -- abyss hammer - itemid = 7414, - type = "deequip", - slot = "hand", - }, - { - -- titan axe - itemid = 7413, - type = "equip", - slot = "hand", - }, - { - -- titan axe - itemid = 7413, - type = "deequip", - slot = "hand", - }, - { - -- butcher's axe - itemid = 7412, - type = "equip", - slot = "hand", - }, - { - -- butcher's axe - itemid = 7412, - type = "deequip", - slot = "hand", - }, - { - -- ornamented axe - itemid = 7411, - type = "equip", - slot = "hand", - }, - { - -- ornamented axe - itemid = 7411, - type = "deequip", - slot = "hand", - }, - { - -- queen's sceptre - itemid = 7410, - type = "equip", - slot = "hand", - }, - { - -- queen's sceptre - itemid = 7410, - type = "deequip", - slot = "hand", - }, - { - -- northern star - itemid = 7409, - type = "equip", - slot = "hand", - }, - { - -- northern star - itemid = 7409, - type = "deequip", - slot = "hand", - }, - { - -- wyvern fang - itemid = 7408, - type = "equip", - slot = "hand", - }, - { - -- wyvern fang - itemid = 7408, - type = "deequip", - slot = "hand", - }, - { - -- haunted blade - itemid = 7407, - type = "equip", - slot = "hand", - }, - { - -- haunted blade - itemid = 7407, - type = "deequip", - slot = "hand", - }, - { - -- blacksteel sword - itemid = 7406, - type = "equip", - slot = "hand", - }, - { - -- blacksteel sword - itemid = 7406, - type = "deequip", - slot = "hand", - }, - { - -- havoc blade - itemid = 7405, - type = "equip", - slot = "hand", - }, - { - -- havoc blade - itemid = 7405, - type = "deequip", - slot = "hand", - }, - { - -- assassin dagger - itemid = 7404, - type = "equip", - slot = "hand", - }, - { - -- assassin dagger - itemid = 7404, - type = "deequip", - slot = "hand", - }, - { - -- berserker - itemid = 7403, - type = "equip", - slot = "hand", - }, - { - -- berserker - itemid = 7403, - type = "deequip", - slot = "hand", - }, - { - -- dragon slayer - itemid = 7402, - type = "equip", - slot = "hand", - }, - { - -- dragon slayer - itemid = 7402, - type = "deequip", - slot = "hand", - }, - { - -- orcish maul - itemid = 7392, - type = "equip", - slot = "hand", - }, - { - -- orcish maul - itemid = 7392, - type = "deequip", - slot = "hand", - }, - { - -- thaian sword - itemid = 7391, - type = "equip", - slot = "hand", - }, - { - -- thaian sword - itemid = 7391, - type = "deequip", - slot = "hand", - }, - { - -- the justice seeker - itemid = 7390, - type = "equip", - slot = "hand", - }, - { - -- the justice seeker - itemid = 7390, - type = "deequip", - slot = "hand", - }, - { - -- heroic axe - itemid = 7389, - type = "equip", - slot = "hand", - }, - { - -- heroic axe - itemid = 7389, - type = "deequip", - slot = "hand", - }, - { - -- vile axe - itemid = 7388, - type = "equip", - slot = "hand", - }, - { - -- vile axe - itemid = 7388, - type = "deequip", - slot = "hand", - }, - { - -- diamond sceptre - itemid = 7387, - type = "equip", - slot = "hand", - }, - { - -- diamond sceptre - itemid = 7387, - type = "deequip", - slot = "hand", - }, - { - -- mercenary sword - itemid = 7386, - type = "equip", - slot = "hand", - }, - { - -- mercenary sword - itemid = 7386, - type = "deequip", - slot = "hand", - }, - { - -- crimson sword - itemid = 7385, - type = "equip", - slot = "hand", - }, - { - -- crimson sword - itemid = 7385, - type = "deequip", - slot = "hand", - }, - { - -- mystic blade - itemid = 7384, - type = "equip", - slot = "hand", - }, - { - -- mystic blade - itemid = 7384, - type = "deequip", - slot = "hand", - }, - { - -- relic sword - itemid = 7383, - type = "equip", - slot = "hand", - }, - { - -- relic sword - itemid = 7383, - type = "deequip", - slot = "hand", - }, - { - -- demonrage sword - itemid = 7382, - type = "equip", - slot = "hand", - }, - { - -- demonrage sword - itemid = 7382, - type = "deequip", - slot = "hand", - }, - { - -- mammoth whopper - itemid = 7381, - type = "equip", - slot = "hand", - }, - { - -- mammoth whopper - itemid = 7381, - type = "deequip", - slot = "hand", - }, - { - -- headchopper - itemid = 7380, - type = "equip", - slot = "hand", - }, - { - -- headchopper - itemid = 7380, - type = "deequip", - slot = "hand", - }, - { - -- brutetamer's staff - itemid = 7379, - type = "equip", - slot = "hand", - }, - { - -- brutetamer's staff - itemid = 7379, - type = "deequip", - slot = "hand", - }, - { - -- royal spear - itemid = 7378, - type = "equip", - slot = "hand", - }, - { - -- royal spear - itemid = 7378, - type = "deequip", - slot = "hand", - }, - { - -- assassin star - itemid = 7368, - type = "equip", - slot = "hand", - }, - { - -- assassin star - itemid = 7368, - type = "deequip", - slot = "hand", - }, - { - -- enchanted spear - itemid = 7367, - type = "equip", - slot = "hand", - }, - { - -- enchanted spear - itemid = 7367, - type = "deequip", - slot = "hand", - }, - { - -- onyx arrow - itemid = 7365, - type = "equip", - slot = "ammo", - }, - { - -- onyx arrow - itemid = 7365, - type = "deequip", - slot = "ammo", - }, - { - -- sniper arrow - itemid = 7364, - type = "equip", - slot = "ammo", - }, - { - -- sniper arrow - itemid = 7364, - type = "deequip", - slot = "ammo", - }, - { - -- piercing bolt - itemid = 7363, - type = "equip", - slot = "ammo", - }, - { - -- piercing bolt - itemid = 7363, - type = "deequip", - slot = "ammo", - }, - { - -- flame of life - itemid = 7360, - type = "additem", - }, - { - -- flame of life - itemid = 7359, - type = "stepin", - }, - { - -- fur bag - itemid = 7343, - type = "equip", - slot = "backpack", - }, - { - -- fur bag - itemid = 7343, - type = "deequip", - slot = "backpack", - }, - { - -- fur backpack - itemid = 7342, - type = "equip", - slot = "backpack", - }, - { - -- fur backpack - itemid = 7342, - type = "deequip", - slot = "backpack", - }, - { - -- party hat - itemid = 6578, - type = "equip", - slot = "head", - }, - { - -- party hat - itemid = 6578, - type = "deequip", - slot = "head", - }, - { - -- ruthless axe - itemid = 6553, - type = "equip", - slot = "hand", - }, - { - -- ruthless axe - itemid = 6553, - type = "deequip", - slot = "hand", - }, - { - -- santa hat - itemid = 6531, - type = "equip", - slot = "head", - }, - { - -- santa hat - itemid = 6531, - type = "deequip", - slot = "head", - }, - { - -- infernal bolt - itemid = 6528, - type = "equip", - slot = "ammo", - }, - { - -- infernal bolt - itemid = 6528, - type = "deequip", - slot = "ammo", - }, - { - -- the avenger - itemid = 6527, - type = "equip", - slot = "hand", - }, - { - -- the avenger - itemid = 6527, - type = "deequip", - slot = "hand", - }, - { - -- necromancer shield - itemid = 6432, - type = "equip", - slot = "shield", - }, - { - -- necromancer shield - itemid = 6432, - type = "deequip", - slot = "shield", - }, - { - -- nightmare shield - itemid = 6390, - type = "equip", - slot = "shield", - }, - { - -- nightmare shield - itemid = 6390, - type = "deequip", - slot = "shield", - }, - { - -- death ring - itemid = 6300, - type = "equip", - slot = "ring", - }, - { - -- death ring - itemid = 6300, - type = "deequip", - slot = "ring", - }, - { - -- death ring - itemid = 6299, - type = "equip", - slot = "ring", - }, - { - -- death ring - itemid = 6299, - type = "deequip", - slot = "ring", - }, - { - -- pair of soft boots - itemid = 6529, - type = "equip", - slot = "feet", - level = 10, - }, - { - -- pair of soft boots - itemid = 6529, - type = "deequip", - slot = "feet", - level = 10, - }, - { - -- tortoise shield - itemid = 6131, - type = "equip", - slot = "shield", - }, - { - -- tortoise shield - itemid = 6131, - type = "deequip", - slot = "shield", - }, - { - -- Dragha's spellbook - itemid = 6120, - type = "equip", - slot = "shield", - }, - { - -- Dragha's spellbook - itemid = 6120, - type = "deequip", - slot = "shield", - }, - { - -- Ron the Ripper's sabre - itemid = 6101, - type = "equip", - slot = "hand", - }, - { - -- Ron the Ripper's sabre - itemid = 6101, - type = "deequip", - slot = "hand", - }, - { - -- pirate hat - itemid = 6096, - type = "equip", - slot = "head", - }, - { - -- pirate hat - itemid = 6096, - type = "deequip", - slot = "head", - }, - { - -- pirate shirt - itemid = 6095, - type = "equip", - slot = "armor", - }, - { - -- pirate shirt - itemid = 6095, - type = "deequip", - slot = "armor", - }, - { - -- beach bag - itemid = 5950, - type = "equip", - slot = "backpack", - }, - { - -- beach bag - itemid = 5950, - type = "deequip", - slot = "backpack", - }, - { - -- beach backpack - itemid = 5949, - type = "equip", - slot = "backpack", - }, - { - -- beach backpack - itemid = 5949, - type = "deequip", - slot = "backpack", - }, - { - -- pirate bag - itemid = 5927, - type = "equip", - slot = "backpack", - }, - { - -- pirate bag - itemid = 5927, - type = "deequip", - slot = "backpack", - }, - { - -- pirate backpack - itemid = 5926, - type = "equip", - slot = "backpack", - }, - { - -- pirate backpack - itemid = 5926, - type = "deequip", - slot = "backpack", - }, - { - -- pirate knee breeches - itemid = 5918, - type = "equip", - slot = "legs", - }, - { - -- pirate knee breeches - itemid = 5918, - type = "deequip", - slot = "legs", - }, - { - -- bandana - itemid = 5917, - type = "equip", - slot = "head", - }, - { - -- bandana - itemid = 5917, - type = "deequip", - slot = "head", - }, - { - -- Ferumbras' hat - itemid = 5903, - type = "equip", - slot = "head", - }, - { - -- Ferumbras' hat - itemid = 5903, - type = "deequip", - slot = "head", - }, - { - -- arbalest - itemid = 5803, - type = "equip", - slot = "hand", - }, - { - -- arbalest - itemid = 5803, - type = "deequip", - slot = "hand", - }, - { - -- jewelled backpack - itemid = 5801, - type = "equip", - slot = "backpack", - }, - { - -- jewelled backpack - itemid = 5801, - type = "deequip", - slot = "backpack", - }, - { - -- skull helmet - itemid = 5741, - type = "equip", - slot = "head", - }, - { - -- skull helmet - itemid = 5741, - type = "deequip", - slot = "head", - }, - { - -- pirate boots - itemid = 5461, - type = "equip", - slot = "feet", - }, - { - -- pirate boots - itemid = 5461, - type = "deequip", - slot = "feet", - }, - { - -- helmet of the deep - itemid = 5460, - type = "equip", - slot = "head", - }, - { - -- helmet of the deep - itemid = 5460, - type = "deequip", - slot = "head", - }, - { - -- spectral dress - itemid = 4836, - type = "equip", - slot = "armor", - }, - { - -- spectral dress - itemid = 4836, - type = "deequip", - slot = "armor", - }, - { - -- bast skirt - itemid = 3560, - type = "equip", - slot = "legs", - }, - { - -- bast skirt - itemid = 3560, - type = "deequip", - slot = "legs", - }, - { - -- crocodile boots - itemid = 3556, - type = "equip", - slot = "feet", - }, - { - -- crocodile boots - itemid = 3556, - type = "deequip", - slot = "feet", - }, - { - -- salamander shield - itemid = 3445, - type = "equip", - slot = "shield", - }, - { - -- salamander shield - itemid = 3445, - type = "deequip", - slot = "shield", - }, - { - -- sentinel shield - itemid = 3444, - type = "equip", - slot = "shield", - }, - { - -- sentinel shield - itemid = 3444, - type = "deequip", - slot = "shield", - }, - { - -- tusk shield - itemid = 3443, - type = "equip", - slot = "shield", - }, - { - -- tusk shield - itemid = 3443, - type = "deequip", - slot = "shield", - }, - { - -- bonelord helmet - itemid = 3408, - type = "equip", - slot = "head", - }, - { - -- bonelord helmet - itemid = 3408, - type = "deequip", - slot = "head", - }, - { - -- charmer's tiara - itemid = 3407, - type = "equip", - slot = "head", - }, - { - -- charmer's tiara - itemid = 3407, - type = "deequip", - slot = "head", - }, - { - -- feather headdress - itemid = 3406, - type = "equip", - slot = "head", - }, - { - -- feather headdress - itemid = 3406, - type = "deequip", - slot = "head", - }, - { - -- horseman helmet - itemid = 3405, - type = "equip", - slot = "head", - }, - { - -- horseman helmet - itemid = 3405, - type = "deequip", - slot = "head", - }, - { - -- leopard armor - itemid = 3404, - type = "equip", - slot = "armor", - }, - { - -- leopard armor - itemid = 3404, - type = "deequip", - slot = "armor", - }, - { - -- tribal mask - itemid = 3403, - type = "equip", - slot = "head", - }, - { - -- tribal mask - itemid = 3403, - type = "deequip", - slot = "head", - }, - { - -- banana staff - itemid = 3348, - type = "equip", - slot = "hand", - }, - { - -- banana staff - itemid = 3348, - type = "deequip", - slot = "hand", - }, - { - -- hunting spear - itemid = 3347, - type = "equip", - slot = "hand", - }, - { - -- hunting spear - itemid = 3347, - type = "deequip", - slot = "hand", - }, - { - -- ripper lance - itemid = 3346, - type = "equip", - slot = "hand", - }, - { - -- ripper lance - itemid = 3346, - type = "deequip", - slot = "hand", - }, - { - -- templar scytheblade - itemid = 3345, - type = "equip", - slot = "hand", - }, - { - -- templar scytheblade - itemid = 3345, - type = "deequip", - slot = "hand", - }, - { - -- beastslayer axe - itemid = 3344, - type = "equip", - slot = "hand", - }, - { - -- beastslayer axe - itemid = 3344, - type = "deequip", - slot = "hand", - }, - { - -- lich staff - itemid = 3343, - type = "equip", - slot = "hand", - }, - { - -- lich staff - itemid = 3343, - type = "deequip", - slot = "hand", - }, - { - -- old and used backpack - itemid = 3244, - type = "equip", - slot = "backpack", - }, - { - -- old and used backpack - itemid = 3244, - type = "deequip", - slot = "backpack", - }, - { - -- camouflage backpack - itemid = 2872, - type = "equip", - slot = "backpack", - }, - { - -- camouflage backpack - itemid = 2872, - type = "deequip", - slot = "backpack", - }, - { - -- camouflage bag - itemid = 2864, - type = "equip", - slot = "backpack", - }, - { - -- camouflage bag - itemid = 2864, - type = "deequip", - slot = "backpack", - }, - { - -- post officer's hat - itemid = 3576, - type = "equip", - slot = "head", - }, - { - -- post officer's hat - itemid = 3576, - type = "deequip", - slot = "head", - }, - { - -- wood cape - itemid = 3575, - type = "equip", - slot = "head", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- wood cape - itemid = 3575, - type = "deequip", - slot = "head", - }, - { - -- mystic turban - itemid = 3574, - type = "equip", - slot = "head", - }, - { - -- mystic turban - itemid = 3574, - type = "deequip", - slot = "head", - }, - { - -- magician hat - itemid = 3573, - type = "equip", - slot = "head", - }, - { - -- magician hat - itemid = 3573, - type = "deequip", - slot = "head", - }, - { - -- scarf - itemid = 3572, - type = "equip", - slot = "necklace", - }, - { - -- scarf - itemid = 3572, - type = "deequip", - slot = "necklace", - }, - { - -- ranger's cloak - itemid = 3571, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ranger's cloak - itemid = 3571, - type = "deequip", - slot = "armor", - }, - { - -- ball gown - itemid = 3570, - type = "equip", - slot = "armor", - }, - { - -- ball gown - itemid = 3570, - type = "deequip", - slot = "armor", - }, - { - -- white dress - itemid = 3569, - type = "equip", - slot = "armor", - }, - { - -- white dress - itemid = 3569, - type = "deequip", - slot = "armor", - }, - { - -- simple dress - itemid = 3568, - type = "equip", - slot = "armor", - }, - { - -- simple dress - itemid = 3568, - type = "deequip", - slot = "armor", - }, - { - -- blue robe - itemid = 3567, - type = "equip", - slot = "armor", - }, - { - -- blue robe - itemid = 3567, - type = "deequip", - slot = "armor", - }, - { - -- red robe - itemid = 3566, - type = "equip", - slot = "armor", - }, - { - -- red robe - itemid = 3566, - type = "deequip", - slot = "armor", - }, - { - -- cape - itemid = 3565, - type = "equip", - slot = "armor", - }, - { - -- cape - itemid = 3565, - type = "deequip", - slot = "armor", - }, - { - -- red tunic - itemid = 3564, - type = "equip", - slot = "armor", - }, - { - -- red tunic - itemid = 3564, - type = "deequip", - slot = "armor", - }, - { - -- green tunic - itemid = 3563, - type = "equip", - slot = "armor", - }, - { - -- green tunic - itemid = 3563, - type = "deequip", - slot = "armor", - }, - { - -- coat - itemid = 3562, - type = "equip", - slot = "armor", - }, - { - -- coat - itemid = 3562, - type = "deequip", - slot = "armor", - }, - { - -- jacket - itemid = 3561, - type = "equip", - slot = "armor", - }, - { - -- jacket - itemid = 3561, - type = "deequip", - slot = "armor", - }, - { - -- leather legs - itemid = 3559, - type = "equip", - slot = "legs", - }, - { - -- leather legs - itemid = 3559, - type = "deequip", - slot = "legs", - }, - { - -- chain legs - itemid = 3558, - type = "equip", - slot = "legs", - }, - { - -- chain legs - itemid = 3558, - type = "deequip", - slot = "legs", - }, - { - -- plate legs - itemid = 3557, - type = "equip", - slot = "legs", - }, - { - -- plate legs - itemid = 3557, - type = "deequip", - slot = "legs", - }, - { - -- golden boots - itemid = 3555, - type = "equip", - slot = "feet", - }, - { - -- golden boots - itemid = 3555, - type = "deequip", - slot = "feet", - }, - { - -- steel boots - itemid = 3554, - type = "equip", - slot = "feet", - }, - { - -- steel boots - itemid = 3554, - type = "deequip", - slot = "feet", - }, - { - -- bunnyslippers - itemid = 3553, - type = "equip", - slot = "feet", - }, - { - -- bunnyslippers - itemid = 3553, - type = "deequip", - slot = "feet", - }, - { - -- leather boots - itemid = 3552, - type = "equip", - slot = "feet", - }, - { - -- leather boots - itemid = 3552, - type = "deequip", - slot = "feet", - }, - { - -- sandals - itemid = 3551, - type = "equip", - slot = "feet", - }, - { - -- sandals - itemid = 3551, - type = "deequip", - slot = "feet", - }, - { - -- patched boots - itemid = 3550, - type = "equip", - slot = "feet", - }, - { - -- patched boots - itemid = 3550, - type = "deequip", - slot = "feet", - }, - { - -- pair of soft boots - itemid = 3549, - type = "equip", - slot = "feet", - level = 10, - }, - { - -- pair of soft boots - itemid = 3549, - type = "deequip", - slot = "feet", - level = 10, - }, - { - -- scythe - itemid = 3453, - type = "equip", - slot = "hand", - }, - { - -- scythe - itemid = 3453, - type = "deequip", - slot = "hand", - }, - { - -- power bolt - itemid = 3450, - type = "equip", - slot = "ammo", - }, - { - -- power bolt - itemid = 3450, - type = "deequip", - slot = "ammo", - }, - { - -- arrow - itemid = 3447, - type = "equip", - slot = "ammo", - }, - { - -- arrow - itemid = 3447, - type = "deequip", - slot = "ammo", - }, - { - -- bolt - itemid = 3446, - type = "equip", - slot = "ammo", - }, - { - -- bolt - itemid = 3446, - type = "deequip", - slot = "ammo", - }, - { - -- tempest shield - itemid = 3442, - type = "equip", - slot = "shield", - }, - { - -- tempest shield - itemid = 3442, - type = "deequip", - slot = "shield", - }, - { - -- bone shield - itemid = 3441, - type = "equip", - slot = "shield", - }, - { - -- bone shield - itemid = 3441, - type = "deequip", - slot = "shield", - }, - { - -- scarab shield - itemid = 3440, - type = "equip", - slot = "shield", - }, - { - -- scarab shield - itemid = 3440, - type = "deequip", - slot = "shield", - }, - { - -- phoenix shield - itemid = 3439, - type = "equip", - slot = "shield", - }, - { - -- phoenix shield - itemid = 3439, - type = "deequip", - slot = "shield", - }, - { - -- eagle shield - itemid = 3438, - type = "equip", - slot = "shield", - }, - { - -- eagle shield - itemid = 3438, - type = "deequip", - slot = "shield", - }, - { - -- amazon shield - itemid = 3437, - type = "equip", - slot = "shield", - }, - { - -- amazon shield - itemid = 3437, - type = "deequip", - slot = "shield", - }, - { - -- medusa shield - itemid = 3436, - type = "equip", - slot = "shield", - }, - { - -- medusa shield - itemid = 3436, - type = "deequip", - slot = "shield", - }, - { - -- castle shield - itemid = 3435, - type = "equip", - slot = "shield", - }, - { - -- castle shield - itemid = 3435, - type = "deequip", - slot = "shield", - }, - { - -- vampire shield - itemid = 3434, - type = "equip", - slot = "shield", - }, - { - -- vampire shield - itemid = 3434, - type = "deequip", - slot = "shield", - }, - { - -- griffin shield - itemid = 3433, - type = "equip", - slot = "shield", - }, - { - -- griffin shield - itemid = 3433, - type = "deequip", - slot = "shield", - }, - { - -- ancient shield - itemid = 3432, - type = "equip", - slot = "shield", - }, - { - -- ancient shield - itemid = 3432, - type = "deequip", - slot = "shield", - }, - { - -- viking shield - itemid = 3431, - type = "equip", - slot = "shield", - }, - { - -- viking shield - itemid = 3431, - type = "deequip", - slot = "shield", - }, - { - -- copper shield - itemid = 3430, - type = "equip", - slot = "shield", - }, - { - -- copper shield - itemid = 3430, - type = "deequip", - slot = "shield", - }, - { - -- black shield - itemid = 3429, - type = "equip", - slot = "shield", - }, - { - -- black shield - itemid = 3429, - type = "deequip", - slot = "shield", - }, - { - -- tower shield - itemid = 3428, - type = "equip", - slot = "shield", - }, - { - -- tower shield - itemid = 3428, - type = "deequip", - slot = "shield", - }, - { - -- rose shield - itemid = 3427, - type = "equip", - slot = "shield", - }, - { - -- rose shield - itemid = 3427, - type = "deequip", - slot = "shield", - }, - { - -- studded shield - itemid = 3426, - type = "equip", - slot = "shield", - }, - { - -- studded shield - itemid = 3426, - type = "deequip", - slot = "shield", - }, - { - -- dwarven shield - itemid = 3425, - type = "equip", - slot = "shield", - }, - { - -- dwarven shield - itemid = 3425, - type = "deequip", - slot = "shield", - }, - { - -- ornamented shield - itemid = 3424, - type = "equip", - slot = "shield", - }, - { - -- ornamented shield - itemid = 3424, - type = "deequip", - slot = "shield", - }, - { - -- blessed shield - itemid = 3423, - type = "equip", - slot = "shield", - }, - { - -- blessed shield - itemid = 3423, - type = "deequip", - slot = "shield", - }, - { - -- great shield - itemid = 3422, - type = "equip", - slot = "shield", - }, - { - -- great shield - itemid = 3422, - type = "deequip", - slot = "shield", - }, - { - -- dark shield - itemid = 3421, - type = "equip", - slot = "shield", - }, - { - -- dark shield - itemid = 3421, - type = "deequip", - slot = "shield", - }, - { - -- demon shield - itemid = 3420, - type = "equip", - slot = "shield", - }, - { - -- demon shield - itemid = 3420, - type = "deequip", - slot = "shield", - }, - { - -- crown shield - itemid = 3419, - type = "equip", - slot = "shield", - }, - { - -- crown shield - itemid = 3419, - type = "deequip", - slot = "shield", - }, - { - -- bonelord shield - itemid = 3418, - type = "equip", - slot = "shield", - }, - { - -- bonelord shield - itemid = 3418, - type = "deequip", - slot = "shield", - }, - { - -- shield of honour - itemid = 3417, - type = "equip", - slot = "shield", - }, - { - -- shield of honour - itemid = 3417, - type = "deequip", - slot = "shield", - }, - { - -- dragon shield - itemid = 3416, - type = "equip", - slot = "shield", - }, - { - -- dragon shield - itemid = 3416, - type = "deequip", - slot = "shield", - }, - { - -- guardian shield - itemid = 3415, - type = "equip", - slot = "shield", - }, - { - -- guardian shield - itemid = 3415, - type = "deequip", - slot = "shield", - }, - { - -- mastermind shield - itemid = 3414, - type = "equip", - slot = "shield", - }, - { - -- mastermind shield - itemid = 3414, - type = "deequip", - slot = "shield", - }, - { - -- battle shield - itemid = 3413, - type = "equip", - slot = "shield", - }, - { - -- battle shield - itemid = 3413, - type = "deequip", - slot = "shield", - }, - { - -- wooden shield - itemid = 3412, - type = "equip", - slot = "shield", - }, - { - -- wooden shield - itemid = 3412, - type = "deequip", - slot = "shield", - }, - { - -- brass shield - itemid = 3411, - type = "equip", - slot = "shield", - }, - { - -- brass shield - itemid = 3411, - type = "deequip", - slot = "shield", - }, - { - -- plate shield - itemid = 3410, - type = "equip", - slot = "shield", - }, - { - -- plate shield - itemid = 3410, - type = "deequip", - slot = "shield", - }, - { - -- steel shield - itemid = 3409, - type = "equip", - slot = "shield", - }, - { - -- steel shield - itemid = 3409, - type = "deequip", - slot = "shield", - }, - { - -- native armor - itemid = 3402, - type = "equip", - slot = "armor", - }, - { - -- native armor - itemid = 3402, - type = "deequip", - slot = "armor", - }, - { - -- elven legs - itemid = 3401, - type = "equip", - slot = "legs", - }, - { - -- elven legs - itemid = 3401, - type = "deequip", - slot = "legs", - }, - { - -- dragon scale helmet - itemid = 3400, - type = "equip", - slot = "head", - }, - { - -- dragon scale helmet - itemid = 3400, - type = "deequip", - slot = "head", - }, - { - -- elven mail - itemid = 3399, - type = "equip", - slot = "armor", - }, - { - -- elven mail - itemid = 3399, - type = "deequip", - slot = "armor", - }, - { - -- dwarven legs - itemid = 3398, - type = "equip", - slot = "legs", - }, - { - -- dwarven legs - itemid = 3398, - type = "deequip", - slot = "legs", - }, - { - -- dwarven armor - itemid = 3397, - type = "equip", - slot = "armor", - }, - { - -- dwarven armor - itemid = 3397, - type = "deequip", - slot = "armor", - }, - { - -- dwarven helmet - itemid = 3396, - type = "equip", - slot = "head", - }, - { - -- dwarven helmet - itemid = 3396, - type = "deequip", - slot = "head", - }, - { - -- ceremonial mask - itemid = 3395, - type = "equip", - slot = "head", - }, - { - -- ceremonial mask - itemid = 3395, - type = "deequip", - slot = "head", - }, - { - -- amazon armor - itemid = 3394, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- amazon armor - itemid = 3394, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- amazon helmet - itemid = 3393, - type = "equip", - slot = "head", - }, - { - -- amazon helmet - itemid = 3393, - type = "deequip", - slot = "head", - }, - { - -- royal helmet - itemid = 3392, - type = "equip", - slot = "head", - }, - { - -- royal helmet - itemid = 3392, - type = "deequip", - slot = "head", - }, - { - -- crusader helmet - itemid = 3391, - type = "equip", - slot = "head", - }, - { - -- crusader helmet - itemid = 3391, - type = "deequip", - slot = "head", - }, - { - -- horned helmet - itemid = 3390, - type = "equip", - slot = "head", - }, - { - -- horned helmet - itemid = 3390, - type = "deequip", - slot = "head", - }, - { - -- demon legs - itemid = 3389, - type = "equip", - slot = "legs", - }, - { - -- demon legs - itemid = 3389, - type = "deequip", - slot = "legs", - }, - { - -- demon armor - itemid = 3388, - type = "equip", - slot = "armor", - }, - { - -- demon armor - itemid = 3388, - type = "deequip", - slot = "armor", - }, - { - -- demon helmet - itemid = 3387, - type = "equip", - slot = "head", - }, - { - -- demon helmet - itemid = 3387, - type = "deequip", - slot = "head", - }, - { - -- dragon scale mail - itemid = 3386, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- dragon scale mail - itemid = 3386, - type = "deequip", - slot = "armor", - }, - { - -- crown helmet - itemid = 3385, - type = "equip", - slot = "head", - }, - { - -- crown helmet - itemid = 3385, - type = "deequip", - slot = "head", - }, - { - -- dark helmet - itemid = 3384, - type = "equip", - slot = "head", - }, - { - -- dark helmet - itemid = 3384, - type = "deequip", - slot = "head", - }, - { - -- dark armor - itemid = 3383, - type = "equip", - slot = "armor", - }, - { - -- dark armor - itemid = 3383, - type = "deequip", - slot = "armor", - }, - { - -- crown legs - itemid = 3382, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crown legs - itemid = 3382, - type = "deequip", - slot = "legs", - }, - { - -- crown armor - itemid = 3381, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crown armor - itemid = 3381, - type = "deequip", - slot = "armor", - }, - { - -- noble armor - itemid = 3380, - type = "equip", - slot = "armor", - }, - { - -- noble armor - itemid = 3380, - type = "deequip", - slot = "armor", - }, - { - -- doublet - itemid = 3379, - type = "equip", - slot = "armor", - }, - { - -- doublet - itemid = 3379, - type = "deequip", - slot = "armor", - }, - { - -- studded armor - itemid = 3378, - type = "equip", - slot = "armor", - }, - { - -- studded armor - itemid = 3378, - type = "deequip", - slot = "armor", - }, - { - -- scale armor - itemid = 3377, - type = "equip", - slot = "armor", - }, - { - -- scale armor - itemid = 3377, - type = "deequip", - slot = "armor", - }, - { - -- studded helmet - itemid = 3376, - type = "equip", - slot = "head", - }, - { - -- studded helmet - itemid = 3376, - type = "deequip", - slot = "head", - }, - { - -- soldier helmet - itemid = 3375, - type = "equip", - slot = "head", - }, - { - -- soldier helmet - itemid = 3375, - type = "deequip", - slot = "head", - }, - { - -- legion helmet - itemid = 3374, - type = "equip", - slot = "head", - }, - { - -- legion helmet - itemid = 3374, - type = "deequip", - slot = "head", - }, - { - -- strange helmet - itemid = 3373, - type = "equip", - slot = "head", - }, - { - -- strange helmet - itemid = 3373, - type = "deequip", - slot = "head", - }, - { - -- brass legs - itemid = 3372, - type = "equip", - slot = "legs", - }, - { - -- brass legs - itemid = 3372, - type = "deequip", - slot = "legs", - }, - { - -- knight legs - itemid = 3371, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- knight legs - itemid = 3371, - type = "deequip", - slot = "legs", - }, - { - -- knight armor - itemid = 3370, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- knight armor - itemid = 3370, - type = "deequip", - slot = "armor", - }, - { - -- warrior helmet - itemid = 3369, - type = "equip", - slot = "head", - }, - { - -- warrior helmet - itemid = 3369, - type = "deequip", - slot = "head", - }, - { - -- winged helmet - itemid = 3368, - type = "equip", - slot = "head", - }, - { - -- winged helmet - itemid = 3368, - type = "deequip", - slot = "head", - }, - { - -- viking helmet - itemid = 3367, - type = "equip", - slot = "head", - }, - { - -- viking helmet - itemid = 3367, - type = "deequip", - slot = "head", - }, - { - -- magic plate armor - itemid = 3366, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- magic plate armor - itemid = 3366, - type = "deequip", - slot = "armor", - }, - { - -- golden helmet - itemid = 3365, - type = "equip", - slot = "head", - }, - { - -- golden helmet - itemid = 3365, - type = "deequip", - slot = "head", - }, - { - -- golden legs - itemid = 3364, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- golden legs - itemid = 3364, - type = "deequip", - slot = "legs", - }, - { - -- dragon scale legs - itemid = 3363, - type = "equip", - slot = "legs", - }, - { - -- dragon scale legs - itemid = 3363, - type = "deequip", - slot = "legs", - }, - { - -- studded legs - itemid = 3362, - type = "equip", - slot = "legs", - }, - { - -- studded legs - itemid = 3362, - type = "deequip", - slot = "legs", - }, - { - -- leather armor - itemid = 3361, - type = "equip", - slot = "armor", - }, - { - -- leather armor - itemid = 3361, - type = "deequip", - slot = "armor", - }, - { - -- golden armor - itemid = 3360, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- golden armor - itemid = 3360, - type = "deequip", - slot = "armor", - }, - { - -- brass armor - itemid = 3359, - type = "equip", - slot = "armor", - }, - { - -- brass armor - itemid = 3359, - type = "deequip", - slot = "armor", - }, - { - -- chain armor - itemid = 3358, - type = "equip", - slot = "armor", - }, - { - -- chain armor - itemid = 3358, - type = "deequip", - slot = "armor", - }, - { - -- plate armor - itemid = 3357, - type = "equip", - slot = "armor", - }, - { - -- plate armor - itemid = 3357, - type = "deequip", - slot = "armor", - }, - { - -- devil helmet - itemid = 3356, - type = "equip", - slot = "head", - }, - { - -- devil helmet - itemid = 3356, - type = "deequip", - slot = "head", - }, - { - -- leather helmet - itemid = 3355, - type = "equip", - slot = "head", - }, - { - -- leather helmet - itemid = 3355, - type = "deequip", - slot = "head", - }, - { - -- brass helmet - itemid = 3354, - type = "equip", - slot = "head", - }, - { - -- brass helmet - itemid = 3354, - type = "deequip", - slot = "head", - }, - { - -- iron helmet - itemid = 3353, - type = "equip", - slot = "head", - }, - { - -- iron helmet - itemid = 3353, - type = "deequip", - slot = "head", - }, - { - -- chain helmet - itemid = 3352, - type = "equip", - slot = "head", - }, - { - -- chain helmet - itemid = 3352, - type = "deequip", - slot = "head", - }, - { - -- steel helmet - itemid = 3351, - type = "equip", - slot = "head", - }, - { - -- steel helmet - itemid = 3351, - type = "deequip", - slot = "head", - }, - { - -- bow - itemid = 3350, - type = "equip", - slot = "hand", - }, - { - -- bow - itemid = 3350, - type = "deequip", - slot = "hand", - }, - { - -- crossbow - itemid = 3349, - type = "equip", - slot = "hand", - }, - { - -- crossbow - itemid = 3349, - type = "deequip", - slot = "hand", - }, - { - -- war axe - itemid = 3342, - type = "equip", - slot = "hand", - }, - { - -- war axe - itemid = 3342, - type = "deequip", - slot = "hand", - }, - { - -- arcane staff - itemid = 3341, - type = "equip", - slot = "hand", - }, - { - -- arcane staff - itemid = 3341, - type = "deequip", - slot = "hand", - }, - { - -- heavy mace - itemid = 3340, - type = "equip", - slot = "hand", - }, - { - -- heavy mace - itemid = 3340, - type = "deequip", - slot = "hand", - }, - { - -- djinn blade - itemid = 3339, - type = "equip", - slot = "hand", - }, - { - -- djinn blade - itemid = 3339, - type = "deequip", - slot = "hand", - }, - { - -- bone sword - itemid = 3338, - type = "equip", - slot = "hand", - }, - { - -- bone sword - itemid = 3338, - type = "deequip", - slot = "hand", - }, - { - -- bone club - itemid = 3337, - type = "equip", - slot = "hand", - }, - { - -- bone club - itemid = 3337, - type = "deequip", - slot = "hand", - }, - { - -- studded club - itemid = 3336, - type = "equip", - slot = "hand", - }, - { - -- studded club - itemid = 3336, - type = "deequip", - slot = "hand", - }, - { - -- twin axe - itemid = 3335, - type = "equip", - slot = "hand", - }, - { - -- twin axe - itemid = 3335, - type = "deequip", - slot = "hand", - }, - { - -- pharaoh sword - itemid = 3334, - type = "equip", - slot = "hand", - }, - { - -- pharaoh sword - itemid = 3334, - type = "deequip", - slot = "hand", - }, - { - -- crystal mace - itemid = 3333, - type = "equip", - slot = "hand", - }, - { - -- crystal mace - itemid = 3333, - type = "deequip", - slot = "hand", - }, - { - -- hammer of wrath - itemid = 3332, - type = "equip", - slot = "hand", - }, - { - -- hammer of wrath - itemid = 3332, - type = "deequip", - slot = "hand", - }, - { - -- ravager's axe - itemid = 3331, - type = "equip", - slot = "hand", - }, - { - -- ravager's axe - itemid = 3331, - type = "deequip", - slot = "hand", - }, - { - -- heavy machete - itemid = 3330, - type = "equip", - slot = "hand", - }, - { - -- heavy machete - itemid = 3330, - type = "deequip", - slot = "hand", - }, - { - -- daramian axe - itemid = 3329, - type = "equip", - slot = "hand", - }, - { - -- daramian axe - itemid = 3329, - type = "deequip", - slot = "hand", - }, - { - -- daramian waraxe - itemid = 3328, - type = "equip", - slot = "hand", - }, - { - -- daramian waraxe - itemid = 3328, - type = "deequip", - slot = "hand", - }, - { - -- daramian mace - itemid = 3327, - type = "equip", - slot = "hand", - }, - { - -- daramian mace - itemid = 3327, - type = "deequip", - slot = "hand", - }, - { - -- epee - itemid = 3326, - type = "equip", - slot = "hand", - }, - { - -- epee - itemid = 3326, - type = "deequip", - slot = "hand", - }, - { - -- light mace - itemid = 3325, - type = "equip", - slot = "hand", - }, - { - -- light mace - itemid = 3325, - type = "deequip", - slot = "hand", - }, - { - -- skull staff - itemid = 3324, - type = "equip", - slot = "hand", - }, - { - -- skull staff - itemid = 3324, - type = "deequip", - slot = "hand", - }, - { - -- dwarven axe - itemid = 3323, - type = "equip", - slot = "hand", - }, - { - -- dwarven axe - itemid = 3323, - type = "deequip", - slot = "hand", - }, - { - -- dragon hammer - itemid = 3322, - type = "equip", - slot = "hand", - }, - { - -- dragon hammer - itemid = 3322, - type = "deequip", - slot = "hand", - }, - { - -- enchanted staff - itemid = 3321, - type = "equip", - slot = "hand", - }, - { - -- enchanted staff - itemid = 3321, - type = "deequip", - slot = "hand", - }, - { - -- fire axe - itemid = 3320, - type = "equip", - slot = "hand", - }, - { - -- fire axe - itemid = 3320, - type = "deequip", - slot = "hand", - }, - { - -- stonecutter axe - itemid = 3319, - type = "equip", - slot = "hand", - }, - { - -- stonecutter axe - itemid = 3319, - type = "deequip", - slot = "hand", - }, - { - -- knight axe - itemid = 3318, - type = "equip", - slot = "hand", - }, - { - -- knight axe - itemid = 3318, - type = "deequip", - slot = "hand", - }, - { - -- barbarian axe - itemid = 3317, - type = "equip", - slot = "hand", - }, - { - -- barbarian axe - itemid = 3317, - type = "deequip", - slot = "hand", - }, - { - -- orcish axe - itemid = 3316, - type = "equip", - slot = "hand", - }, - { - -- orcish axe - itemid = 3316, - type = "deequip", - slot = "hand", - }, - { - -- guardian halberd - itemid = 3315, - type = "equip", - slot = "hand", - }, - { - -- guardian halberd - itemid = 3315, - type = "deequip", - slot = "hand", - }, - { - -- naginata - itemid = 3314, - type = "equip", - slot = "hand", - }, - { - -- naginata - itemid = 3314, - type = "deequip", - slot = "hand", - }, - { - -- obsidian lance - itemid = 3313, - type = "equip", - slot = "hand", - }, - { - -- obsidian lance - itemid = 3313, - type = "deequip", - slot = "hand", - }, - { - -- silver mace - itemid = 3312, - type = "equip", - slot = "hand", - }, - { - -- silver mace - itemid = 3312, - type = "deequip", - slot = "hand", - }, - { - -- clerical mace - itemid = 3311, - type = "equip", - slot = "hand", - }, - { - -- clerical mace - itemid = 3311, - type = "deequip", - slot = "hand", - }, - { - -- iron hammer - itemid = 3310, - type = "equip", - slot = "hand", - }, - { - -- iron hammer - itemid = 3310, - type = "deequip", - slot = "hand", - }, - { - -- thunder hammer - itemid = 3309, - type = "equip", - slot = "hand", - }, - { - -- thunder hammer - itemid = 3309, - type = "deequip", - slot = "hand", - }, - { - -- machete - itemid = 3308, - type = "equip", - slot = "hand", - }, - { - -- machete - itemid = 3308, - type = "deequip", - slot = "hand", - }, - { - -- scimitar - itemid = 3307, - type = "equip", - slot = "hand", - }, - { - -- scimitar - itemid = 3307, - type = "deequip", - slot = "hand", - }, - { - -- golden sickle - itemid = 3306, - type = "equip", - slot = "hand", - }, - { - -- golden sickle - itemid = 3306, - type = "deequip", - slot = "hand", - }, - { - -- battle hammer - itemid = 3305, - type = "equip", - slot = "hand", - }, - { - -- battle hammer - itemid = 3305, - type = "deequip", - slot = "hand", - }, - { - -- crowbar - itemid = 3304, - type = "equip", - slot = "hand", - }, - { - -- crowbar - itemid = 3304, - type = "deequip", - slot = "hand", - }, - { - -- great axe - itemid = 3303, - type = "equip", - slot = "hand", - }, - { - -- great axe - itemid = 3303, - type = "deequip", - slot = "hand", - }, - { - -- dragon lance - itemid = 3302, - type = "equip", - slot = "hand", - }, - { - -- dragon lance - itemid = 3302, - type = "deequip", - slot = "hand", - }, - { - -- broadsword - itemid = 3301, - type = "equip", - slot = "hand", - }, - { - -- broadsword - itemid = 3301, - type = "deequip", - slot = "hand", - }, - { - -- katana - itemid = 3300, - type = "equip", - slot = "hand", - }, - { - -- katana - itemid = 3300, - type = "deequip", - slot = "hand", - }, - { - -- poison dagger - itemid = 3299, - type = "equip", - slot = "hand", - }, - { - -- poison dagger - itemid = 3299, - type = "deequip", - slot = "hand", - }, - { - -- throwing knife - itemid = 3298, - type = "equip", - slot = "hand", - }, - { - -- throwing knife - itemid = 3298, - type = "deequip", - slot = "hand", - }, - { - -- serpent sword - itemid = 3297, - type = "equip", - slot = "hand", - }, - { - -- serpent sword - itemid = 3297, - type = "deequip", - slot = "hand", - }, - { - -- warlord sword - itemid = 3296, - type = "equip", - slot = "hand", - }, - { - -- warlord sword - itemid = 3296, - type = "deequip", - slot = "hand", - }, - { - -- bright sword - itemid = 3295, - type = "equip", - slot = "hand", - }, - { - -- bright sword - itemid = 3295, - type = "deequip", - slot = "hand", - }, - { - -- short sword - itemid = 3294, - type = "equip", - slot = "hand", - }, - { - -- short sword - itemid = 3294, - type = "deequip", - slot = "hand", - }, - { - -- sickle - itemid = 3293, - type = "equip", - slot = "hand", - }, - { - -- sickle - itemid = 3293, - type = "deequip", - slot = "hand", - }, - { - -- combat knife - itemid = 3292, - type = "equip", - slot = "hand", - }, - { - -- combat knife - itemid = 3292, - type = "deequip", - slot = "hand", - }, - { - -- knife - itemid = 3291, - type = "equip", - slot = "hand", - }, - { - -- knife - itemid = 3291, - type = "deequip", - slot = "hand", - }, - { - -- silver dagger - itemid = 3290, - type = "equip", - slot = "hand", - }, - { - -- silver dagger - itemid = 3290, - type = "deequip", - slot = "hand", - }, - { - -- staff - itemid = 3289, - type = "equip", - slot = "hand", - }, - { - -- staff - itemid = 3289, - type = "deequip", - slot = "hand", - }, - { - -- magic sword - itemid = 3288, - type = "equip", - slot = "hand", - }, - { - -- magic sword - itemid = 3288, - type = "deequip", - slot = "hand", - }, - { - -- throwing star - itemid = 3287, - type = "equip", - slot = "hand", - }, - { - -- throwing star - itemid = 3287, - type = "deequip", - slot = "hand", - }, - { - -- mace - itemid = 3286, - type = "equip", - slot = "hand", - }, - { - -- mace - itemid = 3286, - type = "deequip", - slot = "hand", - }, - { - -- longsword - itemid = 3285, - type = "equip", - slot = "hand", - }, - { - -- longsword - itemid = 3285, - type = "deequip", - slot = "hand", - }, - { - -- ice rapier - itemid = 3284, - type = "equip", - slot = "hand", - }, - { - -- ice rapier - itemid = 3284, - type = "deequip", - slot = "hand", - }, - { - -- carlin sword - itemid = 3283, - type = "equip", - slot = "hand", - }, - { - -- carlin sword - itemid = 3283, - type = "deequip", - slot = "hand", - }, - { - -- morning star - itemid = 3282, - type = "equip", - slot = "hand", - }, - { - -- morning star - itemid = 3282, - type = "deequip", - slot = "hand", - }, - { - -- giant sword - itemid = 3281, - type = "equip", - slot = "hand", - }, - { - -- giant sword - itemid = 3281, - type = "deequip", - slot = "hand", - }, - { - -- fire sword - itemid = 3280, - type = "equip", - slot = "hand", - }, - { - -- fire sword - itemid = 3280, - type = "deequip", - slot = "hand", - }, - { - -- war hammer - itemid = 3279, - type = "equip", - slot = "hand", - }, - { - -- war hammer - itemid = 3279, - type = "deequip", - slot = "hand", - }, - { - -- magic longsword - itemid = 3278, - type = "equip", - slot = "hand", - }, - { - -- magic longsword - itemid = 3278, - type = "deequip", - slot = "hand", - }, - { - -- spear - itemid = 3277, - type = "equip", - slot = "hand", - }, - { - -- spear - itemid = 3277, - type = "deequip", - slot = "hand", - }, - { - -- hatchet - itemid = 3276, - type = "equip", - slot = "hand", - }, - { - -- hatchet - itemid = 3276, - type = "deequip", - slot = "hand", - }, - { - -- double axe - itemid = 3275, - type = "equip", - slot = "hand", - }, - { - -- double axe - itemid = 3275, - type = "deequip", - slot = "hand", - }, - { - -- axe - itemid = 3274, - type = "equip", - slot = "hand", - }, - { - -- axe - itemid = 3274, - type = "deequip", - slot = "hand", - }, - { - -- sabre - itemid = 3273, - type = "equip", - slot = "hand", - }, - { - -- sabre - itemid = 3273, - type = "deequip", - slot = "hand", - }, - { - -- rapier - itemid = 3272, - type = "equip", - slot = "hand", - }, - { - -- rapier - itemid = 3272, - type = "deequip", - slot = "hand", - }, - { - -- spike sword - itemid = 3271, - type = "equip", - slot = "hand", - }, - { - -- spike sword - itemid = 3271, - type = "deequip", - slot = "hand", - }, - { - -- club - itemid = 3270, - type = "equip", - slot = "hand", - }, - { - -- club - itemid = 3270, - type = "deequip", - slot = "hand", - }, - { - -- halberd - itemid = 3269, - type = "equip", - slot = "hand", - }, - { - -- halberd - itemid = 3269, - type = "deequip", - slot = "hand", - }, - { - -- hand axe - itemid = 3268, - type = "equip", - slot = "hand", - }, - { - -- hand axe - itemid = 3268, - type = "deequip", - slot = "hand", - }, - { - -- dagger - itemid = 3267, - type = "equip", - slot = "hand", - }, - { - -- dagger - itemid = 3267, - type = "deequip", - slot = "hand", - }, - { - -- battle axe - itemid = 3266, - type = "equip", - slot = "hand", - }, - { - -- battle axe - itemid = 3266, - type = "deequip", - slot = "hand", - }, - { - -- two handed sword - itemid = 3265, - type = "equip", - slot = "hand", - }, - { - -- two handed sword - itemid = 3265, - type = "deequip", - slot = "hand", - }, - { - -- sword - itemid = 3264, - type = "equip", - slot = "hand", - }, - { - -- sword - itemid = 3264, - type = "deequip", - slot = "hand", - }, - { - -- backpack of holding - itemid = 3253, - type = "equip", - slot = "backpack", - }, - { - -- backpack of holding - itemid = 3253, - type = "deequip", - slot = "backpack", - }, - { - -- boots of waterwalking - itemid = 3246, - type = "equip", - slot = "feet", - }, - { - -- boots of waterwalking - itemid = 3246, - type = "deequip", - slot = "feet", - }, - { - -- ring of wishes - itemid = 3245, - type = "equip", - slot = "ring", - }, - { - -- ring of wishes - itemid = 3245, - type = "deequip", - slot = "ring", - }, - { - -- helmet of the ancients - itemid = 3230, - type = "equip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3230, - type = "deequip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3229, - type = "equip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3229, - type = "deequip", - slot = "head", - }, - { - -- damaged helmet - itemid = 3226, - type = "equip", - slot = "head", - }, - { - -- damaged helmet - itemid = 3226, - type = "deequip", - slot = "head", - }, - { - -- hat of the mad - itemid = 3210, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- hat of the mad - itemid = 3210, - type = "deequip", - slot = "head", - }, - { - -- giant smithhammer - itemid = 12510, - type = "equip", - slot = "hand", - }, - { - -- giant smithhammer - itemid = 12510, - type = "deequip", - slot = "hand", - }, - { - -- paw amulet - itemid = 3102, - type = "equip", - slot = "necklace", - }, - { - -- paw amulet - itemid = 3102, - type = "deequip", - slot = "necklace", - }, - { - -- ring of healing - itemid = 3100, - type = "equip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3100, - type = "deequip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3099, - type = "equip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3099, - type = "deequip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3098, - type = "equip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3098, - type = "deequip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3097, - type = "equip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3097, - type = "deequip", - slot = "ring", - }, - { - -- club ring - itemid = 3096, - type = "equip", - slot = "ring", - }, - { - -- club ring - itemid = 3096, - type = "deequip", - slot = "ring", - }, - { - -- axe ring - itemid = 3095, - type = "equip", - slot = "ring", - }, - { - -- axe ring - itemid = 3095, - type = "deequip", - slot = "ring", - }, - { - -- sword ring - itemid = 3094, - type = "equip", - slot = "ring", - }, - { - -- sword ring - itemid = 3094, - type = "deequip", - slot = "ring", - }, - { - -- club ring - itemid = 3093, - type = "equip", - slot = "ring", - }, - { - -- club ring - itemid = 3093, - type = "deequip", - slot = "ring", - }, - { - -- axe ring - itemid = 3092, - type = "equip", - slot = "ring", - }, - { - -- axe ring - itemid = 3092, - type = "deequip", - slot = "ring", - }, - { - -- sword ring - itemid = 3091, - type = "equip", - slot = "ring", - }, - { - -- sword ring - itemid = 3091, - type = "deequip", - slot = "ring", - }, - { - -- time ring - itemid = 3090, - type = "equip", - slot = "ring", - }, - { - -- time ring - itemid = 3090, - type = "deequip", - slot = "ring", - }, - { - -- life ring - itemid = 3089, - type = "equip", - slot = "ring", - }, - { - -- life ring - itemid = 3089, - type = "deequip", - slot = "ring", - }, - { - -- energy ring - itemid = 3088, - type = "equip", - slot = "ring", - }, - { - -- energy ring - itemid = 3088, - type = "deequip", - slot = "ring", - }, - { - -- power ring - itemid = 3087, - type = "equip", - slot = "ring", - }, - { - -- power ring - itemid = 3087, - type = "deequip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3086, - type = "equip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3086, - type = "deequip", - slot = "ring", - }, - { - -- dragon necklace - itemid = 3085, - type = "equip", - slot = "necklace", - }, - { - -- dragon necklace - itemid = 3085, - type = "deequip", - slot = "necklace", - }, - { - -- protection amulet - itemid = 3084, - type = "equip", - slot = "necklace", - }, - { - -- protection amulet - itemid = 3084, - type = "deequip", - slot = "necklace", - }, - { - -- garlic necklace - itemid = 3083, - type = "equip", - slot = "necklace", - }, - { - -- garlic necklace - itemid = 3083, - type = "deequip", - slot = "necklace", - }, - { - -- elven amulet - itemid = 3082, - type = "equip", - slot = "necklace", - }, - { - -- elven amulet - itemid = 3082, - type = "deequip", - slot = "necklace", - }, - { - -- stone skin amulet - itemid = 3081, - type = "equip", - slot = "necklace", - }, - { - -- stone skin amulet - itemid = 3081, - type = "deequip", - slot = "necklace", - }, - { - -- amulet of life - itemid = 3080, - type = "equip", - slot = "necklace", - }, - { - -- amulet of life - itemid = 3080, - type = "deequip", - slot = "necklace", - }, - { - -- boots of haste - itemid = 3079, - type = "equip", - slot = "feet", - }, - { - -- boots of haste - itemid = 3079, - type = "deequip", - slot = "feet", - }, - { - -- wand of dragonbreath - itemid = 3075, - type = "equip", - slot = "hand", - level = 13, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of dragonbreath - itemid = 3075, - type = "deequip", - slot = "hand", - level = 13, - }, - { - -- wand of vortex - itemid = 3074, - type = "equip", - slot = "hand", - level = 6, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of vortex - itemid = 3074, - type = "deequip", - slot = "hand", - level = 6, - }, - { - -- wand of cosmic energy - itemid = 3073, - type = "equip", - slot = "hand", - level = 26, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of cosmic energy - itemid = 3073, - type = "deequip", - slot = "hand", - level = 26, - }, - { - -- wand of decay - itemid = 3072, - type = "equip", - slot = "hand", - level = 19, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of decay - itemid = 3072, - type = "deequip", - slot = "hand", - level = 19, - }, - { - -- wand of inferno - itemid = 3071, - type = "equip", - slot = "hand", - level = 33, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of inferno - itemid = 3071, - type = "deequip", - slot = "hand", - level = 33, - }, - { - -- moonlight rod - itemid = 3070, - type = "equip", - slot = "hand", - level = 13, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- moonlight rod - itemid = 3070, - type = "deequip", - slot = "hand", - level = 13, - }, - { - -- necrotic rod - itemid = 3069, - type = "equip", - slot = "hand", - level = 19, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- necrotic rod - itemid = 3069, - type = "deequip", - slot = "hand", - level = 19, - }, - { - -- hailstorm rod - itemid = 3067, - type = "equip", - slot = "hand", - level = 33, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- hailstorm rod - itemid = 3067, - type = "deequip", - slot = "hand", - level = 33, - }, - { - -- snakebit rod - itemid = 3066, - type = "equip", - slot = "hand", - level = 6, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snakebit rod - itemid = 3066, - type = "deequip", - slot = "hand", - level = 6, - }, - { - -- terra rod - itemid = 3065, - type = "equip", - slot = "hand", - level = 26, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- terra rod - itemid = 3065, - type = "deequip", - slot = "hand", - level = 26, - }, - { - -- gold ring - itemid = 3063, - type = "equip", - slot = "ring", - }, - { - -- gold ring - itemid = 3063, - type = "deequip", - slot = "ring", - }, - { - -- spellbook - itemid = 3059, - type = "equip", - slot = "shield", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook - itemid = 3059, - type = "deequip", - slot = "shield", - }, - { - -- amulet of loss - itemid = 3057, - type = "equip", - slot = "necklace", - }, - { - -- amulet of loss - itemid = 3057, - type = "deequip", - slot = "necklace", - }, - { - -- bronze amulet - itemid = 3056, - type = "equip", - slot = "necklace", - }, - { - -- bronze amulet - itemid = 3056, - type = "deequip", - slot = "necklace", - }, - { - -- platinum amulet - itemid = 3055, - type = "equip", - slot = "necklace", - }, - { - -- platinum amulet - itemid = 3055, - type = "deequip", - slot = "necklace", - }, - { - -- silver amulet - itemid = 3054, - type = "equip", - slot = "necklace", - }, - { - -- silver amulet - itemid = 3054, - type = "deequip", - slot = "necklace", - }, - { - -- time ring - itemid = 3053, - type = "equip", - slot = "ring", - }, - { - -- time ring - itemid = 3053, - type = "deequip", - slot = "ring", - }, - { - -- life ring - itemid = 3052, - type = "equip", - slot = "ring", - }, - { - -- life ring - itemid = 3052, - type = "deequip", - slot = "ring", - }, - { - -- energy ring - itemid = 3051, - type = "equip", - slot = "ring", - }, - { - -- energy ring - itemid = 3051, - type = "deequip", - slot = "ring", - }, - { - -- power ring - itemid = 3050, - type = "equip", - slot = "ring", - }, - { - -- power ring - itemid = 3050, - type = "deequip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3049, - type = "equip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3049, - type = "deequip", - slot = "ring", - }, - { - -- might ring - itemid = 3048, - type = "equip", - slot = "ring", - }, - { - -- might ring - itemid = 3048, - type = "deequip", - slot = "ring", - }, - { - -- strange talisman - itemid = 3045, - type = "equip", - slot = "necklace", - }, - { - -- strange talisman - itemid = 3045, - type = "deequip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 3025, - type = "equip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 3025, - type = "deequip", - slot = "necklace", - }, - { - -- ancient tiara - itemid = 3022, - type = "equip", - slot = "head", - }, - { - -- ancient tiara - itemid = 3022, - type = "deequip", - slot = "head", - }, - { - -- sapphire amulet - itemid = 3021, - type = "equip", - slot = "necklace", - }, - { - -- sapphire amulet - itemid = 3021, - type = "deequip", - slot = "necklace", - }, - { - -- demonbone amulet - itemid = 3019, - type = "equip", - slot = "necklace", - }, - { - -- demonbone amulet - itemid = 3019, - type = "deequip", - slot = "necklace", - }, - { - -- scarab amulet - itemid = 3018, - type = "equip", - slot = "necklace", - }, - { - -- scarab amulet - itemid = 3018, - type = "deequip", - slot = "necklace", - }, - { - -- ruby necklace - itemid = 3016, - type = "equip", - slot = "necklace", - }, - { - -- ruby necklace - itemid = 3016, - type = "deequip", - slot = "necklace", - }, - { - -- silver necklace - itemid = 3015, - type = "equip", - slot = "necklace", - }, - { - -- silver necklace - itemid = 3015, - type = "deequip", - slot = "necklace", - }, - { - -- star amulet - itemid = 3014, - type = "equip", - slot = "necklace", - }, - { - -- star amulet - itemid = 3014, - type = "deequip", - slot = "necklace", - }, - { - -- golden amulet - itemid = 3013, - type = "equip", - slot = "necklace", - }, - { - -- golden amulet - itemid = 3013, - type = "deequip", - slot = "necklace", - }, - { - -- wolf tooth chain - itemid = 3012, - type = "equip", - slot = "necklace", - }, - { - -- wolf tooth chain - itemid = 3012, - type = "deequip", - slot = "necklace", - }, - { - -- crown - itemid = 3011, - type = "equip", - slot = "head", - }, - { - -- crown - itemid = 3011, - type = "deequip", - slot = "head", - }, - { - -- bronze necklace - itemid = 3009, - type = "equip", - slot = "necklace", - }, - { - -- bronze necklace - itemid = 3009, - type = "deequip", - slot = "necklace", - }, - { - -- crystal necklace - itemid = 3008, - type = "equip", - slot = "necklace", - }, - { - -- crystal necklace - itemid = 3008, - type = "deequip", - slot = "necklace", - }, - { - -- crystal ring - itemid = 3007, - type = "equip", - slot = "ring", - }, - { - -- crystal ring - itemid = 3007, - type = "deequip", - slot = "ring", - }, - { - -- ring of the sky - itemid = 3006, - type = "equip", - slot = "ring", - }, - { - -- ring of the sky - itemid = 3006, - type = "deequip", - slot = "ring", - }, - { - -- wedding ring - itemid = 3004, - type = "equip", - slot = "ring", - }, - { - -- wedding ring - itemid = 3004, - type = "deequip", - slot = "ring", - }, - { - -- snowball - itemid = 2992, - type = "equip", - slot = "hand", - }, - { - -- snowball - itemid = 2992, - type = "deequip", - slot = "hand", - }, - { - -- golden backpack - itemid = 2871, - type = "equip", - slot = "backpack", - }, - { - -- golden backpack - itemid = 2871, - type = "deequip", - slot = "backpack", - }, - { - -- grey backpack - itemid = 2870, - type = "equip", - slot = "backpack", - }, - { - -- grey backpack - itemid = 2870, - type = "deequip", - slot = "backpack", - }, - { - -- blue backpack - itemid = 2869, - type = "equip", - slot = "backpack", - }, - { - -- blue backpack - itemid = 2869, - type = "deequip", - slot = "backpack", - }, - { - -- purple backpack - itemid = 2868, - type = "equip", - slot = "backpack", - }, - { - -- purple backpack - itemid = 2868, - type = "deequip", - slot = "backpack", - }, - { - -- red backpack - itemid = 2867, - type = "equip", - slot = "backpack", - }, - { - -- red backpack - itemid = 2867, - type = "deequip", - slot = "backpack", - }, - { - -- yellow backpack - itemid = 2866, - type = "equip", - slot = "backpack", - }, - { - -- yellow backpack - itemid = 2866, - type = "deequip", - slot = "backpack", - }, - { - -- green backpack - itemid = 2865, - type = "equip", - slot = "backpack", - }, - { - -- green backpack - itemid = 2865, - type = "deequip", - slot = "backpack", - }, - { - -- golden bag - itemid = 2863, - type = "equip", - slot = "backpack", - }, - { - -- golden bag - itemid = 2863, - type = "deequip", - slot = "backpack", - }, - { - -- grey bag - itemid = 2862, - type = "equip", - slot = "backpack", - }, - { - -- grey bag - itemid = 2862, - type = "deequip", - slot = "backpack", - }, - { - -- blue bag - itemid = 2861, - type = "equip", - slot = "backpack", - }, - { - -- blue bag - itemid = 2861, - type = "deequip", - slot = "backpack", - }, - { - -- purple bag - itemid = 2860, - type = "equip", - slot = "backpack", - }, - { - -- purple bag - itemid = 2860, - type = "deequip", - slot = "backpack", - }, - { - -- red bag - itemid = 2859, - type = "equip", - slot = "backpack", - }, - { - -- red bag - itemid = 2859, - type = "deequip", - slot = "backpack", - }, - { - -- yellow bag - itemid = 2858, - type = "equip", - slot = "backpack", - }, - { - -- yellow bag - itemid = 2858, - type = "deequip", - slot = "backpack", - }, - { - -- green bag - itemid = 2857, - type = "equip", - slot = "backpack", - }, - { - -- green bag - itemid = 2857, - type = "deequip", - slot = "backpack", - }, - { - -- backpack - itemid = 2854, - type = "equip", - slot = "backpack", - }, - { - -- backpack - itemid = 2854, - type = "deequip", - slot = "backpack", - }, - { - -- bag - itemid = 2853, - type = "equip", - slot = "backpack", - }, - { - -- bag - itemid = 2853, - type = "deequip", - slot = "backpack", - }, - { - -- searing fire - itemid = 2138, - type = "stepin", - }, - { - -- searing fire - itemid = 2138, - type = "additem", - }, - { - -- searing fire - itemid = 2137, - type = "stepin", - }, - { - -- searing fire - itemid = 2137, - type = "additem", - }, - { - -- smoke - itemid = 2136, - type = "stepin", - }, - { - -- smoke - itemid = 2136, - type = "additem", - }, - { - -- energy field - itemid = 2135, - type = "stepin", - }, - { - -- energy field - itemid = 2135, - type = "additem", - }, - { - -- poison gas - itemid = 2134, - type = "stepin", - }, - { - -- poison gas - itemid = 2134, - type = "additem", - }, - { - -- fire field - itemid = 2133, - type = "stepin", - }, - { - -- fire field - itemid = 2133, - type = "additem", - }, - { - -- fire field - itemid = 2132, - type = "stepin", - }, - { - -- fire field - itemid = 2132, - type = "additem", - }, - { - -- fire field - itemid = 21465, - type = "stepin", - }, - { - -- fire field - itemid = 21465, - type = "additem", - }, - { - -- rush wood - itemid = 2130, - type = "stepin", - }, - { - -- rush wood - itemid = 2130, - type = "additem", - }, - { - -- magic wall - itemid = 2129, - type = "stepin", - }, - { - -- magic wall - itemid = 2129, - type = "additem", - }, - { - -- magic wall - itemid = 2128, - type = "stepin", - }, - { - -- magic wall - itemid = 2128, - type = "additem", - }, - { - -- poison field - itemid = 2121, - type = "stepin", - }, - { - -- poison field - itemid = 2121, - type = "additem", - }, - { - -- energy field - itemid = 2126, - type = "stepin", - }, - { - -- energy field - itemid = 2126, - type = "additem", - }, - { - -- fire field - itemid = 2125, - type = "stepin", - }, - { - -- fire field - itemid = 2125, - type = "additem", - }, - { - -- fire field - itemid = 2124, - type = "stepin", - }, - { - -- fire field - itemid = 2124, - type = "additem", - }, - { - -- fire field - itemid = 2123, - type = "stepin", - }, - { - -- fire field - itemid = 2123, - type = "additem", - }, - { - -- energy field - itemid = 2122, - type = "stepin", - }, - { - -- energy field - itemid = 2122, - type = "additem", - }, - { - -- poison field - itemid = 105, - type = "stepin", - }, - { - -- poison field - itemid = 105, - type = "additem", - }, - { - -- fire field - itemid = 2120, - type = "stepin", - }, - { - -- fire field - itemid = 2120, - type = "additem", - }, - { - -- fire field - itemid = 2119, - type = "stepin", - }, - { - -- fire field - itemid = 2119, - type = "additem", - }, - { - -- fire field - itemid = 2118, - type = "stepin", - }, - { - -- fire field - itemid = 2118, - type = "additem", - }, - { - -- campfire - itemid = 2000, - type = "stepin", - }, - { - -- campfire - itemid = 2000, - type = "additem", - }, - { - -- campfire - itemid = 1999, - type = "stepin", - }, - { - -- campfire - itemid = 1999, - type = "additem", - }, - { - -- campfire - itemid = 1998, - type = "stepin", - }, - { - -- campfire - itemid = 1998, - type = "additem", - }, - { - -- small stone - itemid = 1781, - type = "equip", - slot = "hand", - }, - { - -- small stone - itemid = 1781, - type = "deequip", - slot = "hand", - }, -} - -for _, i in ipairs(items) do - local movement = MoveEvent() - movement:id(i.itemid) - - if i.type then - movement:type(i.type) - end - if i.slot then - movement:slot(i.slot) - end - if i.level then - movement:level(i.level) - end - if i.vocation then - for _, v in ipairs(i.vocation) do - movement:vocation(v[1], v[2] or false, v[3] or false) - end - end - movement:register() -end diff --git a/data-canary/scripts/weapons/unscripted_weapons.lua b/data-canary/scripts/weapons/unscripted_weapons.lua deleted file mode 100644 index 5f56e9c7a06..00000000000 --- a/data-canary/scripts/weapons/unscripted_weapons.lua +++ /dev/null @@ -1,5141 +0,0 @@ -local weapons = { - { - -- naga rod - itemId = 39163, - type = WEAPON_WAND, - wandType = "ice", - level = 250, - mana = 22, - damage = { 90, 110 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- naga wand - itemId = 39162, - type = WEAPON_WAND, - wandType = "energy", - level = 250, - mana = 21, - damage = { 90, 120 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- naga crossbow - itemId = 39159, - type = WEAPON_DISTANCE, - level = 300, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- naga club - itemId = 39157, - type = WEAPON_CLUB, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga axe - itemId = 39156, - type = WEAPON_AXE, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga sword - itemId = 39155, - type = WEAPON_SWORD, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch rod - itemId = 36675, - type = WEAPON_WAND, - level = 250, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemId = 36674, - type = WEAPON_WAND, - level = 250, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- gilded eldritch wand - itemId = 36669, - type = WEAPON_WAND, - level = 250, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemId = 36668, - type = WEAPON_WAND, - level = 250, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch bow - itemId = 36665, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemId = 36664, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch greataxe - itemId = 36662, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemId = 36661, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemId = 36660, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemId = 36659, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemId = 36658, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemId = 36657, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spectral bolt (no decay) - itemId = 35902, - type = WEAPON_AMMO, - level = 150, - unproperly = true, - action = "removecount", - }, - { - -- jungle wand - itemId = 35522, - type = WEAPON_WAND, - wandType = "earth", - level = 150, - mana = 19, - damage = { 80, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- jungle rod - itemId = 35521, - type = WEAPON_WAND, - wandType = "ice", - level = 150, - mana = 19, - damage = { 80, 100 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- jungle bow - itemId = 35518, - type = WEAPON_DISTANCE, - level = 150, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- throwing axe - itemId = 35515, - type = WEAPON_AXE, - level = 150, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jungle flail - itemId = 35514, - type = WEAPON_CLUB, - level = 150, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion longsword - itemId = 34155, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion hammer - itemId = 34254, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion axe - itemId = 34253, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion wand - itemId = 34152, - type = WEAPON_WAND, - wandType = "ice", - level = 220, - mana = 21, - damage = { 89, 109 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- lion rod - itemId = 34151, - type = WEAPON_WAND, - wandType = "ice", - level = 270, - mana = 20, - damage = { 85, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- lion longbow - itemId = 34150, - type = WEAPON_DISTANCE, - level = 270, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulhexer rod - itemId = 34091, - type = WEAPON_WAND, - wandType = "ice", - level = 400, - mana = 21, - damage = { 98, 118 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soultainter wand - itemId = 34090, - type = WEAPON_WAND, - wandType = "death", - level = 400, - mana = 21, - damage = { 100, 120 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulpiercer crossbow - itemId = 34089, - type = WEAPON_DISTANCE, - level = 400, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulbleeder bow - itemId = 34088, - type = WEAPON_DISTANCE, - level = 400, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulmaimer club - itemId = 34087, - type = WEAPON_CLUB, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcrusher club - itemId = 34086, - type = WEAPON_CLUB, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- souleater axe - itemId = 34085, - type = WEAPON_AXE, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulbiter axe - itemId = 34084, - type = WEAPON_AXE, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshredder sword - itemId = 34083, - type = WEAPON_SWORD, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcutter sword - itemId = 34082, - type = WEAPON_SWORD, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- phantasmal axe - itemid = 32616, - type = WEAPON_AXE, - level = 180, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- meat hammer - itemid = 32093, - type = WEAPON_CLUB, - }, - { - -- tagralt blade - itemid = 31614, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- bow of cataclysm - itemid = 31581, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mortal mace - itemid = 31580, - type = WEAPON_CLUB, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra rod - itemid = 30400, - type = WEAPON_WAND, - wandType = "earth", - level = 220, - mana = 21, - damage = { 70, 110 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- cobra wand - itemid = 30399, - type = WEAPON_WAND, - wandType = "energy", - level = 270, - mana = 22, - damage = { 94, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- cobra sword - itemid = 30398, - type = WEAPON_SWORD, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra axe - itemid = 30396, - type = WEAPON_AXE, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra club - itemid = 30395, - type = WEAPON_CLUB, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra crossbow - itemid = 30393, - type = WEAPON_DISTANCE, - level = 220, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ice hatchet - itemid = 30283, - type = WEAPON_AXE, - }, - { - -- energized limb - itemid = 29425, - type = WEAPON_WAND, - wandType = "fire", - level = 180, - mana = 24, - damage = { 88, 108 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- winterblade - itemid = 29422, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- summerblade - itemid = 29421, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- resizer - itemid = 29419, - type = WEAPON_CLUB, - level = 230, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- living vine bow - itemid = 29417, - type = WEAPON_DISTANCE, - level = 220, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- golden axe - itemid = 29286, - type = WEAPON_AXE, - }, - { - -- wand of destruction test - itemid = 28479, - type = WEAPON_WAND, - }, - { - -- umbral master bow test - itemid = 28478, - type = WEAPON_DISTANCE, - }, - { - -- sorcerer test weapon - itemid = 28466, - type = WEAPON_WAND, - }, - { - -- bow of destruction test - itemid = 28465, - type = WEAPON_DISTANCE, - }, - { - -- test weapon for knights - itemid = 28464, - type = WEAPON_SWORD, - }, - { - -- sulphurous demonbone - itemid = 28832, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- unliving demonbone - itemid = 28831, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- energized demonbone - itemid = 28830, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- rotten demonbone - itemid = 28829, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- deepling fork - itemid = 28826, - type = WEAPON_WAND, - wandType = "ice", - level = 230, - mana = 23, - damage = { 80, 120 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling ceremonial dagger - itemid = 28825, - type = WEAPON_WAND, - wandType = "ice", - level = 180, - mana = 23, - damage = { 86, 98 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- falcon mace - itemid = 28725, - type = WEAPON_CLUB, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon battleaxe - itemid = 28724, - type = WEAPON_AXE, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon longsword - itemid = 28723, - type = WEAPON_SWORD, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon bow - itemid = 28718, - type = WEAPON_DISTANCE, - level = 300, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- falcon wand - itemid = 28717, - type = WEAPON_WAND, - wandType = "energy", - level = 300, - mana = 21, - damage = { 86, 102 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- falcon rod - itemid = 28716, - type = WEAPON_WAND, - wandType = "earth", - level = 300, - mana = 20, - damage = { 87, 101 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- gnome sword - itemid = 27651, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mallet handle - itemid = 27525, - type = WEAPON_CLUB, - }, - { - -- strange mallet - itemid = 27523, - type = WEAPON_CLUB, - }, - { - -- rod of destruction - itemid = 27458, - type = WEAPON_WAND, - wandType = "ice", - level = 200, - mana = 20, - damage = { 80, 110 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of destruction - itemid = 27457, - type = WEAPON_WAND, - wandType = "energy", - level = 200, - mana = 20, - damage = { 80, 110 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of destruction - itemid = 27456, - type = WEAPON_DISTANCE, - level = 200, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of destruction - itemid = 27455, - type = WEAPON_DISTANCE, - level = 200, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of destruction - itemid = 27454, - type = WEAPON_CLUB, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of destruction - itemid = 27453, - type = WEAPON_CLUB, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of destruction - itemid = 27452, - type = WEAPON_AXE, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of destruction - itemid = 27451, - type = WEAPON_AXE, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of destruction - itemid = 27450, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of destruction - itemid = 27449, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate carving hammer - itemid = 26061, - type = WEAPON_CLUB, - }, - { - -- valuable carving hammer - itemid = 26060, - type = WEAPON_CLUB, - }, - { - -- plain carving hammer - itemid = 26059, - type = WEAPON_CLUB, - }, - { - -- ornate carving mace - itemid = 26058, - type = WEAPON_CLUB, - }, - { - -- valuable carving mace - itemid = 26057, - type = WEAPON_CLUB, - }, - { - -- plain carving mace - itemid = 26056, - type = WEAPON_CLUB, - }, - { - -- ornate carving chopper - itemid = 26055, - type = WEAPON_AXE, - }, - { - -- valuable carving chopper - itemid = 26054, - type = WEAPON_AXE, - }, - { - -- plain carving chopper - itemid = 26053, - type = WEAPON_AXE, - }, - { - -- ornate carving axe - itemid = 26052, - type = WEAPON_AXE, - }, - { - -- valuable carving axe - itemid = 26051, - type = WEAPON_AXE, - }, - { - -- plain carving axe - itemid = 26050, - type = WEAPON_AXE, - }, - { - -- ornate carving slayer - itemid = 26049, - type = WEAPON_SWORD, - }, - { - -- valuable carving slayer - itemid = 26048, - type = WEAPON_SWORD, - }, - { - -- plain carving slayer - itemid = 26047, - type = WEAPON_SWORD, - }, - { - -- ornate carving blade - itemid = 26046, - type = WEAPON_SWORD, - }, - { - -- valuable carving blade - itemid = 26045, - type = WEAPON_SWORD, - }, - { - -- plain carving blade - itemid = 26044, - type = WEAPON_SWORD, - }, - { - -- ornate remedy hammer - itemid = 26031, - type = WEAPON_CLUB, - }, - { - -- valuable remedy hammer - itemid = 26030, - type = WEAPON_CLUB, - }, - { - -- plain remedy hammer - itemid = 26029, - type = WEAPON_CLUB, - }, - { - -- ornate remedy mace - itemid = 26028, - type = WEAPON_CLUB, - }, - { - -- valuable remedy mace - itemid = 26027, - type = WEAPON_CLUB, - }, - { - -- plain remedy mace - itemid = 26026, - type = WEAPON_CLUB, - }, - { - -- ornate remedy chopper - itemid = 26025, - type = WEAPON_AXE, - }, - { - -- valuable remedy chopper - itemid = 26024, - type = WEAPON_AXE, - }, - { - -- plain remedy chopper - itemid = 26023, - type = WEAPON_AXE, - }, - { - -- ornate remedy axe - itemid = 26022, - type = WEAPON_AXE, - }, - { - -- valuable remedy axe - itemid = 26021, - type = WEAPON_AXE, - }, - { - -- plain remedy axe - itemid = 26020, - type = WEAPON_AXE, - }, - { - -- ornate remedy slayer - itemid = 26019, - type = WEAPON_SWORD, - }, - { - -- valuable remedy slayer - itemid = 26018, - type = WEAPON_SWORD, - }, - { - -- plain remedy slayer - itemid = 26017, - type = WEAPON_SWORD, - }, - { - -- ornate remedy blade - itemid = 26016, - type = WEAPON_SWORD, - }, - { - -- valuable remedy blade - itemid = 26015, - type = WEAPON_SWORD, - }, - { - -- plain remedy blade - itemid = 26014, - type = WEAPON_SWORD, - }, - { - -- ornate mayhem hammer - itemid = 26000, - type = WEAPON_CLUB, - }, - { - -- valuable mayhem hammer - itemid = 25999, - type = WEAPON_CLUB, - }, - { - -- plain mayhem hammer - itemid = 25998, - type = WEAPON_CLUB, - }, - { - -- ornate mayhem mace - itemid = 25997, - type = WEAPON_CLUB, - }, - { - -- valuable mayhem mace - itemid = 25996, - type = WEAPON_CLUB, - }, - { - -- plain mayhem mace - itemid = 25995, - type = WEAPON_CLUB, - }, - { - -- ornate mayhem chopper - itemid = 25994, - type = WEAPON_AXE, - }, - { - -- valuable mayhem chopper - itemid = 25993, - type = WEAPON_AXE, - }, - { - -- plain mayhem chopper - itemid = 25992, - type = WEAPON_AXE, - }, - { - -- ornate mayhem axe - itemid = 25991, - type = WEAPON_AXE, - }, - { - -- valuable mayhem axe - itemid = 25990, - type = WEAPON_AXE, - }, - { - -- plain mayhem axe - itemid = 25989, - type = WEAPON_AXE, - }, - { - -- ornate mayhem slayer - itemid = 25988, - type = WEAPON_SWORD, - }, - { - -- valuable mayhem slayer - itemid = 25987, - type = WEAPON_SWORD, - }, - { - -- plain mayhem slayer - itemid = 25986, - type = WEAPON_SWORD, - }, - { - -- ornate mayhem blade - itemid = 25985, - type = WEAPON_SWORD, - }, - { - -- valuable mayhem blade - itemid = 25984, - type = WEAPON_SWORD, - }, - { - -- plain mayhem blade - itemid = 25983, - type = WEAPON_SWORD, - }, - { - -- energy war hammer replica - itemid = 25974, - type = WEAPON_CLUB, - }, - { - -- energy orcish maul replica - itemid = 25973, - type = WEAPON_CLUB, - }, - { - -- energy basher replica - itemid = 25972, - type = WEAPON_CLUB, - }, - { - -- energy crystal mace replica - itemid = 25971, - type = WEAPON_CLUB, - }, - { - -- energy clerical mace replica - itemid = 25970, - type = WEAPON_CLUB, - }, - { - -- energy war axe replica - itemid = 25969, - type = WEAPON_AXE, - }, - { - -- energy headchopper replica - itemid = 25968, - type = WEAPON_AXE, - }, - { - -- energy heroic axe replica - itemid = 25967, - type = WEAPON_AXE, - }, - { - -- energy knight axe replica - itemid = 25966, - type = WEAPON_AXE, - }, - { - -- energy barbarian axe replica - itemid = 25965, - type = WEAPON_AXE, - }, - { - -- energy dragon slayer replica - itemid = 25964, - type = WEAPON_SWORD, - }, - { - -- energy blacksteel replica - itemid = 25963, - type = WEAPON_SWORD, - }, - { - -- energy mystic blade replica - itemid = 25962, - type = WEAPON_SWORD, - }, - { - -- energy relic sword replica - itemid = 25961, - type = WEAPON_SWORD, - }, - { - -- energy spike sword replica - itemid = 25960, - type = WEAPON_SWORD, - }, - { - -- earth war hammer replica - itemid = 25959, - type = WEAPON_CLUB, - }, - { - -- earth orcish maul replica - itemid = 25958, - type = WEAPON_CLUB, - }, - { - -- earth basher replica - itemid = 25957, - type = WEAPON_CLUB, - }, - { - -- earth crystal mace replica - itemid = 25956, - type = WEAPON_CLUB, - }, - { - -- earth clerical mace replica - itemid = 25955, - type = WEAPON_CLUB, - }, - { - -- earth war axe replica - itemid = 25954, - type = WEAPON_AXE, - }, - { - -- earth headchopper replica - itemid = 25953, - type = WEAPON_AXE, - }, - { - -- earth heroic axe replica - itemid = 25952, - type = WEAPON_AXE, - }, - { - -- earth knight axe replica - itemid = 25951, - type = WEAPON_AXE, - }, - { - -- earth barbarian axe replica - itemid = 25950, - type = WEAPON_AXE, - }, - { - -- earth dragon slayer replica - itemid = 25949, - type = WEAPON_SWORD, - }, - { - -- earth blacksteel replica - itemid = 25948, - type = WEAPON_SWORD, - }, - { - -- earth mystic blade replica - itemid = 25947, - type = WEAPON_SWORD, - }, - { - -- earth relic sword replica - itemid = 25946, - type = WEAPON_SWORD, - }, - { - -- earth spike sword replica - itemid = 25945, - type = WEAPON_SWORD, - }, - { - -- icy war hammer replica - itemid = 25944, - type = WEAPON_CLUB, - }, - { - -- icy orcish maul replica - itemid = 25943, - type = WEAPON_CLUB, - }, - { - -- icy basher replica - itemid = 25942, - type = WEAPON_CLUB, - }, - { - -- icy crystal mace replica - itemid = 25941, - type = WEAPON_CLUB, - }, - { - -- icy clerical mace replica - itemid = 25940, - type = WEAPON_CLUB, - }, - { - -- icy war axe replica - itemid = 25939, - type = WEAPON_AXE, - }, - { - -- icy headchopper replica - itemid = 25938, - type = WEAPON_AXE, - }, - { - -- icy heroic axe replica - itemid = 25937, - type = WEAPON_AXE, - }, - { - -- icy knight axe replica - itemid = 25936, - type = WEAPON_AXE, - }, - { - -- icy barbarian axe replica - itemid = 25935, - type = WEAPON_AXE, - }, - { - -- icy dragon slayer replica - itemid = 25934, - type = WEAPON_SWORD, - }, - { - -- icy blacksteel replica - itemid = 25933, - type = WEAPON_SWORD, - }, - { - -- icy mystic blade replica - itemid = 25932, - type = WEAPON_SWORD, - }, - { - -- icy relic sword replica - itemid = 25931, - type = WEAPON_SWORD, - }, - { - -- icy spike sword replica - itemid = 25930, - type = WEAPON_SWORD, - }, - { - -- fiery war hammer replica - itemid = 25929, - type = WEAPON_CLUB, - }, - { - -- fiery orcish maul replica - itemid = 25928, - type = WEAPON_CLUB, - }, - { - -- fiery basher replica - itemid = 25927, - type = WEAPON_CLUB, - }, - { - -- fiery crystal mace replica - itemid = 25926, - type = WEAPON_CLUB, - }, - { - -- fiery clerical mace replica - itemid = 25925, - type = WEAPON_CLUB, - }, - { - -- fiery war axe replica - itemid = 25924, - type = WEAPON_AXE, - }, - { - -- fiery headchopper replica - itemid = 25923, - type = WEAPON_AXE, - }, - { - -- fiery heroic axe replica - itemid = 25922, - type = WEAPON_AXE, - }, - { - -- fiery knight axe replica - itemid = 25921, - type = WEAPON_AXE, - }, - { - -- fiery barbarian axe replica - itemid = 25920, - type = WEAPON_AXE, - }, - { - -- fiery dragon slayer replica - itemid = 25919, - type = WEAPON_SWORD, - }, - { - -- fiery blacksteel replica - itemid = 25918, - type = WEAPON_SWORD, - }, - { - -- fiery mystic blade replica - itemid = 25917, - type = WEAPON_SWORD, - }, - { - -- fiery relic sword replica - itemid = 25916, - type = WEAPON_SWORD, - }, - { - -- fiery spike sword replica - itemid = 25915, - type = WEAPON_SWORD, - }, - { - -- wand of darkness - itemid = 25760, - type = WEAPON_WAND, - wandType = "death", - level = 41, - mana = 15, - damage = { 80, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- royal star - itemid = 25759, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - breakchance = 30, - }, - { - -- spectral bolt - itemid = 25758, - type = WEAPON_AMMO, - level = 150, - unproperly = true, - action = "removecount", - }, - { - -- leaf star - itemid = 25735, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - breakchance = 40, - }, - { - -- dream blossom staff - itemid = 25700, - type = WEAPON_WAND, - wandType = "energy", - level = 80, - mana = 18, - damage = { 63, 77 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- rod of carving - itemid = 23339, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of carving - itemid = 23335, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of carving - itemid = 23331, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of carving - itemid = 23327, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of carving - itemid = 23323, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of carving - itemid = 23319, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of carving - itemid = 23315, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of carving - itemid = 23311, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of carving - itemid = 23307, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of carving - itemid = 23303, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rod of remedy - itemid = 23299, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of remedy - itemid = 23295, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of remedy - itemid = 23291, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of remedy - itemid = 23287, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of remedy - itemid = 23283, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of remedy - itemid = 23279, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of remedy - itemid = 23275, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of remedy - itemid = 23271, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of remedy - itemid = 23267, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of remedy - itemid = 23263, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rod of mayhem - itemid = 23232, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of mayhem - itemid = 23231, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of mayhem - itemid = 23230, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of mayhem - itemid = 23229, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of mayhem - itemid = 23228, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of mayhem - itemid = 23227, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of mayhem - itemid = 23226, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of mayhem - itemid = 23225, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of mayhem - itemid = 23224, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of mayhem - itemid = 23223, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rift crossbow - itemid = 22867, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- rift bow - itemid = 22866, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ferumbras' staff (enchanted) - itemid = 22766, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 19, - damage = { 80, 110 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (failed) - itemid = 22765, - type = WEAPON_WAND, - wandType = "energy", - level = 65, - mana = 17, - damage = { 65, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- Ferumbras' staff - itemid = 22764, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - }, - { - -- maimer - itemid = 22762, - type = WEAPON_CLUB, - level = 150, - unproperly = true, - }, - { - -- Impaler of the igniter - itemid = 22760, - type = WEAPON_SWORD, - level = 150, - unproperly = true, - }, - { - -- plague bite - itemid = 22759, - type = WEAPON_AXE, - level = 150, - unproperly = true, - }, - { - -- rift lance - itemid = 22727, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- ogre sceptra - itemid = 22183, - type = WEAPON_WAND, - wandType = "earth", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- ogre choppa - itemid = 22172, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- ogre klubba - itemid = 22171, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- simple arrow - itemid = 21470, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- the chiller - itemid = 21350, - type = WEAPON_WAND, - wandType = "ice", - level = 1, - mana = 1, - damage = { 4, 8 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- the scorcher - itemid = 21348, - type = WEAPON_WAND, - wandType = "fire", - level = 1, - mana = 1, - damage = { 4, 8 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- one hit wonder - itemid = 21219, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - }, - { - -- glooth axe - itemid = 21180, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth blade - itemid = 21179, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth club - itemid = 21178, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cowtana - itemid = 21177, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - }, - { - -- execowtioner axe - itemid = 21176, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- mino lance - itemid = 21174, - type = WEAPON_AXE, - level = 45, - unproperly = true, - }, - { - -- moohtant cudgel - itemid = 21173, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - }, - { - -- glooth whip - itemid = 21172, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- metal bat - itemid = 21171, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - }, - { - -- glooth spear - itemid = 21158, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - breakchance = 2, - }, - { - -- umbral master crossbow - itemid = 20087, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral crossbow - itemid = 20086, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral crossbow - itemid = 20085, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master bow - itemid = 20084, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral bow - itemid = 20083, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral bow - itemid = 20082, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master hammer - itemid = 20081, - type = WEAPON_CLUB, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral hammer - itemid = 20080, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral hammer - itemid = 20079, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master mace - itemid = 20078, - type = WEAPON_CLUB, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral mace - itemid = 20077, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral mace - itemid = 20076, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master chopper - itemid = 20075, - type = WEAPON_AXE, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral chopper - itemid = 20074, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- guardian halberd - itemid = 20073, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master axe - itemid = 20072, - type = WEAPON_AXE, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral axe - itemid = 20071, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral axe - itemid = 20070, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master slayer - itemid = 20069, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral slayer - itemid = 20068, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral slayer - itemid = 20067, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral masterblade - itemid = 20066, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral blade - itemid = 20065, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral blade - itemid = 20064, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icicle bow - itemid = 19362, - type = WEAPON_DISTANCE, - unproperly = true, - }, - { - -- triple bolt crossbow - itemid = 19356, - type = WEAPON_DISTANCE, - level = 70, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- spiky club - itemid = 17859, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- pair of iron fists - itemid = 17828, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- swampling club - itemid = 17824, - type = WEAPON_CLUB, - }, - { - -- life preserver - itemid = 17813, - type = WEAPON_CLUB, - level = 15, - unproperly = true, - }, - { - -- ratana - itemid = 17812, - type = WEAPON_SWORD, - level = 15, - unproperly = true, - }, - { - -- sorc and druid staff - itemid = 17111, - type = WEAPON_WAND, - wandType = "energy", - level = 1, - mana = 2, - damage = { 8, 18 }, - vocation = { - { "None", true }, - }, - }, - { - -- mean paladin spear - itemid = 17110, - type = WEAPON_DISTANCE, - breakchance = 3, - vocation = { - { "None", true }, - }, - }, - { - -- mean knight sword - itemid = 17109, - type = WEAPON_SWORD, - unproperly = true, - vocation = { - { "None", true }, - }, - }, - { - -- shiny blade - itemid = 16175, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - }, - { - -- mycological bow - itemid = 16164, - type = WEAPON_DISTANCE, - level = 105, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crystal crossbow - itemid = 16163, - type = WEAPON_DISTANCE, - level = 90, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mycological mace - itemid = 16162, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - }, - { - -- crystalline axe - itemid = 16161, - type = WEAPON_AXE, - level = 120, - unproperly = true, - }, - { - -- crystalline sword - itemid = 16160, - type = WEAPON_SWORD, - level = 62, - unproperly = true, - }, - { - -- envenomed arrow - itemid = 16143, - type = WEAPON_AMMO, - level = 70, - unproperly = true, - action = "removecount", - }, - { - -- drill bolt - itemid = 16142, - type = WEAPON_AMMO, - level = 70, - unproperly = true, - action = "removecount", - }, - { - -- prismatic bolt - itemid = 16141, - type = WEAPON_AMMO, - level = 90, - unproperly = true, - action = "removecount", - }, - { - -- glacial rod - itemid = 16118, - type = WEAPON_WAND, - wandType = "ice", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- muck rod - itemid = 16117, - type = WEAPON_WAND, - wandType = "earth", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of everblazing - itemid = 16115, - type = WEAPON_WAND, - wandType = "fire", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of defiance - itemid = 16096, - type = WEAPON_WAND, - wandType = "energy", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crystalline arrow - itemid = 15793, - type = WEAPON_AMMO, - level = 90, - unproperly = true, - action = "removecount", - }, - { - -- crystal bolt - itemid = 15792, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- thorn spitter - itemid = 14768, - type = WEAPON_DISTANCE, - level = 150, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- vortex bolt - itemid = 14252, - type = WEAPON_AMMO, - level = 40, - unproperly = true, - action = "removecount", - }, - { - -- tarsal arrow - itemid = 14251, - type = WEAPON_AMMO, - level = 30, - unproperly = true, - action = "removecount", - }, - { - -- deepling squelcher - itemid = 14250, - type = WEAPON_CLUB, - level = 48, - unproperly = true, - }, - { - -- ornate crossbow - itemid = 14247, - type = WEAPON_DISTANCE, - level = 50, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hive bow - itemid = 14246, - type = WEAPON_DISTANCE, - level = 85, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hive scythe - itemid = 14089, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- guardian axe - itemid = 14043, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- warrior's axe - itemid = 14040, - type = WEAPON_AXE, - level = 40, - unproperly = true, - }, - { - -- ornate mace - itemid = 14001, - type = WEAPON_CLUB, - level = 90, - unproperly = true, - }, - { - -- deepling axe - itemid = 13991, - type = WEAPON_AXE, - level = 80, - unproperly = true, - }, - { - -- deepling staff - itemid = 13987, - type = WEAPON_CLUB, - level = 38, - unproperly = true, - }, - { - -- shimmer wand - itemid = 12741, - type = WEAPON_WAND, - wandType = "energy", - level = 40, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- shimmer bow - itemid = 12733, - type = WEAPON_DISTANCE, - level = 40, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- shimmer rod - itemid = 12732, - type = WEAPON_WAND, - wandType = "ice", - level = 40, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- shimmer sword - itemid = 12731, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - }, - { - -- heavy trident - itemid = 12683, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- wooden sword - itemid = 12673, - type = WEAPON_SWORD, - }, - { - -- wand of dimensions - itemid = 12603, - type = WEAPON_WAND, - wandType = "death", - level = 37, - mana = 9, - damage = { 44, 62 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- blade of corruption - itemid = 11693, - type = WEAPON_SWORD, - level = 82, - unproperly = true, - }, - { - -- snake god's sceptre - itemid = 11692, - type = WEAPON_CLUB, - level = 82, - unproperly = true, - }, - { - -- twiceslicer - itemid = 11657, - type = WEAPON_SWORD, - level = 58, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Zaoan halberd - itemid = 10406, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- twin hooks - itemid = 10392, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- drachaku - itemid = 10391, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Zaoan sword - itemid = 10390, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - }, - { - -- sai - itemid = 10389, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- drakinata - itemid = 10388, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- incredible mumpiz slayer - itemid = 9396, - type = WEAPON_SWORD, - }, - { - -- poet's fencing quill - itemid = 9387, - type = WEAPON_SWORD, - }, - { - -- farmer's avenger - itemid = 9386, - type = WEAPON_AXE, - }, - { - -- club of the fury - itemid = 9385, - type = WEAPON_CLUB, - }, - { - -- scythe of the reaper - itemid = 9384, - type = WEAPON_AXE, - }, - { - -- musician's bow - itemid = 9378, - type = WEAPON_DISTANCE, - }, - { - -- stale bread of ancientness - itemid = 9376, - type = WEAPON_CLUB, - }, - { - -- pointed rabbitslayer - itemid = 9375, - type = WEAPON_SWORD, - }, - { - -- glutton's mace - itemid = 9373, - type = WEAPON_CLUB, - }, - { - -- the calamity - itemid = 8104, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the epiphany - itemid = 8103, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - }, - { - -- emerald sword - itemid = 8102, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - }, - { - -- the stomper - itemid = 8101, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- obsidian truncheon - itemid = 8100, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - }, - { - -- dark trinity mace - itemid = 8099, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - }, - { - -- demonwing axe - itemid = 8098, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- solar axe - itemid = 8097, - type = WEAPON_AXE, - level = 130, - unproperly = true, - }, - { - -- hellforged axe - itemid = 8096, - type = WEAPON_AXE, - level = 110, - unproperly = true, - }, - { - -- wand of voodoo - itemid = 8094, - type = WEAPON_WAND, - wandType = "death", - level = 42, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of draconia - itemid = 8093, - type = WEAPON_WAND, - wandType = "fire", - level = 22, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of starmstorm - itemid = 8092, - type = WEAPON_WAND, - wandType = "energy", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- springsprout rod - itemid = 8084, - type = WEAPON_WAND, - wandType = "earth", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- northwind rod - itemid = 8083, - type = WEAPON_WAND, - wandType = "ice", - level = 22, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- underworld rod - itemid = 8082, - type = WEAPON_WAND, - wandType = "death", - level = 42, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- elethriel's elemental bow - itemid = 8030, - type = WEAPON_DISTANCE, - level = 70, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- silkweaver bow - itemid = 8029, - type = WEAPON_DISTANCE, - level = 40, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- yol's bow - itemid = 8028, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- composite hornbow - itemid = 8027, - type = WEAPON_DISTANCE, - level = 50, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- warsinger bow - itemid = 8026, - type = WEAPON_DISTANCE, - level = 80, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ironworker - itemid = 8025, - type = WEAPON_DISTANCE, - level = 80, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- devileye - itemid = 8024, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- royal crossbow - itemid = 8023, - type = WEAPON_DISTANCE, - level = 130, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- chain bolter - itemid = 8022, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- modified crossbow - itemid = 8021, - type = WEAPON_DISTANCE, - level = 45, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- jagged sword - itemid = 7774, - type = WEAPON_SWORD, - }, - { - -- steel axe - itemid = 7773, - type = WEAPON_AXE, - }, - { - -- crimson sword - itemid = 860, - type = WEAPON_SWORD, - }, - { - -- energy war hammer - itemid = 810, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy orcish maul - itemid = 809, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- energy cranial basher - itemid = 808, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy crystal mace - itemid = 807, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- energy clerical mace - itemid = 806, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- energy war axe - itemid = 805, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy headchopper - itemid = 804, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy heroic axe - itemid = 803, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy knight axe - itemid = 802, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- energy barbarian axe - itemid = 801, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- energy dragon slayer - itemid = 798, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy blacksteel sword - itemid = 797, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy mystic blade - itemid = 796, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy relic sword - itemid = 795, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- energy spike sword - itemid = 794, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- earth war hammer - itemid = 793, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth orcish maul - itemid = 792, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- earth cranial basher - itemid = 791, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth crystal mace - itemid = 790, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- earth clerical mace - itemid = 789, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- earth war axe - itemid = 788, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth headchopper - itemid = 787, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth heroic axe - itemid = 786, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth knight axe - itemid = 785, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- earth barbarian axe - itemid = 784, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- earth dragon slayer - itemid = 783, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth blacksteel sword - itemid = 782, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth mystic blade - itemid = 781, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth relic sword - itemid = 780, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- earth spike sword - itemid = 779, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- earth arrow - itemid = 774, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- flaming arrow - itemid = 763, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- shiver arrow - itemid = 762, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- flash arrow - itemid = 761, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- icy war hammer - itemid = 693, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy orcish maul - itemid = 692, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- icy cranial basher - itemid = 691, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy crystal mace - itemid = 690, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- icy clerical mace - itemid = 689, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- icy war axe - itemid = 688, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy headchopper - itemid = 687, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy heroic axe - itemid = 686, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy knight axe - itemid = 685, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- icy barbarian axe - itemid = 684, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- icy dragon slayer - itemid = 683, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy blacksteel sword - itemid = 682, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy mystic blade - itemid = 681, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy relic sword - itemid = 680, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- icy spike sword - itemid = 679, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- fiery war hammer - itemid = 674, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery orcish maul - itemid = 673, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- fiery cranial basher - itemid = 672, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery crystal mace - itemid = 671, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- fiery clerical mace - itemid = 670, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- fiery war axe - itemid = 669, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery headchopper - itemid = 668, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery heroic axe - itemid = 667, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery knight axe - itemid = 666, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- fiery barbarian axe - itemid = 665, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- fiery dragon slayer - itemid = 664, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery blacksteel sword - itemid = 663, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery mystic blade - itemid = 662, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery relic sword - itemid = 661, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- fiery spike sword - itemid = 660, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- noble axe - itemid = 7456, - type = WEAPON_AXE, - level = 35, - unproperly = true, - }, - { - -- mythril axe - itemid = 7455, - type = WEAPON_AXE, - level = 80, - unproperly = true, - }, - { - -- glorious axe - itemid = 7454, - type = WEAPON_AXE, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- executioner - itemid = 7453, - type = WEAPON_AXE, - level = 85, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiked squelcher - itemid = 7452, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- shadow sceptre - itemid = 7451, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- hammer of prophecy - itemid = 7450, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crystal sword - itemid = 7449, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- elvish bow - itemid = 7438, - type = WEAPON_DISTANCE, - }, - { - -- sapphire hammer - itemid = 7437, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- angelic axe - itemid = 7436, - type = WEAPON_AXE, - level = 45, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- impaler - itemid = 7435, - type = WEAPON_AXE, - level = 85, - unproperly = true, - }, - { - -- royal axe - itemid = 7434, - type = WEAPON_AXE, - level = 75, - unproperly = true, - }, - { - -- ravenwing - itemid = 7433, - type = WEAPON_AXE, - level = 65, - unproperly = true, - }, - { - -- furry club - itemid = 7432, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- demonbone - itemid = 7431, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- dragonbone staff - itemid = 7430, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- blessed sceptre - itemid = 7429, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - }, - { - -- bonebreaker - itemid = 7428, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chaos mace - itemid = 7427, - type = WEAPON_CLUB, - level = 45, - unproperly = true, - }, - { - -- amber staff - itemid = 7426, - type = WEAPON_CLUB, - level = 40, - unproperly = true, - }, - { - -- taurus mace - itemid = 7425, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- lunar staff - itemid = 7424, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- skullcrusher - itemid = 7423, - type = WEAPON_CLUB, - level = 85, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jade hammer - itemid = 7422, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - }, - { - -- onyx flail - itemid = 7421, - type = WEAPON_CLUB, - level = 65, - unproperly = true, - }, - { - -- reaper's axe - itemid = 7420, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- dreaded cleaver - itemid = 7419, - type = WEAPON_AXE, - level = 40, - unproperly = true, - }, - { - -- nightmare blade - itemid = 7418, - type = WEAPON_SWORD, - level = 70, - unproperly = true, - }, - { - -- runed sword - itemid = 7417, - type = WEAPON_SWORD, - level = 65, - unproperly = true, - }, - { - -- bloody edge - itemid = 7416, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - }, - { - -- cranial basher - itemid = 7415, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - }, - { - -- abyss hammer - itemid = 7414, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- titan axe - itemid = 7413, - type = WEAPON_AXE, - level = 40, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- butcher's axe - itemid = 7412, - type = WEAPON_AXE, - level = 45, - unproperly = true, - }, - { - -- ornamented axe - itemid = 7411, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- queen's sceptre - itemid = 7410, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - }, - { - -- northern star - itemid = 7409, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - }, - { - -- wyvern fang - itemid = 7408, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - }, - { - -- haunted blade - itemid = 7407, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blacksteel sword - itemid = 7406, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- havoc blade - itemid = 7405, - type = WEAPON_SWORD, - level = 70, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- assassin dagger - itemid = 7404, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - }, - { - -- berserker - itemid = 7403, - type = WEAPON_SWORD, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon slayer - itemid = 7402, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- orcish maul - itemid = 7392, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- thaian sword - itemid = 7391, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the justice seeker - itemid = 7390, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - }, - { - -- heroic axe - itemid = 7389, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- vile axe - itemid = 7388, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- diamond sceptre - itemid = 7387, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- mercenary sword - itemid = 7386, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crimson sword - itemid = 7385, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - }, - { - -- mystic blade - itemid = 7384, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - }, - { - -- relic sword - itemid = 7383, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - }, - { - -- demonrage sword - itemid = 7382, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mammoth whopper - itemid = 7381, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- headchopper - itemid = 7380, - type = WEAPON_AXE, - level = 35, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- brutetamer's staff - itemid = 7379, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- royal spear - itemid = 7378, - type = WEAPON_DISTANCE, - level = 25, - unproperly = true, - breakchance = 3, - }, - { - -- assassin star - itemid = 7368, - type = WEAPON_DISTANCE, - level = 80, - unproperly = true, - breakchance = 33, - }, - { - -- enchanted spear - itemid = 7367, - type = WEAPON_DISTANCE, - level = 42, - unproperly = true, - breakchance = 1, - }, - { - -- onyx arrow - itemid = 7365, - type = WEAPON_AMMO, - level = 40, - unproperly = true, - action = "removecount", - }, - { - -- sniper arrow - itemid = 7364, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- piercing bolt - itemid = 7363, - type = WEAPON_AMMO, - level = 30, - unproperly = true, - action = "removecount", - }, - { - -- ruthless axe - itemid = 6553, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- infernal bolt - itemid = 6528, - type = WEAPON_AMMO, - level = 110, - unproperly = true, - action = "removecount", - }, - { - -- the avenger - itemid = 6527, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Ron the Ripper's sabre - itemid = 6101, - type = WEAPON_SWORD, - }, - { - -- arbalest - itemid = 5803, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- banana staff - itemid = 3348, - type = WEAPON_CLUB, - }, - { - -- hunting spear - itemid = 3347, - type = WEAPON_DISTANCE, - level = 20, - unproperly = true, - breakchance = 6, - }, - { - -- ripper lance - itemid = 3346, - type = WEAPON_AXE, - }, - { - -- templar scytheblade - itemid = 3345, - type = WEAPON_SWORD, - }, - { - -- beastslayer axe - itemid = 3344, - type = WEAPON_AXE, - level = 30, - unproperly = true, - }, - { - -- lich staff - itemid = 3343, - type = WEAPON_CLUB, - level = 40, - unproperly = true, - }, - { - -- scythe - itemid = 3453, - type = WEAPON_CLUB, - }, - { - -- power bolt - itemid = 3450, - type = WEAPON_AMMO, - level = 55, - unproperly = true, - action = "removecount", - }, - { - -- arrow - itemid = 3447, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- bolt - itemid = 3446, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- bow - itemid = 3350, - type = WEAPON_DISTANCE, - }, - { - -- crossbow - itemid = 3349, - type = WEAPON_DISTANCE, - }, - { - -- war axe - itemid = 3342, - type = WEAPON_AXE, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- arcane staff - itemid = 3341, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - }, - { - -- heavy mace - itemid = 3340, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- djinn blade - itemid = 3339, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - }, - { - -- bone sword - itemid = 3338, - type = WEAPON_SWORD, - }, - { - -- bone club - itemid = 3337, - type = WEAPON_CLUB, - }, - { - -- studded club - itemid = 3336, - type = WEAPON_CLUB, - }, - { - -- twin axe - itemid = 3335, - type = WEAPON_AXE, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- pharaoh sword - itemid = 3334, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - }, - { - -- crystal mace - itemid = 3333, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- hammer of wrath - itemid = 3332, - type = WEAPON_CLUB, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ravager's axe - itemid = 3331, - type = WEAPON_AXE, - level = 70, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- heavy machete - itemid = 3330, - type = WEAPON_SWORD, - }, - { - -- daramian axe - itemid = 3329, - type = WEAPON_AXE, - }, - { - -- daramian waraxe - itemid = 3328, - type = WEAPON_AXE, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- daramian mace - itemid = 3327, - type = WEAPON_CLUB, - }, - { - -- epee - itemid = 3326, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - }, - { - -- light mace - itemid = 3325, - type = WEAPON_CLUB, - }, - { - -- skull staff - itemid = 3324, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- dwarven axe - itemid = 3323, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- dragon hammer - itemid = 3322, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- enchanted staff - itemid = 3321, - type = WEAPON_CLUB, - }, - { - -- fire axe - itemid = 3320, - type = WEAPON_AXE, - level = 35, - unproperly = true, - }, - { - -- stonecutter axe - itemid = 3319, - type = WEAPON_AXE, - level = 90, - unproperly = true, - }, - { - -- knight axe - itemid = 3318, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- barbarian axe - itemid = 3317, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- orcish axe - itemid = 3316, - type = WEAPON_AXE, - }, - { - -- guardian halberd - itemid = 3315, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- naginata - itemid = 3314, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- obsidian lance - itemid = 3313, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- silver mace - itemid = 3312, - type = WEAPON_CLUB, - level = 45, - unproperly = true, - }, - { - -- clerical mace - itemid = 3311, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- iron hammer - itemid = 3310, - type = WEAPON_CLUB, - }, - { - -- thunder hammer - itemid = 3309, - type = WEAPON_CLUB, - level = 85, - unproperly = true, - }, - { - -- machete - itemid = 3308, - type = WEAPON_SWORD, - }, - { - -- scimitar - itemid = 3307, - type = WEAPON_SWORD, - }, - { - -- golden sickle - itemid = 3306, - type = WEAPON_AXE, - }, - { - -- battle hammer - itemid = 3305, - type = WEAPON_CLUB, - }, - { - -- crowbar - itemid = 3304, - type = WEAPON_CLUB, - }, - { - -- great axe - itemid = 3303, - type = WEAPON_AXE, - level = 95, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon lance - itemid = 3302, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- broadsword - itemid = 3301, - type = WEAPON_SWORD, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- katana - itemid = 3300, - type = WEAPON_SWORD, - }, - { - -- poison dagger - itemid = 3299, - type = WEAPON_SWORD, - }, - { - -- throwing knife - itemid = 3298, - type = WEAPON_DISTANCE, - breakchance = 7, - }, - { - -- serpent sword - itemid = 3297, - type = WEAPON_SWORD, - }, - { - -- warlord sword - itemid = 3296, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- bright sword - itemid = 3295, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - }, - { - -- short sword - itemid = 3294, - type = WEAPON_SWORD, - }, - { - -- sickle - itemid = 3293, - type = WEAPON_AXE, - }, - { - -- combat knife - itemid = 3292, - type = WEAPON_SWORD, - }, - { - -- knife - itemid = 3291, - type = WEAPON_SWORD, - }, - { - -- silver dagger - itemid = 3290, - type = WEAPON_SWORD, - }, - { - -- staff - itemid = 3289, - type = WEAPON_CLUB, - }, - { - -- magic sword - itemid = 3288, - type = WEAPON_SWORD, - level = 80, - unproperly = true, - }, - { - -- throwing star - itemid = 3287, - type = WEAPON_DISTANCE, - breakchance = 10, - }, - { - -- mace - itemid = 3286, - type = WEAPON_CLUB, - }, - { - -- longsword - itemid = 3285, - type = WEAPON_SWORD, - }, - { - -- ice rapier - itemid = 3284, - type = WEAPON_SWORD, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- carlin sword - itemid = 3283, - type = WEAPON_SWORD, - }, - { - -- morning star - itemid = 3282, - type = WEAPON_CLUB, - }, - { - -- giant sword - itemid = 3281, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fire sword - itemid = 3280, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - }, - { - -- war hammer - itemid = 3279, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- magic longsword - itemid = 3278, - type = WEAPON_SWORD, - level = 140, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spear - itemid = 3277, - type = WEAPON_DISTANCE, - breakchance = 3, - }, - { - -- hatchet - itemid = 3276, - type = WEAPON_AXE, - }, - { - -- double axe - itemid = 3275, - type = WEAPON_AXE, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe - itemid = 3274, - type = WEAPON_AXE, - }, - { - -- sabre - itemid = 3273, - type = WEAPON_SWORD, - }, - { - -- rapier - itemid = 3272, - type = WEAPON_SWORD, - }, - { - -- spike sword - itemid = 3271, - type = WEAPON_SWORD, - }, - { - -- club - itemid = 3270, - type = WEAPON_CLUB, - }, - { - -- halberd - itemid = 3269, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- hand axe - itemid = 3268, - type = WEAPON_AXE, - }, - { - -- dagger - itemid = 3267, - type = WEAPON_SWORD, - }, - { - -- battle axe - itemid = 3266, - type = WEAPON_AXE, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- two handed sword - itemid = 3265, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sword - itemid = 3264, - type = WEAPON_SWORD, - }, - { - -- giant smithhammer - itemid = 12510, - type = WEAPON_CLUB, - }, - { - -- wand of dragonbreath - itemid = 3075, - type = WEAPON_WAND, - wandType = "fire", - level = 13, - mana = 3, - damage = { 13, 25 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of vortex - itemid = 3074, - type = WEAPON_WAND, - wandType = "energy", - level = 6, - mana = 1, - damage = { 8, 18 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of cosmic energy - itemid = 3073, - type = WEAPON_WAND, - wandType = "energy", - level = 26, - mana = 8, - damage = { 37, 53 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of decay - itemid = 3072, - type = WEAPON_WAND, - wandType = "death", - level = 19, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of inferno - itemid = 3071, - type = WEAPON_WAND, - wandType = "fire", - level = 33, - mana = 8, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- moonlight rod - itemid = 3070, - type = WEAPON_WAND, - wandType = "ice", - level = 13, - mana = 3, - damage = { 13, 25 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- necrotic rod - itemid = 3069, - type = WEAPON_WAND, - wandType = "death", - level = 19, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- hailstorm rod - itemid = 3067, - type = WEAPON_WAND, - wandType = "ice", - level = 33, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snakebit rod - itemid = 3066, - type = WEAPON_WAND, - wandType = "earth", - level = 6, - mana = 2, - damage = { 8, 18 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- terra rod - itemid = 3065, - type = WEAPON_WAND, - wandType = "earth", - level = 26, - mana = 8, - damage = { 37, 53 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snowball - itemid = 2992, - type = WEAPON_DISTANCE, - action = "removecount", - }, - { - -- small stone - itemid = 1781, - type = WEAPON_DISTANCE, - breakchance = 3, - }, -} - -for _, w in ipairs(weapons) do - local weapon = Weapon(w.type) - weapon:id(w.itemid) - - if w.action then - weapon:action(w.action) - end - if w.breakchance then - weapon:breakChance(w.breakchance) - end - if w.level then - weapon:level(w.level) - end - if w.mana then - weapon:mana(w.mana) - end - if w.unproperly then - weapon:wieldUnproperly(w.unproperly) - end - if w.damage then - weapon:damage(w.damage[1], w.damage[2]) - end - if w.wandType then - weapon:element(w.wandType) - end - if w.vocation then - for _, v in ipairs(w.vocation) do - weapon:vocation(v[1], v[2] or false, v[3] or false) - end - end - - weapon:register() -end diff --git a/data-otservbr-global/scripts/movements/equipment/unscripted_equipments.lua b/data-otservbr-global/scripts/movements/equipment/unscripted_equipments.lua deleted file mode 100644 index 83b78dce5bf..00000000000 --- a/data-otservbr-global/scripts/movements/equipment/unscripted_equipments.lua +++ /dev/null @@ -1,20059 +0,0 @@ -local items = { - { - -- sanguine galoshes - itemid = 43887, - type = "equip", - slot = "feet", - level = 500, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- sanguine galoshes - itemid = 43887, - type = "deequip", - slot = "feet", - level = 500, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- grand sanguine rod - itemid = 43886, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- grand sanguine rod - itemid = 43886, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- sanguine rod - itemid = 43885, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- sanguine rod - itemid = 43885, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- sanguine boots - itemid = 43884, - type = "equip", - slot = "feet", - level = 500, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- sanguine boots - itemid = 43884, - type = "deequip", - slot = "feet", - level = 500, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- grand sanguine coil - itemid = 43883, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- grand sanguine coil - itemid = 43883, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- sanguine coil - itemid = 43882, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- sanguine coil - itemid = 43882, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- sanguine Greaves - itemid = 43881, - type = "equip", - slot = "legs", - level = 500, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine Greaves - itemid = 43881, - type = "deequip", - slot = "legs", - level = 500, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine crossbow - itemid = 43880, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine crossbow - itemid = 43880, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine crossbow - itemid = 43879, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine crossbow - itemid = 43879, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine bow - itemid = 43878, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine bow - itemid = 43878, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine bow - itemid = 43877, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine bow - itemid = 43877, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine legs - itemid = 43876, - type = "equip", - slot = "legs", - level = 500, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine legs - itemid = 43876, - type = "deequip", - slot = "legs", - level = 500, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine battleaxe - itemid = 43875, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine battleaxe - itemid = 43875, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine battleaxe - itemid = 43874, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine battleaxe - itemid = 43874, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine bludgeon - itemid = 43873, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine bludgeon - itemid = 43873, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine bludgeon - itemid = 43872, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine bludgeon - itemid = 43872, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine razor - itemid = 43871, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine razor - itemid = 43871, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine razor - itemid = 43870, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine razor - itemid = 43870, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine hatchet - itemid = 43869, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine hatchet - itemid = 43869, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine hatchet - itemid = 43868, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine hatchet - itemid = 43868, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine cudgel - itemid = 43867, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine cudgel - itemid = 43867, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine cudgel - itemid = 43866, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine cudgel - itemid = 43866, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine blade - itemid = 43865, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine blade - itemid = 43865, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine blade - itemid = 43864, - type = "equip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine blade - itemid = 43864, - type = "deequip", - slot = "hand", - level = 600, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mutant bone kilt - itemid = 40595, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- mutant bone kilt - itemid = 40595, - type = "deequip", - slot = "legs", - level = 300, - }, - { - -- alchemist's notepad - itemid = 40594, - type = "equip", - slot = "shield", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- alchemist's notepad - itemid = 40594, - type = "deequip", - slot = "shield", - level = 250, - }, - { - -- mutant bone boots - itemid = 40593, - type = "equip", - slot = "feet", - level = 250, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- mutant bone boots - itemid = 40593, - type = "deequip", - slot = "feet", - level = 250, - }, - { - -- alchemist's boots - itemid = 40592, - type = "equip", - slot = "feet", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- alchemist's boots - itemid = 40592, - type = "deequip", - slot = "feet", - level = 250, - }, - { - -- mutated skin armor - itemid = 40591, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mutated skin armor - itemid = 40591, - type = "deequip", - slot = "armor", - level = 270, - }, - { - -- Mutated Skin Legs - itemid = 40590, - type = "equip", - slot = "legs", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- Mutated Skin Legs - itemid = 40590, - type = "deequip", - slot = "legs", - level = 270, - }, - { - -- Stitched Mutant Hide Legs - itemid = 40589, - type = "equip", - slot = "legs", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Stitched Mutant Hide Legs - itemid = 40589, - type = "deequip", - slot = "legs", - level = 270, - }, - { - -- Antler-Horn Helmet - itemid = 40588, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Antler-Horn Helmet - itemid = 40588, - type = "deequip", - slot = "head", - level = 250, - }, - { - -- broken iks cuirass - itemid = 40533, - type = "equip", - slot = "armor", - }, - { - -- broken iks cuirass - itemid = 40533, - type = "deequip", - slot = "armor", - }, - { - -- broken iks faulds - itemid = 40531, - type = "equip", - slot = "legs", - }, - { - -- broken iks faulds - itemid = 40531, - type = "deequip", - slot = "legs", - }, - { - -- broken iks sandals - itemid = 40534, - type = "equip", - slot = "feet", - }, - { - -- broken iks sandals - itemid = 40534, - type = "deequip", - slot = "feet", - }, - { - -- broken macuahuitl - itemid = 40530, - type = "equip", - slot = "hand", - }, - { - -- broken macuahuitl - itemid = 40530, - type = "deequip", - slot = "hand", - }, - { - -- 25 years backpack - itemid = 39693, - type = "equip", - slot = "backpack", - }, - { - -- 25 years backpack - itemid = 39693, - type = "deequip", - slot = "backpack", - }, - { - -- turtle amulet - itemid = 39235, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- turtle amulet - itemid = 39235, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted turtle amulet - itemid = 39234, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted turtle amulet - itemid = 39234, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted turtle amulet - itemid = 39233, - type = "equip", - slot = "necklace", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted turtle amulet - itemid = 39233, - type = "deequip", - slot = "necklace", - }, - { - -- arboreal ring - itemid = 39188, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal ring - itemid = 39188, - type = "deequip", - slot = "ring", - }, - { - -- charged arboreal ring - itemid = 39187, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- charged arboreal ring - itemid = 39187, - type = "deequip", - slot = "ring", - }, - { - -- charged arboreal ring - itemid = 39186, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- charged arboreal ring - itemid = 39186, - type = "deequip", - slot = "ring", - }, - { - -- arcanomancer sigil - itemid = 39185, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer sigil - itemid = 39185, - type = "deequip", - slot = "ring", - }, - { - -- charged arcanomancer sigil - itemid = 39184, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- charged arcanomancer sigil - itemid = 39184, - type = "deequip", - slot = "ring", - }, - { - -- charged arcanomancer sigil - itemid = 39183, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- charged arcanomancer sigil - itemid = 39183, - type = "deequip", - slot = "ring", - }, - { - -- alicorn ring - itemid = 39182, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- alicorn ring - itemid = 39182, - type = "deequip", - slot = "ring", - }, - { - -- charged alicorn ring - itemid = 39181, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- charged alicorn ring - itemid = 39181, - type = "deequip", - slot = "ring", - }, - { - -- charged alicorn ring - itemid = 39180, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- charged alicorn ring - itemid = 39180, - type = "deequip", - slot = "ring", - }, - { - -- spiritthorn ring - itemid = 39179, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn ring - itemid = 39179, - type = "deequip", - slot = "ring", - }, - { - -- charged spiritthorn ring - itemid = 39178, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- charged spiritthorn ring - itemid = 39178, - type = "deequip", - slot = "ring", - }, - { - -- charged spiritthorn ring - itemid = 39177, - type = "equip", - slot = "ring", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- charged spiritthorn ring - itemid = 39177, - type = "deequip", - slot = "ring", - }, - { - -- midnight sarong - itemid = 39167, - type = "equip", - slot = "legs", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- midnight sarong - itemid = 39167, - type = "deequip", - slot = "legs", - }, - { - -- dawnfire pantaloons - itemid = 39166, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- dawnfire pantaloons - itemid = 39166, - type = "deequip", - slot = "legs", - }, - { - -- midnight tunic - itemid = 39165, - type = "equip", - slot = "armor", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- midnight tunic - itemid = 39165, - type = "deequip", - slot = "armor", - }, - { - -- dawnfire sherwani - itemid = 39164, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- dawnfire sherwani - itemid = 39164, - type = "deequip", - slot = "armor", - }, - { - -- naga rod - itemid = 39163, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- naga rod - itemid = 39163, - type = "deequip", - slot = "hand", - }, - { - -- naga wand - itemid = 39162, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- naga wand - itemid = 39162, - type = "deequip", - slot = "hand", - }, - { - -- feverbloom boots - itemid = 39161, - type = "equip", - slot = "feet", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- feverbloom boots - itemid = 39161, - type = "deequip", - slot = "feet", - }, - { - -- naga quiver - itemid = 39160, - type = "equip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- naga quiver - itemid = 39160, - type = "deequip", - slot = "right-hand", - }, - { - -- naga crossbow - itemid = 39159, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- naga crossbow - itemid = 39159, - type = "deequip", - slot = "hand", - }, - { - -- frostflower boots - itemid = 39158, - type = "equip", - slot = "feet", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostflower boots - itemid = 39158, - type = "deequip", - slot = "feet", - }, - { - -- naga club - itemid = 39157, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga club - itemid = 39157, - type = "deequip", - slot = "hand", - }, - { - -- naga axe - itemid = 39156, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga axe - itemid = 39156, - type = "deequip", - slot = "hand", - }, - { - -- naga sword - itemid = 39155, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga sword - itemid = 39155, - type = "deequip", - slot = "hand", - }, - { - -- arboreal tome - itemid = 39154, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal tome - itemid = 39154, - type = "deequip", - slot = "shield", - }, - { - -- arboreal crown - itemid = 39153, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- arboreal crown - itemid = 39153, - type = "deequip", - slot = "head", - }, - { - -- arcanomancer folio - itemid = 39152, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer folio - itemid = 39152, - type = "deequip", - slot = "shield", - }, - { - -- arcanomancer regalia - itemid = 39151, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- arcanomancer regalia - itemid = 39151, - type = "deequip", - slot = "head", - }, - { - -- alicorn quiver - itemid = 39150, - type = "equip", - slot = "right-hand", - level = 400, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- alicorn quiver - itemid = 39150, - type = "deequip", - slot = "right-hand", - }, - { - -- alicorn headguard - itemid = 39149, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- alicorn headguard - itemid = 39149, - type = "deequip", - slot = "head", - }, - { - -- spiritthorn helmet - itemid = 39148, - type = "equip", - slot = "head", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn helmet - itemid = 39148, - type = "deequip", - slot = "head", - }, - { - -- spiritthorn armor - itemid = 39147, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Knight", true, true }, - { "Elite Knight" }, - }, - }, - { - -- spiritthorn armor - itemid = 39147, - type = "deequip", - slot = "armor", - }, - { - -- green demon slippers - itemid = 37610, - type = "equip", - slot = "feet", - }, - { - -- green demon slippers - itemid = 37610, - type = "deequip", - slot = "feet", - }, - { - -- Morshabaal's mask - itemid = 37611, - type = "equip", - slot = "shield", - level = 150, - }, - { - -- Morshabaal's mask - itemid = 37611, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- green demon helmet - itemid = 37609, - type = "equip", - slot = "head", - }, - { - -- green demon helmet - itemid = 37609, - type = "deequip", - slot = "head", - }, - { - -- green demon armor - itemid = 37608, - type = "equip", - slot = "armor", - }, - { - -- green demon armor - itemid = 37608, - type = "deequip", - slot = "armor", - }, - { - -- green demon legs - itemid = 37607, - type = "equip", - slot = "legs", - }, - { - -- green demon legs - itemid = 37607, - type = "deequip", - slot = "legs", - }, - { - -- changing backpack - itemid = 37536, - type = "equip", - slot = "backpack", - }, - { - -- changing backpack - itemid = 37536, - type = "deequip", - slot = "backpack", - }, - { - -- gilded eldritch rod - itemid = 36675, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- gilded eldritch rod - itemid = 36675, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemid = 36674, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemid = 36674, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch tome - itemid = 36673, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch tome - itemid = 36673, - type = "deequip", - slot = "shield", - level = 300, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch folio - itemid = 36672, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch folio - itemid = 36672, - type = "deequip", - slot = "shield", - level = 300, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch hood - itemid = 36671, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch hood - itemid = 36671, - type = "deequip", - slot = "head", - level = 250, - vocation = { - { "Druid", true, true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch cowl - itemid = 36670, - type = "equip", - slot = "head", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch cowl - itemid = 36670, - type = "deequip", - slot = "head", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch wand - itemid = 36669, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch wand - itemid = 36669, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemid = 36668, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemid = 36668, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Sorcerer", true, true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch breeches - itemid = 36667, - type = "equip", - slot = "legs", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch breeches - itemid = 36667, - type = "deequip", - slot = "legs", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch quiver - itemid = 36666, - type = "equip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch quiver - itemid = 36666, - type = "deequip", - slot = "right-hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch bow - itemid = 36665, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch bow - itemid = 36665, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemid = 36664, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemid = 36664, - type = "deequip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch cuirass - itemid = 36663, - type = "equip", - slot = "armor", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch cuirass - itemid = 36663, - type = "deequip", - slot = "armor", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch greataxe - itemid = 36662, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch greataxe - itemid = 36662, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemid = 36661, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemid = 36661, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemid = 36660, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemid = 36660, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemid = 36659, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemid = 36659, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemid = 36658, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemid = 36658, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemid = 36657, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemid = 36657, - type = "deequip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch shield - itemid = 36656, - type = "equip", - slot = "shield", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch shield - itemid = 36656, - type = "deequip", - slot = "shield", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spectral bolt (no decay) - itemid = 35902, - type = "equip", - slot = "ammo", - }, - { - -- spectral bolt (no decay) - itemid = 35902, - type = "deequip", - slot = "ammo", - }, - { - -- red quiver - itemid = 35849, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- red quiver - itemid = 35849, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- blue quiver - itemid = 35848, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- blue quiver - itemid = 35848, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- quiver - itemid = 35562, - type = "equip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- quiver - itemid = 35562, - type = "deequip", - slot = "right-hand", - vocation = { - { "None", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle quiver - itemid = 35524, - type = "equip", - slot = "right-hand", - level = 150, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle quiver - itemid = 35524, - type = "deequip", - slot = "right-hand", - level = 150, - vocation = { - { "Paladin", true, true }, - { "Royal Paladin" }, - }, - }, - { - -- exotic amulet - itemid = 35523, - type = "equip", - slot = "necklace", - level = 180, - }, - { - -- exotic amulet - itemid = 35523, - type = "deequip", - slot = "necklace", - }, - { - -- jungle wand - itemid = 35522, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- jungle wand - itemid = 35522, - type = "deequip", - slot = "hand", - }, - { - -- jungle rod - itemid = 35521, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- jungle rod - itemid = 35521, - type = "deequip", - slot = "hand", - }, - { - -- make-do boots - itemid = 35520, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- make-do boots - itemid = 35520, - type = "deequip", - slot = "feet", - }, - { - -- makeshift boots - itemid = 35519, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- makeshift boots - itemid = 35519, - type = "deequip", - slot = "feet", - }, - { - -- jungle bow - itemid = 35518, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- jungle bow - itemid = 35518, - type = "deequip", - slot = "hand", - }, - { - -- bast legs - itemid = 35517, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bast legs - itemid = 35517, - type = "deequip", - slot = "legs", - }, - { - -- exotic legs - itemid = 35516, - type = "equip", - slot = "legs", - level = 130, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- exotic legs - itemid = 35516, - type = "deequip", - slot = "legs", - }, - { - -- throwing axe - itemid = 35515, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- throwing axe - itemid = 35515, - type = "deequip", - slot = "hand", - }, - { - -- jungle flail - itemid = 35514, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jungle flail - itemid = 35514, - type = "deequip", - slot = "hand", - }, - { - -- lion hammer - itemid = 34254, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion hammer - itemid = 34254, - type = "deequip", - slot = "hand", - }, - { - -- lion axe - itemid = 34253, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion axe - itemid = 34253, - type = "deequip", - slot = "hand", - }, - { - -- lion amulet - itemid = 34158, - type = "equip", - slot = "necklace", - level = 230, - }, - { - -- lion amulet - itemid = 34158, - type = "deequip", - slot = "necklace", - level = 230, - }, - { - -- lion plate - itemid = 34157, - type = "deequip", - slot = "armor", - level = 270, - }, - { - -- lion plate - itemid = 34157, - type = "equip", - slot = "armor", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion spangenhelm - itemid = 34156, - type = "deequip", - slot = "head", - }, - { - -- lion spangenhelm - itemid = 34156, - type = "equip", - slot = "head", - level = 230, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- lion longsword - itemid = 34155, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion longsword - itemid = 34155, - type = "deequip", - slot = "hand", - }, - { - -- lion shield - itemid = 34154, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion shield - itemid = 34154, - type = "deequip", - slot = "hand", - }, - { - -- lion spellbook - itemid = 34153, - type = "deequip", - slot = "shield", - level = 220, - }, - { - -- lion spellbook - itemid = 34153, - type = "equip", - slot = "shield", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lion wand - itemid = 34152, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- lion wand - itemid = 34152, - type = "deequip", - slot = "hand", - }, - { - -- lion rod - itemid = 34151, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- lion rod - itemid = 34151, - type = "deequip", - slot = "hand", - }, - { - -- lion longbow - itemid = 34150, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- lion longbow - itemid = 34150, - type = "deequip", - slot = "hand", - }, - { - -- soulbastion shield - itemid = 34099, - type = "deequip", - slot = "shield", - }, - { - -- soulbastion shield - itemid = 34099, - type = "equip", - slot = "shield", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- pair of soulstalkers - itemid = 34098, - type = "deequip", - slot = "feet", - }, - { - -- pair of soulstalkers - itemid = 34098, - type = "equip", - slot = "feet", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- pair of soulwalkers - itemid = 34097, - type = "deequip", - slot = "feet", - }, - { - -- pair of soulwalkers - itemid = 34097, - type = "equip", - slot = "feet", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshroud armor - itemid = 34096, - type = "deequip", - slot = "armor", - }, - { - -- soulshroud armor - itemid = 34096, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soulmantle - itemid = 34095, - type = "deequip", - slot = "armor", - }, - { - -- soulmantle - itemid = 34095, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulshell armor - itemid = 34094, - type = "deequip", - slot = "armor", - level = 400, - }, - { - -- soulshell armor - itemid = 34094, - type = "equip", - slot = "armor", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulstrider legs - itemid = 34093, - type = "deequip", - slot = "legs", - level = 400, - }, - { - -- soulstrider legs - itemid = 34093, - type = "equip", - slot = "legs", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soulshanks legs - itemid = 34092, - type = "deequip", - slot = "legs", - level = 400, - }, - { - -- soulshanks legs - itemid = 34092, - type = "equip", - slot = "legs", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulhexer - itemid = 34091, - type = "deequip", - slot = "hand", - }, - { - -- soulhexer - itemid = 34091, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soultainter - itemid = 34090, - type = "deequip", - slot = "hand", - }, - { - -- soultainter - itemid = 34090, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulpiercer - itemid = 34089, - type = "deequip", - slot = "hand", - }, - { - -- soulpiercer - itemid = 34089, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulbleeder - itemid = 34088, - type = "deequip", - slot = "hand", - }, - { - -- soulbleeder - itemid = 34088, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulmaimer - itemid = 34087, - type = "deequip", - slot = "hand", - }, - { - -- soulmaimer - itemid = 34087, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcrusher - itemid = 34086, - type = "deequip", - slot = "hand", - }, - { - -- soulcrusher - itemid = 34086, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- souleater - itemid = 34085, - type = "deequip", - slot = "hand", - }, - { - -- souleater - itemid = 34085, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulbiter - itemid = 34084, - type = "deequip", - slot = "hand", - }, - { - -- soulbiter - itemid = 34084, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshredder - itemid = 34083, - type = "deequip", - slot = "hand", - }, - { - -- soulshredder - itemid = 34083, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcutter - itemid = 34082, - type = "deequip", - slot = "hand", - }, - { - -- soulcutter - itemid = 34082, - type = "equip", - slot = "hand", - level = 400, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion ring - itemid = 34080, - type = "deequip", - slot = "ring", - }, - { - -- lion ring - itemid = 34080, - type = "equip", - slot = "ring", - }, - { - -- Lit Torch (Sparkling) - itemid = 34016, - type = "equip", - slot = "ammo", - }, - { - -- Lit Torch (Sparkling) - itemid = 34016, - type = "deequip", - slot = "ammo", - }, - { - -- pair of old bracers - itemid = 32705, - type = "equip", - slot = "armor", - }, - { - -- pair of old bracers - itemid = 32705, - type = "deequip", - slot = "armor", - }, - { - -- ring of souls - itemid = 32636, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of souls - itemid = 32636, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- enchanted ring of souls - itemid = 32635, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- enchanted ring of souls - itemid = 32635, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- spooky hood - itemid = 32630, - type = "equip", - slot = "head", - }, - { - -- spooky hood - itemid = 32630, - type = "deequip", - slot = "head", - }, - { - -- ghost chestplate - itemid = 32628, - type = "equip", - slot = "armor", - level = 230, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ghost chestplate - itemid = 32628, - type = "deequip", - slot = "armor", - level = 230, - }, - { - -- enchanted ring of souls - itemid = 32621, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- enchanted ring of souls - itemid = 32621, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- ghost backpack - itemid = 32620, - type = "equip", - slot = "backpack", - }, - { - -- ghost backpack - itemid = 32620, - type = "deequip", - slot = "backpack", - }, - { - -- pair of nightmare boots - itemid = 32619, - type = "equip", - slot = "feet", - level = 140, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- pair of nightmare boots - itemid = 32619, - type = "deequip", - slot = "feet", - level = 140, - }, - { - -- soulful legs - itemid = 32618, - type = "equip", - slot = "legs", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- soulful legs - itemid = 32618, - type = "deequip", - slot = "legs", - level = 180, - }, - { - -- fabulous legs - itemid = 32617, - type = "equip", - slot = "legs", - level = 225, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- fabulous legs - itemid = 32617, - type = "deequip", - slot = "legs", - level = 225, - }, - { - -- phantasmal axe - itemid = 32616, - type = "equip", - slot = "hand", - level = 180, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- phantasmal axe - itemid = 32616, - type = "deequip", - slot = "hand", - }, - { - -- burial shroud - itemid = 32585, - type = "equip", - slot = "armor", - }, - { - -- burial shroud - itemid = 32585, - type = "deequip", - slot = "armor", - }, - { - -- Traditional Gamsbart Hat - itemid = 32100, - type = "equip", - slot = "head", - }, - { - -- Traditional Gamsbart Hat - itemid = 32100, - type = "deequip", - slot = "head", - }, - { - -- traditional shirt - itemid = 32099, - type = "equip", - slot = "armor", - }, - { - -- traditional shirt - itemid = 32099, - type = "deequip", - slot = "armor", - }, - { - -- lederhosen - itemid = 32097, - type = "equip", - slot = "legs", - }, - { - -- lederhosen - itemid = 32097, - type = "deequip", - slot = "legs", - }, - { - -- traditional leather shoes - itemid = 32098, - type = "equip", - slot = "feet", - }, - { - -- traditional leather shoes - itemid = 32098, - type = "deequip", - slot = "feet", - }, - { - -- meat hammer - itemid = 32093, - type = "equip", - slot = "hand", - }, - { - -- meat hammer - itemid = 32093, - type = "deequip", - slot = "hand", - }, - { - -- note about two souls - itemid = 31676, - type = "equip", - slot = "necklace", - }, - { - -- note about two souls - itemid = 31676, - type = "deequip", - slot = "necklace", - }, - { - -- the cobra amulet - itemid = 31631, - type = "equip", - slot = "necklace", - level = 250, - }, - { - -- the cobra amulet - itemid = 31631, - type = "deequip", - slot = "necklace", - level = 250, - }, - { - -- winged backpack - itemid = 31625, - type = "equip", - slot = "backpack", - }, - { - -- winged backpack - itemid = 31625, - type = "deequip", - slot = "backpack", - }, - { - -- blister ring - itemid = 31621, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- blister ring - itemid = 31621, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- winged boots - itemid = 31617, - type = "equip", - slot = "feet", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- winged boots - itemid = 31617, - type = "deequip", - slot = "feet", - level = 220, - }, - { - -- enchanted blister ring - itemid = 31616, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- enchanted blister ring - itemid = 31616, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- tagralt blade - itemid = 31614, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- tagralt blade - itemid = 31614, - type = "deequip", - slot = "hand", - }, - { - -- toga mortis - itemid = 31583, - type = "equip", - slot = "armor", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- toga mortis - itemid = 31583, - type = "deequip", - slot = "armor", - level = 220, - }, - { - -- galea mortis - itemid = 31582, - type = "equip", - slot = "head", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- galea mortis - itemid = 31582, - type = "deequip", - slot = "head", - level = 220, - }, - { - -- bow of cataclysm - itemid = 31581, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of cataclysm - itemid = 31581, - type = "deequip", - slot = "hand", - }, - { - -- mortal mace - itemid = 31580, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mortal mace - itemid = 31580, - type = "deequip", - slot = "hand", - }, - { - -- embrace of nature - itemid = 31579, - type = "equip", - slot = "armor", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- embrace of nature - itemid = 31579, - type = "deequip", - slot = "armor", - level = 220, - }, - { - -- bear skin - itemid = 31578, - type = "equip", - slot = "armor", - level = 230, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- bear skin - itemid = 31578, - type = "deequip", - slot = "armor", - level = 230, - }, - { - -- terra helmet - itemid = 31577, - type = "equip", - slot = "head", - level = 230, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- terra helmet - itemid = 31577, - type = "deequip", - slot = "head", - level = 230, - }, - { - -- enchanted blister ring - itemid = 31557, - type = "equip", - slot = "ring", - level = 220, - }, - { - -- enchanted blister ring - itemid = 31557, - type = "deequip", - slot = "ring", - level = 220, - }, - { - -- rainbow amulet - itemid = 31556, - type = "equip", - slot = "necklace", - level = 220, - }, - { - -- rainbow amulet - itemid = 31556, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- sphinx tiara - itemid = 31438, - type = "equip", - slot = "head", - }, - { - -- sphinx tiara - itemid = 31438, - type = "deequip", - slot = "head", - }, - { - -- gryphon mask - itemid = 31433, - type = "equip", - slot = "head", - }, - { - -- gryphon mask - itemid = 31433, - type = "deequip", - slot = "head", - }, - { - -- symbol of sun and sea - itemid = 31431, - type = "equip", - slot = "ring", - }, - { - -- symbol of sun and sea - itemid = 31431, - type = "deequip", - slot = "ring", - }, - { - -- silver mask - itemid = 31370, - type = "equip", - slot = "head", - }, - { - -- silver mask - itemid = 31370, - type = "deequip", - slot = "head", - }, - { - -- ring of secret thoughts - itemid = 31306, - type = "equip", - slot = "ring", - }, - { - -- ring of secret thoughts - itemid = 31306, - type = "deequip", - slot = "ring", - }, - { - -- jade amulet - itemid = 31268, - type = "equip", - slot = "necklace", - }, - { - -- jade amulet - itemid = 31268, - type = "deequip", - slot = "necklace", - }, - { - -- ring of secret thoughts - itemid = 31263, - type = "equip", - slot = "ring", - }, - { - -- ring of secret thoughts - itemid = 31263, - type = "deequip", - slot = "ring", - }, - { - -- enchanted theurgic amulet - itemid = 30403, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- enchanted theurgic amulet - itemid = 30403, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- enchanted theurgic amulet - itemid = 30402, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- enchanted theurgic amulet - itemid = 30402, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- amulet of theurgy - itemid = 30401, - type = "equip", - slot = "necklace", - level = 220, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- amulet of theurgy - itemid = 30401, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- cobra rod - itemid = 30400, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- cobra rod - itemid = 30400, - type = "deequip", - slot = "hand", - level = 220, - }, - { - -- cobra wand - itemid = 30399, - type = "equip", - slot = "hand", - level = 270, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- cobra wand - itemid = 30399, - type = "deequip", - slot = "hand", - level = 270, - }, - { - -- cobra sword - itemid = 30398, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra sword - itemid = 30398, - type = "deequip", - slot = "hand", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra hood - itemid = 30397, - type = "equip", - slot = "head", - level = 270, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra hood - itemid = 30397, - type = "deequip", - slot = "head", - level = 270, - }, - { - -- cobra axe - itemid = 30396, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra axe - itemid = 30396, - type = "deequip", - slot = "hand", - }, - { - -- cobra club - itemid = 30395, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra club - itemid = 30395, - type = "deequip", - slot = "hand", - }, - { - -- cobra boots - itemid = 30394, - type = "equip", - slot = "feet", - level = 220, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra boots - itemid = 30394, - type = "deequip", - slot = "feet", - level = 220, - }, - { - -- cobra crossbow - itemid = 30393, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- cobra crossbow - itemid = 30393, - type = "deequip", - slot = "hand", - }, - { - -- rainbow necklace - itemid = 30323, - type = "equip", - slot = "necklace", - level = 220, - }, - { - -- rainbow necklace - itemid = 30323, - type = "deequip", - slot = "necklace", - level = 220, - }, - { - -- ice hatchet - itemid = 30283, - type = "equip", - slot = "hand", - }, - { - -- ice hatchet - itemid = 30283, - type = "deequip", - slot = "hand", - }, - { - -- frozen claw - itemid = 30279, - type = "equip", - slot = "ring", - }, - { - -- frozen claw - itemid = 30279, - type = "deequip", - slot = "ring", - }, - { - -- the crown of the percht queen - itemid = 30276, - type = "equip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30276, - type = "deequip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30275, - type = "equip", - slot = "head", - }, - { - -- the crown of the percht queen - itemid = 30275, - type = "deequip", - slot = "head", - }, - { - -- festive backpack - itemid = 30197, - type = "equip", - slot = "backpack", - }, - { - -- festive backpack - itemid = 30197, - type = "deequip", - slot = "backpack", - }, - { - -- yetislippers - itemid = 30196, - type = "equip", - slot = "feet", - }, - { - -- yetislippers - itemid = 30196, - type = "deequip", - slot = "feet", - }, - { - -- enchanted pendulet - itemid = 30345, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted pendulet - itemid = 30345, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- enchanted pendulet - itemid = 30344, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted pendulet - itemid = 30344, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- enchanted sleep shawl - itemid = 30343, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted sleep shawl - itemid = 30343, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- enchanted sleep shawl - itemid = 30342, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted sleep shawl - itemid = 30342, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- shield of endless search - itemid = 30181, - type = "equip", - slot = "shield", - }, - { - -- shield of endless search - itemid = 30181, - type = "deequip", - slot = "shield", - }, - { - -- spirit guide - itemid = 29431, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spirit guide - itemid = 29431, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- ectoplasmic shield - itemid = 29430, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ectoplasmic shield - itemid = 29430, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- pendulet - itemid = 29429, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- pendulet - itemid = 29429, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- sleep shawl - itemid = 29428, - type = "equip", - slot = "necklace", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- sleep shawl - itemid = 29428, - type = "deequip", - slot = "necklace", - level = 180, - }, - { - -- dark whispers - itemid = 29427, - type = "equip", - slot = "head", - level = 180, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- dark whispers - itemid = 29427, - type = "deequip", - slot = "head", - level = 180, - }, - { - -- brain in a jar - itemid = 29426, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- brain in a jar - itemid = 29426, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- energized limb - itemid = 29425, - type = "equip", - slot = "hand", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- energized limb - itemid = 29425, - type = "deequip", - slot = "hand", - level = 180, - }, - { - -- pair of dreamwalkers - itemid = 29424, - type = "equip", - slot = "feet", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- pair of dreamwalkers - itemid = 29424, - type = "deequip", - slot = "feet", - level = 180, - }, - { - -- dream shroud - itemid = 29423, - type = "equip", - slot = "armor", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- dream shroud - itemid = 29423, - type = "deequip", - slot = "armor", - level = 180, - }, - { - -- winterblade - itemid = 29422, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- winterblade - itemid = 29422, - type = "deequip", - slot = "hand", - }, - { - -- summerblade - itemid = 29421, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- summerblade - itemid = 29421, - type = "deequip", - slot = "hand", - }, - { - -- shoulder plate - itemid = 29420, - type = "equip", - slot = "shield", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- shoulder plate - itemid = 29420, - type = "deequip", - slot = "shield", - level = 180, - }, - { - -- resizer - itemid = 29419, - type = "equip", - slot = "hand", - level = 230, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- resizer - itemid = 29419, - type = "deequip", - slot = "hand", - }, - { - -- living armor - itemid = 29418, - type = "equip", - slot = "armor", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- living armor - itemid = 29418, - type = "deequip", - slot = "armor", - level = 180, - }, - { - -- living vine bow - itemid = 29417, - type = "equip", - slot = "hand", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- living vine bow - itemid = 29417, - type = "deequip", - slot = "hand", - level = 220, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- golden axe - itemid = 29286, - type = "equip", - slot = "hand", - }, - { - -- golden axe - itemid = 29286, - type = "deequip", - slot = "hand", - }, - { - -- book backpack - itemid = 28571, - type = "equip", - slot = "backpack", - }, - { - -- book backpack - itemid = 28571, - type = "deequip", - slot = "backpack", - }, - { - -- wand of destruction test - itemid = 28479, - type = "equip", - slot = "hand", - }, - { - -- wand of destruction test - itemid = 28479, - type = "deequip", - slot = "hand", - }, - { - -- umbral master bow test - itemid = 28478, - type = "equip", - slot = "hand", - }, - { - -- umbral master bow test - itemid = 28478, - type = "deequip", - slot = "hand", - }, - { - -- ornate testtplate - itemid = 28475, - type = "equip", - slot = "armor", - }, - { - -- ornate testtplate - itemid = 28475, - type = "deequip", - slot = "armor", - }, - { - -- sorcerer test weapon - itemid = 28466, - type = "equip", - slot = "hand", - }, - { - -- sorcerer test weapon - itemid = 28466, - type = "deequip", - slot = "hand", - }, - { - -- bow of destruction test - itemid = 28465, - type = "equip", - slot = "hand", - }, - { - -- bow of destruction test - itemid = 28465, - type = "deequip", - slot = "hand", - }, - { - -- test weapon for knights - itemid = 28464, - type = "equip", - slot = "hand", - }, - { - -- test weapon for knights - itemid = 28464, - type = "deequip", - slot = "hand", - }, - { - -- sulphurous demonbone - itemid = 28832, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- sulphurous demonbone - itemid = 28832, - type = "deequip", - slot = "hand", - }, - { - -- unliving demonbone - itemid = 28831, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- unliving demonbone - itemid = 28831, - type = "deequip", - slot = "hand", - }, - { - -- energized demonbone - itemid = 28830, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- energized demonbone - itemid = 28830, - type = "deequip", - slot = "hand", - }, - { - -- rotten demonbone - itemid = 28829, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- rotten demonbone - itemid = 28829, - type = "deequip", - slot = "hand", - }, - { - -- deepling fork - itemid = 28826, - type = "equip", - slot = "hand", - level = 230, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling fork - itemid = 28826, - type = "deequip", - slot = "hand", - level = 230, - }, - { - -- deepling ceremonial dagger - itemid = 28825, - type = "equip", - slot = "hand", - level = 180, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling ceremonial dagger - itemid = 28825, - type = "deequip", - slot = "hand", - level = 180, - }, - { - -- falcon mace - itemid = 28725, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon mace - itemid = 28725, - type = "deequip", - slot = "hand", - }, - { - -- falcon battleaxe - itemid = 28724, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon battleaxe - itemid = 28724, - type = "deequip", - slot = "hand", - }, - { - -- falcon longsword - itemid = 28723, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon longsword - itemid = 28723, - type = "deequip", - slot = "hand", - }, - { - -- falcon escutcheon - itemid = 28722, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon escutcheon - itemid = 28722, - type = "deequip", - slot = "shield", - level = 300, - }, - { - -- falcon shield - itemid = 28721, - type = "equip", - slot = "shield", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon shield - itemid = 28721, - type = "deequip", - slot = "shield", - level = 300, - }, - { - -- falcon greaves - itemid = 28720, - type = "equip", - slot = "legs", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon greaves - itemid = 28720, - type = "deequip", - slot = "legs", - level = 300, - }, - { - -- falcon plate - itemid = 28719, - type = "equip", - slot = "armor", - level = 300, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon plate - itemid = 28719, - type = "deequip", - slot = "armor", - level = 300, - }, - { - -- falcon bow - itemid = 28718, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "paladin", true }, - { "royal paladin" }, - }, - }, - { - -- falcon bow - itemid = 28718, - type = "deequip", - slot = "hand", - level = 300, - }, - { - -- falcon wand - itemid = 28717, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- falcon wand - itemid = 28717, - type = "deequip", - slot = "hand", - level = 300, - }, - { - -- falcon rod - itemid = 28716, - type = "equip", - slot = "hand", - level = 300, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- falcon rod - itemid = 28716, - type = "deequip", - slot = "hand", - level = 300, - }, - { - -- falcon coif - itemid = 28715, - type = "equip", - slot = "head", - level = 300, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- falcon coif - itemid = 28715, - type = "deequip", - slot = "head", - level = 300, - }, - { - -- falcon circlet - itemid = 28714, - type = "equip", - slot = "head", - level = 300, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- falcon circlet - itemid = 28714, - type = "deequip", - slot = "head", - level = 300, - }, - { - -- silver chimes - itemid = 12126, - type = "equip", - slot = "shield", - }, - { - -- silver chimes - itemid = 12126, - type = "deequip", - slot = "shield", - }, - { - -- suspicious device - itemid = 27653, - type = "equip", - slot = "necklace", - }, - { - -- suspicious device - itemid = 27653, - type = "deequip", - slot = "necklace", - }, - { - -- gnome sword - itemid = 27651, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gnome sword - itemid = 27651, - type = "deequip", - slot = "hand", - }, - { - -- gnome shield - itemid = 27650, - type = "equip", - slot = "shield", - level = 200, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Royal Paladin" }, - { "Elite Knight" }, - }, - }, - { - -- gnome shield - itemid = 27650, - type = "deequip", - slot = "shield", - level = 200, - }, - { - -- gnome legs - itemid = 27649, - type = "equip", - slot = "legs", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gnome legs - itemid = 27649, - type = "deequip", - slot = "legs", - level = 200, - }, - { - -- gnome armor - itemid = 27648, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- gnome armor - itemid = 27648, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- gnome helmet - itemid = 27647, - type = "equip", - slot = "head", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gnome helmet - itemid = 27647, - type = "deequip", - slot = "head", - level = 200, - }, - { - -- foxtail amulet - itemid = 27565, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- foxtail amulet - itemid = 27565, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- mallet handle - itemid = 27525, - type = "equip", - slot = "hand", - }, - { - -- mallet handle - itemid = 27525, - type = "deequip", - slot = "hand", - }, - { - -- strange mallet - itemid = 27523, - type = "equip", - slot = "hand", - }, - { - -- strange mallet - itemid = 27523, - type = "deequip", - slot = "hand", - }, - { - -- blue spectacles - itemid = 27522, - type = "equip", - slot = "head", - }, - { - -- blue spectacles - itemid = 27522, - type = "deequip", - slot = "head", - }, - { - -- rod of destruction - itemid = 27458, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of destruction - itemid = 27458, - type = "deequip", - slot = "hand", - level = 200, - }, - { - -- wand of destruction - itemid = 27457, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of destruction - itemid = 27457, - type = "deequip", - slot = "hand", - level = 200, - }, - { - -- crossbow of destruction - itemid = 27456, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crossbow of destruction - itemid = 27456, - type = "deequip", - slot = "hand", - }, - { - -- bow of destruction - itemid = 27455, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of destruction - itemid = 27455, - type = "deequip", - slot = "hand", - }, - { - -- hammer of destruction - itemid = 27454, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- hammer of destruction - itemid = 27454, - type = "deequip", - slot = "hand", - }, - { - -- mace of destruction - itemid = 27453, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of destruction - itemid = 27453, - type = "deequip", - slot = "hand", - }, - { - -- chopper of destruction - itemid = 27452, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of destruction - itemid = 27452, - type = "deequip", - slot = "hand", - }, - { - -- axe of destruction - itemid = 27451, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of destruction - itemid = 27451, - type = "deequip", - slot = "hand", - }, - { - -- slayer of destruction - itemid = 27450, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of destruction - itemid = 27450, - type = "deequip", - slot = "hand", - }, - { - -- blade of destruction - itemid = 27449, - type = "equip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of destruction - itemid = 27449, - type = "deequip", - slot = "hand", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Journal Shield - itemid = 26947, - type = "equip", - slot = "shield", - }, - { - -- Journal Shield - itemid = 26947, - type = "deequip", - slot = "shield", - }, - { - -- reflecting crown - itemid = 26190, - type = "equip", - slot = "head", - }, - { - -- reflecting crown - itemid = 26190, - type = "deequip", - slot = "head", - }, - { - -- incandescent crown - itemid = 26189, - type = "equip", - slot = "head", - }, - { - -- incandescent crown - itemid = 26189, - type = "deequip", - slot = "head", - }, - { - -- iron crown - itemid = 26188, - type = "equip", - slot = "head", - }, - { - -- iron crown - itemid = 26188, - type = "deequip", - slot = "head", - }, - { - -- leaf crown - itemid = 26187, - type = "equip", - slot = "head", - }, - { - -- leaf crown - itemid = 26187, - type = "deequip", - slot = "head", - }, - { - -- ornate carving hammer - itemid = 26061, - type = "equip", - slot = "hand", - }, - { - -- ornate carving hammer - itemid = 26061, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving hammer - itemid = 26060, - type = "equip", - slot = "hand", - }, - { - -- valuable carving hammer - itemid = 26060, - type = "deequip", - slot = "hand", - }, - { - -- plain carving hammer - itemid = 26059, - type = "equip", - slot = "hand", - }, - { - -- plain carving hammer - itemid = 26059, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving mace - itemid = 26058, - type = "equip", - slot = "hand", - }, - { - -- ornate carving mace - itemid = 26058, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving mace - itemid = 26057, - type = "equip", - slot = "hand", - }, - { - -- valuable carving mace - itemid = 26057, - type = "deequip", - slot = "hand", - }, - { - -- plain carving mace - itemid = 26056, - type = "equip", - slot = "hand", - }, - { - -- plain carving mace - itemid = 26056, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving chopper - itemid = 26055, - type = "equip", - slot = "hand", - }, - { - -- ornate carving chopper - itemid = 26055, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving chopper - itemid = 26054, - type = "equip", - slot = "hand", - }, - { - -- valuable carving chopper - itemid = 26054, - type = "deequip", - slot = "hand", - }, - { - -- plain carving chopper - itemid = 26053, - type = "equip", - slot = "hand", - }, - { - -- plain carving chopper - itemid = 26053, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving axe - itemid = 26052, - type = "equip", - slot = "hand", - }, - { - -- ornate carving axe - itemid = 26052, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving axe - itemid = 26051, - type = "equip", - slot = "hand", - }, - { - -- valuable carving axe - itemid = 26051, - type = "deequip", - slot = "hand", - }, - { - -- plain carving axe - itemid = 26050, - type = "equip", - slot = "hand", - }, - { - -- plain carving axe - itemid = 26050, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving slayer - itemid = 26049, - type = "equip", - slot = "hand", - }, - { - -- ornate carving slayer - itemid = 26049, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving slayer - itemid = 26048, - type = "equip", - slot = "hand", - }, - { - -- valuable carving slayer - itemid = 26048, - type = "deequip", - slot = "hand", - }, - { - -- plain carving slayer - itemid = 26047, - type = "equip", - slot = "hand", - }, - { - -- plain carving slayer - itemid = 26047, - type = "deequip", - slot = "hand", - }, - { - -- ornate carving blade - itemid = 26046, - type = "equip", - slot = "hand", - }, - { - -- ornate carving blade - itemid = 26046, - type = "deequip", - slot = "hand", - }, - { - -- valuable carving blade - itemid = 26045, - type = "equip", - slot = "hand", - }, - { - -- valuable carving blade - itemid = 26045, - type = "deequip", - slot = "hand", - }, - { - -- plain carving blade - itemid = 26044, - type = "equip", - slot = "hand", - }, - { - -- plain carving blade - itemid = 26044, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy hammer - itemid = 26031, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy hammer - itemid = 26031, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy hammer - itemid = 26030, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy hammer - itemid = 26030, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy hammer - itemid = 26029, - type = "equip", - slot = "hand", - }, - { - -- plain remedy hammer - itemid = 26029, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy mace - itemid = 26028, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy mace - itemid = 26028, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy mace - itemid = 26027, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy mace - itemid = 26027, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy mace - itemid = 26026, - type = "equip", - slot = "hand", - }, - { - -- plain remedy mace - itemid = 26026, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy chopper - itemid = 26025, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy chopper - itemid = 26025, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy chopper - itemid = 26024, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy chopper - itemid = 26024, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy chopper - itemid = 26023, - type = "equip", - slot = "hand", - }, - { - -- plain remedy chopper - itemid = 26023, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy axe - itemid = 26022, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy axe - itemid = 26022, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy axe - itemid = 26021, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy axe - itemid = 26021, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy axe - itemid = 26020, - type = "equip", - slot = "hand", - }, - { - -- plain remedy axe - itemid = 26020, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy slayer - itemid = 26019, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy slayer - itemid = 26019, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy slayer - itemid = 26018, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy slayer - itemid = 26018, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy slayer - itemid = 26017, - type = "equip", - slot = "hand", - }, - { - -- plain remedy slayer - itemid = 26017, - type = "deequip", - slot = "hand", - }, - { - -- ornate remedy blade - itemid = 26016, - type = "equip", - slot = "hand", - }, - { - -- ornate remedy blade - itemid = 26016, - type = "deequip", - slot = "hand", - }, - { - -- valuable remedy blade - itemid = 26015, - type = "equip", - slot = "hand", - }, - { - -- valuable remedy blade - itemid = 26015, - type = "deequip", - slot = "hand", - }, - { - -- plain remedy blade - itemid = 26014, - type = "equip", - slot = "hand", - }, - { - -- plain remedy blade - itemid = 26014, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem hammer - itemid = 26000, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem hammer - itemid = 26000, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem hammer - itemid = 25999, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem hammer - itemid = 25999, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem hammer - itemid = 25998, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem hammer - itemid = 25998, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem mace - itemid = 25997, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem mace - itemid = 25997, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem mace - itemid = 25996, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem mace - itemid = 25996, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem mace - itemid = 25995, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem mace - itemid = 25995, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem chopper - itemid = 25994, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem chopper - itemid = 25994, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem chopper - itemid = 25993, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem chopper - itemid = 25993, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem chopper - itemid = 25992, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem chopper - itemid = 25992, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem axe - itemid = 25991, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem axe - itemid = 25991, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem axe - itemid = 25990, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem axe - itemid = 25990, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem axe - itemid = 25989, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem axe - itemid = 25989, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem slayer - itemid = 25988, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem slayer - itemid = 25988, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem slayer - itemid = 25987, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem slayer - itemid = 25987, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem slayer - itemid = 25986, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem slayer - itemid = 25986, - type = "deequip", - slot = "hand", - }, - { - -- ornate mayhem blade - itemid = 25985, - type = "equip", - slot = "hand", - }, - { - -- ornate mayhem blade - itemid = 25985, - type = "deequip", - slot = "hand", - }, - { - -- valuable mayhem blade - itemid = 25984, - type = "equip", - slot = "hand", - }, - { - -- valuable mayhem blade - itemid = 25984, - type = "deequip", - slot = "hand", - }, - { - -- plain mayhem blade - itemid = 25983, - type = "equip", - slot = "hand", - }, - { - -- plain mayhem blade - itemid = 25983, - type = "deequip", - slot = "hand", - }, - { - -- mathmaster shield (souvenir) - itemid = 25982, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield (souvenir) - itemid = 25982, - type = "deequip", - slot = "shield", - }, - { - -- sun catcher - itemid = 25977, - type = "equip", - slot = "ammo", - }, - { - -- sun catcher - itemid = 25977, - type = "deequip", - slot = "ammo", - }, - { - -- starlight vial - itemid = 25976, - type = "equip", - slot = "ammo", - }, - { - -- starlight vial - itemid = 25976, - type = "deequip", - slot = "ammo", - }, - { - -- moon mirror - itemid = 25975, - type = "equip", - slot = "ammo", - }, - { - -- moon mirror - itemid = 25975, - type = "deequip", - slot = "ammo", - }, - { - -- energy war hammer replica - itemid = 25974, - type = "equip", - slot = "hand", - }, - { - -- energy war hammer replica - itemid = 25974, - type = "deequip", - slot = "hand", - }, - { - -- energy orcish maul replica - itemid = 25973, - type = "equip", - slot = "hand", - }, - { - -- energy orcish maul replica - itemid = 25973, - type = "deequip", - slot = "hand", - }, - { - -- energy basher replica - itemid = 25972, - type = "equip", - slot = "hand", - }, - { - -- energy basher replica - itemid = 25972, - type = "deequip", - slot = "hand", - }, - { - -- energy crystal mace replica - itemid = 25971, - type = "equip", - slot = "hand", - }, - { - -- energy crystal mace replica - itemid = 25971, - type = "deequip", - slot = "hand", - }, - { - -- energy clerical mace replica - itemid = 25970, - type = "equip", - slot = "hand", - }, - { - -- energy clerical mace replica - itemid = 25970, - type = "deequip", - slot = "hand", - }, - { - -- energy war axe replica - itemid = 25969, - type = "equip", - slot = "hand", - }, - { - -- energy war axe replica - itemid = 25969, - type = "deequip", - slot = "hand", - }, - { - -- energy headchopper replica - itemid = 25968, - type = "equip", - slot = "hand", - }, - { - -- energy headchopper replica - itemid = 25968, - type = "deequip", - slot = "hand", - }, - { - -- energy heroic axe replica - itemid = 25967, - type = "equip", - slot = "hand", - }, - { - -- energy heroic axe replica - itemid = 25967, - type = "deequip", - slot = "hand", - }, - { - -- energy knight axe replica - itemid = 25966, - type = "equip", - slot = "hand", - }, - { - -- energy knight axe replica - itemid = 25966, - type = "deequip", - slot = "hand", - }, - { - -- energy barbarian axe replica - itemid = 25965, - type = "equip", - slot = "hand", - }, - { - -- energy barbarian axe replica - itemid = 25965, - type = "deequip", - slot = "hand", - }, - { - -- energy dragon slayer replica - itemid = 25964, - type = "equip", - slot = "hand", - }, - { - -- energy dragon slayer replica - itemid = 25964, - type = "deequip", - slot = "hand", - }, - { - -- energy blacksteel replica - itemid = 25963, - type = "equip", - slot = "hand", - }, - { - -- energy blacksteel replica - itemid = 25963, - type = "deequip", - slot = "hand", - }, - { - -- energy mystic blade replica - itemid = 25962, - type = "equip", - slot = "hand", - }, - { - -- energy mystic blade replica - itemid = 25962, - type = "deequip", - slot = "hand", - }, - { - -- energy relic sword replica - itemid = 25961, - type = "equip", - slot = "hand", - }, - { - -- energy relic sword replica - itemid = 25961, - type = "deequip", - slot = "hand", - }, - { - -- energy spike sword replica - itemid = 25960, - type = "equip", - slot = "hand", - }, - { - -- energy spike sword replica - itemid = 25960, - type = "deequip", - slot = "hand", - }, - { - -- earth war hammer replica - itemid = 25959, - type = "equip", - slot = "hand", - }, - { - -- earth war hammer replica - itemid = 25959, - type = "deequip", - slot = "hand", - }, - { - -- earth orcish maul replica - itemid = 25958, - type = "equip", - slot = "hand", - }, - { - -- earth orcish maul replica - itemid = 25958, - type = "deequip", - slot = "hand", - }, - { - -- earth basher replica - itemid = 25957, - type = "equip", - slot = "hand", - }, - { - -- earth basher replica - itemid = 25957, - type = "deequip", - slot = "hand", - }, - { - -- earth crystal mace replica - itemid = 25956, - type = "equip", - slot = "hand", - }, - { - -- earth crystal mace replica - itemid = 25956, - type = "deequip", - slot = "hand", - }, - { - -- earth clerical mace replica - itemid = 25955, - type = "equip", - slot = "hand", - }, - { - -- earth clerical mace replica - itemid = 25955, - type = "deequip", - slot = "hand", - }, - { - -- earth war axe replica - itemid = 25954, - type = "equip", - slot = "hand", - }, - { - -- earth war axe replica - itemid = 25954, - type = "deequip", - slot = "hand", - }, - { - -- earth headchopper replica - itemid = 25953, - type = "equip", - slot = "hand", - }, - { - -- earth headchopper replica - itemid = 25953, - type = "deequip", - slot = "hand", - }, - { - -- earth heroic axe replica - itemid = 25952, - type = "equip", - slot = "hand", - }, - { - -- earth heroic axe replica - itemid = 25952, - type = "deequip", - slot = "hand", - }, - { - -- earth knight axe replica - itemid = 25951, - type = "equip", - slot = "hand", - }, - { - -- earth knight axe replica - itemid = 25951, - type = "deequip", - slot = "hand", - }, - { - -- earth barbarian axe replica - itemid = 25950, - type = "equip", - slot = "hand", - }, - { - -- earth barbarian axe replica - itemid = 25950, - type = "deequip", - slot = "hand", - }, - { - -- earth dragon slayer replica - itemid = 25949, - type = "equip", - slot = "hand", - }, - { - -- earth dragon slayer replica - itemid = 25949, - type = "deequip", - slot = "hand", - }, - { - -- earth blacksteel replica - itemid = 25948, - type = "equip", - slot = "hand", - }, - { - -- earth blacksteel replica - itemid = 25948, - type = "deequip", - slot = "hand", - }, - { - -- earth mystic blade replica - itemid = 25947, - type = "equip", - slot = "hand", - }, - { - -- earth mystic blade replica - itemid = 25947, - type = "deequip", - slot = "hand", - }, - { - -- earth relic sword replica - itemid = 25946, - type = "equip", - slot = "hand", - }, - { - -- earth relic sword replica - itemid = 25946, - type = "deequip", - slot = "hand", - }, - { - -- earth spike sword replica - itemid = 25945, - type = "equip", - slot = "hand", - }, - { - -- earth spike sword replica - itemid = 25945, - type = "deequip", - slot = "hand", - }, - { - -- icy war hammer replica - itemid = 25944, - type = "equip", - slot = "hand", - }, - { - -- icy war hammer replica - itemid = 25944, - type = "deequip", - slot = "hand", - }, - { - -- icy orcish maul replica - itemid = 25943, - type = "equip", - slot = "hand", - }, - { - -- icy orcish maul replica - itemid = 25943, - type = "deequip", - slot = "hand", - }, - { - -- icy basher replica - itemid = 25942, - type = "equip", - slot = "hand", - }, - { - -- icy basher replica - itemid = 25942, - type = "deequip", - slot = "hand", - }, - { - -- icy crystal mace replica - itemid = 25941, - type = "equip", - slot = "hand", - }, - { - -- icy crystal mace replica - itemid = 25941, - type = "deequip", - slot = "hand", - }, - { - -- icy clerical mace replica - itemid = 25940, - type = "equip", - slot = "hand", - }, - { - -- icy clerical mace replica - itemid = 25940, - type = "deequip", - slot = "hand", - }, - { - -- icy war axe replica - itemid = 25939, - type = "equip", - slot = "hand", - }, - { - -- icy war axe replica - itemid = 25939, - type = "deequip", - slot = "hand", - }, - { - -- icy headchopper replica - itemid = 25938, - type = "equip", - slot = "hand", - }, - { - -- icy headchopper replica - itemid = 25938, - type = "deequip", - slot = "hand", - }, - { - -- icy heroic axe replica - itemid = 25937, - type = "equip", - slot = "hand", - }, - { - -- icy heroic axe replica - itemid = 25937, - type = "deequip", - slot = "hand", - }, - { - -- icy knight axe replica - itemid = 25936, - type = "equip", - slot = "hand", - }, - { - -- icy knight axe replica - itemid = 25936, - type = "deequip", - slot = "hand", - }, - { - -- icy barbarian axe replica - itemid = 25935, - type = "equip", - slot = "hand", - }, - { - -- icy barbarian axe replica - itemid = 25935, - type = "deequip", - slot = "hand", - }, - { - -- icy dragon slayer replica - itemid = 25934, - type = "equip", - slot = "hand", - }, - { - -- icy dragon slayer replica - itemid = 25934, - type = "deequip", - slot = "hand", - }, - { - -- icy blacksteel replica - itemid = 25933, - type = "equip", - slot = "hand", - }, - { - -- icy blacksteel replica - itemid = 25933, - type = "deequip", - slot = "hand", - }, - { - -- icy mystic blade replica - itemid = 25932, - type = "equip", - slot = "hand", - }, - { - -- icy mystic blade replica - itemid = 25932, - type = "deequip", - slot = "hand", - }, - { - -- icy relic sword replica - itemid = 25931, - type = "equip", - slot = "hand", - }, - { - -- icy relic sword replica - itemid = 25931, - type = "deequip", - slot = "hand", - }, - { - -- icy spike sword replica - itemid = 25930, - type = "equip", - slot = "hand", - }, - { - -- icy spike sword replica - itemid = 25930, - type = "deequip", - slot = "hand", - }, - { - -- fiery war hammer replica - itemid = 25929, - type = "equip", - slot = "hand", - }, - { - -- fiery war hammer replica - itemid = 25929, - type = "deequip", - slot = "hand", - }, - { - -- fiery orcish maul replica - itemid = 25928, - type = "equip", - slot = "hand", - }, - { - -- fiery orcish maul replica - itemid = 25928, - type = "deequip", - slot = "hand", - }, - { - -- fiery basher replica - itemid = 25927, - type = "equip", - slot = "hand", - }, - { - -- fiery basher replica - itemid = 25927, - type = "deequip", - slot = "hand", - }, - { - -- fiery crystal mace replica - itemid = 25926, - type = "equip", - slot = "hand", - }, - { - -- fiery crystal mace replica - itemid = 25926, - type = "deequip", - slot = "hand", - }, - { - -- fiery clerical mace replica - itemid = 25925, - type = "equip", - slot = "hand", - }, - { - -- fiery clerical mace replica - itemid = 25925, - type = "deequip", - slot = "hand", - }, - { - -- fiery war axe replica - itemid = 25924, - type = "equip", - slot = "hand", - }, - { - -- fiery war axe replica - itemid = 25924, - type = "deequip", - slot = "hand", - }, - { - -- fiery headchopper replica - itemid = 25923, - type = "equip", - slot = "hand", - }, - { - -- fiery headchopper replica - itemid = 25923, - type = "deequip", - slot = "hand", - }, - { - -- fiery heroic axe replica - itemid = 25922, - type = "equip", - slot = "hand", - }, - { - -- fiery heroic axe replica - itemid = 25922, - type = "deequip", - slot = "hand", - }, - { - -- fiery knight axe replica - itemid = 25921, - type = "equip", - slot = "hand", - }, - { - -- fiery knight axe replica - itemid = 25921, - type = "deequip", - slot = "hand", - }, - { - -- fiery barbarian axe replica - itemid = 25920, - type = "equip", - slot = "hand", - }, - { - -- fiery barbarian axe replica - itemid = 25920, - type = "deequip", - slot = "hand", - }, - { - -- fiery dragon slayer replica - itemid = 25919, - type = "equip", - slot = "hand", - }, - { - -- fiery dragon slayer replica - itemid = 25919, - type = "deequip", - slot = "hand", - }, - { - -- fiery blacksteel replica - itemid = 25918, - type = "equip", - slot = "hand", - }, - { - -- fiery blacksteel replica - itemid = 25918, - type = "deequip", - slot = "hand", - }, - { - -- fiery mystic blade replica - itemid = 25917, - type = "equip", - slot = "hand", - }, - { - -- fiery mystic blade replica - itemid = 25917, - type = "deequip", - slot = "hand", - }, - { - -- fiery relic sword replica - itemid = 25916, - type = "equip", - slot = "hand", - }, - { - -- fiery relic sword replica - itemid = 25916, - type = "deequip", - slot = "hand", - }, - { - -- fiery spike sword replica - itemid = 25915, - type = "equip", - slot = "hand", - }, - { - -- fiery spike sword replica - itemid = 25915, - type = "deequip", - slot = "hand", - }, - { - -- blossom bag - itemid = 25780, - type = "equip", - slot = "backpack", - }, - { - -- blossom bag - itemid = 25780, - type = "deequip", - slot = "backpack", - }, - { - -- swan feather cloak - itemid = 25779, - type = "equip", - slot = "armor", - level = 60, - }, - { - -- swan feather cloak - itemid = 25779, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- wand of darkness - itemid = 25760, - type = "equip", - slot = "hand", - level = 41, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of darkness - itemid = 25760, - type = "deequip", - slot = "hand", - level = 41, - }, - { - -- royal star - itemid = 25759, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- royal star - itemid = 25759, - type = "deequip", - slot = "hand", - level = 120, - }, - { - -- spectral bolt - itemid = 25758, - type = "equip", - slot = "ammo", - }, - { - -- spectral bolt - itemid = 25758, - type = "deequip", - slot = "ammo", - }, - { - -- leaf star - itemid = 25735, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- leaf star - itemid = 25735, - type = "deequip", - slot = "hand", - level = 60, - }, - { - -- dream blossom staff - itemid = 25700, - type = "equip", - slot = "hand", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- dream blossom staff - itemid = 25700, - type = "deequip", - slot = "hand", - level = 80, - }, - { - -- wooden spellbook - itemid = 25699, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- wooden spellbook - itemid = 25699, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- butterfly ring - itemid = 25698, - type = "equip", - slot = "ring", - level = 50, - }, - { - -- butterfly ring - itemid = 25698, - type = "deequip", - slot = "ring", - level = 50, - }, - { - -- glowing rubbish amulet - itemid = 25297, - type = "equip", - slot = "necklace", - }, - { - -- glowing rubbish amulet - itemid = 25297, - type = "deequip", - slot = "necklace", - }, - { - -- rubbish amulet - itemid = 25296, - type = "equip", - slot = "necklace", - }, - { - -- rubbish amulet - itemid = 25296, - type = "deequip", - slot = "necklace", - }, - { - -- porcelain mask - itemid = 25088, - type = "equip", - slot = "head", - }, - { - -- porcelain mask - itemid = 25088, - type = "deequip", - slot = "head", - }, - { - -- filthy bunnyslippers - itemid = 24409, - type = "equip", - slot = "feet", - }, - { - -- filthy bunnyslippers - itemid = 24409, - type = "deequip", - slot = "feet", - }, - { - -- rusty winged helmet - itemid = 24405, - type = "equip", - slot = "head", - }, - { - -- rusty winged helmet - itemid = 24405, - type = "deequip", - slot = "head", - }, - { - -- tatty Dragon scale legs - itemid = 24404, - type = "equip", - slot = "legs", - }, - { - -- tatty Dragon scale legs - itemid = 24404, - type = "deequip", - slot = "legs", - }, - { - -- chocolatey dragon scale legs - itemid = 24402, - type = "equip", - slot = "legs", - }, - { - -- chocolatey dragon scale legs - itemid = 24402, - type = "deequip", - slot = "legs", - }, - { - -- Ferumbras' Candy Hat - itemid = 24397, - type = "equip", - slot = "head", - }, - { - -- Ferumbras' Candy Hat - itemid = 24397, - type = "deequip", - slot = "head", - }, - { - -- birthday backpack - itemid = 24395, - type = "equip", - slot = "backpack", - }, - { - -- birthday backpack - itemid = 24395, - type = "deequip", - slot = "backpack", - }, - { - -- pillow backpack - itemid = 24393, - type = "equip", - slot = "backpack", - }, - { - -- pillow backpack - itemid = 24393, - type = "deequip", - slot = "backpack", - }, - { - -- collar of red plasma - itemid = 23544, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- collar of red plasma - itemid = 23544, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of green plasma - itemid = 23543, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- collar of green plasma - itemid = 23543, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of blue plasma - itemid = 23542, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- collar of blue plasma - itemid = 23542, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- ring of red plasma - itemid = 23534, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ring of red plasma - itemid = 23534, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of red plasma - itemid = 23533, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ring of red plasma - itemid = 23533, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of green plasma - itemid = 23532, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ring of green plasma - itemid = 23532, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of green plasma - itemid = 23531, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ring of green plasma - itemid = 23531, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of blue plasma - itemid = 23530, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ring of blue plasma - itemid = 23530, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- ring of blue plasma - itemid = 23529, - type = "equip", - slot = "ring", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ring of blue plasma - itemid = 23529, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- collar of red plasma - itemid = 23528, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- collar of red plasma - itemid = 23528, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of green plasma - itemid = 23527, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- collar of green plasma - itemid = 23527, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- collar of blue plasma - itemid = 23526, - type = "equip", - slot = "necklace", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- collar of blue plasma - itemid = 23526, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- energetic backpack - itemid = 23525, - type = "equip", - slot = "backpack", - }, - { - -- energetic backpack - itemid = 23525, - type = "deequip", - slot = "backpack", - }, - { - -- void boots - itemid = 23477, - type = "equip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23477, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23476, - type = "equip", - slot = "feet", - level = 150, - }, - { - -- void boots - itemid = 23476, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- tiara of power - itemid = 23475, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- tiara of power - itemid = 23475, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- tiara of power - itemid = 23474, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- tiara of power - itemid = 23474, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- rod of carving - itemid = 23339, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of carving - itemid = 23339, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of carving - itemid = 23335, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of carving - itemid = 23335, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of carving - itemid = 23331, - type = "equip", - slot = "hand", - }, - { - -- crossbow of carving - itemid = 23331, - type = "deequip", - slot = "hand", - }, - { - -- bow of carving - itemid = 23327, - type = "equip", - slot = "hand", - }, - { - -- bow of carving - itemid = 23327, - type = "deequip", - slot = "hand", - }, - { - -- hammer of carving - itemid = 23323, - type = "equip", - slot = "hand", - }, - { - -- hammer of carving - itemid = 23323, - type = "deequip", - slot = "hand", - }, - { - -- mace of carving - itemid = 23319, - type = "equip", - slot = "hand", - }, - { - -- mace of carving - itemid = 23319, - type = "deequip", - slot = "hand", - }, - { - -- chopper of carving - itemid = 23315, - type = "equip", - slot = "hand", - }, - { - -- chopper of carving - itemid = 23315, - type = "deequip", - slot = "hand", - }, - { - -- axe of carving - itemid = 23311, - type = "equip", - slot = "hand", - }, - { - -- axe of carving - itemid = 23311, - type = "deequip", - slot = "hand", - }, - { - -- slayer of carving - itemid = 23307, - type = "equip", - slot = "hand", - }, - { - -- slayer of carving - itemid = 23307, - type = "deequip", - slot = "hand", - }, - { - -- blade of carving - itemid = 23303, - type = "equip", - slot = "hand", - }, - { - -- blade of carving - itemid = 23303, - type = "deequip", - slot = "hand", - }, - { - -- rod of remedy - itemid = 23299, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of remedy - itemid = 23299, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of remedy - itemid = 23295, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of remedy - itemid = 23295, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of remedy - itemid = 23291, - type = "equip", - slot = "hand", - }, - { - -- crossbow of remedy - itemid = 23291, - type = "deequip", - slot = "hand", - }, - { - -- bow of remedy - itemid = 23287, - type = "equip", - slot = "hand", - }, - { - -- bow of remedy - itemid = 23287, - type = "deequip", - slot = "hand", - }, - { - -- mace of remedy - itemid = 23279, - type = "equip", - slot = "hand", - }, - { - -- mace of remedy - itemid = 23279, - type = "deequip", - slot = "hand", - }, - { - -- chopper of remedy - itemid = 23275, - type = "equip", - slot = "hand", - }, - { - -- chopper of remedy - itemid = 23275, - type = "deequip", - slot = "hand", - }, - { - -- axe of remedy - itemid = 23271, - type = "equip", - slot = "hand", - }, - { - -- axe of remedy - itemid = 23271, - type = "deequip", - slot = "hand", - }, - { - -- slayer of remedy - itemid = 23267, - type = "equip", - slot = "hand", - }, - { - -- slayer of remedy - itemid = 23267, - type = "deequip", - slot = "hand", - }, - { - -- blade of remedy - itemid = 23263, - type = "equip", - slot = "hand", - }, - { - -- blade of remedy - itemid = 23263, - type = "deequip", - slot = "hand", - }, - { - -- rod of mayhem - itemid = 23232, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- rod of mayhem - itemid = 23232, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- wand of mayhem - itemid = 23231, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of mayhem - itemid = 23231, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- crossbow of mayhem - itemid = 23230, - type = "equip", - slot = "hand", - }, - { - -- crossbow of mayhem - itemid = 23230, - type = "deequip", - slot = "hand", - }, - { - -- bow of mayhem - itemid = 23229, - type = "equip", - slot = "hand", - }, - { - -- bow of mayhem - itemid = 23229, - type = "deequip", - slot = "hand", - }, - { - -- hammer of mayhem - itemid = 23228, - type = "equip", - slot = "hand", - }, - { - -- hammer of mayhem - itemid = 23228, - type = "deequip", - slot = "hand", - }, - { - -- mace of mayhem - itemid = 23227, - type = "equip", - slot = "hand", - }, - { - -- mace of mayhem - itemid = 23227, - type = "deequip", - slot = "hand", - }, - { - -- chopper of mayhem - itemid = 23226, - type = "equip", - slot = "hand", - }, - { - -- chopper of mayhem - itemid = 23226, - type = "deequip", - slot = "hand", - }, - { - -- axe of mayhem - itemid = 23225, - type = "equip", - slot = "hand", - }, - { - -- axe of mayhem - itemid = 23225, - type = "deequip", - slot = "hand", - }, - { - -- slayer of mayhem - itemid = 23224, - type = "equip", - slot = "hand", - }, - { - -- slayer of mayhem - itemid = 23224, - type = "deequip", - slot = "hand", - }, - { - -- blade of mayhem - itemid = 23223, - type = "equip", - slot = "hand", - }, - { - -- blade of mayhem - itemid = 23223, - type = "deequip", - slot = "hand", - }, - { - -- shield of destiny - itemid = 22890, - type = "equip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22890, - type = "deequip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22889, - type = "equip", - slot = "shield", - }, - { - -- shield of destiny - itemid = 22889, - type = "deequip", - slot = "shield", - }, - { - -- rift crossbow - itemid = 22867, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- rift crossbow - itemid = 22867, - type = "deequip", - slot = "hand", - }, - { - -- rift bow - itemid = 22866, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- rift bow - itemid = 22866, - type = "deequip", - slot = "hand", - }, - { - -- boots of homecoming - itemid = 22774, - type = "equip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22774, - type = "deequip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22773, - type = "equip", - slot = "feet", - level = 100, - }, - { - -- boots of homecoming - itemid = 22773, - type = "deequip", - slot = "feet", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22768, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22768, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22767, - type = "equip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' amulet - itemid = 22767, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- ferumbras' staff (enchanted) - itemid = 22766, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (enchanted) - itemid = 22766, - type = "deequip", - slot = "hand", - level = 100, - }, - { - -- ferumbras' staff (failed) - itemid = 22765, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (failed) - itemid = 22765, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- Ferumbras' staff (club) - itemid = 22764, - type = "equip", - slot = "hand", - level = 100, - }, - { - -- Ferumbras' staff (club) - itemid = 22764, - type = "deequip", - slot = "hand", - }, - { - -- maimer - itemid = 22762, - type = "equip", - slot = "hand", - level = 150, - }, - { - -- maimer - itemid = 22762, - type = "deequip", - slot = "hand", - }, - { - -- Impaler of the igniter - itemid = 22760, - type = "equip", - slot = "hand", - level = 150, - }, - { - -- Impaler of the igniter - itemid = 22760, - type = "deequip", - slot = "hand", - }, - { - -- plague bite - itemid = 22759, - type = "equip", - slot = "hand", - level = 150, - }, - { - -- plague bite - itemid = 22759, - type = "deequip", - slot = "hand", - }, - { - -- death gaze - itemid = 22758, - type = "equip", - slot = "shield", - level = 200, - }, - { - -- death gaze - itemid = 22758, - type = "deequip", - slot = "shield", - level = 200, - }, - { - -- shroud of despair - itemid = 22757, - type = "equip", - slot = "head", - level = 150, - }, - { - -- shroud of despair - itemid = 22757, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- treader of torment - itemid = 22756, - type = "equip", - slot = "feet", - }, - { - -- treader of torment - itemid = 22756, - type = "deequip", - slot = "feet", - }, - { - -- book of lies - itemid = 22755, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- book of lies - itemid = 22755, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- visage of the end days - itemid = 22754, - type = "equip", - slot = "head", - }, - { - -- visage of the end days - itemid = 22754, - type = "deequip", - slot = "head", - }, - { - -- ancient amulet - itemid = 22746, - type = "equip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 22746, - type = "deequip", - slot = "necklace", - }, - { - -- rift lance - itemid = 22727, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- rift lance - itemid = 22727, - type = "deequip", - slot = "hand", - }, - { - -- rift shield - itemid = 22726, - type = "equip", - slot = "shield", - }, - { - -- rift shield - itemid = 22726, - type = "deequip", - slot = "shield", - }, - { - -- rattling gourd - itemid = 22651, - type = "equip", - slot = "shield", - }, - { - -- rattling gourd - itemid = 22651, - type = "deequip", - slot = "shield", - }, - { - -- gourd - itemid = 22650, - type = "equip", - slot = "shield", - }, - { - -- gourd - itemid = 22650, - type = "deequip", - slot = "shield", - }, - { - -- frostmind raiment - itemid = 22537, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- frostmind raiment - itemid = 22537, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thundermind raiment - itemid = 22536, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- thundermind raiment - itemid = 22536, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthmind raiment - itemid = 22535, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- earthmind raiment - itemid = 22535, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- firemind raiment - itemid = 22534, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- firemind raiment - itemid = 22534, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostsoul tabard - itemid = 22533, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- frostsoul tabard - itemid = 22533, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thundersoul tabard - itemid = 22532, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- thundersoul tabard - itemid = 22532, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthsoul tabard - itemid = 22531, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- earthsoul tabard - itemid = 22531, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- firesoul tabard - itemid = 22530, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- firesoul tabard - itemid = 22530, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart platemail - itemid = 22529, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart platemail - itemid = 22529, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart hauberk - itemid = 22528, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart hauberk - itemid = 22528, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- frostheart cuirass - itemid = 22527, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- frostheart cuirass - itemid = 22527, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart platemail - itemid = 22526, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart platemail - itemid = 22526, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart hauberk - itemid = 22525, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart hauberk - itemid = 22525, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- thunderheart cuirass - itemid = 22524, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thunderheart cuirass - itemid = 22524, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart platemail - itemid = 22523, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart platemail - itemid = 22523, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart hauberk - itemid = 22522, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart hauberk - itemid = 22522, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- earthheart cuirass - itemid = 22521, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthheart cuirass - itemid = 22521, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart platemail - itemid = 22520, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart platemail - itemid = 22520, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart hauberk - itemid = 22519, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart hauberk - itemid = 22519, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- fireheart cuirass - itemid = 22518, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireheart cuirass - itemid = 22518, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- onyx pendant - itemid = 22195, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- onyx pendant - itemid = 22195, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- shamanic mask - itemid = 22192, - type = "equip", - slot = "head", - }, - { - -- shamanic mask - itemid = 22192, - type = "deequip", - slot = "head", - }, - { - -- painted gourd rattle - itemid = 22190, - type = "equip", - slot = "shield", - }, - { - -- painted gourd rattle - itemid = 22190, - type = "deequip", - slot = "shield", - }, - { - -- ogre scepta - itemid = 22183, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- ogre scepta - itemid = 22183, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- ogre choppa - itemid = 22172, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- ogre choppa - itemid = 22172, - type = "deequip", - slot = "hand", - }, - { - -- ogre klubba - itemid = 22171, - type = "equip", - slot = "hand", - level = 50, - }, - { - -- ogre klubba - itemid = 22171, - type = "deequip", - slot = "hand", - }, - { - -- house silversun's signet ring - itemid = 22170, - type = "equip", - slot = "ring", - }, - { - -- house silversun's signet ring - itemid = 22170, - type = "deequip", - slot = "ring", - }, - { - -- dark wizard's crown - itemid = 22154, - type = "equip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22154, - type = "deequip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22153, - type = "equip", - slot = "head", - }, - { - -- dark wizard's crown - itemid = 22153, - type = "deequip", - slot = "head", - }, - { - -- enchanted werewolf amulet - itemid = 22134, - type = "equip", - slot = "necklace", - }, - { - -- enchanted werewolf amulet - itemid = 22134, - type = "deequip", - slot = "necklace", - }, - { - -- enchanted werewolf helmet - sword - itemid = 22132, - type = "equip", - slot = "necklace", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted werewolf helmet - sword - itemid = 22132, - type = "deequip", - slot = "necklace", - level = 100, - }, - { - -- enchanted werewolf helmet - ml - itemid = 22130, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- enchanted werewolf helmet - ml - itemid = 22130, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - distance - itemid = 22129, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- enchanted werewolf helmet - distance - itemid = 22129, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - club - itemid = 22128, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted werewolf helmet - club - itemid = 22128, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf helmet - axe - itemid = 22127, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- enchanted werewolf helmet - axe - itemid = 22127, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- wereboar loincloth - itemid = 22087, - type = "equip", - slot = "legs", - }, - { - -- wereboar loincloth - itemid = 22087, - type = "deequip", - slot = "legs", - }, - { - -- badger boots - itemid = 22086, - type = "equip", - slot = "feet", - level = 60, - }, - { - -- badger boots - itemid = 22086, - type = "deequip", - slot = "feet", - level = 60, - }, - { - -- fur armor - itemid = 22085, - type = "equip", - slot = "armor", - level = 50, - }, - { - -- fur armor - itemid = 22085, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- wolf backpack - itemid = 22084, - type = "equip", - slot = "backpack", - }, - { - -- wolf backpack - itemid = 22084, - type = "deequip", - slot = "backpack", - }, - { - -- werewolf helmet - itemid = 22062, - type = "equip", - slot = "head", - level = 100, - }, - { - -- werewolf helmet - itemid = 22062, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- enchanted werewolf amulet - itemid = 22061, - type = "equip", - slot = "necklace", - }, - { - -- enchanted werewolf amulet - itemid = 22061, - type = "deequip", - slot = "necklace", - }, - { - -- werewolf amulet - itemid = 22060, - type = "equip", - slot = "necklace", - }, - { - -- werewolf amulet - itemid = 22060, - type = "deequip", - slot = "necklace", - }, - { - -- oriental shoes - itemid = 21981, - type = "equip", - slot = "feet", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- oriental shoes - itemid = 21981, - type = "deequip", - slot = "feet", - level = 80, - }, - { - -- sweetheart ring - itemid = 21955, - type = "equip", - slot = "ring", - }, - { - -- sweetheart ring - itemid = 21955, - type = "deequip", - slot = "ring", - }, - { - -- crest of the deep seas - itemid = 21892, - type = "equip", - slot = "head", - level = 80, - }, - { - -- crest of the deep seas - itemid = 21892, - type = "deequip", - slot = "head", - level = 80, - }, - { - -- brandon's wedding ring - itemid = 21745, - type = "equip", - slot = "ring", - }, - { - -- brandon's wedding ring - itemid = 21745, - type = "deequip", - slot = "ring", - }, - { - -- simple arrow - itemid = 21470, - type = "equip", - slot = "ammo", - }, - { - -- simple arrow - itemid = 21470, - type = "deequip", - slot = "ammo", - }, - { - -- war backpack - itemid = 21445, - type = "equip", - slot = "backpack", - }, - { - -- war backpack - itemid = 21445, - type = "deequip", - slot = "backpack", - }, - { - -- the Lion's Heart - itemid = 21439, - type = "equip", - slot = "necklace", - }, - { - -- the Lion's Heart - itemid = 21439, - type = "deequip", - slot = "necklace", - }, - { - -- shopping bag - itemid = 21411, - type = "equip", - slot = "backpack", - }, - { - -- shopping bag - itemid = 21411, - type = "deequip", - slot = "backpack", - }, - { - -- broken wooden shield - itemid = 21401, - type = "equip", - slot = "shield", - }, - { - -- broken wooden shield - itemid = 21401, - type = "deequip", - slot = "shield", - }, - { - -- spellbook of the novice - itemid = 21400, - type = "equip", - slot = "shield", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of the novice - itemid = 21400, - type = "deequip", - slot = "shield", - }, - { - -- the chiller - itemid = 21350, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- the chiller - itemid = 21350, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- the scorcher - itemid = 21348, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- the scorcher - itemid = 21348, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- glooth backpack - itemid = 21295, - type = "equip", - slot = "backpack", - }, - { - -- glooth backpack - itemid = 21295, - type = "deequip", - slot = "backpack", - }, - { - -- feedbag - itemid = 21292, - type = "equip", - slot = "backpack", - }, - { - -- feedbag - itemid = 21292, - type = "deequip", - slot = "backpack", - }, - { - -- one hit wonder - itemid = 21219, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- one hit wonder - itemid = 21219, - type = "deequip", - slot = "hand", - }, - { - -- glooth amulet - itemid = 21183, - type = "equip", - slot = "necklace", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glooth amulet - itemid = 21183, - type = "deequip", - slot = "necklace", - level = 75, - }, - { - -- glooth axe - itemid = 21180, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth axe - itemid = 21180, - type = "deequip", - slot = "hand", - }, - { - -- glooth blade - itemid = 21179, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth blade - itemid = 21179, - type = "deequip", - slot = "hand", - }, - { - -- glooth club - itemid = 21178, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth club - itemid = 21178, - type = "deequip", - slot = "hand", - }, - { - -- cowtana - itemid = 21177, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- cowtana - itemid = 21177, - type = "deequip", - slot = "hand", - level = 25, - }, - { - -- execowtioner axe - itemid = 21176, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- execowtioner axe - itemid = 21176, - type = "deequip", - slot = "hand", - }, - { - -- mino shield - itemid = 21175, - type = "equip", - slot = "shield", - }, - { - -- mino shield - itemid = 21175, - type = "deequip", - slot = "shield", - }, - { - -- mino lance - itemid = 21174, - type = "equip", - slot = "hand", - level = 45, - }, - { - -- mino lance - itemid = 21174, - type = "deequip", - slot = "hand", - }, - { - -- moohtant cudgel - itemid = 21173, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- moohtant cudgel - itemid = 21173, - type = "deequip", - slot = "hand", - }, - { - -- glooth whip - itemid = 21172, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- glooth whip - itemid = 21172, - type = "deequip", - slot = "hand", - }, - { - -- metal bat - itemid = 21171, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- metal bat - itemid = 21171, - type = "deequip", - slot = "hand", - }, - { - -- gearwheel chain - itemid = 21170, - type = "equip", - slot = "necklace", - level = 75, - }, - { - -- gearwheel chain - itemid = 21170, - type = "deequip", - slot = "necklace", - level = 75, - }, - { - -- metal spats - itemid = 21169, - type = "equip", - slot = "feet", - level = 50, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- metal spats - itemid = 21169, - type = "deequip", - slot = "feet", - level = 50, - }, - { - -- alloy legs - itemid = 21168, - type = "equip", - slot = "legs", - level = 60, - }, - { - -- alloy legs - itemid = 21168, - type = "deequip", - slot = "legs", - level = 60, - }, - { - -- heat core - itemid = 21167, - type = "equip", - slot = "armor", - }, - { - -- heat core - itemid = 21167, - type = "deequip", - slot = "armor", - }, - { - -- mooh'tah plate - itemid = 21166, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- mooh'tah plate - itemid = 21166, - type = "deequip", - slot = "armor", - }, - { - -- rubber cap - itemid = 21165, - type = "equip", - slot = "head", - level = 70, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- rubber cap - itemid = 21165, - type = "deequip", - slot = "head", - level = 70, - }, - { - -- glooth cape - itemid = 21164, - type = "equip", - slot = "armor", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glooth cape - itemid = 21164, - type = "deequip", - slot = "armor", - level = 40, - }, - { - -- glooth spear - itemid = 21158, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- glooth spear - itemid = 21158, - type = "deequip", - slot = "hand", - level = 60, - }, - { - -- cake backpack - itemid = 20347, - type = "equip", - slot = "backpack", - }, - { - -- cake backpack - itemid = 20347, - type = "deequip", - slot = "backpack", - }, - { - -- unstable ring of ending - itemid = 20209, - type = "equip", - slot = "ring", - }, - { - -- unstable ring of ending - itemid = 20209, - type = "deequip", - slot = "ring", - }, - { - -- broken visor - itemid = 20184, - type = "equip", - slot = "head", - }, - { - -- broken visor - itemid = 20184, - type = "deequip", - slot = "head", - }, - { - -- ring of ending - itemid = 20182, - type = "equip", - slot = "ring", - level = 200, - }, - { - -- ring of ending - itemid = 20182, - type = "deequip", - slot = "ring", - level = 200, - }, - { - -- eerie song book - itemid = 20140, - type = "equip", - slot = "shield", - }, - { - -- eerie song book - itemid = 20140, - type = "deequip", - slot = "shield", - }, - { - -- umbral master spellbook - itemid = 20090, - type = "equip", - slot = "shield", - level = 250, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- umbral master spellbook - itemid = 20090, - type = "deequip", - slot = "shield", - level = 250, - }, - { - -- umbral spellbook - itemid = 20089, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- umbral spellbook - itemid = 20089, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- crude umbral spellbook - itemid = 20088, - type = "equip", - slot = "shield", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- crude umbral spellbook - itemid = 20088, - type = "deequip", - slot = "shield", - level = 75, - }, - { - -- umbral master crossbow - itemid = 20087, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master crossbow - itemid = 20087, - type = "deequip", - slot = "hand", - }, - { - -- umbral crossbow - itemid = 20086, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral crossbow - itemid = 20086, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral crossbow - itemid = 20085, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral crossbow - itemid = 20085, - type = "deequip", - slot = "hand", - }, - { - -- umbral master bow - itemid = 20084, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master bow - itemid = 20084, - type = "deequip", - slot = "hand", - }, - { - -- umbral bow - itemid = 20083, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral bow - itemid = 20083, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral bow - itemid = 20082, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral bow - itemid = 20082, - type = "deequip", - slot = "hand", - }, - { - -- umbral master hammer - itemid = 20081, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master hammer - itemid = 20081, - type = "deequip", - slot = "hand", - }, - { - -- umbral hammer - itemid = 20080, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral hammer - itemid = 20080, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral hammer - itemid = 20079, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral hammer - itemid = 20079, - type = "deequip", - slot = "hand", - }, - { - -- umbral master mace - itemid = 20078, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master mace - itemid = 20078, - type = "deequip", - slot = "hand", - }, - { - -- umbral mace - itemid = 20077, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral mace - itemid = 20077, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral mace - itemid = 20076, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral mace - itemid = 20076, - type = "deequip", - slot = "hand", - }, - { - -- umbral master chopper - itemid = 20075, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master chopper - itemid = 20075, - type = "deequip", - slot = "hand", - }, - { - -- umbral chopper - itemid = 20074, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral chopper - itemid = 20074, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral chopper - itemid = 20073, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral chopper - itemid = 20073, - type = "deequip", - slot = "hand", - }, - { - -- umbral master axe - itemid = 20072, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master axe - itemid = 20072, - type = "deequip", - slot = "hand", - }, - { - -- umbral axe - itemid = 20071, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral axe - itemid = 20071, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral axe - itemid = 20070, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral axe - itemid = 20070, - type = "deequip", - slot = "hand", - }, - { - -- umbral master slayer - itemid = 20069, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master slayer - itemid = 20069, - type = "deequip", - slot = "hand", - }, - { - -- umbral slayer - itemid = 20068, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral slayer - itemid = 20068, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral slayer - itemid = 20067, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral slayer - itemid = 20067, - type = "deequip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral masterblade - itemid = 20066, - type = "equip", - slot = "hand", - level = 250, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral masterblade - itemid = 20066, - type = "deequip", - slot = "hand", - }, - { - -- umbral blade - itemid = 20065, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral blade - itemid = 20065, - type = "deequip", - slot = "hand", - }, - { - -- crude umbral blade - itemid = 20064, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral blade - itemid = 20064, - type = "deequip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- strange good night songs - itemid = 20050, - type = "equip", - slot = "shield", - }, - { - -- strange good night songs - itemid = 20050, - type = "deequip", - slot = "shield", - }, - { - -- furious frock - itemid = 19391, - type = "equip", - slot = "armor", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- furious frock - itemid = 19391, - type = "deequip", - slot = "armor", - level = 130, - }, - { - -- vampire silk slippers - itemid = 19374, - type = "equip", - slot = "feet", - }, - { - -- vampire silk slippers - itemid = 19374, - type = "deequip", - slot = "feet", - }, - { - -- haunted mirror piece - itemid = 19373, - type = "equip", - slot = "shield", - }, - { - -- haunted mirror piece - itemid = 19373, - type = "deequip", - slot = "shield", - }, - { - -- goo shell - itemid = 19372, - type = "equip", - slot = "armor", - }, - { - -- goo shell - itemid = 19372, - type = "deequip", - slot = "armor", - }, - { - -- icy culottes - itemid = 19366, - type = "equip", - slot = "legs", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- icy culottes - itemid = 19366, - type = "deequip", - slot = "legs", - }, - { - -- runic ice shield - itemid = 19363, - type = "equip", - slot = "shield", - }, - { - -- runic ice shield - itemid = 19363, - type = "deequip", - slot = "shield", - }, - { - -- icicle bow - itemid = 19362, - type = "equip", - slot = "hand", - }, - { - -- icicle bow - itemid = 19362, - type = "deequip", - slot = "hand", - }, - { - -- horn - itemid = 19359, - type = "equip", - slot = "ring", - }, - { - -- horn - itemid = 19359, - type = "deequip", - slot = "ring", - }, - { - -- albino plate - itemid = 19358, - type = "equip", - slot = "armor", - }, - { - -- albino plate - itemid = 19358, - type = "deequip", - slot = "armor", - }, - { - -- shrunken head necklace - itemid = 19357, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- shrunken head necklace - itemid = 19357, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- triple bolt crossbow - itemid = 19356, - type = "equip", - slot = "hand", - level = 70, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- triple bolt crossbow - itemid = 19356, - type = "deequip", - slot = "hand", - }, - { - -- pannier backpack - itemid = 19159, - type = "equip", - slot = "backpack", - }, - { - -- pannier backpack - itemid = 19159, - type = "deequip", - slot = "backpack", - }, - { - -- friendship amulet - itemid = 19153, - type = "equip", - slot = "necklace", - }, - { - -- friendship amulet - itemid = 19153, - type = "deequip", - slot = "necklace", - }, - { - -- vampire's signet ring - itemid = 18935, - type = "equip", - slot = "ring", - }, - { - -- vampire's signet ring - itemid = 18935, - type = "deequip", - slot = "ring", - }, - { - -- spiky club - itemid = 17859, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- spiky club - itemid = 17859, - type = "deequip", - slot = "hand", - }, - { - -- helmet of the lost - itemid = 17852, - type = "equip", - slot = "head", - }, - { - -- helmet of the lost - itemid = 17852, - type = "deequip", - slot = "head", - }, - { - -- leather harness - itemid = 17846, - type = "equip", - slot = "armor", - }, - { - -- leather harness - itemid = 17846, - type = "deequip", - slot = "armor", - }, - { - -- buckle - itemid = 17829, - type = "equip", - slot = "armor", - }, - { - -- buckle - itemid = 17829, - type = "deequip", - slot = "armor", - }, - { - -- pair of iron fists - itemid = 17828, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- pair of iron fists - itemid = 17828, - type = "deequip", - slot = "hand", - }, - { - -- swampling club - itemid = 17824, - type = "equip", - slot = "hand", - }, - { - -- swampling club - itemid = 17824, - type = "deequip", - slot = "hand", - }, - { - -- life preserver - itemid = 17813, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- life preserver - itemid = 17813, - type = "deequip", - slot = "hand", - }, - { - -- ratana - itemid = 17812, - type = "equip", - slot = "hand", - level = 15, - }, - { - -- ratana - itemid = 17812, - type = "deequip", - slot = "hand", - }, - { - -- spike shield - itemid = 17810, - type = "equip", - slot = "shield", - }, - { - -- spike shield - itemid = 17810, - type = "deequip", - slot = "shield", - }, - { - -- sorc and druid staff - itemid = 17111, - type = "equip", - slot = "hand", - level = 1, - vocation = { - { "None", true }, - }, - }, - { - -- sorc and druid staff - itemid = 17111, - type = "deequip", - slot = "hand", - level = 1, - }, - { - -- mean paladin spear - itemid = 17110, - type = "equip", - slot = "hand", - vocation = { - { "None", true }, - }, - }, - { - -- mean paladin spear - itemid = 17110, - type = "deequip", - slot = "hand", - vocation = { - { "None", true }, - }, - }, - { - -- mean knight sword - itemid = 17109, - type = "equip", - slot = "hand", - vocation = { - { "None", true }, - }, - }, - { - -- mean knight sword - itemid = 17109, - type = "deequip", - slot = "hand", - }, - { - -- prismatic ring - itemid = 16264, - type = "equip", - slot = "ring", - level = 120, - }, - { - -- prismatic ring - itemid = 16264, - type = "deequip", - slot = "ring", - level = 120, - }, - { - -- shiny blade - itemid = 16175, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- shiny blade - itemid = 16175, - type = "deequip", - slot = "hand", - }, - { - -- mycological bow - itemid = 16164, - type = "equip", - slot = "hand", - level = 105, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mycological bow - itemid = 16164, - type = "deequip", - slot = "hand", - }, - { - -- crystal crossbow - itemid = 16163, - type = "equip", - slot = "hand", - level = 90, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crystal crossbow - itemid = 16163, - type = "deequip", - slot = "hand", - }, - { - -- mycological mace - itemid = 16162, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- mycological mace - itemid = 16162, - type = "deequip", - slot = "hand", - }, - { - -- crystalline axe - itemid = 16161, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- crystalline axe - itemid = 16161, - type = "deequip", - slot = "hand", - }, - { - -- crystalline sword - itemid = 16160, - type = "equip", - slot = "hand", - level = 62, - }, - { - -- crystalline sword - itemid = 16160, - type = "deequip", - slot = "hand", - }, - { - -- envenomed arrow - itemid = 16143, - type = "equip", - slot = "ammo", - }, - { - -- envenomed arrow - itemid = 16143, - type = "deequip", - slot = "ammo", - }, - { - -- drill bolt - itemid = 16142, - type = "equip", - slot = "ammo", - }, - { - -- drill bolt - itemid = 16142, - type = "deequip", - slot = "ammo", - }, - { - -- prismatic bolt - itemid = 16141, - type = "equip", - slot = "ammo", - }, - { - -- prismatic bolt - itemid = 16141, - type = "deequip", - slot = "ammo", - }, - { - -- glacial rod - itemid = 16118, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- glacial rod - itemid = 16118, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- muck rod - itemid = 16117, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- muck rod - itemid = 16117, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- prismatic shield - itemid = 16116, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- prismatic shield - itemid = 16116, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- wand of everblazing - itemid = 16115, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of everblazing - itemid = 16115, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- prismatic ring - itemid = 16114, - type = "equip", - slot = "ring", - level = 120, - }, - { - -- prismatic ring - itemid = 16114, - type = "deequip", - slot = "ring", - level = 120, - }, - { - -- prismatic necklace - itemid = 16113, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- prismatic necklace - itemid = 16113, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- prismatic boots - itemid = 16112, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic boots - itemid = 16112, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- prismatic legs - itemid = 16111, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic legs - itemid = 16111, - type = "deequip", - slot = "legs", - level = 150, - }, - { - -- prismatic armor - itemid = 16110, - type = "equip", - slot = "armor", - level = 120, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- prismatic armor - itemid = 16110, - type = "deequip", - slot = "armor", - level = 120, - }, - { - -- prismatic helmet - itemid = 16109, - type = "equip", - slot = "head", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- prismatic helmet - itemid = 16109, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- gill necklace - itemid = 16108, - type = "equip", - slot = "necklace", - level = 150, - }, - { - -- gill necklace - itemid = 16108, - type = "deequip", - slot = "necklace", - level = 150, - }, - { - -- spellbook of vigilance - itemid = 16107, - type = "equip", - slot = "shield", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of vigilance - itemid = 16107, - type = "deequip", - slot = "shield", - level = 130, - }, - { - -- gill legs - itemid = 16106, - type = "equip", - slot = "legs", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill legs - itemid = 16106, - type = "deequip", - slot = "legs", - level = 150, - }, - { - -- gill coat - itemid = 16105, - type = "equip", - slot = "armor", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill coat - itemid = 16105, - type = "deequip", - slot = "armor", - level = 150, - }, - { - -- gill gugel - itemid = 16104, - type = "equip", - slot = "head", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- gill gugel - itemid = 16104, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- crystal backpack - itemid = 16100, - type = "equip", - slot = "backpack", - }, - { - -- crystal backpack - itemid = 16100, - type = "deequip", - slot = "backpack", - }, - { - -- mushroom backpack - itemid = 16099, - type = "equip", - slot = "backpack", - }, - { - -- mushroom backpack - itemid = 16099, - type = "deequip", - slot = "backpack", - }, - { - -- wand of defiance - itemid = 16096, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of defiance - itemid = 16096, - type = "deequip", - slot = "hand", - level = 65, - }, - { - -- crystalline arrow - itemid = 15793, - type = "equip", - slot = "ammo", - }, - { - -- crystalline arrow - itemid = 15793, - type = "deequip", - slot = "ammo", - }, - { - -- crystal bolt - itemid = 15792, - type = "equip", - slot = "ammo", - }, - { - -- crystal bolt - itemid = 15792, - type = "deequip", - slot = "ammo", - }, - { - -- spellbook of ancient arcana - itemid = 14769, - type = "equip", - slot = "shield", - level = 150, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of ancient arcana - itemid = 14769, - type = "deequip", - slot = "shield", - level = 150, - }, - { - -- thorn spitter - itemid = 14768, - type = "equip", - slot = "hand", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- thorn spitter - itemid = 14768, - type = "deequip", - slot = "hand", - }, - { - -- mathmaster shield - itemid = 14761, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14761, - type = "deequip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14760, - type = "equip", - slot = "shield", - }, - { - -- mathmaster shield - itemid = 14760, - type = "deequip", - slot = "shield", - }, - { - -- anniversary backpack - itemid = 14674, - type = "equip", - slot = "backpack", - }, - { - -- anniversary backpack - itemid = 14674, - type = "deequip", - slot = "backpack", - }, - { - -- vortex bolt - itemid = 14252, - type = "equip", - slot = "ammo", - }, - { - -- vortex bolt - itemid = 14252, - type = "deequip", - slot = "ammo", - }, - { - -- tarsal arrow - itemid = 14251, - type = "equip", - slot = "ammo", - }, - { - -- tarsal arrow - itemid = 14251, - type = "deequip", - slot = "ammo", - }, - { - -- deepling squelcher - itemid = 14250, - type = "equip", - slot = "hand", - level = 48, - }, - { - -- deepling squelcher - itemid = 14250, - type = "deequip", - slot = "hand", - }, - { - -- buggy backpack - itemid = 14249, - type = "equip", - slot = "backpack", - }, - { - -- buggy backpack - itemid = 14249, - type = "deequip", - slot = "backpack", - }, - { - -- deepling backpack - itemid = 14248, - type = "equip", - slot = "backpack", - }, - { - -- deepling backpack - itemid = 14248, - type = "deequip", - slot = "backpack", - }, - { - -- ornate crossbow - itemid = 14247, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ornate crossbow - itemid = 14247, - type = "deequip", - slot = "hand", - }, - { - -- hive bow - itemid = 14246, - type = "equip", - slot = "hand", - level = 85, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hive bow - itemid = 14246, - type = "deequip", - slot = "hand", - }, - { - -- hive scythe - itemid = 14089, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- hive scythe - itemid = 14089, - type = "deequip", - slot = "hand", - }, - { - -- carapace shield - itemid = 14088, - type = "equip", - slot = "shield", - }, - { - -- carapace shield - itemid = 14088, - type = "deequip", - slot = "shield", - }, - { - -- grasshopper legs - itemid = 14087, - type = "equip", - slot = "legs", - level = 75, - }, - { - -- grasshopper legs - itemid = 14087, - type = "deequip", - slot = "legs", - level = 75, - }, - { - -- calopteryx cape - itemid = 14086, - type = "equip", - slot = "armor", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- calopteryx cape - itemid = 14086, - type = "deequip", - slot = "armor", - level = 80, - }, - { - -- guardian axe - itemid = 14043, - type = "equip", - slot = "hand", - level = 50, - }, - { - -- guardian axe - itemid = 14043, - type = "deequip", - slot = "hand", - }, - { - -- warrior's shield - itemid = 14042, - type = "equip", - slot = "shield", - }, - { - -- warrior's shield - itemid = 14042, - type = "deequip", - slot = "shield", - }, - { - -- warrior's axe - itemid = 14040, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- warrior's axe - itemid = 14040, - type = "deequip", - slot = "hand", - }, - { - -- ornate mace - itemid = 14001, - type = "equip", - slot = "hand", - level = 90, - }, - { - -- ornate mace - itemid = 14001, - type = "deequip", - slot = "hand", - }, - { - -- ornate shield - itemid = 14000, - type = "equip", - slot = "shield", - level = 130, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate shield - itemid = 14000, - type = "deequip", - slot = "shield", - level = 130, - }, - { - -- ornate legs - itemid = 13999, - type = "equip", - slot = "legs", - level = 185, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate legs - itemid = 13999, - type = "deequip", - slot = "legs", - level = 185, - }, - { - -- depth scutum - itemid = 13998, - type = "equip", - slot = "shield", - level = 120, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- depth scutum - itemid = 13998, - type = "deequip", - slot = "shield", - level = 120, - }, - { - -- depth calcei - itemid = 13997, - type = "equip", - slot = "feet", - level = 150, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- depth calcei - itemid = 13997, - type = "deequip", - slot = "feet", - level = 150, - }, - { - -- depth ocrea - itemid = 13996, - type = "equip", - slot = "legs", - level = 130, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- depth ocrea - itemid = 13996, - type = "deequip", - slot = "legs", - level = 130, - }, - { - -- depth galea - itemid = 13995, - type = "equip", - slot = "head", - level = 150, - }, - { - -- depth galea - itemid = 13995, - type = "deequip", - slot = "head", - level = 150, - }, - { - -- depth lorica - itemid = 13994, - type = "equip", - slot = "armor", - level = 150, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- depth lorica - itemid = 13994, - type = "deequip", - slot = "armor", - level = 150, - }, - { - -- ornate chestplate - itemid = 13993, - type = "equip", - slot = "armor", - level = 200, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate chestplate - itemid = 13993, - type = "deequip", - slot = "armor", - level = 200, - }, - { - -- deepling axe - itemid = 13991, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- deepling axe - itemid = 13991, - type = "deequip", - slot = "hand", - }, - { - -- necklace of the deep - itemid = 13990, - type = "equip", - slot = "necklace", - level = 120, - }, - { - -- necklace of the deep - itemid = 13990, - type = "deequip", - slot = "necklace", - level = 120, - }, - { - -- deepling staff - itemid = 13987, - type = "equip", - slot = "hand", - level = 38, - }, - { - -- deepling staff - itemid = 13987, - type = "deequip", - slot = "hand", - }, - { - -- the Epic Wisdom - itemid = 12810, - type = "equip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12810, - type = "deequip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12809, - type = "equip", - slot = "head", - }, - { - -- the Epic Wisdom - itemid = 12809, - type = "deequip", - slot = "head", - }, - { - -- shimmer wand - itemid = 12741, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- shimmer wand - itemid = 12741, - type = "deequip", - slot = "hand", - level = 40, - }, - { - -- broken ring of ending - itemid = 12737, - type = "equip", - slot = "ring", - }, - { - -- broken ring of ending - itemid = 12737, - type = "deequip", - slot = "ring", - }, - { - -- shimmer bow - itemid = 12733, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- shimmer bow - itemid = 12733, - type = "deequip", - slot = "hand", - }, - { - -- shimmer rod - itemid = 12732, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- shimmer rod - itemid = 12732, - type = "deequip", - slot = "hand", - level = 40, - }, - { - -- shimmer sword - itemid = 12731, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- shimmer sword - itemid = 12731, - type = "deequip", - slot = "hand", - }, - { - -- heavy trident - itemid = 12683, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- heavy trident - itemid = 12683, - type = "deequip", - slot = "hand", - }, - { - -- wooden sword - itemid = 12673, - type = "equip", - slot = "hand", - }, - { - -- wooden sword - itemid = 12673, - type = "deequip", - slot = "hand", - }, - { - -- star ring - itemid = 12670, - type = "equip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12670, - type = "deequip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12669, - type = "equip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- star ring - itemid = 12669, - type = "deequip", - slot = "ring", - vocation = { - { "None", true }, - }, - }, - { - -- wand of dimensions - itemid = 12603, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of dimensions - itemid = 12603, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- mage's cap - itemid = 12599, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- mage's cap - itemid = 12599, - type = "deequip", - slot = "head", - }, - { - -- fish tail (equipped) - itemid = 11543, - type = "equip", - slot = "feet", - }, - { - -- fish tail (equipped) - itemid = 11543, - type = "deequip", - slot = "feet", - }, - { - -- golden hyena pendant - itemid = 12543, - type = "equip", - slot = "necklace", - }, - { - -- golden hyena pendant - itemid = 12543, - type = "deequip", - slot = "necklace", - }, - { - -- golden scorpion pendant - itemid = 12542, - type = "equip", - slot = "necklace", - }, - { - -- golden scorpion pendant - itemid = 12542, - type = "deequip", - slot = "necklace", - }, - { - -- old cape - itemid = 11701, - type = "equip", - slot = "armor", - }, - { - -- old cape - itemid = 11701, - type = "deequip", - slot = "armor", - }, - { - -- sedge hat - itemid = 11700, - type = "equip", - slot = "head", - }, - { - -- sedge hat - itemid = 11700, - type = "deequip", - slot = "head", - }, - { - -- loot bag - itemid = 11698, - type = "equip", - slot = "backpack", - }, - { - -- loot bag - itemid = 11698, - type = "deequip", - slot = "backpack", - }, - { - -- blade of corruption - itemid = 11693, - type = "equip", - slot = "hand", - level = 82, - }, - { - -- blade of corruption - itemid = 11693, - type = "deequip", - slot = "hand", - level = 82, - }, - { - -- snake god's sceptre - itemid = 11692, - type = "equip", - slot = "hand", - level = 82, - }, - { - -- snake god's sceptre - itemid = 11692, - type = "deequip", - slot = "hand", - }, - { - -- snake god's wristguard - itemid = 11691, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- snake god's wristguard - itemid = 11691, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- draken boots - itemid = 4033, - type = "equip", - slot = "feet", - level = 80, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- draken boots - itemid = 4033, - type = "deequip", - slot = "feet", - level = 80, - }, - { - -- elite draken helmet - itemid = 11689, - type = "equip", - slot = "head", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- elite draken helmet - itemid = 11689, - type = "deequip", - slot = "head", - level = 100, - }, - { - -- shield of corruption - itemid = 11688, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- shield of corruption - itemid = 11688, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- royal scale robe - itemid = 11687, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- royal scale robe - itemid = 11687, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- royal draken mail - itemid = 11686, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- royal draken mail - itemid = 11686, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- cobra crown - itemid = 11674, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- cobra crown - itemid = 11674, - type = "deequip", - slot = "head", - }, - { - -- twiceslicer - itemid = 11657, - type = "equip", - slot = "hand", - level = 58, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- twiceslicer - itemid = 11657, - type = "deequip", - slot = "hand", - }, - { - -- elite draken mail - itemid = 11651, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- elite draken mail - itemid = 11651, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- fish tail (unequipped) - itemid = 11542, - type = "equip", - slot = "feet", - }, - { - -- fish tail (unequipped) - itemid = 11542, - type = "deequip", - slot = "feet", - }, - { - -- ornamented brooch - itemid = 11468, - type = "equip", - slot = "necklace", - }, - { - -- ornamented brooch - itemid = 11468, - type = "deequip", - slot = "necklace", - }, - { - -- lucky clover amulet - itemid = 10476, - type = "equip", - slot = "necklace", - }, - { - -- lucky clover amulet - itemid = 10476, - type = "deequip", - slot = "necklace", - }, - { - -- beetle necklace - itemid = 10457, - type = "equip", - slot = "necklace", - }, - { - -- beetle necklace - itemid = 10457, - type = "deequip", - slot = "necklace", - }, - { - -- jade hat - itemid = 10451, - type = "equip", - slot = "head", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- jade hat - itemid = 10451, - type = "deequip", - slot = "head", - level = 60, - }, - { - -- Zaoan robe - itemid = 10439, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- Zaoan robe - itemid = 10439, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- spellweaver's robe - itemid = 10438, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellweaver's robe - itemid = 10438, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- wailing widow's necklace - itemid = 10412, - type = "equip", - slot = "necklace", - }, - { - -- wailing widow's necklace - itemid = 10412, - type = "deequip", - slot = "necklace", - }, - { - -- Zaoan halberd - itemid = 10406, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- Zaoan halberd - itemid = 10406, - type = "deequip", - slot = "hand", - }, - { - -- twin hooks - itemid = 10392, - type = "equip", - slot = "hand", - level = 20, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- twin hooks - itemid = 10392, - type = "deequip", - slot = "hand", - }, - { - -- drachaku - itemid = 10391, - type = "equip", - slot = "hand", - level = 55, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- drachaku - itemid = 10391, - type = "deequip", - slot = "hand", - }, - { - -- Zaoan sword - itemid = 10390, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- Zaoan sword - itemid = 10390, - type = "deequip", - slot = "hand", - }, - { - -- sai - itemid = 10389, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sai - itemid = 10389, - type = "deequip", - slot = "hand", - }, - { - -- drakinata - itemid = 10388, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- drakinata - itemid = 10388, - type = "deequip", - slot = "hand", - }, - { - -- Zaoan legs - itemid = 10387, - type = "equip", - slot = "legs", - }, - { - -- Zaoan legs - itemid = 10387, - type = "deequip", - slot = "legs", - }, - { - -- zaoan shoes - itemid = 10386, - type = "equip", - slot = "feet", - }, - { - -- zaoan shoes - itemid = 10386, - type = "deequip", - slot = "feet", - }, - { - -- Zaoan helmet - itemid = 10385, - type = "equip", - slot = "head", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- Zaoan helmet - itemid = 10385, - type = "deequip", - slot = "head", - }, - { - -- Zaoan armor - itemid = 10384, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- Zaoan armor - itemid = 10384, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- santa backpack - itemid = 10346, - type = "equip", - slot = "backpack", - }, - { - -- santa backpack - itemid = 10346, - type = "deequip", - slot = "backpack", - }, - { - -- minotaur backpack - itemid = 10327, - type = "equip", - slot = "backpack", - }, - { - -- minotaur backpack - itemid = 10327, - type = "deequip", - slot = "backpack", - }, - { - -- dragon backpack - itemid = 10326, - type = "equip", - slot = "backpack", - }, - { - -- dragon backpack - itemid = 10326, - type = "deequip", - slot = "backpack", - }, - { - -- expedition bag - itemid = 10325, - type = "equip", - slot = "backpack", - }, - { - -- expedition bag - itemid = 10325, - type = "deequip", - slot = "backpack", - }, - { - -- expedition backpack - itemid = 10324, - type = "equip", - slot = "backpack", - }, - { - -- expedition backpack - itemid = 10324, - type = "deequip", - slot = "backpack", - }, - { - -- guardian boots - itemid = 10323, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- guardian boots - itemid = 10323, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- heart backpack - itemid = 10202, - type = "equip", - slot = "backpack", - }, - { - -- heart backpack - itemid = 10202, - type = "deequip", - slot = "backpack", - }, - { - -- dragon scale boots - itemid = 10201, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- dragon scale boots - itemid = 10201, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- crystal boots - itemid = 10200, - type = "equip", - slot = "feet", - level = 70, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crystal boots - itemid = 10200, - type = "deequip", - slot = "feet", - level = 70, - }, - { - -- witch hat - itemid = 9653, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- witch hat - itemid = 9653, - type = "deequip", - slot = "head", - }, - { - -- crown backpack - itemid = 9605, - type = "equip", - slot = "backpack", - }, - { - -- crown backpack - itemid = 9605, - type = "deequip", - slot = "backpack", - }, - { - -- moon backpack - itemid = 9604, - type = "equip", - slot = "backpack", - }, - { - -- moon backpack - itemid = 9604, - type = "deequip", - slot = "backpack", - }, - { - -- orange bag - itemid = 9603, - type = "equip", - slot = "backpack", - }, - { - -- orange bag - itemid = 9603, - type = "deequip", - slot = "backpack", - }, - { - -- orange backpack - itemid = 9602, - type = "equip", - slot = "backpack", - }, - { - -- orange backpack - itemid = 9602, - type = "deequip", - slot = "backpack", - }, - { - -- demon backpack - itemid = 9601, - type = "equip", - slot = "backpack", - }, - { - -- demon backpack - itemid = 9601, - type = "deequip", - slot = "backpack", - }, - { - -- broken wedding ring - itemid = 9593, - type = "equip", - slot = "ring", - }, - { - -- broken wedding ring - itemid = 9593, - type = "deequip", - slot = "ring", - }, - { - -- engraved wedding ring - itemid = 9585, - type = "equip", - slot = "ring", - }, - { - -- engraved wedding ring - itemid = 9585, - type = "deequip", - slot = "ring", - }, - { - -- the shield Nevermourn - itemid = 9447, - type = "equip", - slot = "shield", - }, - { - -- the shield Nevermourn - itemid = 9447, - type = "deequip", - slot = "shield", - }, - { - -- the rain coat - itemid = 9446, - type = "equip", - slot = "armor", - }, - { - -- the rain coat - itemid = 9446, - type = "deequip", - slot = "armor", - }, - { - -- the shield Nevermourn - itemid = 9401, - type = "equip", - slot = "shield", - }, - { - -- the shield Nevermourn - itemid = 9401, - type = "deequip", - slot = "shield", - }, - { - -- the rain coat - itemid = 9400, - type = "equip", - slot = "armor", - }, - { - -- the rain coat - itemid = 9400, - type = "deequip", - slot = "armor", - }, - { - -- mighty helm of green sparks - itemid = 9399, - type = "equip", - slot = "head", - }, - { - -- mighty helm of green sparks - itemid = 9399, - type = "deequip", - slot = "head", - }, - { - -- incredible mumpiz slayer - itemid = 9396, - type = "equip", - slot = "hand", - }, - { - -- incredible mumpiz slayer - itemid = 9396, - type = "deequip", - slot = "hand", - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9394, - type = "equip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9394, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9392, - type = "equip", - slot = "ring", - level = 100, - }, - { - -- claw of 'The Noxious Spawn' - itemid = 9392, - type = "deequip", - slot = "ring", - level = 100, - }, - { - -- poet's fencing quill - itemid = 9387, - type = "equip", - slot = "hand", - }, - { - -- poet's fencing quill - itemid = 9387, - type = "deequip", - slot = "hand", - }, - { - -- farmer's avenger - itemid = 9386, - type = "equip", - slot = "hand", - }, - { - -- farmer's avenger - itemid = 9386, - type = "deequip", - slot = "hand", - }, - { - -- club of the fury - itemid = 9385, - type = "equip", - slot = "hand", - }, - { - -- club of the fury - itemid = 9385, - type = "deequip", - slot = "hand", - }, - { - -- scythe of the reaper - itemid = 9384, - type = "equip", - slot = "hand", - }, - { - -- scythe of the reaper - itemid = 9384, - type = "deequip", - slot = "hand", - }, - { - -- trousers of the ancients - itemid = 9383, - type = "equip", - slot = "legs", - }, - { - -- trousers of the ancients - itemid = 9383, - type = "deequip", - slot = "legs", - }, - { - -- helmet of nature - itemid = 9382, - type = "equip", - slot = "head", - }, - { - -- helmet of nature - itemid = 9382, - type = "deequip", - slot = "head", - }, - { - -- helmet of ultimate terror - itemid = 9381, - type = "equip", - slot = "head", - }, - { - -- helmet of ultimate terror - itemid = 9381, - type = "deequip", - slot = "head", - }, - { - -- shield of care - itemid = 9380, - type = "equip", - slot = "shield", - }, - { - -- shield of care - itemid = 9380, - type = "deequip", - slot = "shield", - }, - { - -- heavy metal t-shirt - itemid = 9379, - type = "equip", - slot = "armor", - }, - { - -- heavy metal t-shirt - itemid = 9379, - type = "deequip", - slot = "armor", - }, - { - -- musician's bow - itemid = 9378, - type = "equip", - slot = "hand", - }, - { - -- musician's bow - itemid = 9378, - type = "deequip", - slot = "hand", - }, - { - -- shield of the white knight - itemid = 9377, - type = "equip", - slot = "shield", - }, - { - -- shield of the white knight - itemid = 9377, - type = "deequip", - slot = "shield", - }, - { - -- stale bread of ancientness - itemid = 9376, - type = "equip", - slot = "hand", - }, - { - -- stale bread of ancientness - itemid = 9376, - type = "deequip", - slot = "hand", - }, - { - -- pointed rabbitslayer - itemid = 9375, - type = "equip", - slot = "hand", - }, - { - -- pointed rabbitslayer - itemid = 9375, - type = "deequip", - slot = "hand", - }, - { - -- odd hat - itemid = 9374, - type = "equip", - slot = "head", - }, - { - -- odd hat - itemid = 9374, - type = "deequip", - slot = "head", - }, - { - -- glutton's mace - itemid = 9373, - type = "equip", - slot = "hand", - }, - { - -- glutton's mace - itemid = 9373, - type = "deequip", - slot = "hand", - }, - { - -- meat shield - itemid = 9372, - type = "equip", - slot = "shield", - }, - { - -- meat shield - itemid = 9372, - type = "deequip", - slot = "shield", - }, - { - -- shockwave amulet - itemid = 9304, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- shockwave amulet - itemid = 9304, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- leviathan's amulet - itemid = 9303, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- leviathan's amulet - itemid = 9303, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- sacred tree amulet - itemid = 9302, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- sacred tree amulet - itemid = 9302, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- bonfire amulet - itemid = 9301, - type = "equip", - slot = "necklace", - level = 80, - }, - { - -- bonfire amulet - itemid = 9301, - type = "deequip", - slot = "necklace", - level = 80, - }, - { - -- laurel wreath - itemid = 9221, - type = "equip", - slot = "head", - }, - { - -- laurel wreath - itemid = 9221, - type = "deequip", - slot = "head", - }, - { - -- bronze medal - itemid = 9217, - type = "equip", - slot = "necklace", - }, - { - -- bronze medal - itemid = 9217, - type = "deequip", - slot = "necklace", - }, - { - -- silver medal - itemid = 9216, - type = "equip", - slot = "necklace", - }, - { - -- silver medal - itemid = 9216, - type = "deequip", - slot = "necklace", - }, - { - -- gold medal - itemid = 9215, - type = "equip", - slot = "necklace", - }, - { - -- gold medal - itemid = 9215, - type = "deequip", - slot = "necklace", - }, - { - -- grey bag - itemid = 9151, - type = "equip", - slot = "backpack", - }, - { - -- grey bag - itemid = 9151, - type = "deequip", - slot = "backpack", - }, - { - -- batwing hat - itemid = 9103, - type = "equip", - slot = "head", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- batwing hat - itemid = 9103, - type = "deequip", - slot = "head", - level = 50, - }, - { - -- pair firewalker boots - itemid = 9019, - type = "equip", - slot = "feet", - level = 130, - }, - { - -- pair firewalker boots - itemid = 9019, - type = "deequip", - slot = "feet", - level = 130, - }, - { - -- firewalker boots - itemid = 9018, - type = "equip", - slot = "feet", - level = 130, - }, - { - -- firewalker boots - itemid = 9018, - type = "deequip", - slot = "feet", - level = 130, - }, - { - -- coconut shoes - itemid = 9017, - type = "equip", - slot = "feet", - }, - { - -- coconut shoes - itemid = 9017, - type = "deequip", - slot = "feet", - }, - { - -- flower dress - itemid = 9015, - type = "equip", - slot = "armor", - }, - { - -- flower dress - itemid = 9015, - type = "deequip", - slot = "armor", - }, - { - -- leaf legs - itemid = 9014, - type = "equip", - slot = "legs", - }, - { - -- leaf legs - itemid = 9014, - type = "deequip", - slot = "legs", - }, - { - -- flower wreath - itemid = 9013, - type = "equip", - slot = "head", - }, - { - -- flower wreath - itemid = 9013, - type = "deequip", - slot = "head", - }, - { - -- yalahari mask - itemid = 8864, - type = "equip", - slot = "head", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- yalahari mask - itemid = 8864, - type = "deequip", - slot = "head", - level = 80, - }, - { - -- yalahari leg piece - itemid = 8863, - type = "equip", - slot = "legs", - level = 80, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- yalahari leg piece - itemid = 8863, - type = "deequip", - slot = "legs", - level = 80, - }, - { - -- yalahari armor - itemid = 8862, - type = "equip", - slot = "armor", - level = 80, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- yalahari armor - itemid = 8862, - type = "deequip", - slot = "armor", - level = 80, - }, - { - -- brocade bag - itemid = 8861, - type = "equip", - slot = "backpack", - }, - { - -- brocade bag - itemid = 8861, - type = "deequip", - slot = "backpack", - }, - { - -- brocade backpack - itemid = 8860, - type = "equip", - slot = "backpack", - }, - { - -- brocade backpack - itemid = 8860, - type = "deequip", - slot = "backpack", - }, - { - -- golden bag - itemid = 655, - type = "equip", - slot = "backpack", - }, - { - -- golden bag - itemid = 655, - type = "deequip", - slot = "backpack", - }, - { - -- purple bag - itemid = 653, - type = "equip", - slot = "backpack", - }, - { - -- purple bag - itemid = 653, - type = "deequip", - slot = "backpack", - }, - { - -- the calamity - itemid = 8104, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the calamity - itemid = 8104, - type = "deequip", - slot = "hand", - }, - { - -- the epiphany - itemid = 8103, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- the epiphany - itemid = 8103, - type = "deequip", - slot = "hand", - }, - { - -- emerald sword - itemid = 8102, - type = "equip", - slot = "hand", - level = 100, - }, - { - -- emerald sword - itemid = 8102, - type = "deequip", - slot = "hand", - }, - { - -- the stomper - itemid = 8101, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the stomper - itemid = 8101, - type = "deequip", - slot = "hand", - }, - { - -- obsidian truncheon - itemid = 8100, - type = "equip", - slot = "hand", - level = 100, - }, - { - -- obsidian truncheon - itemid = 8100, - type = "deequip", - slot = "hand", - }, - { - -- dark trinity mace - itemid = 8099, - type = "equip", - slot = "hand", - level = 120, - }, - { - -- dark trinity mace - itemid = 8099, - type = "deequip", - slot = "hand", - }, - { - -- demonwing axe - itemid = 8098, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- demonwing axe - itemid = 8098, - type = "deequip", - slot = "hand", - }, - { - -- solar axe - itemid = 8097, - type = "equip", - slot = "hand", - level = 130, - }, - { - -- solar axe - itemid = 8097, - type = "deequip", - slot = "hand", - }, - { - -- hellforged axe - itemid = 8096, - type = "equip", - slot = "hand", - level = 110, - }, - { - -- hellforged axe - itemid = 8096, - type = "deequip", - slot = "hand", - }, - { - -- ranger legs - itemid = 8095, - type = "equip", - slot = "legs", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ranger legs - itemid = 8095, - type = "deequip", - slot = "legs", - }, - { - -- wand of voodoo - itemid = 8094, - type = "equip", - slot = "hand", - level = 42, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of voodoo - itemid = 8094, - type = "deequip", - slot = "hand", - level = 42, - }, - { - -- wand of draconia - itemid = 8093, - type = "equip", - slot = "hand", - level = 22, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of draconia - itemid = 8093, - type = "deequip", - slot = "hand", - level = 22, - }, - { - -- wand of starstorm - itemid = 8092, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of starstorm - itemid = 8092, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- spellbook of dark mysteries - itemid = 8090, - type = "equip", - slot = "shield", - level = 80, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of dark mysteries - itemid = 8090, - type = "deequip", - slot = "shield", - level = 80, - }, - { - -- springsprout rod - itemid = 8084, - type = "equip", - slot = "hand", - level = 37, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- springsprout rod - itemid = 8084, - type = "deequip", - slot = "hand", - level = 37, - }, - { - -- northwind rod - itemid = 8083, - type = "equip", - slot = "hand", - level = 22, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- northwind rod - itemid = 8083, - type = "deequip", - slot = "hand", - level = 22, - }, - { - -- underworld rod - itemid = 8082, - type = "equip", - slot = "hand", - level = 42, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- underworld rod - itemid = 8082, - type = "deequip", - slot = "hand", - level = 42, - }, - { - -- terran rainbow shield - itemid = 8081, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- terran rainbow shield - itemid = 8081, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- sparking rainbow shield - itemid = 8080, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sparking rainbow shield - itemid = 8080, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- icy rainbow shield - itemid = 8079, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy rainbow shield - itemid = 8079, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- fiery rainbow shield - itemid = 8078, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery rainbow shield - itemid = 8078, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- rainbow shield - itemid = 8077, - type = "equip", - slot = "shield", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rainbow shield - itemid = 8077, - type = "deequip", - slot = "shield", - level = 100, - }, - { - -- spellscroll of prophecies - itemid = 8076, - type = "equip", - slot = "shield", - level = 70, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellscroll of prophecies - itemid = 8076, - type = "deequip", - slot = "shield", - level = 70, - }, - { - -- spellbook of lost souls - itemid = 8075, - type = "equip", - slot = "shield", - level = 60, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of lost souls - itemid = 8075, - type = "deequip", - slot = "shield", - level = 60, - }, - { - -- spellbook of mind control - itemid = 8074, - type = "equip", - slot = "shield", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of mind control - itemid = 8074, - type = "deequip", - slot = "shield", - level = 50, - }, - { - -- spellbook of warding - itemid = 8073, - type = "equip", - slot = "shield", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of warding - itemid = 8073, - type = "deequip", - slot = "shield", - level = 40, - }, - { - -- spellbook of enlightenment - itemid = 8072, - type = "equip", - slot = "shield", - level = 30, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook of enlightenment - itemid = 8072, - type = "deequip", - slot = "shield", - level = 30, - }, - { - -- ethno coat - itemid = 8064, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- ethno coat - itemid = 8064, - type = "deequip", - slot = "armor", - }, - { - -- paladin armor - itemid = 8063, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- paladin armor - itemid = 8063, - type = "deequip", - slot = "armor", - }, - { - -- robe of the underworld - itemid = 8062, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- robe of the underworld - itemid = 8062, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- skullcracker armor - itemid = 8061, - type = "equip", - slot = "armor", - level = 85, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- skullcracker armor - itemid = 8061, - type = "deequip", - slot = "armor", - level = 85, - }, - { - -- master archer's armor - itemid = 8060, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- master archer's armor - itemid = 8060, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- frozen plate - itemid = 8059, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- frozen plate - itemid = 8059, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- molten plate - itemid = 8058, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- molten plate - itemid = 8058, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- divine plate - itemid = 8057, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- divine plate - itemid = 8057, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- oceanborn leviathan armor - itemid = 8056, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- oceanborn leviathan armor - itemid = 8056, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- windborn colossus armor - itemid = 8055, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- windborn colossus armor - itemid = 8055, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- earthborn titan armor - itemid = 8054, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earthborn titan armor - itemid = 8054, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- fireborn giant armor - itemid = 8053, - type = "equip", - slot = "armor", - level = 100, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fireborn giant armor - itemid = 8053, - type = "deequip", - slot = "armor", - level = 100, - }, - { - -- swamplair armor - itemid = 8052, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- swamplair armor - itemid = 8052, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- voltage armor - itemid = 8051, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- voltage armor - itemid = 8051, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- crystalline armor - itemid = 8050, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crystalline armor - itemid = 8050, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- lavos armor - itemid = 8049, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- lavos armor - itemid = 8049, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- girl's dress - itemid = 8048, - type = "equip", - slot = "armor", - }, - { - -- girl's dress - itemid = 8048, - type = "deequip", - slot = "armor", - }, - { - -- tunic - itemid = 8047, - type = "equip", - slot = "armor", - }, - { - -- tunic - itemid = 8047, - type = "deequip", - slot = "armor", - }, - { - -- summer dress - itemid = 8046, - type = "equip", - slot = "armor", - }, - { - -- summer dress - itemid = 8046, - type = "deequip", - slot = "armor", - }, - { - -- hibiscus dress - itemid = 8045, - type = "equip", - slot = "armor", - }, - { - -- hibiscus dress - itemid = 8045, - type = "deequip", - slot = "armor", - }, - { - -- belted cape - itemid = 8044, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- belted cape - itemid = 8044, - type = "deequip", - slot = "armor", - }, - { - -- focus cape - itemid = 8043, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- focus cape - itemid = 8043, - type = "deequip", - slot = "armor", - }, - { - -- spirit cloak - itemid = 8042, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spirit cloak - itemid = 8042, - type = "deequip", - slot = "armor", - }, - { - -- greenwood coat - itemid = 8041, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- greenwood coat - itemid = 8041, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- velvet mantle - itemid = 8040, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- velvet mantle - itemid = 8040, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- dragon robe - itemid = 8039, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- dragon robe - itemid = 8039, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- robe of the ice queen - itemid = 8038, - type = "equip", - slot = "armor", - level = 75, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- robe of the ice queen - itemid = 8038, - type = "deequip", - slot = "armor", - level = 75, - }, - { - -- dark lord's cape - itemid = 8037, - type = "equip", - slot = "armor", - level = 65, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- dark lord's cape - itemid = 8037, - type = "deequip", - slot = "armor", - level = 65, - }, - { - -- elethriel's elemental bow - itemid = 8030, - type = "equip", - slot = "hand", - level = 70, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- elethriel's elemental bow - itemid = 8030, - type = "deequip", - slot = "hand", - }, - { - -- silkweaver bow - itemid = 8029, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- silkweaver bow - itemid = 8029, - type = "deequip", - slot = "hand", - }, - { - -- yol's bow - itemid = 8028, - type = "equip", - slot = "hand", - level = 60, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- yol's bow - itemid = 8028, - type = "deequip", - slot = "hand", - }, - { - -- composite hornbow - itemid = 8027, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- composite hornbow - itemid = 8027, - type = "deequip", - slot = "hand", - }, - { - -- warsinger bow - itemid = 8026, - type = "equip", - slot = "hand", - level = 80, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- warsinger bow - itemid = 8026, - type = "deequip", - slot = "hand", - }, - { - -- The ironworker - itemid = 8025, - type = "equip", - slot = "hand", - level = 80, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- The ironworker - itemid = 8025, - type = "deequip", - slot = "hand", - }, - { - -- The Devileye - itemid = 8024, - type = "equip", - slot = "hand", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- The Devileye - itemid = 8024, - type = "deequip", - slot = "hand", - level = 100, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- royal crossbow - itemid = 8023, - type = "equip", - slot = "hand", - level = 130, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- royal crossbow - itemid = 8023, - type = "deequip", - slot = "hand", - }, - { - -- chain bolter - itemid = 8022, - type = "equip", - slot = "hand", - level = 60, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- chain bolter - itemid = 8022, - type = "deequip", - slot = "hand", - }, - { - -- modified crossbow - itemid = 8021, - type = "equip", - slot = "hand", - level = 45, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- modified crossbow - itemid = 8021, - type = "deequip", - slot = "hand", - }, - { - -- witchhunter's coat - itemid = 7993, - type = "equip", - slot = "armor", - level = 50, - }, - { - -- witchhunter's coat - itemid = 7993, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- mage hat - itemid = 7992, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- mage hat - itemid = 7992, - type = "deequip", - slot = "head", - }, - { - -- magician's robe - itemid = 7991, - type = "equip", - slot = "armor", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magician's robe - itemid = 7991, - type = "deequip", - slot = "armor", - }, - { - -- jagged sword - itemid = 7774, - type = "equip", - slot = "hand", - }, - { - -- jagged sword - itemid = 7774, - type = "deequip", - slot = "hand", - }, - { - -- steel axe - itemid = 7773, - type = "equip", - slot = "hand", - }, - { - -- steel axe - itemid = 7773, - type = "deequip", - slot = "hand", - }, - { - -- Jerom's family necklace - itemid = 7754, - type = "equip", - slot = "necklace", - }, - { - -- Jerom's family necklace - itemid = 7754, - type = "deequip", - slot = "necklace", - }, - { - -- Koshei's ancient amulet - itemid = 7532, - type = "equip", - slot = "necklace", - }, - { - -- Koshei's ancient amulet - itemid = 7532, - type = "deequip", - slot = "necklace", - }, - { - -- viper star - itemid = 7366, - type = "equip", - slot = "hand", - }, - { - -- viper star - itemid = 7366, - type = "deequip", - slot = "hand", - }, - { - -- crimson sword - itemid = 860, - type = "equip", - slot = "hand", - }, - { - -- crimson sword - itemid = 860, - type = "deequip", - slot = "hand", - }, - { - -- shapeshifter ring - itemid = 908, - type = "equip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 908, - type = "deequip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 907, - type = "equip", - slot = "ring", - }, - { - -- shapeshifter ring - itemid = 907, - type = "deequip", - slot = "ring", - }, - { - -- Throwing Cake - itemid = 904, - type = "equip", - slot = "ring", - }, - { - -- Throwing Cake - itemid = 904, - type = "deequip", - slot = "ring", - }, - { - -- jester hat - itemid = 894, - type = "equip", - slot = "head", - }, - { - -- jester hat - itemid = 894, - type = "deequip", - slot = "head", - }, - { - -- terra hood - itemid = 830, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra hood - itemid = 830, - type = "deequip", - slot = "head", - }, - { - -- glacier mask - itemid = 829, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier mask - itemid = 829, - type = "deequip", - slot = "head", - }, - { - -- lightning headband - itemid = 828, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning headband - itemid = 828, - type = "deequip", - slot = "head", - }, - { - -- magma monocle - itemid = 827, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma monocle - itemid = 827, - type = "deequip", - slot = "head", - }, - { - -- magma coat - itemid = 826, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma coat - itemid = 826, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- lightning robe - itemid = 825, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning robe - itemid = 825, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- glacier robe - itemid = 824, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier robe - itemid = 824, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- glacier kilt - itemid = 823, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier kilt - itemid = 823, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- lightning legs - itemid = 822, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning legs - itemid = 822, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- magma legs - itemid = 821, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma legs - itemid = 821, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- lightning boots - itemid = 820, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- lightning boots - itemid = 820, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- glacier shoes - itemid = 819, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- glacier shoes - itemid = 819, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- magma boots - itemid = 818, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- magma boots - itemid = 818, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- magma amulet - itemid = 817, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- magma amulet - itemid = 817, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- lightning pendant - itemid = 816, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- lightning pendant - itemid = 816, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- glacier amulet - itemid = 815, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- glacier amulet - itemid = 815, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- terra amulet - itemid = 814, - type = "equip", - slot = "necklace", - level = 60, - }, - { - -- terra amulet - itemid = 814, - type = "deequip", - slot = "necklace", - level = 60, - }, - { - -- terra boots - itemid = 813, - type = "equip", - slot = "feet", - level = 35, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra boots - itemid = 813, - type = "deequip", - slot = "feet", - level = 35, - }, - { - -- terra legs - itemid = 812, - type = "equip", - slot = "legs", - level = 40, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra legs - itemid = 812, - type = "deequip", - slot = "legs", - level = 40, - }, - { - -- terra mantle - itemid = 811, - type = "equip", - slot = "armor", - level = 50, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- terra mantle - itemid = 811, - type = "deequip", - slot = "armor", - level = 50, - }, - { - -- energy war hammer - itemid = 810, - type = "equip", - slot = "hand", - }, - { - -- energy war hammer - itemid = 810, - type = "deequip", - slot = "hand", - }, - { - -- energy orcish maul - itemid = 809, - type = "equip", - slot = "hand", - }, - { - -- energy orcish maul - itemid = 809, - type = "deequip", - slot = "hand", - }, - { - -- energy cranial basher - itemid = 808, - type = "equip", - slot = "hand", - }, - { - -- energy cranial basher - itemid = 808, - type = "deequip", - slot = "hand", - }, - { - -- energy crystal mace - itemid = 807, - type = "equip", - slot = "hand", - }, - { - -- energy crystal mace - itemid = 807, - type = "deequip", - slot = "hand", - }, - { - -- energy clerical mace - itemid = 806, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- energy clerical mace - itemid = 806, - type = "deequip", - slot = "hand", - }, - { - -- energy war axe - itemid = 805, - type = "equip", - slot = "hand", - }, - { - -- energy war axe - itemid = 805, - type = "deequip", - slot = "hand", - }, - { - -- energy headchopper - itemid = 804, - type = "equip", - slot = "hand", - }, - { - -- energy headchopper - itemid = 804, - type = "deequip", - slot = "hand", - }, - { - -- energy heroic axe - itemid = 803, - type = "equip", - slot = "hand", - }, - { - -- energy heroic axe - itemid = 803, - type = "deequip", - slot = "hand", - }, - { - -- energy knight axe - itemid = 802, - type = "equip", - slot = "hand", - }, - { - -- energy knight axe - itemid = 802, - type = "deequip", - slot = "hand", - }, - { - -- energy barbarian axe - itemid = 801, - type = "equip", - slot = "hand", - }, - { - -- energy barbarian axe - itemid = 801, - type = "deequip", - slot = "hand", - }, - { - -- energy dragon slayer - itemid = 798, - type = "equip", - slot = "hand", - level = 45, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy dragon slayer - itemid = 798, - type = "deequip", - slot = "hand", - }, - { - -- energy blacksteel sword - itemid = 797, - type = "equip", - slot = "hand", - }, - { - -- energy blacksteel sword - itemid = 797, - type = "deequip", - slot = "hand", - }, - { - -- energy mystic blade - itemid = 796, - type = "equip", - slot = "hand", - }, - { - -- energy mystic blade - itemid = 796, - type = "deequip", - slot = "hand", - }, - { - -- energy relic sword - itemid = 795, - type = "equip", - slot = "hand", - }, - { - -- energy relic sword - itemid = 795, - type = "deequip", - slot = "hand", - }, - { - -- energy spike sword - itemid = 794, - type = "equip", - slot = "hand", - }, - { - -- energy spike sword - itemid = 794, - type = "deequip", - slot = "hand", - }, - { - -- earth war hammer - itemid = 793, - type = "equip", - slot = "hand", - }, - { - -- earth war hammer - itemid = 793, - type = "deequip", - slot = "hand", - }, - { - -- earth orcish maul - itemid = 792, - type = "equip", - slot = "hand", - }, - { - -- earth orcish maul - itemid = 792, - type = "deequip", - slot = "hand", - }, - { - -- earth cranial basher - itemid = 791, - type = "equip", - slot = "hand", - }, - { - -- earth cranial basher - itemid = 791, - type = "deequip", - slot = "hand", - }, - { - -- earth crystal mace - itemid = 790, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- earth crystal mace - itemid = 790, - type = "deequip", - slot = "hand", - }, - { - -- earth clerical mace - itemid = 789, - type = "equip", - slot = "hand", - }, - { - -- earth clerical mace - itemid = 789, - type = "deequip", - slot = "hand", - }, - { - -- earth war axe - itemid = 788, - type = "equip", - slot = "hand", - }, - { - -- earth war axe - itemid = 788, - type = "deequip", - slot = "hand", - }, - { - -- earth headchopper - itemid = 787, - type = "equip", - slot = "hand", - }, - { - -- earth headchopper - itemid = 787, - type = "deequip", - slot = "hand", - }, - { - -- earth heroic axe - itemid = 786, - type = "equip", - slot = "hand", - }, - { - -- earth heroic axe - itemid = 786, - type = "deequip", - slot = "hand", - }, - { - -- earth knight axe - itemid = 785, - type = "equip", - slot = "hand", - }, - { - -- earth knight axe - itemid = 785, - type = "deequip", - slot = "hand", - }, - { - -- earth barbarian axe - itemid = 784, - type = "equip", - slot = "hand", - }, - { - -- earth barbarian axe - itemid = 784, - type = "deequip", - slot = "hand", - }, - { - -- earth dragon slayer - itemid = 783, - type = "equip", - slot = "hand", - }, - { - -- earth dragon slayer - itemid = 783, - type = "deequip", - slot = "hand", - }, - { - -- earth blacksteel sword - itemid = 782, - type = "equip", - slot = "hand", - }, - { - -- earth blacksteel sword - itemid = 782, - type = "deequip", - slot = "hand", - }, - { - -- earth mystic blade - itemid = 781, - type = "equip", - slot = "hand", - }, - { - -- earth mystic blade - itemid = 781, - type = "deequip", - slot = "hand", - }, - { - -- earth relic sword - itemid = 780, - type = "equip", - slot = "hand", - }, - { - -- earth relic sword - itemid = 780, - type = "deequip", - slot = "hand", - }, - { - -- earth spike sword - itemid = 779, - type = "equip", - slot = "hand", - }, - { - -- earth spike sword - itemid = 779, - type = "deequip", - slot = "hand", - }, - { - -- earth arrow - itemid = 774, - type = "equip", - slot = "ammo", - }, - { - -- earth arrow - itemid = 774, - type = "deequip", - slot = "ammo", - }, - { - -- flaming arrow - itemid = 763, - type = "equip", - slot = "ammo", - }, - { - -- flaming arrow - itemid = 763, - type = "deequip", - slot = "ammo", - }, - { - -- shiver arrow - itemid = 762, - type = "equip", - slot = "ammo", - }, - { - -- shiver arrow - itemid = 762, - type = "deequip", - slot = "ammo", - }, - { - -- flash arrow - itemid = 761, - type = "equip", - slot = "ammo", - }, - { - -- flash arrow - itemid = 761, - type = "deequip", - slot = "ammo", - }, - { - -- icy war hammer - itemid = 693, - type = "equip", - slot = "hand", - }, - { - -- icy war hammer - itemid = 693, - type = "deequip", - slot = "hand", - }, - { - -- icy orcish maul - itemid = 692, - type = "equip", - slot = "hand", - }, - { - -- icy orcish maul - itemid = 692, - type = "deequip", - slot = "hand", - }, - { - -- icy cranial basher - itemid = 691, - type = "equip", - slot = "hand", - }, - { - -- icy cranial basher - itemid = 691, - type = "deequip", - slot = "hand", - }, - { - -- icy crystal mace - itemid = 690, - type = "equip", - slot = "hand", - }, - { - -- icy crystal mace - itemid = 690, - type = "deequip", - slot = "hand", - }, - { - -- icy clerical mace - itemid = 689, - type = "equip", - slot = "hand", - }, - { - -- icy clerical mace - itemid = 689, - type = "deequip", - slot = "hand", - }, - { - -- icy war axe - itemid = 688, - type = "equip", - slot = "hand", - }, - { - -- icy war axe - itemid = 688, - type = "deequip", - slot = "hand", - }, - { - -- icy headchopper - itemid = 687, - type = "equip", - slot = "hand", - }, - { - -- icy headchopper - itemid = 687, - type = "deequip", - slot = "hand", - }, - { - -- icy heroic axe - itemid = 686, - type = "equip", - slot = "hand", - }, - { - -- icy heroic axe - itemid = 686, - type = "deequip", - slot = "hand", - }, - { - -- icy knight axe - itemid = 685, - type = "equip", - slot = "hand", - }, - { - -- icy knight axe - itemid = 685, - type = "deequip", - slot = "hand", - }, - { - -- icy barbarian axe - itemid = 684, - type = "equip", - slot = "hand", - }, - { - -- icy barbarian axe - itemid = 684, - type = "deequip", - slot = "hand", - }, - { - -- icy dragon slayer - itemid = 683, - type = "equip", - slot = "hand", - }, - { - -- icy dragon slayer - itemid = 683, - type = "deequip", - slot = "hand", - }, - { - -- icy blacksteel sword - itemid = 682, - type = "equip", - slot = "hand", - }, - { - -- icy blacksteel sword - itemid = 682, - type = "deequip", - slot = "hand", - }, - { - -- icy mystic blade - itemid = 681, - type = "equip", - slot = "hand", - }, - { - -- icy mystic blade - itemid = 681, - type = "deequip", - slot = "hand", - }, - { - -- icy relic sword - itemid = 680, - type = "equip", - slot = "hand", - }, - { - -- icy relic sword - itemid = 680, - type = "deequip", - slot = "hand", - }, - { - -- icy spike sword - itemid = 679, - type = "equip", - slot = "hand", - }, - { - -- icy spike sword - itemid = 679, - type = "deequip", - slot = "hand", - }, - { - -- fiery war hammer - itemid = 674, - type = "equip", - slot = "hand", - }, - { - -- fiery war hammer - itemid = 674, - type = "deequip", - slot = "hand", - }, - { - -- fiery orcish maul - itemid = 673, - type = "equip", - slot = "hand", - }, - { - -- fiery orcish maul - itemid = 673, - type = "deequip", - slot = "hand", - }, - { - -- fiery cranial basher - itemid = 672, - type = "equip", - slot = "hand", - }, - { - -- fiery cranial basher - itemid = 672, - type = "deequip", - slot = "hand", - }, - { - -- fiery crystal mace - itemid = 671, - type = "equip", - slot = "hand", - }, - { - -- fiery crystal mace - itemid = 671, - type = "deequip", - slot = "hand", - }, - { - -- fiery clerical mace - itemid = 670, - type = "equip", - slot = "hand", - }, - { - -- fiery clerical mace - itemid = 670, - type = "deequip", - slot = "hand", - }, - { - -- fiery war axe - itemid = 669, - type = "equip", - slot = "hand", - }, - { - -- fiery war axe - itemid = 669, - type = "deequip", - slot = "hand", - }, - { - -- fiery headchopper - itemid = 668, - type = "equip", - slot = "hand", - }, - { - -- fiery headchopper - itemid = 668, - type = "deequip", - slot = "hand", - }, - { - -- fiery heroic axe - itemid = 667, - type = "equip", - slot = "hand", - }, - { - -- fiery heroic axe - itemid = 667, - type = "deequip", - slot = "hand", - }, - { - -- fiery knight axe - itemid = 666, - type = "equip", - slot = "hand", - }, - { - -- fiery knight axe - itemid = 666, - type = "deequip", - slot = "hand", - }, - { - -- fiery barbarian axe - itemid = 665, - type = "equip", - slot = "hand", - }, - { - -- fiery barbarian axe - itemid = 665, - type = "deequip", - slot = "hand", - }, - { - -- fiery dragon slayer - itemid = 664, - type = "equip", - slot = "hand", - }, - { - -- fiery dragon slayer - itemid = 664, - type = "deequip", - slot = "hand", - }, - { - -- fiery blacksteel sword - itemid = 663, - type = "equip", - slot = "hand", - }, - { - -- fiery blacksteel sword - itemid = 663, - type = "deequip", - slot = "hand", - }, - { - -- fiery mystic blade - itemid = 662, - type = "equip", - slot = "hand", - }, - { - -- fiery mystic blade - itemid = 662, - type = "deequip", - slot = "hand", - }, - { - -- fiery relic sword - itemid = 661, - type = "equip", - slot = "hand", - }, - { - -- fiery relic sword - itemid = 661, - type = "deequip", - slot = "hand", - }, - { - -- fiery spike sword - itemid = 660, - type = "equip", - slot = "hand", - }, - { - -- fiery spike sword - itemid = 660, - type = "deequip", - slot = "hand", - }, - { - -- blue legs - itemid = 645, - type = "equip", - slot = "legs", - }, - { - -- blue legs - itemid = 645, - type = "deequip", - slot = "legs", - }, - { - -- family signet ring - itemid = 406, - type = "equip", - slot = "ring", - }, - { - -- family signet ring - itemid = 406, - type = "deequip", - slot = "ring", - }, - { - -- suspicious signet ring - itemid = 349, - type = "equip", - slot = "ring", - }, - { - -- suspicious signet ring - itemid = 349, - type = "deequip", - slot = "ring", - }, - { - -- mining helmet - itemid = 875, - type = "equip", - slot = "head", - }, - { - -- mining helmet - itemid = 875, - type = "deequip", - slot = "head", - }, - { - -- mammoth fur shorts - itemid = 7464, - type = "equip", - slot = "legs", - }, - { - -- mammoth fur shorts - itemid = 7464, - type = "deequip", - slot = "legs", - }, - { - -- mammoth fur cape - itemid = 7463, - type = "equip", - slot = "armor", - }, - { - -- mammoth fur cape - itemid = 7463, - type = "deequip", - slot = "armor", - }, - { - -- ragnir helmet - itemid = 7462, - type = "equip", - slot = "head", - }, - { - -- ragnir helmet - itemid = 7462, - type = "deequip", - slot = "head", - }, - { - -- krimhorn helmet - itemid = 7461, - type = "equip", - slot = "head", - }, - { - -- krimhorn helmet - itemid = 7461, - type = "deequip", - slot = "head", - }, - { - -- norse shield - itemid = 7460, - type = "equip", - slot = "shield", - }, - { - -- norse shield - itemid = 7460, - type = "deequip", - slot = "shield", - }, - { - -- pair of earmuffs - itemid = 7459, - type = "equip", - slot = "head", - }, - { - -- pair of earmuffs - itemid = 7459, - type = "deequip", - slot = "head", - }, - { - -- fur cap - itemid = 7458, - type = "equip", - slot = "head", - }, - { - -- fur cap - itemid = 7458, - type = "deequip", - slot = "head", - }, - { - -- fur boots - itemid = 7457, - type = "equip", - slot = "feet", - }, - { - -- fur boots - itemid = 7457, - type = "deequip", - slot = "feet", - }, - { - -- noble axe - itemid = 7456, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- noble axe - itemid = 7456, - type = "deequip", - slot = "hand", - }, - { - -- mythril axe - itemid = 7455, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- mythril axe - itemid = 7455, - type = "deequip", - slot = "hand", - }, - { - -- glorious axe - itemid = 7454, - type = "equip", - slot = "hand", - level = 30, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glorious axe - itemid = 7454, - type = "deequip", - slot = "hand", - }, - { - -- executioner - itemid = 7453, - type = "equip", - slot = "hand", - level = 85, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- executioner - itemid = 7453, - type = "deequip", - slot = "hand", - }, - { - -- spiked squelcher - itemid = 7452, - type = "equip", - slot = "hand", - level = 30, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiked squelcher - itemid = 7452, - type = "deequip", - slot = "hand", - }, - { - -- shadow sceptre - itemid = 7451, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- shadow sceptre - itemid = 7451, - type = "deequip", - slot = "hand", - }, - { - -- hammer of prophecy - itemid = 7450, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- hammer of prophecy - itemid = 7450, - type = "deequip", - slot = "hand", - }, - { - -- crystal sword - itemid = 7449, - type = "equip", - slot = "hand", - level = 25, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crystal sword - itemid = 7449, - type = "deequip", - slot = "hand", - }, - { - -- elvish bow - itemid = 7438, - type = "equip", - slot = "hand", - }, - { - -- elvish bow - itemid = 7438, - type = "deequip", - slot = "hand", - }, - { - -- sapphire hammer - itemid = 7437, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- sapphire hammer - itemid = 7437, - type = "deequip", - slot = "hand", - }, - { - -- angelic axe - itemid = 7436, - type = "equip", - slot = "hand", - level = 45, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- angelic axe - itemid = 7436, - type = "deequip", - slot = "hand", - }, - { - -- impaler - itemid = 7435, - type = "equip", - slot = "hand", - level = 85, - }, - { - -- impaler - itemid = 7435, - type = "deequip", - slot = "hand", - }, - { - -- royal axe - itemid = 7434, - type = "equip", - slot = "hand", - level = 75, - }, - { - -- royal axe - itemid = 7434, - type = "deequip", - slot = "hand", - }, - { - -- ravenwing - itemid = 7433, - type = "equip", - slot = "hand", - level = 65, - }, - { - -- ravenwing - itemid = 7433, - type = "deequip", - slot = "hand", - }, - { - -- furry club - itemid = 7432, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- furry club - itemid = 7432, - type = "deequip", - slot = "hand", - }, - { - -- demonbone - itemid = 7431, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- demonbone - itemid = 7431, - type = "deequip", - slot = "hand", - }, - { - -- dragonbone staff - itemid = 7430, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- dragonbone staff - itemid = 7430, - type = "deequip", - slot = "hand", - }, - { - -- blessed sceptre - itemid = 7429, - type = "equip", - slot = "hand", - level = 75, - }, - { - -- blessed sceptre - itemid = 7429, - type = "deequip", - slot = "hand", - }, - { - -- bonebreaker - itemid = 7428, - type = "equip", - slot = "hand", - level = 55, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- bonebreaker - itemid = 7428, - type = "deequip", - slot = "hand", - }, - { - -- chaos mace - itemid = 7427, - type = "equip", - slot = "hand", - level = 45, - }, - { - -- chaos mace - itemid = 7427, - type = "deequip", - slot = "hand", - }, - { - -- amber staff - itemid = 7426, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- amber staff - itemid = 7426, - type = "deequip", - slot = "hand", - }, - { - -- taurus mace - itemid = 7425, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- taurus mace - itemid = 7425, - type = "deequip", - slot = "hand", - }, - { - -- lunar staff - itemid = 7424, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- lunar staff - itemid = 7424, - type = "deequip", - slot = "hand", - }, - { - -- skullcrusher - itemid = 7423, - type = "equip", - slot = "hand", - level = 85, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- skullcrusher - itemid = 7423, - type = "deequip", - slot = "hand", - }, - { - -- jade hammer - itemid = 7422, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- jade hammer - itemid = 7422, - type = "deequip", - slot = "hand", - }, - { - -- onyx flail - itemid = 7421, - type = "equip", - slot = "hand", - level = 65, - }, - { - -- onyx flail - itemid = 7421, - type = "deequip", - slot = "hand", - }, - { - -- reaper's axe - itemid = 7420, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- reaper's axe - itemid = 7420, - type = "deequip", - slot = "hand", - }, - { - -- dreaded cleaver - itemid = 7419, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- dreaded cleaver - itemid = 7419, - type = "deequip", - slot = "hand", - }, - { - -- nightmare blade - itemid = 7418, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- nightmare blade - itemid = 7418, - type = "deequip", - slot = "hand", - }, - { - -- runed sword - itemid = 7417, - type = "equip", - slot = "hand", - level = 65, - }, - { - -- runed sword - itemid = 7417, - type = "deequip", - slot = "hand", - }, - { - -- bloody edge - itemid = 7416, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- bloody edge - itemid = 7416, - type = "deequip", - slot = "hand", - level = 55, - }, - { - -- cranial basher - itemid = 7415, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- cranial basher - itemid = 7415, - type = "deequip", - slot = "hand", - }, - { - -- abyss hammer - itemid = 7414, - type = "equip", - slot = "hand", - level = 60, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- abyss hammer - itemid = 7414, - type = "deequip", - slot = "hand", - }, - { - -- titan axe - itemid = 7413, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- titan axe - itemid = 7413, - type = "deequip", - slot = "hand", - }, - { - -- butcher's axe - itemid = 7412, - type = "equip", - slot = "hand", - level = 45, - }, - { - -- butcher's axe - itemid = 7412, - type = "deequip", - slot = "hand", - }, - { - -- ornamented axe - itemid = 7411, - type = "equip", - slot = "hand", - level = 50, - }, - { - -- ornamented axe - itemid = 7411, - type = "deequip", - slot = "hand", - }, - { - -- queen's sceptre - itemid = 7410, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- queen's sceptre - itemid = 7410, - type = "deequip", - slot = "hand", - }, - { - -- northern star - itemid = 7409, - type = "equip", - slot = "hand", - level = 50, - }, - { - -- northern star - itemid = 7409, - type = "deequip", - slot = "hand", - }, - { - -- wyvern fang - itemid = 7408, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- wyvern fang - itemid = 7408, - type = "deequip", - slot = "hand", - }, - { - -- haunted blade - itemid = 7407, - type = "equip", - slot = "hand", - level = 30, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- haunted blade - itemid = 7407, - type = "deequip", - slot = "hand", - }, - { - -- blacksteel sword - itemid = 7406, - type = "equip", - slot = "hand", - level = 35, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blacksteel sword - itemid = 7406, - type = "deequip", - slot = "hand", - level = 35, - }, - { - -- havoc blade - itemid = 7405, - type = "equip", - slot = "hand", - level = 70, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- havoc blade - itemid = 7405, - type = "deequip", - slot = "hand", - }, - { - -- assassin dagger - itemid = 7404, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- assassin dagger - itemid = 7404, - type = "deequip", - slot = "hand", - level = 40, - }, - { - -- berserker - itemid = 7403, - type = "equip", - slot = "hand", - level = 65, - }, - { - -- berserker - itemid = 7403, - type = "deequip", - slot = "hand", - level = 65, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon slayer - itemid = 7402, - type = "equip", - slot = "hand", - level = 45, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon slayer - itemid = 7402, - type = "deequip", - slot = "hand", - }, - { - -- orcish maul - itemid = 7392, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- orcish maul - itemid = 7392, - type = "deequip", - slot = "hand", - }, - { - -- thaian sword - itemid = 7391, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- thaian sword - itemid = 7391, - type = "deequip", - slot = "hand", - }, - { - -- the justice seeker - itemid = 7390, - type = "equip", - slot = "hand", - level = 75, - }, - { - -- the justice seeker - itemid = 7390, - type = "deequip", - slot = "hand", - }, - { - -- heroic axe - itemid = 7389, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- heroic axe - itemid = 7389, - type = "deequip", - slot = "hand", - }, - { - -- vile axe - itemid = 7388, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- vile axe - itemid = 7388, - type = "deequip", - slot = "hand", - }, - { - -- diamond sceptre - itemid = 7387, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- diamond sceptre - itemid = 7387, - type = "deequip", - slot = "hand", - }, - { - -- mercenary sword - itemid = 7386, - type = "equip", - slot = "hand", - level = 40, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mercenary sword - itemid = 7386, - type = "deequip", - slot = "hand", - }, - { - -- crimson sword - itemid = 7385, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- crimson sword - itemid = 7385, - type = "deequip", - slot = "hand", - level = 20, - }, - { - -- mystic blade - itemid = 7384, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- mystic blade - itemid = 7384, - type = "deequip", - slot = "hand", - }, - { - -- relic sword - itemid = 7383, - type = "equip", - slot = "hand", - level = 50, - }, - { - -- relic sword - itemid = 7383, - type = "deequip", - slot = "hand", - }, - { - -- demonrage sword - itemid = 7382, - type = "equip", - slot = "hand", - level = 60, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- demonrage sword - itemid = 7382, - type = "deequip", - slot = "hand", - }, - { - -- mammoth whopper - itemid = 7381, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- mammoth whopper - itemid = 7381, - type = "deequip", - slot = "hand", - }, - { - -- headchopper - itemid = 7380, - type = "equip", - slot = "hand", - level = 35, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- headchopper - itemid = 7380, - type = "deequip", - slot = "hand", - }, - { - -- brutetamer's staff - itemid = 7379, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- brutetamer's staff - itemid = 7379, - type = "deequip", - slot = "hand", - }, - { - -- royal spear - itemid = 7378, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- royal spear - itemid = 7378, - type = "deequip", - slot = "hand", - level = 25, - }, - { - -- assassin star - itemid = 7368, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- assassin star - itemid = 7368, - type = "deequip", - slot = "hand", - level = 80, - }, - { - -- enchanted spear - itemid = 7367, - type = "equip", - slot = "hand", - level = 42, - }, - { - -- enchanted spear - itemid = 7367, - type = "deequip", - slot = "hand", - level = 42, - }, - { - -- onyx arrow - itemid = 7365, - type = "equip", - slot = "ammo", - }, - { - -- onyx arrow - itemid = 7365, - type = "deequip", - slot = "ammo", - }, - { - -- sniper arrow - itemid = 7364, - type = "equip", - slot = "ammo", - }, - { - -- sniper arrow - itemid = 7364, - type = "deequip", - slot = "ammo", - }, - { - -- piercing bolt - itemid = 7363, - type = "equip", - slot = "ammo", - }, - { - -- piercing bolt - itemid = 7363, - type = "deequip", - slot = "ammo", - }, - { - -- flame of life - itemid = 7360, - type = "additem", - }, - { - -- flame of life - itemid = 7359, - type = "stepin", - }, - { - -- fur bag - itemid = 7343, - type = "equip", - slot = "backpack", - }, - { - -- fur bag - itemid = 7343, - type = "deequip", - slot = "backpack", - }, - { - -- fur backpack - itemid = 7342, - type = "equip", - slot = "backpack", - }, - { - -- fur backpack - itemid = 7342, - type = "deequip", - slot = "backpack", - }, - { - -- party hat - itemid = 6578, - type = "equip", - slot = "head", - }, - { - -- party hat - itemid = 6578, - type = "deequip", - slot = "head", - }, - { - -- ruthless axe - itemid = 6553, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ruthless axe - itemid = 6553, - type = "deequip", - slot = "hand", - }, - { - -- santa hat - itemid = 6531, - type = "equip", - slot = "head", - }, - { - -- santa hat - itemid = 6531, - type = "deequip", - slot = "head", - }, - { - -- infernal bolt - itemid = 6528, - type = "equip", - slot = "ammo", - }, - { - -- infernal bolt - itemid = 6528, - type = "deequip", - slot = "ammo", - }, - { - -- the avenger - itemid = 6527, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the avenger - itemid = 6527, - type = "deequip", - slot = "hand", - }, - { - -- necromancer shield - itemid = 6432, - type = "equip", - slot = "shield", - }, - { - -- necromancer shield - itemid = 6432, - type = "deequip", - slot = "shield", - }, - { - -- nightmare shield - itemid = 6390, - type = "equip", - slot = "shield", - }, - { - -- nightmare shield - itemid = 6390, - type = "deequip", - slot = "shield", - }, - { - -- death ring - itemid = 6300, - type = "equip", - slot = "ring", - }, - { - -- death ring - itemid = 6300, - type = "deequip", - slot = "ring", - }, - { - -- death ring - itemid = 6299, - type = "equip", - slot = "ring", - }, - { - -- death ring - itemid = 6299, - type = "deequip", - slot = "ring", - }, - { - -- pair of soft boots - itemid = 6529, - type = "equip", - slot = "feet", - }, - { - -- pair of soft boots - itemid = 6529, - type = "deequip", - slot = "feet", - }, - { - -- tortoise shield - itemid = 6131, - type = "equip", - slot = "shield", - }, - { - -- tortoise shield - itemid = 6131, - type = "deequip", - slot = "shield", - }, - { - -- Dragha's spellbook - itemid = 6120, - type = "equip", - slot = "shield", - }, - { - -- Dragha's spellbook - itemid = 6120, - type = "deequip", - slot = "shield", - }, - { - -- Ron the Ripper's sabre - itemid = 6101, - type = "equip", - slot = "hand", - }, - { - -- Ron the Ripper's sabre - itemid = 6101, - type = "deequip", - slot = "hand", - }, - { - -- pirate hat - itemid = 6096, - type = "equip", - slot = "head", - }, - { - -- pirate hat - itemid = 6096, - type = "deequip", - slot = "head", - }, - { - -- pirate shirt - itemid = 6095, - type = "equip", - slot = "armor", - }, - { - -- pirate shirt - itemid = 6095, - type = "deequip", - slot = "armor", - }, - { - -- beach bag - itemid = 5950, - type = "equip", - slot = "backpack", - }, - { - -- beach bag - itemid = 5950, - type = "deequip", - slot = "backpack", - }, - { - -- beach backpack - itemid = 5949, - type = "equip", - slot = "backpack", - }, - { - -- beach backpack - itemid = 5949, - type = "deequip", - slot = "backpack", - }, - { - -- pirate bag - itemid = 5927, - type = "equip", - slot = "backpack", - }, - { - -- pirate bag - itemid = 5927, - type = "deequip", - slot = "backpack", - }, - { - -- pirate backpack - itemid = 5926, - type = "equip", - slot = "backpack", - }, - { - -- pirate backpack - itemid = 5926, - type = "deequip", - slot = "backpack", - }, - { - -- pirate knee breeches - itemid = 5918, - type = "equip", - slot = "legs", - }, - { - -- pirate knee breeches - itemid = 5918, - type = "deequip", - slot = "legs", - }, - { - -- bandana - itemid = 5917, - type = "equip", - slot = "head", - }, - { - -- bandana - itemid = 5917, - type = "deequip", - slot = "head", - }, - { - -- Ferumbras' hat - itemid = 5903, - type = "equip", - slot = "head", - }, - { - -- Ferumbras' hat - itemid = 5903, - type = "deequip", - slot = "head", - }, - { - -- arbalest - itemid = 5803, - type = "equip", - slot = "hand", - level = 75, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- arbalest - itemid = 5803, - type = "deequip", - slot = "hand", - }, - { - -- jewelled backpack - itemid = 5801, - type = "equip", - slot = "backpack", - }, - { - -- jewelled backpack - itemid = 5801, - type = "deequip", - slot = "backpack", - }, - { - -- skull helmet - itemid = 5741, - type = "equip", - slot = "head", - }, - { - -- skull helmet - itemid = 5741, - type = "deequip", - slot = "head", - }, - { - -- pirate boots - itemid = 5461, - type = "equip", - slot = "feet", - }, - { - -- pirate boots - itemid = 5461, - type = "deequip", - slot = "feet", - }, - { - -- helmet of the deep - itemid = 5460, - type = "equip", - slot = "head", - }, - { - -- helmet of the deep - itemid = 5460, - type = "deequip", - slot = "head", - }, - { - -- spectral dress - itemid = 4836, - type = "equip", - slot = "armor", - }, - { - -- spectral dress - itemid = 4836, - type = "deequip", - slot = "armor", - }, - { - -- bast skirt - itemid = 3560, - type = "equip", - slot = "legs", - }, - { - -- bast skirt - itemid = 3560, - type = "deequip", - slot = "legs", - }, - { - -- crocodile boots - itemid = 3556, - type = "equip", - slot = "feet", - }, - { - -- crocodile boots - itemid = 3556, - type = "deequip", - slot = "feet", - }, - { - -- salamander shield - itemid = 3445, - type = "equip", - slot = "shield", - }, - { - -- salamander shield - itemid = 3445, - type = "deequip", - slot = "shield", - }, - { - -- sentinel shield - itemid = 3444, - type = "equip", - slot = "shield", - }, - { - -- sentinel shield - itemid = 3444, - type = "deequip", - slot = "shield", - }, - { - -- tusk shield - itemid = 3443, - type = "equip", - slot = "shield", - }, - { - -- tusk shield - itemid = 3443, - type = "deequip", - slot = "shield", - }, - { - -- bonelord helmet - itemid = 3408, - type = "equip", - slot = "head", - }, - { - -- bonelord helmet - itemid = 3408, - type = "deequip", - slot = "head", - }, - { - -- charmer's tiara - itemid = 3407, - type = "equip", - slot = "head", - }, - { - -- charmer's tiara - itemid = 3407, - type = "deequip", - slot = "head", - }, - { - -- feather headdress - itemid = 3406, - type = "equip", - slot = "head", - }, - { - -- feather headdress - itemid = 3406, - type = "deequip", - slot = "head", - }, - { - -- horseman helmet - itemid = 3405, - type = "equip", - slot = "head", - }, - { - -- horseman helmet - itemid = 3405, - type = "deequip", - slot = "head", - }, - { - -- leopard armor - itemid = 3404, - type = "equip", - slot = "armor", - }, - { - -- leopard armor - itemid = 3404, - type = "deequip", - slot = "armor", - }, - { - -- tribal mask - itemid = 3403, - type = "equip", - slot = "head", - }, - { - -- tribal mask - itemid = 3403, - type = "deequip", - slot = "head", - }, - { - -- banana staff - itemid = 3348, - type = "equip", - slot = "hand", - }, - { - -- banana staff - itemid = 3348, - type = "deequip", - slot = "hand", - }, - { - -- hunting spear - itemid = 3347, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- hunting spear - itemid = 3347, - type = "deequip", - slot = "hand", - level = 20, - }, - { - -- ripper lance - itemid = 3346, - type = "equip", - slot = "hand", - }, - { - -- ripper lance - itemid = 3346, - type = "deequip", - slot = "hand", - }, - { - -- templar scytheblade - itemid = 3345, - type = "equip", - slot = "hand", - }, - { - -- templar scytheblade - itemid = 3345, - type = "deequip", - slot = "hand", - }, - { - -- beastslayer axe - itemid = 3344, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- beastslayer axe - itemid = 3344, - type = "deequip", - slot = "hand", - }, - { - -- lich staff - itemid = 3343, - type = "equip", - slot = "hand", - level = 40, - }, - { - -- lich staff - itemid = 3343, - type = "deequip", - slot = "hand", - }, - { - -- old and used backpack - itemid = 3244, - type = "equip", - slot = "backpack", - }, - { - -- old and used backpack - itemid = 3244, - type = "deequip", - slot = "backpack", - }, - { - -- camouflage backpack - itemid = 2872, - type = "equip", - slot = "backpack", - }, - { - -- camouflage backpack - itemid = 2872, - type = "deequip", - slot = "backpack", - }, - { - -- camouflage bag - itemid = 2864, - type = "equip", - slot = "backpack", - }, - { - -- camouflage bag - itemid = 2864, - type = "deequip", - slot = "backpack", - }, - { - -- post officer's hat - itemid = 3576, - type = "equip", - slot = "head", - }, - { - -- post officer's hat - itemid = 3576, - type = "deequip", - slot = "head", - }, - { - -- wood cape - itemid = 3575, - type = "equip", - slot = "head", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- wood cape - itemid = 3575, - type = "deequip", - slot = "head", - }, - { - -- mystic turban - itemid = 3574, - type = "equip", - slot = "head", - }, - { - -- mystic turban - itemid = 3574, - type = "deequip", - slot = "head", - }, - { - -- magician hat - itemid = 3573, - type = "equip", - slot = "head", - }, - { - -- magician hat - itemid = 3573, - type = "deequip", - slot = "head", - }, - { - -- scarf - itemid = 3572, - type = "equip", - slot = "necklace", - }, - { - -- scarf - itemid = 3572, - type = "deequip", - slot = "necklace", - }, - { - -- ranger's cloak - itemid = 3571, - type = "equip", - slot = "armor", - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ranger's cloak - itemid = 3571, - type = "deequip", - slot = "armor", - }, - { - -- ball gown - itemid = 3570, - type = "equip", - slot = "armor", - }, - { - -- ball gown - itemid = 3570, - type = "deequip", - slot = "armor", - }, - { - -- white dress - itemid = 3569, - type = "equip", - slot = "armor", - }, - { - -- white dress - itemid = 3569, - type = "deequip", - slot = "armor", - }, - { - -- simple dress - itemid = 3568, - type = "equip", - slot = "armor", - }, - { - -- simple dress - itemid = 3568, - type = "deequip", - slot = "armor", - }, - { - -- blue robe - itemid = 3567, - type = "equip", - slot = "armor", - }, - { - -- blue robe - itemid = 3567, - type = "deequip", - slot = "armor", - }, - { - -- red robe - itemid = 3566, - type = "equip", - slot = "armor", - }, - { - -- red robe - itemid = 3566, - type = "deequip", - slot = "armor", - }, - { - -- cape - itemid = 3565, - type = "equip", - slot = "armor", - }, - { - -- cape - itemid = 3565, - type = "deequip", - slot = "armor", - }, - { - -- red tunic - itemid = 3564, - type = "equip", - slot = "armor", - }, - { - -- red tunic - itemid = 3564, - type = "deequip", - slot = "armor", - }, - { - -- green tunic - itemid = 3563, - type = "equip", - slot = "armor", - }, - { - -- green tunic - itemid = 3563, - type = "deequip", - slot = "armor", - }, - { - -- coat - itemid = 3562, - type = "equip", - slot = "armor", - }, - { - -- coat - itemid = 3562, - type = "deequip", - slot = "armor", - }, - { - -- jacket - itemid = 3561, - type = "equip", - slot = "armor", - }, - { - -- jacket - itemid = 3561, - type = "deequip", - slot = "armor", - }, - { - -- leather legs - itemid = 3559, - type = "equip", - slot = "legs", - }, - { - -- leather legs - itemid = 3559, - type = "deequip", - slot = "legs", - }, - { - -- chain legs - itemid = 3558, - type = "equip", - slot = "legs", - }, - { - -- chain legs - itemid = 3558, - type = "deequip", - slot = "legs", - }, - { - -- plate legs - itemid = 3557, - type = "equip", - slot = "legs", - }, - { - -- plate legs - itemid = 3557, - type = "deequip", - slot = "legs", - }, - { - -- golden boots - itemid = 3555, - type = "equip", - slot = "feet", - }, - { - -- golden boots - itemid = 3555, - type = "deequip", - slot = "feet", - }, - { - -- steel boots - itemid = 3554, - type = "equip", - slot = "feet", - }, - { - -- steel boots - itemid = 3554, - type = "deequip", - slot = "feet", - }, - { - -- bunnyslippers - itemid = 3553, - type = "equip", - slot = "feet", - }, - { - -- bunnyslippers - itemid = 3553, - type = "deequip", - slot = "feet", - }, - { - -- leather boots - itemid = 3552, - type = "equip", - slot = "feet", - }, - { - -- leather boots - itemid = 3552, - type = "deequip", - slot = "feet", - }, - { - -- sandals - itemid = 3551, - type = "equip", - slot = "feet", - }, - { - -- sandals - itemid = 3551, - type = "deequip", - slot = "feet", - }, - { - -- patched boots - itemid = 3550, - type = "equip", - slot = "feet", - }, - { - -- patched boots - itemid = 3550, - type = "deequip", - slot = "feet", - }, - { - -- pair of soft boots - itemid = 3549, - type = "equip", - slot = "feet", - }, - { - -- pair of soft boots - itemid = 3549, - type = "deequip", - slot = "feet", - }, - { - -- scythe - itemid = 3453, - type = "equip", - slot = "hand", - }, - { - -- scythe - itemid = 3453, - type = "deequip", - slot = "hand", - }, - { - -- power bolt - itemid = 3450, - type = "equip", - slot = "ammo", - }, - { - -- power bolt - itemid = 3450, - type = "deequip", - slot = "ammo", - }, - { - -- arrow - itemid = 3447, - type = "equip", - slot = "ammo", - }, - { - -- arrow - itemid = 3447, - type = "deequip", - slot = "ammo", - }, - { - -- bolt - itemid = 3446, - type = "equip", - slot = "ammo", - }, - { - -- bolt - itemid = 3446, - type = "deequip", - slot = "ammo", - }, - { - -- tempest shield - itemid = 3442, - type = "equip", - slot = "shield", - }, - { - -- tempest shield - itemid = 3442, - type = "deequip", - slot = "shield", - }, - { - -- bone shield - itemid = 3441, - type = "equip", - slot = "shield", - }, - { - -- bone shield - itemid = 3441, - type = "deequip", - slot = "shield", - }, - { - -- scarab shield - itemid = 3440, - type = "equip", - slot = "shield", - }, - { - -- scarab shield - itemid = 3440, - type = "deequip", - slot = "shield", - }, - { - -- phoenix shield - itemid = 3439, - type = "equip", - slot = "shield", - }, - { - -- phoenix shield - itemid = 3439, - type = "deequip", - slot = "shield", - }, - { - -- eagle shield - itemid = 3438, - type = "equip", - slot = "shield", - }, - { - -- eagle shield - itemid = 3438, - type = "deequip", - slot = "shield", - }, - { - -- amazon shield - itemid = 3437, - type = "equip", - slot = "shield", - }, - { - -- amazon shield - itemid = 3437, - type = "deequip", - slot = "shield", - }, - { - -- medusa shield - itemid = 3436, - type = "equip", - slot = "shield", - }, - { - -- medusa shield - itemid = 3436, - type = "deequip", - slot = "shield", - }, - { - -- castle shield - itemid = 3435, - type = "equip", - slot = "shield", - }, - { - -- castle shield - itemid = 3435, - type = "deequip", - slot = "shield", - }, - { - -- vampire shield - itemid = 3434, - type = "equip", - slot = "shield", - }, - { - -- vampire shield - itemid = 3434, - type = "deequip", - slot = "shield", - }, - { - -- griffin shield - itemid = 3433, - type = "equip", - slot = "shield", - }, - { - -- griffin shield - itemid = 3433, - type = "deequip", - slot = "shield", - }, - { - -- ancient shield - itemid = 3432, - type = "equip", - slot = "shield", - }, - { - -- ancient shield - itemid = 3432, - type = "deequip", - slot = "shield", - }, - { - -- viking shield - itemid = 3431, - type = "equip", - slot = "shield", - }, - { - -- viking shield - itemid = 3431, - type = "deequip", - slot = "shield", - }, - { - -- copper shield - itemid = 3430, - type = "equip", - slot = "shield", - }, - { - -- copper shield - itemid = 3430, - type = "deequip", - slot = "shield", - }, - { - -- black shield - itemid = 3429, - type = "equip", - slot = "shield", - }, - { - -- black shield - itemid = 3429, - type = "deequip", - slot = "shield", - }, - { - -- tower shield - itemid = 3428, - type = "equip", - slot = "shield", - }, - { - -- tower shield - itemid = 3428, - type = "deequip", - slot = "shield", - }, - { - -- rose shield - itemid = 3427, - type = "equip", - slot = "shield", - }, - { - -- rose shield - itemid = 3427, - type = "deequip", - slot = "shield", - }, - { - -- studded shield - itemid = 3426, - type = "equip", - slot = "shield", - }, - { - -- studded shield - itemid = 3426, - type = "deequip", - slot = "shield", - }, - { - -- dwarven shield - itemid = 3425, - type = "equip", - slot = "shield", - }, - { - -- dwarven shield - itemid = 3425, - type = "deequip", - slot = "shield", - }, - { - -- ornamented shield - itemid = 3424, - type = "equip", - slot = "shield", - }, - { - -- ornamented shield - itemid = 3424, - type = "deequip", - slot = "shield", - }, - { - -- blessed shield - itemid = 3423, - type = "equip", - slot = "shield", - }, - { - -- blessed shield - itemid = 3423, - type = "deequip", - slot = "shield", - }, - { - -- great shield - itemid = 3422, - type = "equip", - slot = "shield", - }, - { - -- great shield - itemid = 3422, - type = "deequip", - slot = "shield", - }, - { - -- dark shield - itemid = 3421, - type = "equip", - slot = "shield", - }, - { - -- dark shield - itemid = 3421, - type = "deequip", - slot = "shield", - }, - { - -- demon shield - itemid = 3420, - type = "equip", - slot = "shield", - }, - { - -- demon shield - itemid = 3420, - type = "deequip", - slot = "shield", - }, - { - -- crown shield - itemid = 3419, - type = "equip", - slot = "shield", - }, - { - -- crown shield - itemid = 3419, - type = "deequip", - slot = "shield", - }, - { - -- bonelord shield - itemid = 3418, - type = "equip", - slot = "shield", - }, - { - -- bonelord shield - itemid = 3418, - type = "deequip", - slot = "shield", - }, - { - -- shield of honour - itemid = 3417, - type = "equip", - slot = "shield", - }, - { - -- shield of honour - itemid = 3417, - type = "deequip", - slot = "shield", - }, - { - -- dragon shield - itemid = 3416, - type = "equip", - slot = "shield", - }, - { - -- dragon shield - itemid = 3416, - type = "deequip", - slot = "shield", - }, - { - -- guardian shield - itemid = 3415, - type = "equip", - slot = "shield", - }, - { - -- guardian shield - itemid = 3415, - type = "deequip", - slot = "shield", - }, - { - -- mastermind shield - itemid = 3414, - type = "equip", - slot = "shield", - }, - { - -- mastermind shield - itemid = 3414, - type = "deequip", - slot = "shield", - }, - { - -- battle shield - itemid = 3413, - type = "equip", - slot = "shield", - }, - { - -- battle shield - itemid = 3413, - type = "deequip", - slot = "shield", - }, - { - -- wooden shield - itemid = 3412, - type = "equip", - slot = "shield", - }, - { - -- wooden shield - itemid = 3412, - type = "deequip", - slot = "shield", - }, - { - -- brass shield - itemid = 3411, - type = "equip", - slot = "shield", - }, - { - -- brass shield - itemid = 3411, - type = "deequip", - slot = "shield", - }, - { - -- plate shield - itemid = 3410, - type = "equip", - slot = "shield", - }, - { - -- plate shield - itemid = 3410, - type = "deequip", - slot = "shield", - }, - { - -- steel shield - itemid = 3409, - type = "equip", - slot = "shield", - }, - { - -- steel shield - itemid = 3409, - type = "deequip", - slot = "shield", - }, - { - -- native armor - itemid = 3402, - type = "equip", - slot = "armor", - }, - { - -- native armor - itemid = 3402, - type = "deequip", - slot = "armor", - }, - { - -- elven legs - itemid = 3401, - type = "equip", - slot = "legs", - }, - { - -- elven legs - itemid = 3401, - type = "deequip", - slot = "legs", - }, - { - -- dragon scale helmet - itemid = 3400, - type = "equip", - slot = "head", - }, - { - -- dragon scale helmet - itemid = 3400, - type = "deequip", - slot = "head", - }, - { - -- elven mail - itemid = 3399, - type = "equip", - slot = "armor", - }, - { - -- elven mail - itemid = 3399, - type = "deequip", - slot = "armor", - }, - { - -- dwarven legs - itemid = 3398, - type = "equip", - slot = "legs", - }, - { - -- dwarven legs - itemid = 3398, - type = "deequip", - slot = "legs", - }, - { - -- dwarven armor - itemid = 3397, - type = "equip", - slot = "armor", - }, - { - -- dwarven armor - itemid = 3397, - type = "deequip", - slot = "armor", - }, - { - -- dwarven helmet - itemid = 3396, - type = "equip", - slot = "head", - }, - { - -- dwarven helmet - itemid = 3396, - type = "deequip", - slot = "head", - }, - { - -- ceremonial mask - itemid = 3395, - type = "equip", - slot = "head", - }, - { - -- ceremonial mask - itemid = 3395, - type = "deequip", - slot = "head", - }, - { - -- amazon armor - itemid = 3394, - type = "equip", - slot = "armor", - level = 60, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- amazon armor - itemid = 3394, - type = "deequip", - slot = "armor", - level = 60, - }, - { - -- amazon helmet - itemid = 3393, - type = "equip", - slot = "head", - }, - { - -- amazon helmet - itemid = 3393, - type = "deequip", - slot = "head", - }, - { - -- royal helmet - itemid = 3392, - type = "equip", - slot = "head", - }, - { - -- royal helmet - itemid = 3392, - type = "deequip", - slot = "head", - }, - { - -- crusader helmet - itemid = 3391, - type = "equip", - slot = "head", - }, - { - -- crusader helmet - itemid = 3391, - type = "deequip", - slot = "head", - }, - { - -- horned helmet - itemid = 3390, - type = "equip", - slot = "head", - }, - { - -- horned helmet - itemid = 3390, - type = "deequip", - slot = "head", - }, - { - -- demon legs - itemid = 3389, - type = "equip", - slot = "legs", - }, - { - -- demon legs - itemid = 3389, - type = "deequip", - slot = "legs", - }, - { - -- demon armor - itemid = 3388, - type = "equip", - slot = "armor", - }, - { - -- demon armor - itemid = 3388, - type = "deequip", - slot = "armor", - }, - { - -- demon helmet - itemid = 3387, - type = "equip", - slot = "head", - }, - { - -- demon helmet - itemid = 3387, - type = "deequip", - slot = "head", - }, - { - -- dragon scale mail - itemid = 3386, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- dragon scale mail - itemid = 3386, - type = "deequip", - slot = "armor", - }, - { - -- crown helmet - itemid = 3385, - type = "equip", - slot = "head", - }, - { - -- crown helmet - itemid = 3385, - type = "deequip", - slot = "head", - }, - { - -- dark helmet - itemid = 3384, - type = "equip", - slot = "head", - }, - { - -- dark helmet - itemid = 3384, - type = "deequip", - slot = "head", - }, - { - -- dark armor - itemid = 3383, - type = "equip", - slot = "armor", - }, - { - -- dark armor - itemid = 3383, - type = "deequip", - slot = "armor", - }, - { - -- crown legs - itemid = 3382, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crown legs - itemid = 3382, - type = "deequip", - slot = "legs", - }, - { - -- crown armor - itemid = 3381, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- crown armor - itemid = 3381, - type = "deequip", - slot = "armor", - }, - { - -- noble armor - itemid = 3380, - type = "equip", - slot = "armor", - }, - { - -- noble armor - itemid = 3380, - type = "deequip", - slot = "armor", - }, - { - -- doublet - itemid = 3379, - type = "equip", - slot = "armor", - }, - { - -- doublet - itemid = 3379, - type = "deequip", - slot = "armor", - }, - { - -- studded armor - itemid = 3378, - type = "equip", - slot = "armor", - }, - { - -- studded armor - itemid = 3378, - type = "deequip", - slot = "armor", - }, - { - -- scale armor - itemid = 3377, - type = "equip", - slot = "armor", - }, - { - -- scale armor - itemid = 3377, - type = "deequip", - slot = "armor", - }, - { - -- studded helmet - itemid = 3376, - type = "equip", - slot = "head", - }, - { - -- studded helmet - itemid = 3376, - type = "deequip", - slot = "head", - }, - { - -- soldier helmet - itemid = 3375, - type = "equip", - slot = "head", - }, - { - -- soldier helmet - itemid = 3375, - type = "deequip", - slot = "head", - }, - { - -- legion helmet - itemid = 3374, - type = "equip", - slot = "head", - }, - { - -- legion helmet - itemid = 3374, - type = "deequip", - slot = "head", - }, - { - -- strange helmet - itemid = 3373, - type = "equip", - slot = "head", - }, - { - -- strange helmet - itemid = 3373, - type = "deequip", - slot = "head", - }, - { - -- brass legs - itemid = 3372, - type = "equip", - slot = "legs", - }, - { - -- brass legs - itemid = 3372, - type = "deequip", - slot = "legs", - }, - { - -- knight legs - itemid = 3371, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- knight legs - itemid = 3371, - type = "deequip", - slot = "legs", - }, - { - -- knight armor - itemid = 3370, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- knight armor - itemid = 3370, - type = "deequip", - slot = "armor", - }, - { - -- warrior helmet - itemid = 3369, - type = "equip", - slot = "head", - }, - { - -- warrior helmet - itemid = 3369, - type = "deequip", - slot = "head", - }, - { - -- winged helmet - itemid = 3368, - type = "equip", - slot = "head", - }, - { - -- winged helmet - itemid = 3368, - type = "deequip", - slot = "head", - }, - { - -- viking helmet - itemid = 3367, - type = "equip", - slot = "head", - }, - { - -- viking helmet - itemid = 3367, - type = "deequip", - slot = "head", - }, - { - -- magic plate armor - itemid = 3366, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- magic plate armor - itemid = 3366, - type = "deequip", - slot = "armor", - }, - { - -- golden helmet - itemid = 3365, - type = "equip", - slot = "head", - }, - { - -- golden helmet - itemid = 3365, - type = "deequip", - slot = "head", - }, - { - -- golden legs - itemid = 3364, - type = "equip", - slot = "legs", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- golden legs - itemid = 3364, - type = "deequip", - slot = "legs", - }, - { - -- dragon scale legs - itemid = 3363, - type = "equip", - slot = "legs", - }, - { - -- dragon scale legs - itemid = 3363, - type = "deequip", - slot = "legs", - }, - { - -- studded legs - itemid = 3362, - type = "equip", - slot = "legs", - }, - { - -- studded legs - itemid = 3362, - type = "deequip", - slot = "legs", - }, - { - -- leather armor - itemid = 3361, - type = "equip", - slot = "armor", - }, - { - -- leather armor - itemid = 3361, - type = "deequip", - slot = "armor", - }, - { - -- golden armor - itemid = 3360, - type = "equip", - slot = "armor", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- golden armor - itemid = 3360, - type = "deequip", - slot = "armor", - }, - { - -- brass armor - itemid = 3359, - type = "equip", - slot = "armor", - }, - { - -- brass armor - itemid = 3359, - type = "deequip", - slot = "armor", - }, - { - -- chain armor - itemid = 3358, - type = "equip", - slot = "armor", - }, - { - -- chain armor - itemid = 3358, - type = "deequip", - slot = "armor", - }, - { - -- plate armor - itemid = 3357, - type = "equip", - slot = "armor", - }, - { - -- plate armor - itemid = 3357, - type = "deequip", - slot = "armor", - }, - { - -- devil helmet - itemid = 3356, - type = "equip", - slot = "head", - }, - { - -- devil helmet - itemid = 3356, - type = "deequip", - slot = "head", - }, - { - -- leather helmet - itemid = 3355, - type = "equip", - slot = "head", - }, - { - -- leather helmet - itemid = 3355, - type = "deequip", - slot = "head", - }, - { - -- brass helmet - itemid = 3354, - type = "equip", - slot = "head", - }, - { - -- brass helmet - itemid = 3354, - type = "deequip", - slot = "head", - }, - { - -- iron helmet - itemid = 3353, - type = "equip", - slot = "head", - }, - { - -- iron helmet - itemid = 3353, - type = "deequip", - slot = "head", - }, - { - -- chain helmet - itemid = 3352, - type = "equip", - slot = "head", - }, - { - -- chain helmet - itemid = 3352, - type = "deequip", - slot = "head", - }, - { - -- steel helmet - itemid = 3351, - type = "equip", - slot = "head", - }, - { - -- steel helmet - itemid = 3351, - type = "deequip", - slot = "head", - }, - { - -- bow - itemid = 3350, - type = "equip", - slot = "hand", - }, - { - -- bow - itemid = 3350, - type = "deequip", - slot = "hand", - }, - { - -- crossbow - itemid = 3349, - type = "equip", - slot = "hand", - }, - { - -- crossbow - itemid = 3349, - type = "deequip", - slot = "hand", - }, - { - -- war axe - itemid = 3342, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- war axe - itemid = 3342, - type = "deequip", - slot = "hand", - }, - { - -- arcane staff - itemid = 3341, - type = "equip", - slot = "hand", - level = 75, - }, - { - -- arcane staff - itemid = 3341, - type = "deequip", - slot = "hand", - }, - { - -- heavy mace - itemid = 3340, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- heavy mace - itemid = 3340, - type = "deequip", - slot = "hand", - }, - { - -- djinn blade - itemid = 3339, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- djinn blade - itemid = 3339, - type = "deequip", - slot = "hand", - }, - { - -- bone sword - itemid = 3338, - type = "equip", - slot = "hand", - }, - { - -- bone sword - itemid = 3338, - type = "deequip", - slot = "hand", - }, - { - -- bone club - itemid = 3337, - type = "equip", - slot = "hand", - }, - { - -- bone club - itemid = 3337, - type = "deequip", - slot = "hand", - }, - { - -- studded club - itemid = 3336, - type = "equip", - slot = "hand", - }, - { - -- studded club - itemid = 3336, - type = "deequip", - slot = "hand", - }, - { - -- twin axe - itemid = 3335, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- twin axe - itemid = 3335, - type = "deequip", - slot = "hand", - }, - { - -- pharaoh sword - itemid = 3334, - type = "equip", - slot = "hand", - level = 45, - }, - { - -- pharaoh sword - itemid = 3334, - type = "deequip", - slot = "hand", - }, - { - -- crystal mace - itemid = 3333, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- crystal mace - itemid = 3333, - type = "deequip", - slot = "hand", - }, - { - -- hammer of wrath - itemid = 3332, - type = "equip", - slot = "hand", - level = 65, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- hammer of wrath - itemid = 3332, - type = "deequip", - slot = "hand", - }, - { - -- ravager's axe - itemid = 3331, - type = "equip", - slot = "hand", - level = 70, - }, - { - -- ravager's axe - itemid = 3331, - type = "deequip", - slot = "hand", - }, - { - -- heavy machete - itemid = 3330, - type = "equip", - slot = "hand", - }, - { - -- heavy machete - itemid = 3330, - type = "deequip", - slot = "hand", - }, - { - -- daramian axe - itemid = 3329, - type = "equip", - slot = "hand", - }, - { - -- daramian axe - itemid = 3329, - type = "deequip", - slot = "hand", - }, - { - -- daramian waraxe - itemid = 3328, - type = "equip", - slot = "hand", - level = 25, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- daramian waraxe - itemid = 3328, - type = "deequip", - slot = "hand", - }, - { - -- daramian mace - itemid = 3327, - type = "equip", - slot = "hand", - }, - { - -- daramian mace - itemid = 3327, - type = "deequip", - slot = "hand", - }, - { - -- epee - itemid = 3326, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- epee - itemid = 3326, - type = "deequip", - slot = "hand", - }, - { - -- light mace - itemid = 3325, - type = "equip", - slot = "hand", - }, - { - -- light mace - itemid = 3325, - type = "deequip", - slot = "hand", - }, - { - -- skull staff - itemid = 3324, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- skull staff - itemid = 3324, - type = "deequip", - slot = "hand", - }, - { - -- dwarven axe - itemid = 3323, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- dwarven axe - itemid = 3323, - type = "deequip", - slot = "hand", - }, - { - -- dragon hammer - itemid = 3322, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- dragon hammer - itemid = 3322, - type = "deequip", - slot = "hand", - }, - { - -- enchanted staff - itemid = 3321, - type = "equip", - slot = "hand", - }, - { - -- enchanted staff - itemid = 3321, - type = "deequip", - slot = "hand", - }, - { - -- fire axe - itemid = 3320, - type = "equip", - slot = "hand", - level = 35, - }, - { - -- fire axe - itemid = 3320, - type = "deequip", - slot = "hand", - }, - { - -- stonecutter axe - itemid = 3319, - type = "equip", - slot = "hand", - level = 90, - }, - { - -- stonecutter axe - itemid = 3319, - type = "deequip", - slot = "hand", - }, - { - -- knight axe - itemid = 3318, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- knight axe - itemid = 3318, - type = "deequip", - slot = "hand", - }, - { - -- barbarian axe - itemid = 3317, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- barbarian axe - itemid = 3317, - type = "deequip", - slot = "hand", - }, - { - -- orcish axe - itemid = 3316, - type = "equip", - slot = "hand", - }, - { - -- orcish axe - itemid = 3316, - type = "deequip", - slot = "hand", - }, - { - -- guardian halberd - itemid = 3315, - type = "equip", - slot = "hand", - level = 55, - }, - { - -- guardian halberd - itemid = 3315, - type = "deequip", - slot = "hand", - }, - { - -- naginata - itemid = 3314, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- naginata - itemid = 3314, - type = "deequip", - slot = "hand", - }, - { - -- obsidian lance - itemid = 3313, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- obsidian lance - itemid = 3313, - type = "deequip", - slot = "hand", - }, - { - -- silver mace - itemid = 3312, - type = "equip", - slot = "hand", - level = 45, - }, - { - -- silver mace - itemid = 3312, - type = "deequip", - slot = "hand", - }, - { - -- clerical mace - itemid = 3311, - type = "equip", - slot = "hand", - level = 20, - }, - { - -- clerical mace - itemid = 3311, - type = "deequip", - slot = "hand", - }, - { - -- iron hammer - itemid = 3310, - type = "equip", - slot = "hand", - }, - { - -- iron hammer - itemid = 3310, - type = "deequip", - slot = "hand", - }, - { - -- thunder hammer - itemid = 3309, - type = "equip", - slot = "hand", - level = 85, - }, - { - -- thunder hammer - itemid = 3309, - type = "deequip", - slot = "hand", - }, - { - -- machete - itemid = 3308, - type = "equip", - slot = "hand", - }, - { - -- machete - itemid = 3308, - type = "deequip", - slot = "hand", - }, - { - -- scimitar - itemid = 3307, - type = "equip", - slot = "hand", - }, - { - -- scimitar - itemid = 3307, - type = "deequip", - slot = "hand", - }, - { - -- golden sickle - itemid = 3306, - type = "equip", - slot = "hand", - }, - { - -- golden sickle - itemid = 3306, - type = "deequip", - slot = "hand", - }, - { - -- battle hammer - itemid = 3305, - type = "equip", - slot = "hand", - }, - { - -- battle hammer - itemid = 3305, - type = "deequip", - slot = "hand", - }, - { - -- crowbar - itemid = 3304, - type = "equip", - slot = "hand", - }, - { - -- crowbar - itemid = 3304, - type = "deequip", - slot = "hand", - }, - { - -- great axe - itemid = 3303, - type = "equip", - slot = "hand", - level = 95, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- great axe - itemid = 3303, - type = "deequip", - slot = "hand", - }, - { - -- dragon lance - itemid = 3302, - type = "equip", - slot = "hand", - level = 60, - }, - { - -- dragon lance - itemid = 3302, - type = "deequip", - slot = "hand", - }, - { - -- broadsword - itemid = 3301, - type = "equip", - slot = "hand", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- broadsword - itemid = 3301, - type = "deequip", - slot = "hand", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- katana - itemid = 3300, - type = "equip", - slot = "hand", - }, - { - -- katana - itemid = 3300, - type = "deequip", - slot = "hand", - }, - { - -- poison dagger - itemid = 3299, - type = "equip", - slot = "hand", - }, - { - -- poison dagger - itemid = 3299, - type = "deequip", - slot = "hand", - }, - { - -- throwing knife - itemid = 3298, - type = "equip", - slot = "hand", - }, - { - -- throwing knife - itemid = 3298, - type = "deequip", - slot = "hand", - }, - { - -- serpent sword - itemid = 3297, - type = "equip", - slot = "hand", - }, - { - -- serpent sword - itemid = 3297, - type = "deequip", - slot = "hand", - }, - { - -- warlord sword - itemid = 3296, - type = "equip", - slot = "hand", - level = 120, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- warlord sword - itemid = 3296, - type = "deequip", - slot = "hand", - }, - { - -- bright sword - itemid = 3295, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- bright sword - itemid = 3295, - type = "deequip", - slot = "hand", - level = 30, - }, - { - -- short sword - itemid = 3294, - type = "equip", - slot = "hand", - }, - { - -- short sword - itemid = 3294, - type = "deequip", - slot = "hand", - }, - { - -- sickle - itemid = 3293, - type = "equip", - slot = "hand", - }, - { - -- sickle - itemid = 3293, - type = "deequip", - slot = "hand", - }, - { - -- combat knife - itemid = 3292, - type = "equip", - slot = "hand", - }, - { - -- combat knife - itemid = 3292, - type = "deequip", - slot = "hand", - }, - { - -- knife - itemid = 3291, - type = "equip", - slot = "hand", - }, - { - -- knife - itemid = 3291, - type = "deequip", - slot = "hand", - }, - { - -- silver dagger - itemid = 3290, - type = "equip", - slot = "hand", - }, - { - -- silver dagger - itemid = 3290, - type = "deequip", - slot = "hand", - }, - { - -- staff - itemid = 3289, - type = "equip", - slot = "hand", - }, - { - -- staff - itemid = 3289, - type = "deequip", - slot = "hand", - }, - { - -- magic sword - itemid = 3288, - type = "equip", - slot = "hand", - level = 80, - }, - { - -- magic sword - itemid = 3288, - type = "deequip", - slot = "hand", - }, - { - -- throwing star - itemid = 3287, - type = "equip", - slot = "hand", - }, - { - -- throwing star - itemid = 3287, - type = "deequip", - slot = "hand", - }, - { - -- mace - itemid = 3286, - type = "equip", - slot = "hand", - }, - { - -- mace - itemid = 3286, - type = "deequip", - slot = "hand", - }, - { - -- longsword - itemid = 3285, - type = "equip", - slot = "hand", - }, - { - -- longsword - itemid = 3285, - type = "deequip", - slot = "hand", - }, - { - -- ice rapier - itemid = 3284, - type = "equip", - slot = "hand", - }, - { - -- ice rapier - itemid = 3284, - type = "deequip", - slot = "hand", - }, - { - -- carlin sword - itemid = 3283, - type = "equip", - slot = "hand", - }, - { - -- carlin sword - itemid = 3283, - type = "deequip", - slot = "hand", - }, - { - -- morning star - itemid = 3282, - type = "equip", - slot = "hand", - }, - { - -- morning star - itemid = 3282, - type = "deequip", - slot = "hand", - }, - { - -- giant sword - itemid = 3281, - type = "equip", - slot = "hand", - level = 55, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- giant sword - itemid = 3281, - type = "deequip", - slot = "hand", - }, - { - -- fire sword - itemid = 3280, - type = "equip", - slot = "hand", - level = 30, - }, - { - -- fire sword - itemid = 3280, - type = "deequip", - slot = "hand", - }, - { - -- war hammer - itemid = 3279, - type = "equip", - slot = "hand", - level = 50, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- war hammer - itemid = 3279, - type = "deequip", - slot = "hand", - }, - { - -- magic longsword - itemid = 3278, - type = "equip", - slot = "hand", - level = 140, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- magic longsword - itemid = 3278, - type = "deequip", - slot = "hand", - }, - { - -- spear - itemid = 3277, - type = "equip", - slot = "hand", - }, - { - -- spear - itemid = 3277, - type = "deequip", - slot = "hand", - }, - { - -- hatchet - itemid = 3276, - type = "equip", - slot = "hand", - }, - { - -- hatchet - itemid = 3276, - type = "deequip", - slot = "hand", - }, - { - -- double axe - itemid = 3275, - type = "equip", - slot = "hand", - level = 25, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- double axe - itemid = 3275, - type = "deequip", - slot = "hand", - }, - { - -- axe - itemid = 3274, - type = "equip", - slot = "hand", - }, - { - -- axe - itemid = 3274, - type = "deequip", - slot = "hand", - }, - { - -- sabre - itemid = 3273, - type = "equip", - slot = "hand", - }, - { - -- sabre - itemid = 3273, - type = "deequip", - slot = "hand", - }, - { - -- rapier - itemid = 3272, - type = "equip", - slot = "hand", - }, - { - -- rapier - itemid = 3272, - type = "deequip", - slot = "hand", - }, - { - -- spike sword - itemid = 3271, - type = "equip", - slot = "hand", - }, - { - -- spike sword - itemid = 3271, - type = "deequip", - slot = "hand", - }, - { - -- club - itemid = 3270, - type = "equip", - slot = "hand", - }, - { - -- club - itemid = 3270, - type = "deequip", - slot = "hand", - }, - { - -- halberd - itemid = 3269, - type = "equip", - slot = "hand", - level = 25, - }, - { - -- halberd - itemid = 3269, - type = "deequip", - slot = "hand", - }, - { - -- hand axe - itemid = 3268, - type = "equip", - slot = "hand", - }, - { - -- hand axe - itemid = 3268, - type = "deequip", - slot = "hand", - }, - { - -- dagger - itemid = 3267, - type = "equip", - slot = "hand", - }, - { - -- dagger - itemid = 3267, - type = "deequip", - slot = "hand", - }, - { - -- battle axe - itemid = 3266, - type = "equip", - slot = "hand", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- battle axe - itemid = 3266, - type = "deequip", - slot = "hand", - }, - { - -- two handed sword - itemid = 3265, - type = "equip", - slot = "hand", - level = 20, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- two handed sword - itemid = 3265, - type = "deequip", - slot = "hand", - }, - { - -- sword - itemid = 3264, - type = "equip", - slot = "hand", - }, - { - -- sword - itemid = 3264, - type = "deequip", - slot = "hand", - }, - { - -- backpack of holding - itemid = 3253, - type = "equip", - slot = "backpack", - }, - { - -- backpack of holding - itemid = 3253, - type = "deequip", - slot = "backpack", - }, - { - -- boots of waterwalking - itemid = 3246, - type = "equip", - slot = "feet", - }, - { - -- boots of waterwalking - itemid = 3246, - type = "deequip", - slot = "feet", - }, - { - -- ring of wishes - itemid = 3245, - type = "equip", - slot = "ring", - }, - { - -- ring of wishes - itemid = 3245, - type = "deequip", - slot = "ring", - }, - { - -- helmet of the ancients - itemid = 3230, - type = "equip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3230, - type = "deequip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3229, - type = "equip", - slot = "head", - }, - { - -- helmet of the ancients - itemid = 3229, - type = "deequip", - slot = "head", - }, - { - -- damaged helmet - itemid = 3226, - type = "equip", - slot = "head", - }, - { - -- damaged helmet - itemid = 3226, - type = "deequip", - slot = "head", - }, - { - -- hat of the mad - itemid = 3210, - type = "equip", - slot = "head", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- hat of the mad - itemid = 3210, - type = "deequip", - slot = "head", - }, - { - -- giant smithhammer - itemid = 3208, - type = "equip", - slot = "hand", - }, - { - -- giant smithhammer - itemid = 3208, - type = "deequip", - slot = "hand", - }, - { - -- paw amulet - itemid = 3102, - type = "equip", - slot = "necklace", - }, - { - -- paw amulet - itemid = 3102, - type = "deequip", - slot = "necklace", - }, - { - -- ring of healing - itemid = 3100, - type = "equip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3100, - type = "deequip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3099, - type = "equip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3099, - type = "deequip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3098, - type = "equip", - slot = "ring", - }, - { - -- ring of healing - itemid = 3098, - type = "deequip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3097, - type = "equip", - slot = "ring", - }, - { - -- dwarven ring - itemid = 3097, - type = "deequip", - slot = "ring", - }, - { - -- club ring - itemid = 3096, - type = "equip", - slot = "ring", - }, - { - -- club ring - itemid = 3096, - type = "deequip", - slot = "ring", - }, - { - -- axe ring - itemid = 3095, - type = "equip", - slot = "ring", - }, - { - -- axe ring - itemid = 3095, - type = "deequip", - slot = "ring", - }, - { - -- sword ring - itemid = 3094, - type = "equip", - slot = "ring", - }, - { - -- sword ring - itemid = 3094, - type = "deequip", - slot = "ring", - }, - { - -- club ring - itemid = 3093, - type = "equip", - slot = "ring", - }, - { - -- club ring - itemid = 3093, - type = "deequip", - slot = "ring", - }, - { - -- axe ring - itemid = 3092, - type = "equip", - slot = "ring", - }, - { - -- axe ring - itemid = 3092, - type = "deequip", - slot = "ring", - }, - { - -- sword ring - itemid = 3091, - type = "equip", - slot = "ring", - }, - { - -- sword ring - itemid = 3091, - type = "deequip", - slot = "ring", - }, - { - -- time ring - itemid = 3090, - type = "equip", - slot = "ring", - }, - { - -- time ring - itemid = 3090, - type = "deequip", - slot = "ring", - }, - { - -- life ring - itemid = 3089, - type = "equip", - slot = "ring", - }, - { - -- life ring - itemid = 3089, - type = "deequip", - slot = "ring", - }, - { - -- energy ring - itemid = 3088, - type = "equip", - slot = "ring", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- energy ring - itemid = 3088, - type = "deequip", - slot = "ring", - }, - { - -- power ring - itemid = 3087, - type = "equip", - slot = "ring", - }, - { - -- power ring - itemid = 3087, - type = "deequip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3086, - type = "equip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3086, - type = "deequip", - slot = "ring", - }, - { - -- dragon necklace - itemid = 3085, - type = "equip", - slot = "necklace", - }, - { - -- dragon necklace - itemid = 3085, - type = "deequip", - slot = "necklace", - }, - { - -- protection amulet - itemid = 3084, - type = "equip", - slot = "necklace", - }, - { - -- protection amulet - itemid = 3084, - type = "deequip", - slot = "necklace", - }, - { - -- garlic necklace - itemid = 3083, - type = "equip", - slot = "necklace", - }, - { - -- garlic necklace - itemid = 3083, - type = "deequip", - slot = "necklace", - }, - { - -- elven amulet - itemid = 3082, - type = "equip", - slot = "necklace", - }, - { - -- elven amulet - itemid = 3082, - type = "deequip", - slot = "necklace", - }, - { - -- stone skin amulet - itemid = 3081, - type = "equip", - slot = "necklace", - }, - { - -- stone skin amulet - itemid = 3081, - type = "deequip", - slot = "necklace", - }, - { - -- amulet of life - itemid = 3080, - type = "equip", - slot = "necklace", - }, - { - -- amulet of life - itemid = 3080, - type = "deequip", - slot = "necklace", - }, - { - -- boots of haste - itemid = 3079, - type = "equip", - slot = "feet", - }, - { - -- boots of haste - itemid = 3079, - type = "deequip", - slot = "feet", - }, - { - -- wand of dragonbreath - itemid = 3075, - type = "equip", - slot = "hand", - level = 13, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of dragonbreath - itemid = 3075, - type = "deequip", - slot = "hand", - level = 13, - }, - { - -- wand of vortex - itemid = 3074, - type = "equip", - slot = "hand", - level = 6, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of vortex - itemid = 3074, - type = "deequip", - slot = "hand", - level = 6, - }, - { - -- wand of cosmic energy - itemid = 3073, - type = "equip", - slot = "hand", - level = 26, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of cosmic energy - itemid = 3073, - type = "deequip", - slot = "hand", - level = 26, - }, - { - -- wand of decay - itemid = 3072, - type = "equip", - slot = "hand", - level = 19, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of decay - itemid = 3072, - type = "deequip", - slot = "hand", - level = 19, - }, - { - -- wand of inferno - itemid = 3071, - type = "equip", - slot = "hand", - level = 33, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of inferno - itemid = 3071, - type = "deequip", - slot = "hand", - level = 33, - }, - { - -- moonlight rod - itemid = 3070, - type = "equip", - slot = "hand", - level = 13, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- moonlight rod - itemid = 3070, - type = "deequip", - slot = "hand", - level = 13, - }, - { - -- necrotic rod - itemid = 3069, - type = "equip", - slot = "hand", - level = 19, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- necrotic rod - itemid = 3069, - type = "deequip", - slot = "hand", - level = 19, - }, - { - -- hailstorm rod - itemid = 3067, - type = "equip", - slot = "hand", - level = 33, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- hailstorm rod - itemid = 3067, - type = "deequip", - slot = "hand", - level = 33, - }, - { - -- snakebite rod - itemid = 3066, - type = "equip", - slot = "hand", - level = 6, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snakebite rod - itemid = 3066, - type = "deequip", - slot = "hand", - level = 6, - }, - { - -- terra rod - itemid = 3065, - type = "equip", - slot = "hand", - level = 26, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- terra rod - itemid = 3065, - type = "deequip", - slot = "hand", - level = 26, - }, - { - -- gold ring - itemid = 3063, - type = "equip", - slot = "ring", - }, - { - -- gold ring - itemid = 3063, - type = "deequip", - slot = "ring", - }, - { - -- spellbook - itemid = 3059, - type = "equip", - slot = "shield", - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- spellbook - itemid = 3059, - type = "deequip", - slot = "shield", - }, - { - -- amulet of loss - itemid = 3057, - type = "equip", - slot = "necklace", - }, - { - -- amulet of loss - itemid = 3057, - type = "deequip", - slot = "necklace", - }, - { - -- bronze amulet - itemid = 3056, - type = "equip", - slot = "necklace", - }, - { - -- bronze amulet - itemid = 3056, - type = "deequip", - slot = "necklace", - }, - { - -- platinum amulet - itemid = 3055, - type = "equip", - slot = "necklace", - }, - { - -- platinum amulet - itemid = 3055, - type = "deequip", - slot = "necklace", - }, - { - -- silver amulet - itemid = 3054, - type = "equip", - slot = "necklace", - }, - { - -- silver amulet - itemid = 3054, - type = "deequip", - slot = "necklace", - }, - { - -- time ring - itemid = 3053, - type = "equip", - slot = "ring", - }, - { - -- time ring - itemid = 3053, - type = "deequip", - slot = "ring", - }, - { - -- life ring - itemid = 3052, - type = "equip", - slot = "ring", - }, - { - -- life ring - itemid = 3052, - type = "deequip", - slot = "ring", - }, - { - -- energy ring - itemid = 3051, - type = "equip", - slot = "ring", - vocation = { - { "Knight", true }, - { "Paladin", true, true }, - { "Elite Knight" }, - { "Royal Paladin" }, - }, - }, - { - -- energy ring - itemid = 3051, - type = "deequip", - slot = "ring", - }, - { - -- power ring - itemid = 3050, - type = "equip", - slot = "ring", - }, - { - -- power ring - itemid = 3050, - type = "deequip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3049, - type = "equip", - slot = "ring", - }, - { - -- stealth ring - itemid = 3049, - type = "deequip", - slot = "ring", - }, - { - -- might ring - itemid = 3048, - type = "equip", - slot = "ring", - }, - { - -- might ring - itemid = 3048, - type = "deequip", - slot = "ring", - }, - { - -- strange talisman - itemid = 3045, - type = "equip", - slot = "necklace", - }, - { - -- strange talisman - itemid = 3045, - type = "deequip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 3025, - type = "equip", - slot = "necklace", - }, - { - -- ancient amulet - itemid = 3025, - type = "deequip", - slot = "necklace", - }, - { - -- ancient tiara - itemid = 3022, - type = "equip", - slot = "head", - }, - { - -- ancient tiara - itemid = 3022, - type = "deequip", - slot = "head", - }, - { - -- sapphire amulet - itemid = 3021, - type = "equip", - slot = "necklace", - }, - { - -- sapphire amulet - itemid = 3021, - type = "deequip", - slot = "necklace", - }, - { - -- demonbone amulet - itemid = 3019, - type = "equip", - slot = "necklace", - }, - { - -- demonbone amulet - itemid = 3019, - type = "deequip", - slot = "necklace", - }, - { - -- scarab amulet - itemid = 3018, - type = "equip", - slot = "necklace", - }, - { - -- scarab amulet - itemid = 3018, - type = "deequip", - slot = "necklace", - }, - { - -- ruby necklace - itemid = 3016, - type = "equip", - slot = "necklace", - }, - { - -- ruby necklace - itemid = 3016, - type = "deequip", - slot = "necklace", - }, - { - -- silver necklace - itemid = 3015, - type = "equip", - slot = "necklace", - }, - { - -- silver necklace - itemid = 3015, - type = "deequip", - slot = "necklace", - }, - { - -- star amulet - itemid = 3014, - type = "equip", - slot = "necklace", - }, - { - -- star amulet - itemid = 3014, - type = "deequip", - slot = "necklace", - }, - { - -- golden amulet - itemid = 3013, - type = "equip", - slot = "necklace", - }, - { - -- golden amulet - itemid = 3013, - type = "deequip", - slot = "necklace", - }, - { - -- wolf tooth chain - itemid = 3012, - type = "equip", - slot = "necklace", - }, - { - -- wolf tooth chain - itemid = 3012, - type = "deequip", - slot = "necklace", - }, - { - -- crown - itemid = 3011, - type = "equip", - slot = "head", - }, - { - -- crown - itemid = 3011, - type = "deequip", - slot = "head", - }, - { - -- bronze necklace - itemid = 3009, - type = "equip", - slot = "necklace", - }, - { - -- bronze necklace - itemid = 3009, - type = "deequip", - slot = "necklace", - }, - { - -- crystal necklace - itemid = 3008, - type = "equip", - slot = "necklace", - }, - { - -- crystal necklace - itemid = 3008, - type = "deequip", - slot = "necklace", - }, - { - -- crystal ring - itemid = 3007, - type = "equip", - slot = "ring", - }, - { - -- crystal ring - itemid = 3007, - type = "deequip", - slot = "ring", - }, - { - -- ring of the sky - itemid = 3006, - type = "equip", - slot = "ring", - }, - { - -- ring of the sky - itemid = 3006, - type = "deequip", - slot = "ring", - }, - { - -- wedding ring - itemid = 3004, - type = "equip", - slot = "ring", - }, - { - -- wedding ring - itemid = 3004, - type = "deequip", - slot = "ring", - }, - { - -- snowball - itemid = 2992, - type = "equip", - slot = "hand", - }, - { - -- snowball - itemid = 2992, - type = "deequip", - slot = "hand", - }, - { - -- golden backpack - itemid = 2871, - type = "equip", - slot = "backpack", - }, - { - -- golden backpack - itemid = 2871, - type = "deequip", - slot = "backpack", - }, - { - -- grey backpack - itemid = 2870, - type = "equip", - slot = "backpack", - }, - { - -- grey backpack - itemid = 2870, - type = "deequip", - slot = "backpack", - }, - { - -- blue backpack - itemid = 2869, - type = "equip", - slot = "backpack", - }, - { - -- blue backpack - itemid = 2869, - type = "deequip", - slot = "backpack", - }, - { - -- purple backpack - itemid = 2868, - type = "equip", - slot = "backpack", - }, - { - -- purple backpack - itemid = 2868, - type = "deequip", - slot = "backpack", - }, - { - -- red backpack - itemid = 2867, - type = "equip", - slot = "backpack", - }, - { - -- red backpack - itemid = 2867, - type = "deequip", - slot = "backpack", - }, - { - -- yellow backpack - itemid = 2866, - type = "equip", - slot = "backpack", - }, - { - -- yellow backpack - itemid = 2866, - type = "deequip", - slot = "backpack", - }, - { - -- green backpack - itemid = 2865, - type = "equip", - slot = "backpack", - }, - { - -- green backpack - itemid = 2865, - type = "deequip", - slot = "backpack", - }, - { - -- golden bag - itemid = 2863, - type = "equip", - slot = "backpack", - }, - { - -- golden bag - itemid = 2863, - type = "deequip", - slot = "backpack", - }, - { - -- grey bag - itemid = 2862, - type = "equip", - slot = "backpack", - }, - { - -- grey bag - itemid = 2862, - type = "deequip", - slot = "backpack", - }, - { - -- blue bag - itemid = 2861, - type = "equip", - slot = "backpack", - }, - { - -- blue bag - itemid = 2861, - type = "deequip", - slot = "backpack", - }, - { - -- purple bag - itemid = 2860, - type = "equip", - slot = "backpack", - }, - { - -- purple bag - itemid = 2860, - type = "deequip", - slot = "backpack", - }, - { - -- red bag - itemid = 2859, - type = "equip", - slot = "backpack", - }, - { - -- red bag - itemid = 2859, - type = "deequip", - slot = "backpack", - }, - { - -- yellow bag - itemid = 2858, - type = "equip", - slot = "backpack", - }, - { - -- yellow bag - itemid = 2858, - type = "deequip", - slot = "backpack", - }, - { - -- green bag - itemid = 2857, - type = "equip", - slot = "backpack", - }, - { - -- green bag - itemid = 2857, - type = "deequip", - slot = "backpack", - }, - { - -- backpack - itemid = 2854, - type = "equip", - slot = "backpack", - }, - { - -- backpack - itemid = 2854, - type = "deequip", - slot = "backpack", - }, - { - -- bag - itemid = 2853, - type = "equip", - slot = "backpack", - }, - { - -- bag - itemid = 2853, - type = "deequip", - slot = "backpack", - }, - { - -- searing fire - itemid = 2138, - type = "stepin", - }, - { - -- searing fire - itemid = 2138, - type = "additem", - }, - { - -- searing fire - itemid = 2137, - type = "stepin", - }, - { - -- searing fire - itemid = 2137, - type = "additem", - }, - { - -- smoke - itemid = 2136, - type = "stepin", - }, - { - -- smoke - itemid = 2136, - type = "additem", - }, - { - -- energy field - itemid = 2135, - type = "stepin", - }, - { - -- energy field - itemid = 2135, - type = "additem", - }, - { - -- poison gas - itemid = 2134, - type = "stepin", - }, - { - -- poison gas - itemid = 2134, - type = "additem", - }, - { - -- fire field - itemid = 2133, - type = "stepin", - }, - { - -- fire field - itemid = 2133, - type = "additem", - }, - { - -- fire field - itemid = 2132, - type = "stepin", - }, - { - -- fire field - itemid = 2132, - type = "additem", - }, - { - -- fire field - itemid = 21465, - type = "stepin", - }, - { - -- fire field - itemid = 21465, - type = "additem", - }, - { - -- rush wood - itemid = 2130, - type = "stepin", - }, - { - -- rush wood - itemid = 2130, - type = "additem", - }, - { - -- magic wall - itemid = 2129, - type = "stepin", - }, - { - -- magic wall - itemid = 2129, - type = "additem", - }, - { - -- magic wall - itemid = 2128, - type = "stepin", - }, - { - -- magic wall - itemid = 2128, - type = "additem", - }, - { - -- poison field - itemid = 2121, - type = "stepin", - }, - { - -- poison field - itemid = 2121, - type = "additem", - }, - { - -- energy field - itemid = 2126, - type = "stepin", - }, - { - -- energy field - itemid = 2126, - type = "additem", - }, - { - -- fire field - itemid = 2125, - type = "stepin", - }, - { - -- fire field - itemid = 2125, - type = "additem", - }, - { - -- fire field - itemid = 2124, - type = "stepin", - }, - { - -- fire field - itemid = 2124, - type = "additem", - }, - { - -- fire field - itemid = 2123, - type = "stepin", - }, - { - -- fire field - itemid = 2123, - type = "additem", - }, - { - -- energy field - itemid = 2122, - type = "stepin", - }, - { - -- energy field - itemid = 2122, - type = "additem", - }, - { - -- poison field - itemid = 105, - type = "stepin", - }, - { - -- poison field - itemid = 105, - type = "additem", - }, - { - -- fire field - itemid = 2120, - type = "stepin", - }, - { - -- fire field - itemid = 2120, - type = "additem", - }, - { - -- fire field - itemid = 2119, - type = "stepin", - }, - { - -- fire field - itemid = 2119, - type = "additem", - }, - { - -- fire field - itemid = 2118, - type = "stepin", - }, - { - -- fire field - itemid = 2118, - type = "additem", - }, - { - -- campfire - itemid = 2000, - type = "stepin", - }, - { - -- campfire - itemid = 2000, - type = "additem", - }, - { - -- campfire - itemid = 1999, - type = "stepin", - }, - { - -- campfire - itemid = 1999, - type = "additem", - }, - { - -- campfire - itemid = 1998, - type = "stepin", - }, - { - -- campfire - itemid = 1998, - type = "additem", - }, - { - -- small stone - itemid = 1781, - type = "equip", - slot = "hand", - }, - { - -- small stone - itemid = 1781, - type = "deequip", - slot = "hand", - }, -} - -for _, i in ipairs(items) do - local movement = MoveEvent() - movement:id(i.itemid or i.itemId) - - if i.type then - movement:type(i.type) - end - if i.slot then - movement:slot(i.slot) - end - if i.level then - movement:level(i.level) - end - if i.vocation then - for _, v in ipairs(i.vocation) do - movement:vocation(v[1], v[2] or false, v[3] or false) - end - end - movement:register() -end diff --git a/data-otservbr-global/scripts/weapons/unscripted_weapons.lua b/data-otservbr-global/scripts/weapons/unscripted_weapons.lua deleted file mode 100644 index 5e6232836e9..00000000000 --- a/data-otservbr-global/scripts/weapons/unscripted_weapons.lua +++ /dev/null @@ -1,5378 +0,0 @@ -local weapons = { - { - -- grand sanguine rod - itemId = 43886, - type = WEAPON_WAND, - wandType = "earth", - level = 600, - mana = 20, - damage = { 100, 124 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- sanguine rod - itemId = 43885, - type = WEAPON_WAND, - wandType = "earth", - level = 600, - mana = 20, - damage = { 100, 124 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- grand sanguine coil - itemId = 43883, - type = WEAPON_WAND, - wandType = "energy", - level = 250, - mana = 21, - damage = { 103, 125 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- sanguine coil - itemId = 43882, - type = WEAPON_WAND, - wandType = "fire", - level = 250, - mana = 21, - damage = { 113, 125 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- grand sanguine crossbow - itemId = 43880, - type = WEAPON_DISTANCE, - level = 600, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine crossbow - itemId = 43879, - type = WEAPON_DISTANCE, - level = 600, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine bow - itemId = 43878, - type = WEAPON_DISTANCE, - level = 600, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- sanguine bow - itemId = 43877, - type = WEAPON_DISTANCE, - level = 600, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- grand sanguine battleaxe - itemId = 43875, - type = WEAPON_AXE, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine battleaxe - itemId = 43874, - type = WEAPON_AXE, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine bludgeon - itemId = 43873, - type = WEAPON_CLUB, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine bludgeon - itemId = 43872, - type = WEAPON_CLUB, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine razor - itemId = 43871, - type = WEAPON_SWORD, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine razor - itemId = 43870, - type = WEAPON_SWORD, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine hatchet - itemId = 43869, - type = WEAPON_AXE, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine hatchet - itemId = 43868, - type = WEAPON_AXE, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine cudgel - itemId = 43867, - type = WEAPON_CLUB, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine cudgel - itemId = 43866, - type = WEAPON_CLUB, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- grand sanguine blade - itemId = 43865, - type = WEAPON_SWORD, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sanguine blade - itemId = 43864, - type = WEAPON_SWORD, - level = 600, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- broken macuahuitl - itemId = 40530, - type = WEAPON_SWORD, - }, - { - -- naga rod - itemId = 39163, - type = WEAPON_WAND, - wandType = "ice", - level = 250, - mana = 22, - damage = { 90, 110 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- naga wand - itemId = 39162, - type = WEAPON_WAND, - wandType = "energy", - level = 250, - mana = 21, - damage = { 90, 120 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- naga crossbow - itemId = 39159, - type = WEAPON_DISTANCE, - level = 300, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- naga club - itemId = 39157, - type = WEAPON_CLUB, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga axe - itemId = 39156, - type = WEAPON_AXE, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- naga sword - itemId = 39155, - type = WEAPON_SWORD, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch rod - itemId = 36675, - type = WEAPON_WAND, - wandType = "ice", - level = 250, - mana = 22, - damage = { 85, 105 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- eldritch rod - itemId = 36674, - type = WEAPON_WAND, - wandType = "ice", - level = 250, - mana = 22, - damage = { 85, 105 }, - unproperly = true, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- gilded eldritch wand - itemId = 36669, - type = WEAPON_WAND, - wandType = "fire", - level = 250, - mana = 22, - damage = { 85, 105 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- eldritch wand - itemId = 36668, - type = WEAPON_WAND, - wandType = "fire", - level = 250, - mana = 22, - damage = { 85, 105 }, - unproperly = true, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- gilded eldritch bow - itemId = 36665, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- eldritch bow - itemId = 36664, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- gilded eldritch greataxe - itemId = 36662, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch greataxe - itemId = 36661, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch warmace - itemId = 36660, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch warmace - itemId = 36659, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- gilded eldritch claymore - itemId = 36658, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- eldritch claymore - itemId = 36657, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spectral bolt (no decay) - itemId = 35902, - type = WEAPON_AMMO, - level = 150, - unproperly = true, - action = "removecount", - }, - { - -- jungle wand - itemId = 35522, - type = WEAPON_WAND, - wandType = "earth", - level = 150, - mana = 19, - damage = { 80, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- jungle rod - itemId = 35521, - type = WEAPON_WAND, - wandType = "ice", - level = 150, - mana = 19, - damage = { 80, 100 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- jungle bow - itemId = 35518, - type = WEAPON_DISTANCE, - level = 150, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- throwing axe - itemId = 35515, - type = WEAPON_AXE, - level = 150, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jungle flail - itemId = 35514, - type = WEAPON_CLUB, - level = 150, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion longsword - itemId = 34155, - type = WEAPON_SWORD, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion hammer - itemId = 34254, - type = WEAPON_CLUB, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion axe - itemId = 34253, - type = WEAPON_AXE, - level = 270, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- lion wand - itemId = 34152, - type = WEAPON_WAND, - wandType = "ice", - level = 220, - mana = 21, - damage = { 89, 109 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- lion rod - itemId = 34151, - type = WEAPON_WAND, - wandType = "ice", - level = 270, - mana = 20, - damage = { 85, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- lion longbow - itemId = 34150, - type = WEAPON_DISTANCE, - level = 270, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulhexer rod - itemId = 34091, - type = WEAPON_WAND, - wandType = "ice", - level = 400, - mana = 21, - damage = { 98, 118 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- soultainter wand - itemId = 34090, - type = WEAPON_WAND, - wandType = "death", - level = 400, - mana = 21, - damage = { 100, 120 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- soulpiercer crossbow - itemId = 34089, - type = WEAPON_DISTANCE, - level = 400, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulbleeder bow - itemId = 34088, - type = WEAPON_DISTANCE, - level = 400, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- soulmaimer club - itemId = 34087, - type = WEAPON_CLUB, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcrusher club - itemId = 34086, - type = WEAPON_CLUB, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- souleater axe - itemId = 34085, - type = WEAPON_AXE, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulbiter axe - itemId = 34084, - type = WEAPON_AXE, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulshredder sword - itemId = 34083, - type = WEAPON_SWORD, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- soulcutter sword - itemId = 34082, - type = WEAPON_SWORD, - level = 400, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- phantasmal axe - itemId = 32616, - type = WEAPON_AXE, - level = 180, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- meat hammer - itemId = 32093, - type = WEAPON_CLUB, - }, - { - -- tagralt blade - itemId = 31614, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- bow of cataclysm - itemId = 31581, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mortal mace - itemId = 31580, - type = WEAPON_CLUB, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra rod - itemId = 30400, - type = WEAPON_WAND, - wandType = "earth", - level = 220, - mana = 21, - damage = { 70, 110 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- cobra wand - itemId = 30399, - type = WEAPON_WAND, - wandType = "energy", - level = 270, - mana = 22, - damage = { 94, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- cobra sword - itemId = 30398, - type = WEAPON_SWORD, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra axe - itemId = 30396, - type = WEAPON_AXE, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra club - itemId = 30395, - type = WEAPON_CLUB, - level = 220, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cobra crossbow - itemId = 30393, - type = WEAPON_DISTANCE, - level = 220, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ice hatchet - itemId = 30283, - type = WEAPON_AXE, - }, - { - -- energized limb - itemId = 29425, - type = WEAPON_WAND, - wandType = "fire", - level = 180, - mana = 24, - damage = { 88, 108 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- winterblade - itemId = 29422, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- summerblade - itemId = 29421, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- resizer - itemId = 29419, - type = WEAPON_CLUB, - level = 230, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- living vine bow - itemId = 29417, - type = WEAPON_DISTANCE, - level = 220, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- golden axe - itemId = 29286, - type = WEAPON_AXE, - }, - { - -- wand of destruction test - itemId = 28479, - type = WEAPON_WAND, - }, - { - -- umbral master bow test - itemId = 28478, - type = WEAPON_DISTANCE, - }, - { - -- sorcerer test weapon - itemId = 28466, - type = WEAPON_WAND, - }, - { - -- bow of destruction test - itemId = 28465, - type = WEAPON_DISTANCE, - }, - { - -- test weapon for knights - itemId = 28464, - type = WEAPON_SWORD, - }, - { - -- sulphurous demonbone - itemId = 28832, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- unliving demonbone - itemId = 28831, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- energized demonbone - itemId = 28830, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- rotten demonbone - itemId = 28829, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- deepling fork - itemId = 28826, - type = WEAPON_WAND, - wandType = "ice", - level = 230, - mana = 23, - damage = { 80, 120 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- deepling ceremonial dagger - itemId = 28825, - type = WEAPON_WAND, - wandType = "ice", - level = 180, - mana = 23, - damage = { 86, 98 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- falcon mace - itemId = 28725, - type = WEAPON_CLUB, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon battleaxe - itemId = 28724, - type = WEAPON_AXE, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon longsword - itemId = 28723, - type = WEAPON_SWORD, - level = 300, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- falcon bow - itemId = 28718, - type = WEAPON_DISTANCE, - level = 300, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- falcon wand - itemId = 28717, - type = WEAPON_WAND, - wandType = "energy", - level = 300, - mana = 21, - damage = { 86, 102 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- falcon rod - itemId = 28716, - type = WEAPON_WAND, - wandType = "earth", - level = 300, - mana = 20, - damage = { 87, 101 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- gnome sword - itemId = 27651, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mallet handle - itemId = 27525, - type = WEAPON_CLUB, - }, - { - -- strange mallet - itemId = 27523, - type = WEAPON_CLUB, - }, - { - -- rod of destruction - itemId = 27458, - type = WEAPON_WAND, - wandType = "ice", - level = 200, - mana = 20, - damage = { 80, 110 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of destruction - itemId = 27457, - type = WEAPON_WAND, - wandType = "energy", - level = 200, - mana = 20, - damage = { 80, 110 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of destruction - itemId = 27456, - type = WEAPON_DISTANCE, - level = 200, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of destruction - itemId = 27455, - type = WEAPON_DISTANCE, - level = 200, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of destruction - itemId = 27454, - type = WEAPON_CLUB, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of destruction - itemId = 27453, - type = WEAPON_CLUB, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of destruction - itemId = 27452, - type = WEAPON_AXE, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of destruction - itemId = 27451, - type = WEAPON_AXE, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of destruction - itemId = 27450, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of destruction - itemId = 27449, - type = WEAPON_SWORD, - level = 200, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ornate carving hammer - itemId = 26061, - type = WEAPON_CLUB, - }, - { - -- valuable carving hammer - itemId = 26060, - type = WEAPON_CLUB, - }, - { - -- plain carving hammer - itemId = 26059, - type = WEAPON_CLUB, - }, - { - -- ornate carving mace - itemId = 26058, - type = WEAPON_CLUB, - }, - { - -- valuable carving mace - itemId = 26057, - type = WEAPON_CLUB, - }, - { - -- plain carving mace - itemId = 26056, - type = WEAPON_CLUB, - }, - { - -- ornate carving chopper - itemId = 26055, - type = WEAPON_AXE, - }, - { - -- valuable carving chopper - itemId = 26054, - type = WEAPON_AXE, - }, - { - -- plain carving chopper - itemId = 26053, - type = WEAPON_AXE, - }, - { - -- ornate carving axe - itemId = 26052, - type = WEAPON_AXE, - }, - { - -- valuable carving axe - itemId = 26051, - type = WEAPON_AXE, - }, - { - -- plain carving axe - itemId = 26050, - type = WEAPON_AXE, - }, - { - -- ornate carving slayer - itemId = 26049, - type = WEAPON_SWORD, - }, - { - -- valuable carving slayer - itemId = 26048, - type = WEAPON_SWORD, - }, - { - -- plain carving slayer - itemId = 26047, - type = WEAPON_SWORD, - }, - { - -- ornate carving blade - itemId = 26046, - type = WEAPON_SWORD, - }, - { - -- valuable carving blade - itemId = 26045, - type = WEAPON_SWORD, - }, - { - -- plain carving blade - itemId = 26044, - type = WEAPON_SWORD, - }, - { - -- ornate remedy hammer - itemId = 26031, - type = WEAPON_CLUB, - }, - { - -- valuable remedy hammer - itemId = 26030, - type = WEAPON_CLUB, - }, - { - -- plain remedy hammer - itemId = 26029, - type = WEAPON_CLUB, - }, - { - -- ornate remedy mace - itemId = 26028, - type = WEAPON_CLUB, - }, - { - -- valuable remedy mace - itemId = 26027, - type = WEAPON_CLUB, - }, - { - -- plain remedy mace - itemId = 26026, - type = WEAPON_CLUB, - }, - { - -- ornate remedy chopper - itemId = 26025, - type = WEAPON_AXE, - }, - { - -- valuable remedy chopper - itemId = 26024, - type = WEAPON_AXE, - }, - { - -- plain remedy chopper - itemId = 26023, - type = WEAPON_AXE, - }, - { - -- ornate remedy axe - itemId = 26022, - type = WEAPON_AXE, - }, - { - -- valuable remedy axe - itemId = 26021, - type = WEAPON_AXE, - }, - { - -- plain remedy axe - itemId = 26020, - type = WEAPON_AXE, - }, - { - -- ornate remedy slayer - itemId = 26019, - type = WEAPON_SWORD, - }, - { - -- valuable remedy slayer - itemId = 26018, - type = WEAPON_SWORD, - }, - { - -- plain remedy slayer - itemId = 26017, - type = WEAPON_SWORD, - }, - { - -- ornate remedy blade - itemId = 26016, - type = WEAPON_SWORD, - }, - { - -- valuable remedy blade - itemId = 26015, - type = WEAPON_SWORD, - }, - { - -- plain remedy blade - itemId = 26014, - type = WEAPON_SWORD, - }, - { - -- ornate mayhem hammer - itemId = 26000, - type = WEAPON_CLUB, - }, - { - -- valuable mayhem hammer - itemId = 25999, - type = WEAPON_CLUB, - }, - { - -- plain mayhem hammer - itemId = 25998, - type = WEAPON_CLUB, - }, - { - -- ornate mayhem mace - itemId = 25997, - type = WEAPON_CLUB, - }, - { - -- valuable mayhem mace - itemId = 25996, - type = WEAPON_CLUB, - }, - { - -- plain mayhem mace - itemId = 25995, - type = WEAPON_CLUB, - }, - { - -- ornate mayhem chopper - itemId = 25994, - type = WEAPON_AXE, - }, - { - -- valuable mayhem chopper - itemId = 25993, - type = WEAPON_AXE, - }, - { - -- plain mayhem chopper - itemId = 25992, - type = WEAPON_AXE, - }, - { - -- ornate mayhem axe - itemId = 25991, - type = WEAPON_AXE, - }, - { - -- valuable mayhem axe - itemId = 25990, - type = WEAPON_AXE, - }, - { - -- plain mayhem axe - itemId = 25989, - type = WEAPON_AXE, - }, - { - -- ornate mayhem slayer - itemId = 25988, - type = WEAPON_SWORD, - }, - { - -- valuable mayhem slayer - itemId = 25987, - type = WEAPON_SWORD, - }, - { - -- plain mayhem slayer - itemId = 25986, - type = WEAPON_SWORD, - }, - { - -- ornate mayhem blade - itemId = 25985, - type = WEAPON_SWORD, - }, - { - -- valuable mayhem blade - itemId = 25984, - type = WEAPON_SWORD, - }, - { - -- plain mayhem blade - itemId = 25983, - type = WEAPON_SWORD, - }, - { - -- energy war hammer replica - itemId = 25974, - type = WEAPON_CLUB, - }, - { - -- energy orcish maul replica - itemId = 25973, - type = WEAPON_CLUB, - }, - { - -- energy basher replica - itemId = 25972, - type = WEAPON_CLUB, - }, - { - -- energy crystal mace replica - itemId = 25971, - type = WEAPON_CLUB, - }, - { - -- energy clerical mace replica - itemId = 25970, - type = WEAPON_CLUB, - }, - { - -- energy war axe replica - itemId = 25969, - type = WEAPON_AXE, - }, - { - -- energy headchopper replica - itemId = 25968, - type = WEAPON_AXE, - }, - { - -- energy heroic axe replica - itemId = 25967, - type = WEAPON_AXE, - }, - { - -- energy knight axe replica - itemId = 25966, - type = WEAPON_AXE, - }, - { - -- energy barbarian axe replica - itemId = 25965, - type = WEAPON_AXE, - }, - { - -- energy dragon slayer replica - itemId = 25964, - type = WEAPON_SWORD, - }, - { - -- energy blacksteel replica - itemId = 25963, - type = WEAPON_SWORD, - }, - { - -- energy mystic blade replica - itemId = 25962, - type = WEAPON_SWORD, - }, - { - -- energy relic sword replica - itemId = 25961, - type = WEAPON_SWORD, - }, - { - -- energy spike sword replica - itemId = 25960, - type = WEAPON_SWORD, - }, - { - -- earth war hammer replica - itemId = 25959, - type = WEAPON_CLUB, - }, - { - -- earth orcish maul replica - itemId = 25958, - type = WEAPON_CLUB, - }, - { - -- earth basher replica - itemId = 25957, - type = WEAPON_CLUB, - }, - { - -- earth crystal mace replica - itemId = 25956, - type = WEAPON_CLUB, - }, - { - -- earth clerical mace replica - itemId = 25955, - type = WEAPON_CLUB, - }, - { - -- earth war axe replica - itemId = 25954, - type = WEAPON_AXE, - }, - { - -- earth headchopper replica - itemId = 25953, - type = WEAPON_AXE, - }, - { - -- earth heroic axe replica - itemId = 25952, - type = WEAPON_AXE, - }, - { - -- earth knight axe replica - itemId = 25951, - type = WEAPON_AXE, - }, - { - -- earth barbarian axe replica - itemId = 25950, - type = WEAPON_AXE, - }, - { - -- earth dragon slayer replica - itemId = 25949, - type = WEAPON_SWORD, - }, - { - -- earth blacksteel replica - itemId = 25948, - type = WEAPON_SWORD, - }, - { - -- earth mystic blade replica - itemId = 25947, - type = WEAPON_SWORD, - }, - { - -- earth relic sword replica - itemId = 25946, - type = WEAPON_SWORD, - }, - { - -- earth spike sword replica - itemId = 25945, - type = WEAPON_SWORD, - }, - { - -- icy war hammer replica - itemId = 25944, - type = WEAPON_CLUB, - }, - { - -- icy orcish maul replica - itemId = 25943, - type = WEAPON_CLUB, - }, - { - -- icy basher replica - itemId = 25942, - type = WEAPON_CLUB, - }, - { - -- icy crystal mace replica - itemId = 25941, - type = WEAPON_CLUB, - }, - { - -- icy clerical mace replica - itemId = 25940, - type = WEAPON_CLUB, - }, - { - -- icy war axe replica - itemId = 25939, - type = WEAPON_AXE, - }, - { - -- icy headchopper replica - itemId = 25938, - type = WEAPON_AXE, - }, - { - -- icy heroic axe replica - itemId = 25937, - type = WEAPON_AXE, - }, - { - -- icy knight axe replica - itemId = 25936, - type = WEAPON_AXE, - }, - { - -- icy barbarian axe replica - itemId = 25935, - type = WEAPON_AXE, - }, - { - -- icy dragon slayer replica - itemId = 25934, - type = WEAPON_SWORD, - }, - { - -- icy blacksteel replica - itemId = 25933, - type = WEAPON_SWORD, - }, - { - -- icy mystic blade replica - itemId = 25932, - type = WEAPON_SWORD, - }, - { - -- icy relic sword replica - itemId = 25931, - type = WEAPON_SWORD, - }, - { - -- icy spike sword replica - itemId = 25930, - type = WEAPON_SWORD, - }, - { - -- fiery war hammer replica - itemId = 25929, - type = WEAPON_CLUB, - }, - { - -- fiery orcish maul replica - itemId = 25928, - type = WEAPON_CLUB, - }, - { - -- fiery basher replica - itemId = 25927, - type = WEAPON_CLUB, - }, - { - -- fiery crystal mace replica - itemId = 25926, - type = WEAPON_CLUB, - }, - { - -- fiery clerical mace replica - itemId = 25925, - type = WEAPON_CLUB, - }, - { - -- fiery war axe replica - itemId = 25924, - type = WEAPON_AXE, - }, - { - -- fiery headchopper replica - itemId = 25923, - type = WEAPON_AXE, - }, - { - -- fiery heroic axe replica - itemId = 25922, - type = WEAPON_AXE, - }, - { - -- fiery knight axe replica - itemId = 25921, - type = WEAPON_AXE, - }, - { - -- fiery barbarian axe replica - itemId = 25920, - type = WEAPON_AXE, - }, - { - -- fiery dragon slayer replica - itemId = 25919, - type = WEAPON_SWORD, - }, - { - -- fiery blacksteel replica - itemId = 25918, - type = WEAPON_SWORD, - }, - { - -- fiery mystic blade replica - itemId = 25917, - type = WEAPON_SWORD, - }, - { - -- fiery relic sword replica - itemId = 25916, - type = WEAPON_SWORD, - }, - { - -- fiery spike sword replica - itemId = 25915, - type = WEAPON_SWORD, - }, - { - -- wand of darkness - itemId = 25760, - type = WEAPON_WAND, - wandType = "death", - level = 41, - mana = 15, - damage = { 80, 100 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- royal star - itemid = 25759, - type = WEAPON_MISSILE, - level = 120, - unproperly = true, - breakchance = 30, - }, - { - -- spectral bolt - itemId = 25758, - type = WEAPON_AMMO, - level = 150, - unproperly = true, - action = "removecount", - }, - { - -- leaf star - itemid = 25735, - type = WEAPON_MISSILE, - level = 60, - unproperly = true, - breakchance = 40, - }, - { - -- dream blossom staff - itemId = 25700, - type = WEAPON_WAND, - wandType = "energy", - level = 80, - mana = 18, - damage = { 63, 77 }, - vocation = { - { "Sorcerer", true }, - { "Druid", true, true }, - { "Master Sorcerer" }, - { "Elder Druid" }, - }, - }, - { - -- rod of carving - itemId = 23339, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of carving - itemId = 23335, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of carving - itemId = 23331, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of carving - itemId = 23327, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of carving - itemId = 23323, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of carving - itemId = 23319, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of carving - itemId = 23315, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of carving - itemId = 23311, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of carving - itemId = 23307, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of carving - itemId = 23303, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rod of remedy - itemId = 23299, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of remedy - itemId = 23295, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of remedy - itemId = 23291, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of remedy - itemId = 23287, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of remedy - itemId = 23283, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of remedy - itemId = 23279, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of remedy - itemId = 23275, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of remedy - itemId = 23271, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of remedy - itemId = 23267, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of remedy - itemId = 23263, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rod of mayhem - itemId = 23232, - type = WEAPON_WAND, - wandType = "ice", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of mayhem - itemId = 23231, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 18, - damage = { 70, 105 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crossbow of mayhem - itemId = 23230, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- bow of mayhem - itemId = 23229, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hammer of mayhem - itemId = 23228, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mace of mayhem - itemId = 23227, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chopper of mayhem - itemId = 23226, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe of mayhem - itemId = 23225, - type = WEAPON_AXE, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- slayer of mayhem - itemId = 23224, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blade of mayhem - itemId = 23223, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- rift crossbow - itemId = 22867, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- rift bow - itemId = 22866, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ferumbras' staff (enchanted) - itemId = 22766, - type = WEAPON_WAND, - wandType = "energy", - level = 100, - mana = 19, - damage = { 80, 110 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- ferumbras' staff (failed) - itemId = 22765, - type = WEAPON_WAND, - wandType = "energy", - level = 65, - mana = 17, - damage = { 65, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- Ferumbras' staff - itemId = 22764, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - }, - { - -- maimer - itemId = 22762, - type = WEAPON_CLUB, - level = 150, - unproperly = true, - }, - { - -- Impaler of the igniter - itemId = 22760, - type = WEAPON_SWORD, - level = 150, - unproperly = true, - }, - { - -- plague bite - itemId = 22759, - type = WEAPON_AXE, - level = 150, - unproperly = true, - }, - { - -- rift lance - itemId = 22727, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- ogre sceptra - itemId = 22183, - type = WEAPON_WAND, - wandType = "earth", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- ogre choppa - itemId = 22172, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- ogre klubba - itemId = 22171, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- simple arrow - itemId = 21470, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- the chiller - itemId = 21350, - type = WEAPON_WAND, - wandType = "ice", - level = 1, - mana = 1, - damage = { 4, 8 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- the scorcher - itemId = 21348, - type = WEAPON_WAND, - wandType = "fire", - level = 1, - mana = 1, - damage = { 4, 8 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- one hit wonder - itemId = 21219, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - }, - { - -- glooth axe - itemId = 21180, - type = WEAPON_AXE, - level = 75, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth blade - itemId = 21179, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- glooth club - itemId = 21178, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- cowtana - itemId = 21177, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - }, - { - -- execowtioner axe - itemId = 21176, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- mino lance - itemId = 21174, - type = WEAPON_AXE, - level = 45, - unproperly = true, - }, - { - -- moohtant cudgel - itemId = 21173, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - }, - { - -- glooth whip - itemId = 21172, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- metal bat - itemId = 21171, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - }, - { - -- glooth spear - itemid = 21158, - type = WEAPON_MISSILE, - level = 60, - unproperly = true, - breakchance = 2, - }, - { - -- umbral master crossbow - itemId = 20087, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral crossbow - itemId = 20086, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral crossbow - itemId = 20085, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master bow - itemId = 20084, - type = WEAPON_DISTANCE, - level = 250, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral bow - itemId = 20083, - type = WEAPON_DISTANCE, - level = 120, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crude umbral bow - itemId = 20082, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- umbral master hammer - itemId = 20081, - type = WEAPON_CLUB, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral hammer - itemId = 20080, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral hammer - itemId = 20079, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master mace - itemId = 20078, - type = WEAPON_CLUB, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral mace - itemId = 20077, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral mace - itemId = 20076, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master chopper - itemId = 20075, - type = WEAPON_AXE, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral chopper - itemId = 20074, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral chopper - itemId = 20073, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master axe - itemId = 20072, - type = WEAPON_AXE, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral axe - itemId = 20071, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral axe - itemId = 20070, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral master slayer - itemId = 20069, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral slayer - itemId = 20068, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral slayer - itemId = 20067, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral masterblade - itemId = 20066, - type = WEAPON_SWORD, - level = 250, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- umbral blade - itemId = 20065, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crude umbral blade - itemId = 20064, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icicle bow - itemId = 19362, - type = WEAPON_DISTANCE, - unproperly = true, - }, - { - -- triple bolt crossbow - itemId = 19356, - type = WEAPON_DISTANCE, - level = 70, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- spiky club - itemId = 17859, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- pair of iron fists - itemId = 17828, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- swampling club - itemId = 17824, - type = WEAPON_CLUB, - }, - { - -- life preserver - itemId = 17813, - type = WEAPON_CLUB, - level = 15, - unproperly = true, - }, - { - -- ratana - itemId = 17812, - type = WEAPON_SWORD, - level = 15, - unproperly = true, - }, - { - -- sorc and druid staff - itemId = 17111, - type = WEAPON_WAND, - wandType = "energy", - level = 1, - mana = 2, - damage = { 8, 18 }, - vocation = { - { "None", true }, - }, - }, - { - -- mean paladin spear - itemid = 17110, - type = WEAPON_MISSILE, - breakchance = 3, - vocation = { - { "None", true }, - }, - }, - { - -- mean knight sword - itemId = 17109, - type = WEAPON_SWORD, - unproperly = true, - vocation = { - { "None", true }, - }, - }, - { - -- shiny blade - itemId = 16175, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - }, - { - -- mycological bow - itemId = 16164, - type = WEAPON_DISTANCE, - level = 105, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- crystal crossbow - itemId = 16163, - type = WEAPON_DISTANCE, - level = 90, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- mycological mace - itemId = 16162, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - }, - { - -- crystalline axe - itemId = 16161, - type = WEAPON_AXE, - level = 120, - unproperly = true, - }, - { - -- crystalline sword - itemId = 16160, - type = WEAPON_SWORD, - level = 62, - unproperly = true, - }, - { - -- envenomed arrow - itemid = 16143, - type = WEAPON_AMMO, - level = 70, - unproperly = true, - action = "removecount", - }, - { - -- drill bolt - itemId = 16142, - type = WEAPON_AMMO, - level = 70, - unproperly = true, - action = "removecount", - }, - { - -- prismatic bolt - itemId = 16141, - type = WEAPON_AMMO, - level = 90, - unproperly = true, - action = "removecount", - }, - { - -- glacial rod - itemId = 16118, - type = WEAPON_WAND, - wandType = "ice", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- muck rod - itemId = 16117, - type = WEAPON_WAND, - wandType = "earth", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- wand of everblazing - itemId = 16115, - type = WEAPON_WAND, - wandType = "fire", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of defiance - itemId = 16096, - type = WEAPON_WAND, - wandType = "energy", - level = 65, - mana = 17, - damage = { 75, 95 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- crystalline arrow - itemid = 15793, - type = WEAPON_AMMO, - level = 90, - unproperly = true, - action = "removecount", - }, - { - -- crystal bolt - itemId = 15792, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- thorn spitter - itemId = 14768, - type = WEAPON_DISTANCE, - level = 150, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- vortex bolt - itemId = 14252, - type = WEAPON_AMMO, - level = 40, - unproperly = true, - action = "removecount", - }, - { - -- tarsal arrow - itemid = 14251, - type = WEAPON_AMMO, - level = 30, - unproperly = true, - action = "removecount", - }, - { - -- deepling squelcher - itemId = 14250, - type = WEAPON_CLUB, - level = 48, - unproperly = true, - }, - { - -- ornate crossbow - itemId = 14247, - type = WEAPON_DISTANCE, - level = 50, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hive bow - itemId = 14246, - type = WEAPON_DISTANCE, - level = 85, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- hive scythe - itemId = 14089, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- guardian axe - itemId = 14043, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- warrior's axe - itemId = 14040, - type = WEAPON_AXE, - level = 40, - unproperly = true, - }, - { - -- ornate mace - itemId = 14001, - type = WEAPON_CLUB, - level = 90, - unproperly = true, - }, - { - -- deepling axe - itemId = 13991, - type = WEAPON_AXE, - level = 80, - unproperly = true, - }, - { - -- deepling staff - itemId = 13987, - type = WEAPON_CLUB, - level = 38, - unproperly = true, - }, - { - -- shimmer wand - itemId = 12741, - type = WEAPON_WAND, - wandType = "energy", - level = 40, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- shimmer bow - itemId = 12733, - type = WEAPON_DISTANCE, - level = 40, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- shimmer rod - itemId = 12732, - type = WEAPON_WAND, - wandType = "ice", - level = 40, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- shimmer sword - itemId = 12731, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - }, - { - -- heavy trident - itemId = 12683, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- wooden sword - itemId = 12673, - type = WEAPON_SWORD, - }, - { - -- wand of dimensions - itemId = 12603, - type = WEAPON_WAND, - wandType = "death", - level = 37, - mana = 9, - damage = { 44, 62 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- blade of corruption - itemId = 11693, - type = WEAPON_SWORD, - level = 82, - unproperly = true, - }, - { - -- snake god's sceptre - itemId = 11692, - type = WEAPON_CLUB, - level = 82, - unproperly = true, - }, - { - -- twiceslicer - itemId = 11657, - type = WEAPON_SWORD, - level = 58, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Zaoan halberd - itemId = 10406, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- twin hooks - itemId = 10392, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- drachaku - itemId = 10391, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Zaoan sword - itemId = 10390, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - }, - { - -- sai - itemId = 10389, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- drakinata - itemId = 10388, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- incredible mumpiz slayer - itemId = 9396, - type = WEAPON_SWORD, - }, - { - -- poet's fencing quill - itemId = 9387, - type = WEAPON_SWORD, - }, - { - -- farmer's avenger - itemId = 9386, - type = WEAPON_AXE, - }, - { - -- club of the fury - itemId = 9385, - type = WEAPON_CLUB, - }, - { - -- scythe of the reaper - itemId = 9384, - type = WEAPON_AXE, - }, - { - -- musician's bow - itemId = 9378, - type = WEAPON_DISTANCE, - }, - { - -- stale bread of ancientness - itemId = 9376, - type = WEAPON_CLUB, - }, - { - -- pointed rabbitslayer - itemId = 9375, - type = WEAPON_SWORD, - }, - { - -- glutton's mace - itemId = 9373, - type = WEAPON_CLUB, - }, - { - -- the calamity - itemId = 8104, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the epiphany - itemId = 8103, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - }, - { - -- emerald sword - itemId = 8102, - type = WEAPON_SWORD, - level = 100, - unproperly = true, - }, - { - -- the stomper - itemId = 8101, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- obsidian truncheon - itemId = 8100, - type = WEAPON_CLUB, - level = 100, - unproperly = true, - }, - { - -- dark trinity mace - itemId = 8099, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - }, - { - -- demonwing axe - itemId = 8098, - type = WEAPON_AXE, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- solar axe - itemId = 8097, - type = WEAPON_AXE, - level = 130, - unproperly = true, - }, - { - -- hellforged axe - itemId = 8096, - type = WEAPON_AXE, - level = 110, - unproperly = true, - }, - { - -- wand of voodoo - itemId = 8094, - type = WEAPON_WAND, - wandType = "death", - level = 42, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of draconia - itemId = 8093, - type = WEAPON_WAND, - wandType = "fire", - level = 22, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of starmstorm - itemId = 8092, - type = WEAPON_WAND, - wandType = "energy", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- springsprout rod - itemId = 8084, - type = WEAPON_WAND, - wandType = "earth", - level = 37, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- northwind rod - itemId = 8083, - type = WEAPON_WAND, - wandType = "ice", - level = 22, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- underworld rod - itemId = 8082, - type = WEAPON_WAND, - wandType = "death", - level = 42, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- elethriel's elemental bow - itemId = 8030, - type = WEAPON_DISTANCE, - level = 70, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- silkweaver bow - itemId = 8029, - type = WEAPON_DISTANCE, - level = 40, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- yol's bow - itemId = 8028, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- composite hornbow - itemId = 8027, - type = WEAPON_DISTANCE, - level = 50, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- warsinger bow - itemId = 8026, - type = WEAPON_DISTANCE, - level = 80, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- ironworker - itemId = 8025, - type = WEAPON_DISTANCE, - level = 80, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- devileye - itemId = 8024, - type = WEAPON_DISTANCE, - level = 100, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- royal crossbow - itemId = 8023, - type = WEAPON_DISTANCE, - level = 130, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- chain bolter - itemId = 8022, - type = WEAPON_DISTANCE, - level = 60, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- modified crossbow - itemId = 8021, - type = WEAPON_DISTANCE, - level = 45, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- jagged sword - itemId = 7774, - type = WEAPON_SWORD, - }, - { - -- steel axe - itemId = 7773, - type = WEAPON_AXE, - }, - { - -- crimson sword - itemId = 860, - type = WEAPON_SWORD, - }, - { - -- energy war hammer - itemId = 810, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy orcish maul - itemId = 809, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- energy cranial basher - itemId = 808, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy crystal mace - itemId = 807, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- energy clerical mace - itemId = 806, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- energy war axe - itemId = 805, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy headchopper - itemId = 804, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy heroic axe - itemId = 803, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy knight axe - itemId = 802, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- energy barbarian axe - itemId = 801, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- energy dragon slayer - itemId = 798, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy blacksteel sword - itemId = 797, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- energy mystic blade - itemId = 796, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- energy relic sword - itemId = 795, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- energy spike sword - itemId = 794, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- earth war hammer - itemId = 793, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth orcish maul - itemId = 792, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- earth cranial basher - itemId = 791, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth crystal mace - itemId = 790, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- earth clerical mace - itemId = 789, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- earth war axe - itemId = 788, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth headchopper - itemId = 787, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth heroic axe - itemId = 786, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth knight axe - itemId = 785, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- earth barbarian axe - itemId = 784, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- earth dragon slayer - itemId = 783, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth blacksteel sword - itemId = 782, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- earth mystic blade - itemId = 781, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- earth relic sword - itemId = 780, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- earth spike sword - itemId = 779, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- earth arrow - itemid = 774, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- flaming arrow - itemid = 763, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- shiver arrow - itemid = 762, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- flash arrow - itemid = 761, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- icy war hammer - itemId = 693, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy orcish maul - itemId = 692, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- icy cranial basher - itemId = 691, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy crystal mace - itemId = 690, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- icy clerical mace - itemId = 689, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- icy war axe - itemId = 688, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy headchopper - itemId = 687, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy heroic axe - itemId = 686, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy knight axe - itemId = 685, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- icy barbarian axe - itemId = 684, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- icy dragon slayer - itemId = 683, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy blacksteel sword - itemId = 682, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- icy mystic blade - itemId = 681, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- icy relic sword - itemId = 680, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- icy spike sword - itemId = 679, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- fiery war hammer - itemId = 674, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery orcish maul - itemId = 673, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- fiery cranial basher - itemId = 672, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery crystal mace - itemId = 671, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - action = "removecharge", - }, - { - -- fiery clerical mace - itemId = 670, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- fiery war axe - itemId = 669, - type = WEAPON_AXE, - level = 65, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery headchopper - itemId = 668, - type = WEAPON_AXE, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery heroic axe - itemId = 667, - type = WEAPON_AXE, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery knight axe - itemId = 666, - type = WEAPON_AXE, - level = 25, - unproperly = true, - action = "removecharge", - }, - { - -- fiery barbarian axe - itemId = 665, - type = WEAPON_AXE, - level = 20, - unproperly = true, - action = "removecharge", - }, - { - -- fiery dragon slayer - itemId = 664, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery blacksteel sword - itemId = 663, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - action = "removecharge", - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fiery mystic blade - itemId = 662, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - action = "removecharge", - }, - { - -- fiery relic sword - itemId = 661, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - action = "removecharge", - }, - { - -- fiery spike sword - itemId = 660, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- noble axe - itemId = 7456, - type = WEAPON_AXE, - level = 35, - unproperly = true, - }, - { - -- mythril axe - itemId = 7455, - type = WEAPON_AXE, - level = 80, - unproperly = true, - }, - { - -- glorious axe - itemId = 7454, - type = WEAPON_AXE, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- executioner - itemId = 7453, - type = WEAPON_AXE, - level = 85, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spiked squelcher - itemId = 7452, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- shadow sceptre - itemId = 7451, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- hammer of prophecy - itemId = 7450, - type = WEAPON_CLUB, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crystal sword - itemId = 7449, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- elvish bow - itemId = 7438, - type = WEAPON_DISTANCE, - }, - { - -- sapphire hammer - itemId = 7437, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- angelic axe - itemId = 7436, - type = WEAPON_AXE, - level = 45, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- impaler - itemId = 7435, - type = WEAPON_AXE, - level = 85, - unproperly = true, - }, - { - -- royal axe - itemId = 7434, - type = WEAPON_AXE, - level = 75, - unproperly = true, - }, - { - -- ravenwing - itemId = 7433, - type = WEAPON_AXE, - level = 65, - unproperly = true, - }, - { - -- furry club - itemId = 7432, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- demonbone - itemId = 7431, - type = WEAPON_CLUB, - level = 80, - unproperly = true, - }, - { - -- dragonbone staff - itemId = 7430, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- blessed sceptre - itemId = 7429, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - }, - { - -- bonebreaker - itemId = 7428, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- chaos mace - itemId = 7427, - type = WEAPON_CLUB, - level = 45, - unproperly = true, - }, - { - -- amber staff - itemId = 7426, - type = WEAPON_CLUB, - level = 40, - unproperly = true, - }, - { - -- taurus mace - itemId = 7425, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- lunar staff - itemId = 7424, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- skullcrusher - itemId = 7423, - type = WEAPON_CLUB, - level = 85, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- jade hammer - itemId = 7422, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - }, - { - -- onyx flail - itemId = 7421, - type = WEAPON_CLUB, - level = 65, - unproperly = true, - }, - { - -- reaper's axe - itemId = 7420, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- dreaded cleaver - itemId = 7419, - type = WEAPON_AXE, - level = 40, - unproperly = true, - }, - { - -- nightmare blade - itemId = 7418, - type = WEAPON_SWORD, - level = 70, - unproperly = true, - }, - { - -- runed sword - itemId = 7417, - type = WEAPON_SWORD, - level = 65, - unproperly = true, - }, - { - -- bloody edge - itemId = 7416, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - }, - { - -- cranial basher - itemId = 7415, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - }, - { - -- abyss hammer - itemId = 7414, - type = WEAPON_CLUB, - level = 60, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- titan axe - itemId = 7413, - type = WEAPON_AXE, - level = 40, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- butcher's axe - itemId = 7412, - type = WEAPON_AXE, - level = 45, - unproperly = true, - }, - { - -- ornamented axe - itemId = 7411, - type = WEAPON_AXE, - level = 50, - unproperly = true, - }, - { - -- queen's sceptre - itemId = 7410, - type = WEAPON_CLUB, - level = 55, - unproperly = true, - }, - { - -- northern star - itemId = 7409, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - }, - { - -- wyvern fang - itemId = 7408, - type = WEAPON_SWORD, - level = 25, - unproperly = true, - }, - { - -- haunted blade - itemId = 7407, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- blacksteel sword - itemId = 7406, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- havoc blade - itemId = 7405, - type = WEAPON_SWORD, - level = 70, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- assassin dagger - itemId = 7404, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - }, - { - -- berserker - itemId = 7403, - type = WEAPON_SWORD, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon slayer - itemId = 7402, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- orcish maul - itemId = 7392, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- thaian sword - itemId = 7391, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- the justice seeker - itemId = 7390, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - }, - { - -- heroic axe - itemId = 7389, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- vile axe - itemId = 7388, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- diamond sceptre - itemId = 7387, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- mercenary sword - itemId = 7386, - type = WEAPON_SWORD, - level = 40, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- crimson sword - itemId = 7385, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - }, - { - -- mystic blade - itemId = 7384, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - }, - { - -- relic sword - itemId = 7383, - type = WEAPON_SWORD, - level = 50, - unproperly = true, - }, - { - -- demonrage sword - itemId = 7382, - type = WEAPON_SWORD, - level = 60, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- mammoth whopper - itemId = 7381, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- headchopper - itemId = 7380, - type = WEAPON_AXE, - level = 35, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- brutetamer's staff - itemId = 7379, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- royal spear - itemid = 7378, - type = WEAPON_MISSILE, - level = 25, - unproperly = true, - breakchance = 3, - }, - { - -- assassin star - itemid = 7368, - type = WEAPON_MISSILE, - level = 80, - unproperly = true, - breakchance = 33, - }, - { - -- enchanted spear - itemid = 7367, - type = WEAPON_MISSILE, - level = 42, - unproperly = true, - breakchance = 1, - }, - { - -- onyx arrow - itemid = 7365, - type = WEAPON_AMMO, - level = 40, - unproperly = true, - action = "removecount", - }, - { - -- sniper arrow - itemid = 7364, - type = WEAPON_AMMO, - level = 20, - unproperly = true, - action = "removecount", - }, - { - -- piercing bolt - itemId = 7363, - type = WEAPON_AMMO, - level = 30, - unproperly = true, - action = "removecount", - }, - { - -- ruthless axe - itemId = 6553, - type = WEAPON_AXE, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- infernal bolt - itemId = 6528, - type = WEAPON_AMMO, - level = 110, - unproperly = true, - action = "removecount", - }, - { - -- the avenger - itemId = 6527, - type = WEAPON_SWORD, - level = 75, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- Ron the Ripper's sabre - itemId = 6101, - type = WEAPON_SWORD, - }, - { - -- arbalest - itemId = 5803, - type = WEAPON_DISTANCE, - level = 75, - unproperly = true, - vocation = { - { "Paladin", true }, - { "Royal Paladin" }, - }, - }, - { - -- banana staff - itemId = 3348, - type = WEAPON_CLUB, - }, - { - -- hunting spear - itemId = 3347, - type = WEAPON_MISSILE, - level = 20, - unproperly = true, - breakchance = 6, - }, - { - -- ripper lance - itemId = 3346, - type = WEAPON_AXE, - }, - { - -- templar scytheblade - itemId = 3345, - type = WEAPON_SWORD, - }, - { - -- beastslayer axe - itemId = 3344, - type = WEAPON_AXE, - level = 30, - unproperly = true, - }, - { - -- lich staff - itemId = 3343, - type = WEAPON_CLUB, - level = 40, - unproperly = true, - }, - { - -- scythe - itemId = 3453, - type = WEAPON_CLUB, - }, - { - -- power bolt - itemId = 3450, - type = WEAPON_AMMO, - level = 55, - unproperly = true, - action = "removecount", - }, - { - -- arrow - itemId = 3447, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- bolt - itemId = 3446, - type = WEAPON_AMMO, - action = "removecount", - }, - { - -- bow - itemId = 3350, - type = WEAPON_DISTANCE, - }, - { - -- crossbow - itemId = 3349, - type = WEAPON_DISTANCE, - }, - { - -- war axe - itemId = 3342, - type = WEAPON_AXE, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- arcane staff - itemId = 3341, - type = WEAPON_CLUB, - level = 75, - unproperly = true, - }, - { - -- heavy mace - itemId = 3340, - type = WEAPON_CLUB, - level = 70, - unproperly = true, - }, - { - -- djinn blade - itemId = 3339, - type = WEAPON_SWORD, - level = 35, - unproperly = true, - }, - { - -- bone sword - itemId = 3338, - type = WEAPON_SWORD, - }, - { - -- bone club - itemId = 3337, - type = WEAPON_CLUB, - }, - { - -- studded club - itemId = 3336, - type = WEAPON_CLUB, - }, - { - -- twin axe - itemId = 3335, - type = WEAPON_AXE, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- pharaoh sword - itemId = 3334, - type = WEAPON_SWORD, - level = 45, - unproperly = true, - }, - { - -- crystal mace - itemId = 3333, - type = WEAPON_CLUB, - level = 35, - unproperly = true, - }, - { - -- hammer of wrath - itemId = 3332, - type = WEAPON_CLUB, - level = 65, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- ravager's axe - itemId = 3331, - type = WEAPON_AXE, - level = 70, - unproperly = true, - }, - { - -- heavy machete - itemId = 3330, - type = WEAPON_SWORD, - }, - { - -- daramian axe - itemId = 3329, - type = WEAPON_AXE, - }, - { - -- daramian waraxe - itemId = 3328, - type = WEAPON_AXE, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- daramian mace - itemId = 3327, - type = WEAPON_CLUB, - }, - { - -- epee - itemId = 3326, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - }, - { - -- light mace - itemId = 3325, - type = WEAPON_CLUB, - }, - { - -- skull staff - itemId = 3324, - type = WEAPON_CLUB, - level = 30, - unproperly = true, - }, - { - -- dwarven axe - itemId = 3323, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- dragon hammer - itemId = 3322, - type = WEAPON_CLUB, - level = 25, - unproperly = true, - }, - { - -- enchanted staff - itemId = 3321, - type = WEAPON_CLUB, - }, - { - -- fire axe - itemId = 3320, - type = WEAPON_AXE, - level = 35, - unproperly = true, - }, - { - -- stonecutter axe - itemId = 3319, - type = WEAPON_AXE, - level = 90, - unproperly = true, - }, - { - -- knight axe - itemId = 3318, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- barbarian axe - itemId = 3317, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- orcish axe - itemId = 3316, - type = WEAPON_AXE, - }, - { - -- guardian halberd - itemId = 3315, - type = WEAPON_AXE, - level = 55, - unproperly = true, - }, - { - -- naginata - itemId = 3314, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- obsidian lance - itemId = 3313, - type = WEAPON_AXE, - level = 20, - unproperly = true, - }, - { - -- silver mace - itemId = 3312, - type = WEAPON_CLUB, - level = 45, - unproperly = true, - }, - { - -- clerical mace - itemId = 3311, - type = WEAPON_CLUB, - level = 20, - unproperly = true, - }, - { - -- iron hammer - itemId = 3310, - type = WEAPON_CLUB, - }, - { - -- thunder hammer - itemId = 3309, - type = WEAPON_CLUB, - level = 85, - unproperly = true, - }, - { - -- machete - itemId = 3308, - type = WEAPON_SWORD, - }, - { - -- scimitar - itemId = 3307, - type = WEAPON_SWORD, - }, - { - -- golden sickle - itemId = 3306, - type = WEAPON_AXE, - }, - { - -- battle hammer - itemId = 3305, - type = WEAPON_CLUB, - }, - { - -- crowbar - itemId = 3304, - type = WEAPON_CLUB, - }, - { - -- great axe - itemId = 3303, - type = WEAPON_AXE, - level = 95, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- dragon lance - itemId = 3302, - type = WEAPON_AXE, - level = 60, - unproperly = true, - }, - { - -- broadsword - itemId = 3301, - type = WEAPON_SWORD, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- katana - itemId = 3300, - type = WEAPON_SWORD, - }, - { - -- poison dagger - itemid = 3299, - type = WEAPON_SWORD, - }, - { - -- throwing knife - itemid = 3298, - type = WEAPON_MISSILE, - breakchance = 7, - }, - { - -- serpent sword - itemId = 3297, - type = WEAPON_SWORD, - }, - { - -- warlord sword - itemId = 3296, - type = WEAPON_SWORD, - level = 120, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- bright sword - itemId = 3295, - type = WEAPON_SWORD, - }, - { - -- short sword - itemId = 3294, - type = WEAPON_SWORD, - }, - { - -- sickle - itemId = 3293, - type = WEAPON_AXE, - }, - { - -- combat knife - itemId = 3292, - type = WEAPON_SWORD, - }, - { - -- knife - itemId = 3291, - type = WEAPON_SWORD, - }, - { - -- silver dagger - itemId = 3290, - type = WEAPON_SWORD, - }, - { - -- staff - itemId = 3289, - type = WEAPON_CLUB, - }, - { - -- magic sword - itemId = 3288, - type = WEAPON_SWORD, - level = 80, - unproperly = true, - }, - { - -- throwing star - itemId = 3287, - type = WEAPON_MISSILE, - breakchance = 10, - }, - { - -- mace - itemId = 3286, - type = WEAPON_CLUB, - }, - { - -- longsword - itemId = 3285, - type = WEAPON_SWORD, - }, - { - -- ice rapier - itemId = 3284, - type = WEAPON_SWORD, - action = "removecharge", - }, - { - -- carlin sword - itemId = 3283, - type = WEAPON_SWORD, - }, - { - -- morning star - itemId = 3282, - type = WEAPON_CLUB, - }, - { - -- giant sword - itemId = 3281, - type = WEAPON_SWORD, - level = 55, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- fire sword - itemId = 3280, - type = WEAPON_SWORD, - level = 30, - unproperly = true, - }, - { - -- war hammer - itemId = 3279, - type = WEAPON_CLUB, - level = 50, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- magic longsword - itemId = 3278, - type = WEAPON_SWORD, - level = 140, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- spear - itemId = 3277, - type = WEAPON_MISSILE, - breakchance = 3, - }, - { - -- hatchet - itemId = 3276, - type = WEAPON_AXE, - }, - { - -- double axe - itemId = 3275, - type = WEAPON_AXE, - level = 25, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- axe - itemId = 3274, - type = WEAPON_AXE, - }, - { - -- sabre - itemId = 3273, - type = WEAPON_SWORD, - }, - { - -- rapier - itemId = 3272, - type = WEAPON_SWORD, - }, - { - -- spike sword - itemId = 3271, - type = WEAPON_SWORD, - }, - { - -- club - itemId = 3270, - type = WEAPON_CLUB, - }, - { - -- halberd - itemId = 3269, - type = WEAPON_AXE, - level = 25, - unproperly = true, - }, - { - -- hand axe - itemId = 3268, - type = WEAPON_AXE, - }, - { - -- dagger - itemId = 3267, - type = WEAPON_SWORD, - }, - { - -- battle axe - itemId = 3266, - type = WEAPON_AXE, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- two handed sword - itemId = 3265, - type = WEAPON_SWORD, - level = 20, - unproperly = true, - vocation = { - { "Knight", true }, - { "Elite Knight" }, - }, - }, - { - -- sword - itemId = 3264, - type = WEAPON_SWORD, - }, - { - -- giant smithhammer - itemId = 3208, - type = WEAPON_CLUB, - }, - { - -- wand of dragonbreath - itemId = 3075, - type = WEAPON_WAND, - wandType = "fire", - level = 13, - mana = 3, - damage = { 13, 25 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of vortex - itemId = 3074, - type = WEAPON_WAND, - wandType = "energy", - level = 6, - mana = 1, - damage = { 8, 18 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of cosmic energy - itemId = 3073, - type = WEAPON_WAND, - wandType = "energy", - level = 26, - mana = 8, - damage = { 37, 53 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of decay - itemId = 3072, - type = WEAPON_WAND, - wandType = "death", - level = 19, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- wand of inferno - itemId = 3071, - type = WEAPON_WAND, - wandType = "fire", - level = 33, - mana = 8, - damage = { 56, 74 }, - vocation = { - { "Sorcerer", true }, - { "Master Sorcerer" }, - }, - }, - { - -- moonlight rod - itemId = 3070, - type = WEAPON_WAND, - wandType = "ice", - level = 13, - mana = 3, - damage = { 13, 25 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- necrotic rod - itemId = 3069, - type = WEAPON_WAND, - wandType = "death", - level = 19, - mana = 5, - damage = { 23, 37 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- hailstorm rod - itemId = 3067, - type = WEAPON_WAND, - wandType = "ice", - level = 33, - mana = 13, - damage = { 56, 74 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snakebit rod - itemId = 3066, - type = WEAPON_WAND, - wandType = "earth", - level = 6, - mana = 2, - damage = { 8, 18 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- terra rod - itemId = 3065, - type = WEAPON_WAND, - wandType = "earth", - level = 26, - mana = 8, - damage = { 37, 53 }, - vocation = { - { "Druid", true }, - { "Elder Druid" }, - }, - }, - { - -- snowball - itemid = 2992, - type = WEAPON_MISSILE, - action = "removecount", - }, - { - -- small stone - itemid = 1781, - type = WEAPON_MISSILE, - breakchance = 3, - }, -} - -for _, w in ipairs(weapons) do - local weapon = Weapon(w.type) - weapon:id(w.itemid or w.itemId) - - if w.action then - weapon:action(w.action) - end - if w.breakchance or w.breakChance then - weapon:breakChance(w.breakchance or w.breakChance) - end - if w.level then - weapon:level(w.level) - end - if w.mana then - weapon:mana(w.mana) - end - if w.unproperly then - weapon:wieldUnproperly(w.unproperly) - end - if w.damage then - weapon:damage(w.damage[1], w.damage[2]) - end - if w.wandtype or w.wandType then - weapon:element(w.wandtype or w.wandType) - end - if w.vocation then - for _, v in ipairs(w.vocation) do - weapon:vocation(v[1], v[2] or false, v[3] or false) - end - end - - weapon:register() -end diff --git a/data/items/items.xml b/data/items/items.xml index dddb15ad6ad..faa2edfce01 100644 --- a/data/items/items.xml +++ b/data/items/items.xml @@ -41,6 +41,9 @@ + + + @@ -710,6 +713,9 @@ + + + @@ -805,6 +811,9 @@ + + + @@ -1102,6 +1111,9 @@ + + + @@ -1136,12 +1148,18 @@ + + + + + + @@ -1171,6 +1189,11 @@ + + + + + @@ -1179,6 +1202,13 @@ + + + + + + + @@ -1187,6 +1217,13 @@ + + + + + + + @@ -1194,6 +1231,14 @@ + + + + + + + + @@ -1201,6 +1246,14 @@ + + + + + + + + @@ -1209,6 +1262,13 @@ + + + + + + + @@ -1217,6 +1277,13 @@ + + + + + + + @@ -1225,6 +1292,13 @@ + + + + + + + @@ -1232,6 +1306,14 @@ + + + + + + + + @@ -1239,6 +1321,14 @@ + + + + + + + + @@ -1247,6 +1337,13 @@ + + + + + + + @@ -1255,6 +1352,13 @@ + + + + + + + @@ -1263,6 +1367,13 @@ + + + + + + + @@ -1270,6 +1381,13 @@ + + + + + + + @@ -1277,6 +1395,14 @@ + + + + + + + + @@ -1301,6 +1427,11 @@ + + + + + @@ -1309,6 +1440,13 @@ + + + + + + + @@ -1317,6 +1455,13 @@ + + + + + + + @@ -1324,6 +1469,14 @@ + + + + + + + + @@ -1331,6 +1484,14 @@ + + + + + + + + @@ -1339,6 +1500,13 @@ + + + + + + + @@ -1347,6 +1515,13 @@ + + + + + + + @@ -1355,6 +1530,13 @@ + + + + + + + @@ -1362,6 +1544,14 @@ + + + + + + + + @@ -1369,6 +1559,14 @@ + + + + + + + + @@ -1377,6 +1575,13 @@ + + + + + + + @@ -1385,6 +1590,13 @@ + + + + + + + @@ -1393,6 +1605,13 @@ + + + + + + + @@ -1400,6 +1619,13 @@ + + + + + + + @@ -1407,6 +1633,14 @@ + + + + + + + + @@ -1840,6 +2074,13 @@ + + + + + + + @@ -1850,6 +2091,13 @@ + + + + + + + @@ -1860,6 +2108,13 @@ + + + + + + + @@ -1926,6 +2181,13 @@ + + + + + + + @@ -1942,6 +2204,11 @@ + + + + + @@ -1950,6 +2217,13 @@ + + + + + + + @@ -1958,6 +2232,13 @@ + + + + + + + @@ -1965,6 +2246,14 @@ + + + + + + + + @@ -1972,6 +2261,14 @@ + + + + + + + + @@ -1980,6 +2277,13 @@ + + + + + + + @@ -1988,6 +2292,13 @@ + + + + + + + @@ -1996,6 +2307,13 @@ + + + + + + + @@ -2003,6 +2321,14 @@ + + + + + + + + @@ -2010,6 +2336,14 @@ + + + + + + + + @@ -2018,6 +2352,13 @@ + + + + + + + @@ -2026,6 +2367,13 @@ + + + + + + + @@ -2034,6 +2382,13 @@ + + + + + + + @@ -2041,6 +2396,13 @@ + + + + + + + @@ -2048,6 +2410,14 @@ + + + + + + + + @@ -2055,6 +2425,11 @@ + + + + + @@ -2063,6 +2438,13 @@ + + + + + + + @@ -2071,6 +2453,13 @@ + + + + + + + @@ -2078,6 +2467,14 @@ + + + + + + + + @@ -2085,6 +2482,14 @@ + + + + + + + + @@ -2097,6 +2502,13 @@ + + + + + + + @@ -2105,6 +2517,13 @@ + + + + + + + @@ -2113,6 +2532,13 @@ + + + + + + + @@ -2120,6 +2546,14 @@ + + + + + + + + @@ -2127,6 +2561,14 @@ + + + + + + + + @@ -2135,6 +2577,13 @@ + + + + + + + @@ -2143,6 +2592,13 @@ + + + + + + + @@ -2151,6 +2607,13 @@ + + + + + + + @@ -2158,6 +2621,13 @@ + + + + + + + @@ -2165,6 +2635,14 @@ + + + + + + + + @@ -2172,6 +2650,11 @@ + + + + + @@ -2179,6 +2662,11 @@ + + + + + @@ -2187,6 +2675,11 @@ + + + + + @@ -2196,6 +2689,10 @@ + + + + @@ -2205,6 +2702,10 @@ + + + + @@ -2214,6 +2715,10 @@ + + + + @@ -2223,6 +2728,10 @@ + + + + @@ -2233,6 +2742,11 @@ + + + + + @@ -2241,6 +2755,11 @@ + + + + + @@ -2251,6 +2770,11 @@ + + + + + @@ -2258,6 +2782,11 @@ + + + + + @@ -2265,6 +2794,11 @@ + + + + + @@ -2272,6 +2806,11 @@ + + + + + @@ -2279,6 +2818,11 @@ + + + + + @@ -2286,6 +2830,11 @@ + + + + + @@ -2293,6 +2842,11 @@ + + + + + @@ -2300,6 +2854,10 @@ + + + + @@ -2307,6 +2865,10 @@ + + + + @@ -2314,6 +2876,10 @@ + + + + @@ -2321,6 +2887,10 @@ + + + + @@ -2384,6 +2954,10 @@ + + + + @@ -2454,6 +3028,9 @@ + + + @@ -2482,6 +3059,9 @@ + + + @@ -2524,6 +3104,9 @@ + + + @@ -2538,12 +3121,18 @@ + + + + + + @@ -3264,6 +3853,11 @@ + + + + + @@ -3630,6 +4224,9 @@ + + + @@ -3640,12 +4237,18 @@ + + + + + + @@ -3655,6 +4258,9 @@ + + + @@ -3664,6 +4270,9 @@ + + + @@ -3673,6 +4282,9 @@ + + + @@ -3682,11 +4294,17 @@ + + + + + + @@ -3696,6 +4314,9 @@ + + + @@ -3707,9 +4328,15 @@ + + + + + + @@ -3717,6 +4344,9 @@ + + + @@ -3737,12 +4367,18 @@ + + + + + + @@ -3754,6 +4390,9 @@ + + + @@ -3763,11 +4402,17 @@ + + + + + + @@ -3778,6 +4423,9 @@ + + + @@ -3788,6 +4436,9 @@ + + + @@ -5279,6 +5930,9 @@ + + + @@ -5287,6 +5941,9 @@ + + + @@ -5302,41 +5959,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -5345,6 +6026,9 @@ + + + @@ -5353,6 +6037,9 @@ + + + @@ -5361,6 +6048,9 @@ + + + @@ -5369,6 +6059,9 @@ + + + @@ -5377,6 +6070,9 @@ + + + @@ -5385,6 +6081,9 @@ + + + @@ -5393,6 +6092,9 @@ + + + @@ -5401,6 +6103,9 @@ + + + @@ -5874,6 +6579,11 @@ + + + + + @@ -5922,6 +6632,9 @@ + + + @@ -5929,18 +6642,30 @@ + + + + + + + + + + + + @@ -5949,27 +6674,45 @@ + + + + + + + + + + + + + + + + + + @@ -5978,10 +6721,16 @@ + + + + + + @@ -5990,6 +6739,9 @@ + + + @@ -6002,6 +6754,9 @@ + + + @@ -6014,6 +6769,9 @@ + + + @@ -6099,6 +6857,9 @@ + + + @@ -6127,6 +6888,9 @@ + + + @@ -6134,6 +6898,9 @@ + + + @@ -6141,6 +6908,9 @@ + + + @@ -6148,6 +6918,10 @@ + + + + @@ -6155,6 +6929,9 @@ + + + @@ -6162,6 +6939,9 @@ + + + @@ -6170,12 +6950,18 @@ + + + + + + @@ -6184,10 +6970,16 @@ + + + + + + @@ -6208,6 +7000,10 @@ + + + + @@ -6224,6 +7020,9 @@ + + + @@ -6233,6 +7032,16 @@ + + + + + + + + + + @@ -6241,6 +7050,16 @@ + + + + + + + + + + @@ -6249,6 +7068,16 @@ + + + + + + + + + + @@ -6261,6 +7090,16 @@ + + + + + + + + + + @@ -6269,6 +7108,16 @@ + + + + + + + + + + @@ -6276,6 +7125,16 @@ + + + + + + + + + + @@ -6283,6 +7142,16 @@ + + + + + + + + + + @@ -6290,6 +7159,16 @@ + + + + + + + + + + @@ -6297,6 +7176,16 @@ + + + + + + + + + + @@ -6309,6 +7198,16 @@ + + + + + + + + + + @@ -6327,10 +7226,16 @@ + + + + + + @@ -6340,6 +7245,9 @@ + + + @@ -6354,6 +7262,9 @@ + + + @@ -6362,6 +7273,9 @@ + + + @@ -6370,6 +7284,9 @@ + + + @@ -6378,6 +7295,9 @@ + + + @@ -6388,6 +7308,9 @@ + + + @@ -6397,6 +7320,9 @@ + + + @@ -6407,6 +7333,10 @@ + + + + @@ -6420,6 +7350,9 @@ + + + @@ -6428,6 +7361,9 @@ + + + @@ -6435,6 +7371,9 @@ + + + @@ -6442,6 +7381,9 @@ + + + @@ -6449,6 +7391,9 @@ + + + @@ -6458,6 +7403,9 @@ + + + @@ -6467,6 +7415,9 @@ + + + @@ -6476,6 +7427,9 @@ + + + @@ -6483,12 +7437,18 @@ + + + + + + @@ -6499,6 +7459,9 @@ + + + @@ -6511,6 +7474,9 @@ + + + @@ -6521,6 +7487,9 @@ + + + @@ -6965,6 +7934,10 @@ + + + + @@ -6980,6 +7953,10 @@ + + + + @@ -7053,6 +8030,9 @@ + + + @@ -7068,6 +8048,9 @@ + + + @@ -7075,6 +8058,9 @@ + + + @@ -7159,14 +8145,23 @@ + + + + + + + + + @@ -7198,6 +8193,9 @@ + + + @@ -7252,6 +8250,10 @@ + + + + @@ -7260,6 +8262,13 @@ + + + + + + + @@ -7268,6 +8277,12 @@ + + + + + + @@ -7275,6 +8290,10 @@ + + + + @@ -7282,6 +8301,10 @@ + + + + @@ -7290,6 +8313,12 @@ + + + + + + @@ -7297,6 +8326,10 @@ + + + + @@ -7313,6 +8346,10 @@ + + + + @@ -7321,6 +8358,10 @@ + + + + @@ -7329,6 +8370,10 @@ + + + + @@ -7336,6 +8381,10 @@ + + + + @@ -7344,6 +8393,13 @@ + + + + + + + @@ -7351,6 +8407,10 @@ + + + + @@ -7360,6 +8420,11 @@ + + + + + @@ -7369,6 +8434,13 @@ + + + + + + + @@ -7384,6 +8456,13 @@ + + + + + + + @@ -7394,6 +8473,12 @@ + + + + + + @@ -7410,6 +8495,13 @@ + + + + + + + @@ -7417,6 +8509,10 @@ + + + + @@ -7425,6 +8521,10 @@ + + + + @@ -7435,6 +8535,11 @@ + + + + + @@ -7442,6 +8547,10 @@ + + + + @@ -7449,6 +8558,10 @@ + + + + @@ -7458,6 +8571,11 @@ + + + + + @@ -7474,6 +8592,12 @@ + + + + + + @@ -7482,6 +8606,10 @@ + + + + @@ -7489,6 +8617,10 @@ + + + + @@ -7496,6 +8628,10 @@ + + + + @@ -7503,6 +8639,10 @@ + + + + @@ -7510,6 +8650,10 @@ + + + + @@ -7517,6 +8661,10 @@ + + + + @@ -7533,6 +8681,12 @@ + + + + + + @@ -7542,6 +8696,13 @@ + + + + + + + @@ -7551,6 +8712,10 @@ + + + + @@ -7560,6 +8725,11 @@ + + + + + @@ -7568,6 +8738,10 @@ + + + + @@ -7576,6 +8750,10 @@ + + + + @@ -7591,6 +8769,11 @@ + + + + + @@ -7607,6 +8790,12 @@ + + + + + + @@ -7623,6 +8812,13 @@ + + + + + + + @@ -7631,6 +8827,10 @@ + + + + @@ -7638,6 +8838,10 @@ + + + + @@ -7645,6 +8849,10 @@ + + + + @@ -7653,6 +8861,10 @@ + + + + @@ -7660,6 +8872,10 @@ + + + + @@ -7676,6 +8892,12 @@ + + + + + + @@ -7683,6 +8905,10 @@ + + + + @@ -7698,6 +8924,12 @@ + + + + + + @@ -7714,6 +8946,12 @@ + + + + + + @@ -7722,6 +8960,12 @@ + + + + + + @@ -7730,6 +8974,12 @@ + + + + + + @@ -7745,6 +8995,12 @@ + + + + + + @@ -7752,6 +9008,10 @@ + + + + @@ -7767,6 +9027,12 @@ + + + + + + @@ -7782,6 +9048,12 @@ + + + + + + @@ -7798,6 +9070,12 @@ + + + + + + @@ -7808,6 +9086,12 @@ + + + + + + @@ -7819,6 +9103,10 @@ + + + + @@ -7826,6 +9114,12 @@ + + + + + + @@ -7841,6 +9135,12 @@ + + + + + + @@ -7857,6 +9157,12 @@ + + + + + + @@ -7864,6 +9170,10 @@ + + + + @@ -7878,6 +9188,12 @@ + + + + + + @@ -7885,6 +9201,10 @@ + + + + @@ -7893,6 +9213,13 @@ + + + + + + + @@ -7900,6 +9227,10 @@ + + + + @@ -7907,6 +9238,10 @@ + + + + @@ -7921,6 +9256,12 @@ + + + + + + @@ -7936,6 +9277,13 @@ + + + + + + + @@ -7951,6 +9299,12 @@ + + + + + + @@ -7959,6 +9313,12 @@ + + + + + + @@ -7974,6 +9334,13 @@ + + + + + + + @@ -7982,6 +9349,10 @@ + + + + @@ -7990,6 +9361,10 @@ + + + + @@ -7997,6 +9372,10 @@ + + + + @@ -8012,6 +9391,12 @@ + + + + + + @@ -8028,6 +9413,12 @@ + + + + + + @@ -8044,6 +9435,12 @@ + + + + + + @@ -8059,6 +9456,13 @@ + + + + + + + @@ -8068,6 +9472,12 @@ + + + + + + @@ -8083,6 +9493,12 @@ + + + + + + @@ -8091,6 +9507,10 @@ + + + + @@ -8099,6 +9519,10 @@ + + + + @@ -8108,6 +9532,13 @@ + + + + + + + @@ -8116,6 +9547,10 @@ + + + + @@ -8131,6 +9566,10 @@ + + + + @@ -8139,41 +9578,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8188,11 +9652,17 @@ + + + + + + @@ -8207,26 +9677,43 @@ + + + + + + + + + + + + + + + + + @@ -8241,6 +9728,9 @@ + + + @@ -8255,17 +9745,27 @@ + + + + + + + + + + @@ -8279,6 +9779,9 @@ + + + @@ -8293,51 +9796,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8352,6 +9887,9 @@ + + + @@ -8366,21 +9904,35 @@ + + + + + + + + + + + + + + @@ -8394,6 +9946,9 @@ + + + @@ -8408,6 +9963,10 @@ + + + + @@ -8422,6 +9981,9 @@ + + + @@ -8436,16 +9998,25 @@ + + + + + + + + + @@ -8459,6 +10030,9 @@ + + + @@ -8473,6 +10047,9 @@ + + + @@ -8486,6 +10063,9 @@ + + + @@ -8501,11 +10081,19 @@ + + + + + + + + @@ -8520,6 +10108,9 @@ + + + @@ -8535,12 +10126,18 @@ + + + + + + @@ -8555,27 +10152,42 @@ + + + + + + + + + + + + + + + @@ -8590,20 +10202,32 @@ + + + + + + + + + + + + @@ -8617,6 +10241,9 @@ + + + @@ -8632,30 +10259,45 @@ + + + + + + + + + + + + + + + @@ -8672,12 +10314,18 @@ + + + + + + @@ -8693,12 +10341,18 @@ + + + + + + @@ -8714,6 +10368,9 @@ + + + @@ -8729,6 +10386,9 @@ + + + @@ -8745,12 +10405,18 @@ + + + + + + @@ -8767,6 +10433,9 @@ + + + @@ -8774,6 +10443,9 @@ + + + @@ -8790,24 +10462,36 @@ + + + + + + + + + + + + @@ -8823,6 +10507,9 @@ + + + @@ -8830,12 +10517,18 @@ + + + + + + @@ -8851,12 +10544,18 @@ + + + + + + @@ -8872,6 +10571,9 @@ + + + @@ -8888,6 +10590,9 @@ + + + @@ -8903,6 +10608,9 @@ + + + @@ -8918,6 +10626,9 @@ + + + @@ -8933,12 +10644,18 @@ + + + + + + @@ -8955,18 +10672,27 @@ + + + + + + + + + @@ -8982,12 +10708,18 @@ + + + + + + @@ -9003,12 +10735,18 @@ + + + + + + @@ -9018,6 +10756,11 @@ + + + + + @@ -9027,6 +10770,11 @@ + + + + + @@ -9054,6 +10802,13 @@ + + + + + + + @@ -9070,6 +10825,10 @@ + + + + @@ -9335,6 +11094,9 @@ + + + @@ -9343,6 +11105,9 @@ + + + @@ -9350,6 +11115,9 @@ + + + @@ -9358,6 +11126,9 @@ + + + @@ -9365,6 +11136,9 @@ + + + @@ -9373,6 +11147,9 @@ + + + @@ -9381,6 +11158,9 @@ + + + @@ -9389,56 +11169,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9454,27 +11267,46 @@ + + + + + + + + + + + + + + + + + + + @@ -9488,12 +11320,18 @@ + + + + + + @@ -9501,11 +11339,18 @@ + + + + + + + @@ -10304,6 +12149,11 @@ + + + + + @@ -12253,6 +14103,9 @@ + + + @@ -13058,6 +14911,9 @@ + + + @@ -13066,6 +14922,9 @@ + + + @@ -13644,6 +15503,9 @@ + + + @@ -13763,6 +15625,9 @@ + + + @@ -13777,6 +15642,13 @@ + + + + + + + @@ -13971,7 +15843,7 @@ - + @@ -13993,6 +15865,9 @@ + + + @@ -14048,11 +15923,17 @@ + + + + + + @@ -14087,11 +15968,17 @@ + + + + + + @@ -14103,7 +15990,7 @@ - + @@ -14197,11 +16084,17 @@ + + + + + + @@ -15001,11 +16894,17 @@ + + + + + + @@ -15028,6 +16927,10 @@ + + + + @@ -15114,6 +17017,9 @@ + + + @@ -15143,6 +17049,9 @@ + + + @@ -15366,6 +17275,9 @@ + + + @@ -15378,6 +17290,9 @@ + + + @@ -15777,6 +17692,9 @@ + + + @@ -15815,6 +17733,9 @@ + + + @@ -16063,6 +17984,13 @@ + + + + + + + @@ -16072,12 +18000,22 @@ + + + + + + + + + + @@ -16088,6 +18026,9 @@ + + + @@ -16171,6 +18112,13 @@ + + + + + + + @@ -16248,6 +18196,9 @@ + + + @@ -17174,11 +19125,17 @@ + + + + + + @@ -17232,11 +19189,17 @@ + + + + + + @@ -17249,6 +19212,13 @@ + + + + + + + @@ -17258,6 +19228,13 @@ + + + + + + + @@ -17267,6 +19244,13 @@ + + + + + + + @@ -17277,6 +19261,9 @@ + + + @@ -17286,6 +19273,13 @@ + + + + + + + @@ -17295,6 +19289,13 @@ + + + + + + + @@ -17349,6 +19350,13 @@ + + + + + + + @@ -17357,6 +19365,12 @@ + + + + + + @@ -17373,6 +19387,13 @@ + + + + + + + @@ -17381,6 +19402,12 @@ + + + + + + @@ -17396,6 +19423,13 @@ + + + + + + + @@ -17411,6 +19445,12 @@ + + + + + + @@ -17427,6 +19467,12 @@ + + + + + + @@ -17442,6 +19488,12 @@ + + + + + + @@ -17451,6 +19503,13 @@ + + + + + + + @@ -17459,6 +19518,12 @@ + + + + + + @@ -17467,6 +19532,12 @@ + + + + + + @@ -17483,6 +19554,12 @@ + + + + + + @@ -17491,6 +19568,12 @@ + + + + + + @@ -17506,6 +19589,13 @@ + + + + + + + @@ -17522,6 +19612,12 @@ + + + + + + @@ -17573,6 +19669,13 @@ + + + + + + + @@ -17588,6 +19691,13 @@ + + + + + + + @@ -17603,6 +19713,12 @@ + + + + + + @@ -17618,6 +19734,13 @@ + + + + + + + @@ -17634,6 +19757,13 @@ + + + + + + + @@ -17649,6 +19779,13 @@ + + + + + + + @@ -17664,6 +19801,12 @@ + + + + + + @@ -17672,6 +19815,12 @@ + + + + + + @@ -17685,6 +19834,12 @@ + + + + + + @@ -17693,6 +19848,12 @@ + + + + + + @@ -17707,6 +19868,12 @@ + + + + + + @@ -17715,6 +19882,13 @@ + + + + + + + @@ -17731,6 +19905,13 @@ + + + + + + + @@ -17747,6 +19928,12 @@ + + + + + + @@ -17762,6 +19949,12 @@ + + + + + + @@ -17777,6 +19970,12 @@ + + + + + + @@ -17792,6 +19991,12 @@ + + + + + + @@ -17807,6 +20012,12 @@ + + + + + + @@ -17814,6 +20025,12 @@ + + + + + + @@ -17828,6 +20045,12 @@ + + + + + + @@ -17836,6 +20059,12 @@ + + + + + + @@ -17851,6 +20080,13 @@ + + + + + + + @@ -17866,6 +20102,12 @@ + + + + + + @@ -17874,6 +20116,12 @@ + + + + + + @@ -17889,6 +20137,12 @@ + + + + + + @@ -17898,6 +20152,12 @@ + + + + + + @@ -17907,6 +20167,13 @@ + + + + + + + @@ -17923,6 +20190,12 @@ + + + + + + @@ -17938,6 +20211,12 @@ + + + + + + @@ -17953,6 +20232,12 @@ + + + + + + @@ -17961,6 +20246,12 @@ + + + + + + @@ -17969,6 +20260,12 @@ + + + + + + @@ -17985,6 +20282,12 @@ + + + + + + @@ -18000,6 +20303,12 @@ + + + + + + @@ -18008,6 +20317,13 @@ + + + + + + + @@ -18023,6 +20339,12 @@ + + + + + + @@ -18040,6 +20362,10 @@ + + + + @@ -18090,6 +20416,13 @@ + + + + + + + @@ -18097,6 +20430,13 @@ + + + + + + + @@ -18111,6 +20451,12 @@ + + + + + + @@ -18126,6 +20472,13 @@ + + + + + + + @@ -18141,6 +20494,13 @@ + + + + + + + @@ -18149,6 +20509,13 @@ + + + + + + + @@ -18164,6 +20531,12 @@ + + + + + + @@ -18178,6 +20551,12 @@ + + + + + + @@ -18186,6 +20565,9 @@ + + + @@ -18200,11 +20582,17 @@ + + + + + + @@ -18220,16 +20608,25 @@ + + + + + + + + + @@ -18245,11 +20642,17 @@ + + + + + + @@ -18315,6 +20718,9 @@ + + + @@ -18566,6 +20972,9 @@ + + + @@ -18617,6 +21026,10 @@ + + + + @@ -18625,6 +21038,10 @@ + + + + @@ -18940,6 +21357,10 @@ + + + + @@ -18949,12 +21370,20 @@ + + + + + + + + @@ -19022,6 +21451,13 @@ + + + + + + + @@ -19038,6 +21474,13 @@ + + + + + + + @@ -19055,6 +21498,13 @@ + + + + + + + @@ -19071,6 +21521,13 @@ + + + + + + + @@ -19086,6 +21543,13 @@ + + + + + + + @@ -19103,6 +21567,13 @@ + + + + + + + @@ -19120,6 +21591,13 @@ + + + + + + + @@ -19128,6 +21606,13 @@ + + + + + + + @@ -19144,6 +21629,13 @@ + + + + + + + @@ -19152,6 +21644,13 @@ + + + + + + + @@ -19178,6 +21677,11 @@ + + + + + @@ -19185,6 +21689,11 @@ + + + + + @@ -19193,6 +21702,11 @@ + + + + + @@ -19201,6 +21715,11 @@ + + + + + @@ -19208,39 +21727,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19248,6 +21796,11 @@ + + + + + @@ -19255,6 +21808,11 @@ + + + + + @@ -19262,6 +21820,11 @@ + + + + + @@ -19269,6 +21832,11 @@ + + + + + @@ -19277,6 +21845,11 @@ + + + + + @@ -19285,6 +21858,11 @@ + + + + + @@ -19293,6 +21871,11 @@ + + + + + @@ -19301,6 +21884,11 @@ + + + + + @@ -19308,6 +21896,11 @@ + + + + + @@ -19315,6 +21908,11 @@ + + + + + @@ -19322,6 +21920,11 @@ + + + + + @@ -19336,6 +21939,11 @@ + + + + + @@ -19343,12 +21951,22 @@ + + + + + + + + + + @@ -19364,12 +21982,20 @@ + + + + + + + + @@ -19392,6 +22018,11 @@ + + + + + @@ -19408,6 +22039,11 @@ + + + + + @@ -19415,6 +22051,11 @@ + + + + + @@ -19422,6 +22063,11 @@ + + + + + @@ -19429,6 +22075,11 @@ + + + + + @@ -19436,6 +22087,11 @@ + + + + + @@ -19446,6 +22102,11 @@ + + + + + @@ -19455,6 +22116,11 @@ + + + + + @@ -19465,6 +22131,11 @@ + + + + + @@ -19478,6 +22149,11 @@ + + + + + @@ -19491,6 +22167,16 @@ + + + + + + + + + + @@ -19504,6 +22190,16 @@ + + + + + + + + + + @@ -19512,6 +22208,16 @@ + + + + + + + + + + @@ -19520,6 +22226,11 @@ + + + + + @@ -19536,6 +22247,16 @@ + + + + + + + + + + @@ -19548,6 +22269,16 @@ + + + + + + + + + + @@ -19560,11 +22291,25 @@ + + + + + + + + + + + + + + @@ -19580,6 +22325,13 @@ + + + + + + + @@ -19595,6 +22347,12 @@ + + + + + + @@ -19610,6 +22368,13 @@ + + + + + + + @@ -19618,6 +22383,12 @@ + + + + + + @@ -19633,6 +22404,12 @@ + + + + + + @@ -19647,6 +22424,13 @@ + + + + + + + @@ -19662,6 +22446,12 @@ + + + + + + @@ -19676,6 +22466,12 @@ + + + + + + @@ -19683,6 +22479,13 @@ + + + + + + + @@ -20715,17 +23518,28 @@ + + + + + + + + + + + @@ -20733,6 +23547,11 @@ + + + + + @@ -20743,6 +23562,11 @@ + + + + + @@ -21131,14 +23955,23 @@ + + + + + + + + + @@ -21150,6 +23983,9 @@ + + + @@ -21162,6 +23998,10 @@ + + + + @@ -21171,6 +24011,10 @@ + + + + @@ -21537,6 +24381,11 @@ + + + + + @@ -21681,6 +24530,9 @@ + + + @@ -21946,18 +24798,27 @@ + + + + + + + + + @@ -21980,6 +24841,9 @@ + + + @@ -22170,6 +25034,10 @@ + + + + @@ -22180,6 +25048,10 @@ + + + + @@ -22189,6 +25061,10 @@ + + + + @@ -22199,6 +25075,10 @@ + + + + @@ -22316,6 +25196,9 @@ + + + @@ -22323,6 +25206,10 @@ + + + + @@ -22337,6 +25224,9 @@ + + + @@ -22345,6 +25235,10 @@ + + + + @@ -22352,6 +25246,10 @@ + + + + @@ -22367,6 +25265,9 @@ + + + @@ -22382,6 +25283,10 @@ + + + + @@ -22397,6 +25302,9 @@ + + + @@ -22412,6 +25320,9 @@ + + + @@ -22425,6 +25336,9 @@ + + + @@ -22438,11 +25352,17 @@ + + + + + + @@ -22451,6 +25371,10 @@ + + + + @@ -22458,6 +25382,10 @@ + + + + @@ -22466,6 +25394,10 @@ + + + + @@ -22473,6 +25405,10 @@ + + + + @@ -22497,6 +25433,10 @@ + + + + @@ -22509,6 +25449,10 @@ + + + + @@ -22523,6 +25467,10 @@ + + + + @@ -22539,17 +25487,26 @@ + + + + + + + + + @@ -22601,6 +25558,9 @@ + + + @@ -22609,6 +25569,9 @@ + + + @@ -22756,6 +25719,9 @@ + + + @@ -22780,6 +25746,9 @@ + + + @@ -22818,6 +25787,9 @@ + + + @@ -22826,11 +25798,17 @@ + + + + + + @@ -22839,6 +25817,9 @@ + + + @@ -22847,6 +25828,9 @@ + + + @@ -22926,11 +25910,11 @@ - + - + @@ -22978,7 +25962,7 @@ - + @@ -23008,7 +25992,7 @@ - + @@ -23019,10 +26003,14 @@ + + + + - + @@ -23046,7 +26034,7 @@ - + @@ -23072,7 +26060,7 @@ - + @@ -23559,6 +26547,11 @@ + + + + + @@ -23569,6 +26562,11 @@ + + + + + @@ -23577,6 +26575,9 @@ + + + @@ -23694,7 +26695,7 @@ - + @@ -23714,10 +26715,9 @@ - + - + @@ -23726,15 +26726,14 @@ - - + + - + @@ -23803,11 +26802,11 @@ - + - + @@ -23815,7 +26814,7 @@ - + @@ -23834,7 +26833,7 @@ - + @@ -23854,7 +26853,7 @@ - + @@ -23862,11 +26861,11 @@ - + - + @@ -23883,8 +26882,7 @@ - + @@ -23901,6 +26899,11 @@ + + + + + @@ -23909,11 +26912,17 @@ + + + + + + @@ -23922,6 +26931,9 @@ + + + @@ -23930,6 +26942,9 @@ + + + @@ -24022,6 +27037,9 @@ + + + @@ -24144,6 +27162,11 @@ + + + + + @@ -24158,6 +27181,10 @@ + + + + @@ -24165,12 +27192,18 @@ + + + + + + @@ -24186,6 +27219,12 @@ + + + + + + @@ -24194,6 +27233,13 @@ + + + + + + + @@ -24209,6 +27255,12 @@ + + + + + + @@ -24217,6 +27269,13 @@ + + + + + + + @@ -24232,6 +27291,13 @@ + + + + + + + @@ -24306,6 +27372,12 @@ + + + + + + @@ -24321,7 +27393,7 @@ - + @@ -24329,10 +27401,13 @@ + + + - + @@ -24361,7 +27436,7 @@ - + @@ -24426,6 +27501,11 @@ + + + + + @@ -24433,6 +27513,11 @@ + + + + + @@ -24488,7 +27573,7 @@ - + @@ -24499,10 +27584,15 @@ + + + + + - + @@ -24527,6 +27617,9 @@ + + + @@ -24556,6 +27649,9 @@ + + + @@ -25130,7 +28226,7 @@ - + @@ -25138,9 +28234,8 @@ - - + + @@ -25149,9 +28244,9 @@ - - - + + + @@ -25228,6 +28323,9 @@ + + + @@ -25338,7 +28436,7 @@ - + @@ -25404,11 +28502,17 @@ + + + + + + @@ -25728,6 +28832,11 @@ + + + + + @@ -25767,6 +28876,13 @@ + + + + + + + @@ -25846,6 +28962,10 @@ + + + + @@ -25901,6 +29021,11 @@ + + + + + @@ -25908,6 +29033,11 @@ + + + + + @@ -25924,6 +29054,11 @@ + + + + + @@ -25939,6 +29074,11 @@ + + + + + @@ -25951,6 +29091,11 @@ + + + + + @@ -25965,6 +29110,12 @@ + + + + + + @@ -25979,6 +29130,12 @@ + + + + + + @@ -25992,6 +29149,9 @@ + + + @@ -26003,16 +29163,22 @@ + + + + + + - + @@ -26699,7 +29865,7 @@ - + @@ -27203,15 +30369,21 @@ + + + + + + - - + + @@ -27346,6 +30518,10 @@ + + + + @@ -27366,6 +30542,16 @@ + + + + + + + + + + @@ -27474,6 +30660,10 @@ + + + + @@ -27484,6 +30674,10 @@ + + + + @@ -27499,6 +30693,10 @@ + + + + @@ -27539,6 +30737,12 @@ + + + + + + @@ -27634,6 +30838,12 @@ + + + + + + @@ -27645,6 +30855,16 @@ + + + + + + + + + + @@ -27659,6 +30879,13 @@ + + + + + + + @@ -27675,6 +30902,9 @@ + + + @@ -27693,6 +30923,16 @@ + + + + + + + + + + @@ -28666,6 +31906,12 @@ + + + + + + @@ -28676,6 +31922,10 @@ + + + + @@ -28683,6 +31933,12 @@ + + + + + + @@ -28704,6 +31960,11 @@ + + + + + @@ -28720,6 +31981,11 @@ + + + + + @@ -28727,6 +31993,10 @@ + + + + @@ -28734,6 +32004,11 @@ + + + + + @@ -28743,6 +32018,11 @@ + + + + + @@ -28759,6 +32039,11 @@ + + + + + @@ -28766,6 +32051,11 @@ + + + + + @@ -28783,6 +32073,11 @@ + + + + + @@ -28797,6 +32092,12 @@ + + + + + + @@ -28960,6 +32261,12 @@ + + + + + + @@ -28978,6 +32285,9 @@ + + + @@ -28986,6 +32296,12 @@ + + + + + + @@ -29031,7 +32347,7 @@ - + @@ -29047,11 +32363,11 @@ - + - + @@ -29076,6 +32392,11 @@ + + + + + @@ -29083,6 +32404,10 @@ + + + + @@ -29098,6 +32423,9 @@ + + + @@ -29112,6 +32440,12 @@ + + + + + + @@ -29318,6 +32652,13 @@ + + + + + + + @@ -29328,6 +32669,13 @@ + + + + + + + @@ -29336,6 +32684,9 @@ + + + @@ -29344,6 +32695,9 @@ + + + @@ -29358,6 +32712,12 @@ + + + + + + @@ -29367,6 +32727,13 @@ + + + + + + + @@ -29376,6 +32743,13 @@ + + + + + + + @@ -29422,6 +32796,9 @@ + + + @@ -29554,6 +32931,13 @@ + + + + + + + @@ -29563,6 +32947,11 @@ + + + + + @@ -30195,6 +33584,11 @@ + + + + + @@ -30204,6 +33598,13 @@ + + + + + + + @@ -30665,6 +34066,16 @@ + + + + + + + + + + @@ -30681,6 +34092,9 @@ + + + @@ -30689,6 +34103,9 @@ + + + @@ -30711,6 +34128,11 @@ + + + + + @@ -30719,6 +34141,11 @@ + + + + + @@ -30727,6 +34154,11 @@ + + + + + @@ -30737,6 +34169,11 @@ + + + + + @@ -30746,6 +34183,10 @@ + + + + @@ -30753,6 +34194,11 @@ + + + + + @@ -30769,6 +34215,11 @@ + + + + + @@ -30776,6 +34227,11 @@ + + + + + @@ -30787,6 +34243,11 @@ + + + + + @@ -30796,6 +34257,10 @@ + + + + @@ -30806,6 +34271,10 @@ + + + + @@ -30814,6 +34283,16 @@ + + + + + + + + + + @@ -30823,6 +34302,11 @@ + + + + + @@ -30832,6 +34316,16 @@ + + + + + + + + + + @@ -30841,10 +34335,20 @@ + + + + + + + + + + - + @@ -30864,7 +34368,7 @@ - + @@ -30892,7 +34396,7 @@ - + @@ -30917,7 +34421,7 @@ - + @@ -30935,6 +34439,13 @@ + + + + + + + @@ -30944,6 +34455,13 @@ + + + + + + + @@ -30954,6 +34472,13 @@ + + + + + + + @@ -31017,6 +34542,12 @@ + + + + + + @@ -31034,6 +34565,12 @@ + + + + + + @@ -31050,6 +34587,12 @@ + + + + + + @@ -31060,6 +34603,13 @@ + + + + + + + @@ -31077,6 +34627,13 @@ + + + + + + + @@ -31128,6 +34685,12 @@ + + + + + + @@ -31342,6 +34905,10 @@ + + + + @@ -31504,6 +35071,12 @@ + + + + + + @@ -31514,6 +35087,12 @@ + + + + + + @@ -31521,6 +35100,16 @@ + + + + + + + + + + @@ -32372,6 +35961,9 @@ + + + @@ -32381,6 +35973,12 @@ + + + + + + @@ -32396,6 +35994,12 @@ + + + + + + @@ -32424,7 +36028,7 @@ - + @@ -32435,6 +36039,10 @@ + + + + @@ -32445,7 +36053,7 @@ - + @@ -32453,21 +36061,30 @@ + + + + + + + + + + - - + + - + @@ -32480,11 +36097,14 @@ + + + - - + + @@ -32513,6 +36133,9 @@ + + + @@ -32528,11 +36151,11 @@ - + - + @@ -32545,6 +36168,12 @@ + + + + + + @@ -34847,8 +38476,7 @@ - + @@ -34869,6 +38497,9 @@ + + + @@ -35145,7 +38776,7 @@ - + @@ -35293,9 +38924,9 @@ - - - + + + @@ -35586,6 +39217,9 @@ + + + @@ -35615,6 +39249,9 @@ + + + @@ -35780,12 +39417,23 @@ + + + + + + + + + + + @@ -35801,12 +39449,18 @@ + + + + + + @@ -35830,6 +39484,11 @@ + + + + + @@ -35846,6 +39505,9 @@ + + + @@ -35858,6 +39520,10 @@ + + + + @@ -35874,6 +39540,9 @@ + + + @@ -35890,6 +39559,9 @@ + + + @@ -35897,6 +39569,9 @@ + + + @@ -35923,6 +39598,11 @@ + + + + + @@ -36143,6 +39823,9 @@ + + + @@ -36205,6 +39888,13 @@ + + + + + + + @@ -36220,6 +39910,13 @@ + + + + + + + @@ -36236,6 +39933,13 @@ + + + + + + + @@ -36244,6 +39948,13 @@ + + + + + + + @@ -36259,6 +39970,13 @@ + + + + + + + @@ -36275,6 +39993,13 @@ + + + + + + + @@ -36283,6 +40008,13 @@ + + + + + + + @@ -36298,6 +40030,13 @@ + + + + + + + @@ -36314,6 +40053,13 @@ + + + + + + + @@ -36322,6 +40068,13 @@ + + + + + + + @@ -36337,6 +40090,13 @@ + + + + + + + @@ -36353,6 +40113,13 @@ + + + + + + + @@ -36361,6 +40128,13 @@ + + + + + + + @@ -36376,6 +40150,13 @@ + + + + + + + @@ -36392,6 +40173,13 @@ + + + + + + + @@ -36400,6 +40188,13 @@ + + + + + + + @@ -36415,6 +40210,13 @@ + + + + + + + @@ -36431,6 +40233,13 @@ + + + + + + + @@ -36441,6 +40250,13 @@ + + + + + + + @@ -36458,6 +40274,13 @@ + + + + + + + @@ -36476,6 +40299,13 @@ + + + + + + + @@ -36486,6 +40316,13 @@ + + + + + + + @@ -36503,6 +40340,13 @@ + + + + + + + @@ -36521,6 +40365,13 @@ + + + + + + + @@ -36532,6 +40383,11 @@ + + + + + @@ -36548,6 +40404,11 @@ + + + + + @@ -36564,6 +40425,11 @@ + + + + + @@ -36693,6 +40559,9 @@ + + + @@ -36862,6 +40731,10 @@ + + + + @@ -36870,6 +40743,9 @@ + + + @@ -36901,19 +40777,18 @@ - + - + - + @@ -36924,7 +40799,7 @@ - + @@ -36947,6 +40822,9 @@ + + + @@ -37233,6 +41111,9 @@ + + + @@ -37758,7 +41639,7 @@ - + @@ -37915,11 +41796,18 @@ - - - - - + + + + + + + + + + + + @@ -37935,6 +41823,11 @@ + + + + + @@ -37943,6 +41836,11 @@ + + + + + @@ -37956,6 +41854,10 @@ + + + + @@ -37970,12 +41872,19 @@ + + + + + + + @@ -37985,11 +41894,20 @@ + + + + + + + + + @@ -37997,6 +41915,12 @@ + + + + + + @@ -38011,6 +41935,12 @@ + + + + + + @@ -38019,6 +41949,12 @@ + + + + + + @@ -38026,12 +41962,21 @@ + + + + + + + + + @@ -38040,6 +41985,12 @@ + + + + + + @@ -38048,6 +41999,12 @@ + + + + + + @@ -38058,6 +42015,14 @@ + + + + + + + + @@ -38068,6 +42033,14 @@ + + + + + + + + @@ -38078,6 +42051,14 @@ + + + + + + + + @@ -38096,6 +42077,11 @@ + + + + + @@ -38221,6 +42207,12 @@ + + + + + + @@ -38250,6 +42242,9 @@ + + + @@ -38264,6 +42259,9 @@ + + + @@ -38325,6 +42323,16 @@ + + + + + + + + + + @@ -38333,6 +42341,16 @@ + + + + + + + + + + @@ -38429,11 +42447,18 @@ + + + + + + + @@ -38448,6 +42473,9 @@ + + + @@ -38515,12 +42543,14 @@ - + - + @@ -38534,6 +42564,9 @@ + + + @@ -38555,6 +42588,9 @@ + + + @@ -38636,6 +42672,9 @@ + + + @@ -38663,6 +42702,11 @@ + + + + + @@ -38806,6 +42850,9 @@ + + + @@ -39013,7 +43060,7 @@ - + @@ -39058,7 +43105,7 @@ - + @@ -39211,6 +43258,10 @@ + + + + @@ -39353,9 +43404,9 @@ - - + + @@ -39378,6 +43429,9 @@ + + + @@ -39454,11 +43508,11 @@ - + - + @@ -39488,6 +43542,11 @@ + + + + + @@ -39765,6 +43824,9 @@ + + + @@ -39773,6 +43835,9 @@ + + + @@ -39780,6 +43845,10 @@ + + + + @@ -39859,7 +43928,7 @@ - + @@ -39872,6 +43941,9 @@ + + + @@ -39880,6 +43952,10 @@ + + + + @@ -39890,6 +43966,10 @@ + + + + @@ -39897,6 +43977,9 @@ + + + @@ -40013,9 +44096,8 @@ - - + + @@ -40036,6 +44118,11 @@ + + + + + @@ -40046,6 +44133,11 @@ + + + + + @@ -40056,6 +44148,11 @@ + + + + + @@ -40065,6 +44162,11 @@ + + + + + @@ -40080,6 +44182,11 @@ + + + + + @@ -40095,6 +44202,9 @@ + + + @@ -40177,7 +44287,8 @@ - + @@ -40209,6 +44320,9 @@ + + + @@ -40217,6 +44331,12 @@ + + + + + + @@ -40225,6 +44345,12 @@ + + + + + + @@ -40245,10 +44371,20 @@ + + + + + + + + + + - + @@ -40266,16 +44402,19 @@ - + - + + + + @@ -40293,6 +44432,9 @@ + + + @@ -40307,6 +44449,10 @@ + + + + @@ -40467,6 +44613,11 @@ + + + + + @@ -40475,6 +44626,11 @@ + + + + + @@ -40483,6 +44639,11 @@ + + + + + @@ -40491,6 +44652,11 @@ + + + + + @@ -40499,6 +44665,11 @@ + + + + + @@ -40507,6 +44678,11 @@ + + + + + @@ -40515,6 +44691,11 @@ + + + + + @@ -40523,6 +44704,11 @@ + + + + + @@ -40531,6 +44717,11 @@ + + + + + @@ -40539,6 +44730,11 @@ + + + + + @@ -40547,6 +44743,11 @@ + + + + + @@ -40555,6 +44756,11 @@ + + + + + @@ -40563,6 +44769,11 @@ + + + + + @@ -40571,6 +44782,11 @@ + + + + + @@ -40579,6 +44795,11 @@ + + + + + @@ -40587,6 +44808,11 @@ + + + + + @@ -40595,6 +44821,11 @@ + + + + + @@ -40603,6 +44834,11 @@ + + + + + @@ -40611,6 +44847,11 @@ + + + + + @@ -40619,6 +44860,11 @@ + + + + + @@ -40674,11 +44920,17 @@ + + + + + + @@ -40896,11 +45148,11 @@ - + - + @@ -40920,6 +45172,9 @@ + + + @@ -40935,18 +45190,24 @@ + + + + + + - + - - + + @@ -41010,6 +45271,9 @@ + + + @@ -41036,6 +45300,9 @@ + + + @@ -41051,6 +45318,11 @@ + + + + + @@ -41058,11 +45330,18 @@ + + + + + + + @@ -41078,6 +45357,10 @@ + + + + @@ -41087,6 +45370,12 @@ + + + + + + @@ -41095,6 +45384,12 @@ + + + + + + @@ -41113,6 +45408,12 @@ + + + + + + @@ -41124,6 +45425,12 @@ + + + + + + @@ -41133,6 +45440,16 @@ + + + + + + + + + + @@ -41143,18 +45460,36 @@ + + + + + + + + + + + + + + + + + + @@ -41178,11 +45513,19 @@ + + + + + + + + @@ -41340,6 +45683,13 @@ + + + + + + + @@ -41357,6 +45707,13 @@ + + + + + + + @@ -41403,14 +45760,24 @@ - + + + + - + + + + @@ -41948,6 +46315,11 @@ + + + + + @@ -41964,6 +46336,11 @@ + + + + + @@ -41981,6 +46358,10 @@ + + + + @@ -41990,6 +46371,10 @@ + + + + @@ -42059,7 +46444,7 @@ - + @@ -42068,11 +46453,11 @@ - + - + @@ -42091,12 +46476,12 @@ - - + + - + @@ -42116,23 +46501,23 @@ - - + + - - + + - - + + - - + + @@ -42141,7 +46526,7 @@ - + @@ -42150,24 +46535,24 @@ - - + + - + - + - + - + @@ -42176,6 +46561,9 @@ + + + @@ -42186,6 +46574,11 @@ + + + + + @@ -42199,6 +46592,11 @@ + + + + + @@ -42211,12 +46609,22 @@ + + + + + + + + + + @@ -42227,12 +46635,22 @@ + + + + + + + + + + @@ -42246,12 +46664,22 @@ + + + + + + + + + + @@ -42264,6 +46692,11 @@ + + + + + @@ -42296,18 +46729,33 @@ + + + + + + + + + + + + + + + @@ -42941,7 +47389,7 @@ - + @@ -42954,7 +47402,7 @@ - + @@ -42966,7 +47414,7 @@ - + @@ -42996,6 +47444,9 @@ + + + @@ -43009,6 +47460,9 @@ + + + @@ -43020,6 +47474,9 @@ + + + @@ -43027,6 +47484,9 @@ + + + @@ -43034,12 +47494,18 @@ + + + + + + @@ -43047,6 +47513,9 @@ + + + @@ -43275,8 +47744,7 @@ - + @@ -43687,11 +48155,14 @@ + + + - - + + @@ -44005,11 +48476,17 @@ + + + + + + @@ -44207,7 +48684,8 @@ - + @@ -44288,6 +48766,10 @@ + + + + @@ -44305,6 +48787,11 @@ + + + + + @@ -44319,6 +48806,16 @@ + + + + + + + + + + @@ -44424,13 +48921,20 @@ + + + + + + + - + @@ -44496,6 +49000,13 @@ + + + + + + + @@ -44505,6 +49016,13 @@ + + + + + + + @@ -44519,6 +49037,16 @@ + + + + + + + + + + @@ -44571,11 +49099,18 @@ + + + + + + + @@ -44996,6 +49531,10 @@ + + + + @@ -45003,6 +49542,10 @@ + + + + @@ -45010,6 +49553,10 @@ + + + + @@ -45017,6 +49564,10 @@ + + + + @@ -45024,6 +49575,10 @@ + + + + @@ -45031,6 +49586,10 @@ + + + + @@ -45038,6 +49597,10 @@ + + + + @@ -45045,6 +49608,10 @@ + + + + @@ -45052,6 +49619,10 @@ + + + + @@ -45059,6 +49630,10 @@ + + + + @@ -45066,6 +49641,10 @@ + + + + @@ -45073,6 +49652,10 @@ + + + + @@ -45080,6 +49663,10 @@ + + + + @@ -45087,6 +49674,10 @@ + + + + @@ -45094,6 +49685,10 @@ + + + + @@ -45101,6 +49696,10 @@ + + + + @@ -45108,6 +49707,10 @@ + + + + @@ -45115,6 +49718,10 @@ + + + + @@ -45122,6 +49729,10 @@ + + + + @@ -45129,6 +49740,10 @@ + + + + @@ -45136,6 +49751,10 @@ + + + + @@ -45143,6 +49762,10 @@ + + + + @@ -45150,6 +49773,10 @@ + + + + @@ -45157,6 +49784,10 @@ + + + + @@ -45164,6 +49795,10 @@ + + + + @@ -45171,6 +49806,10 @@ + + + + @@ -45178,6 +49817,10 @@ + + + + @@ -45185,6 +49828,10 @@ + + + + @@ -45192,6 +49839,10 @@ + + + + @@ -45199,6 +49850,10 @@ + + + + @@ -45206,6 +49861,10 @@ + + + + @@ -45213,6 +49872,10 @@ + + + + @@ -45220,6 +49883,10 @@ + + + + @@ -45227,6 +49894,10 @@ + + + + @@ -45234,6 +49905,10 @@ + + + + @@ -45241,6 +49916,10 @@ + + + + @@ -45248,6 +49927,10 @@ + + + + @@ -45255,6 +49938,10 @@ + + + + @@ -45262,6 +49949,10 @@ + + + + @@ -45269,6 +49960,10 @@ + + + + @@ -45276,6 +49971,10 @@ + + + + @@ -45283,6 +49982,10 @@ + + + + @@ -45290,6 +49993,10 @@ + + + + @@ -45297,6 +50004,10 @@ + + + + @@ -45304,6 +50015,10 @@ + + + + @@ -45311,6 +50026,10 @@ + + + + @@ -45318,6 +50037,10 @@ + + + + @@ -45325,6 +50048,10 @@ + + + + @@ -45332,6 +50059,10 @@ + + + + @@ -45339,6 +50070,10 @@ + + + + @@ -45346,6 +50081,10 @@ + + + + @@ -45353,6 +50092,10 @@ + + + + @@ -45360,6 +50103,10 @@ + + + + @@ -45367,6 +50114,10 @@ + + + + @@ -45374,6 +50125,10 @@ + + + + @@ -45381,6 +50136,10 @@ + + + + @@ -45388,6 +50147,10 @@ + + + + @@ -45395,6 +50158,10 @@ + + + + @@ -45402,6 +50169,10 @@ + + + + @@ -45409,24 +50180,37 @@ + + + + + + + + + + + + + @@ -45445,6 +50229,9 @@ + + + @@ -45452,6 +50239,10 @@ + + + + @@ -45459,6 +50250,10 @@ + + + + @@ -45466,6 +50261,10 @@ + + + + @@ -45473,6 +50272,10 @@ + + + + @@ -45480,6 +50283,10 @@ + + + + @@ -45487,6 +50294,10 @@ + + + + @@ -45494,6 +50305,10 @@ + + + + @@ -45501,6 +50316,10 @@ + + + + @@ -45508,6 +50327,10 @@ + + + + @@ -45515,6 +50338,10 @@ + + + + @@ -45522,6 +50349,10 @@ + + + + @@ -45529,6 +50360,10 @@ + + + + @@ -45536,6 +50371,10 @@ + + + + @@ -45543,6 +50382,10 @@ + + + + @@ -45550,6 +50393,10 @@ + + + + @@ -45557,6 +50404,10 @@ + + + + @@ -45564,6 +50415,10 @@ + + + + @@ -45571,6 +50426,10 @@ + + + + @@ -45650,6 +50509,10 @@ + + + + @@ -45657,6 +50520,10 @@ + + + + @@ -45664,6 +50531,10 @@ + + + + @@ -45671,6 +50542,10 @@ + + + + @@ -45678,6 +50553,10 @@ + + + + @@ -45685,6 +50564,10 @@ + + + + @@ -45692,6 +50575,10 @@ + + + + @@ -45699,6 +50586,10 @@ + + + + @@ -45706,6 +50597,10 @@ + + + + @@ -45713,6 +50608,10 @@ + + + + @@ -45720,6 +50619,10 @@ + + + + @@ -45727,6 +50630,10 @@ + + + + @@ -45734,6 +50641,10 @@ + + + + @@ -45741,6 +50652,10 @@ + + + + @@ -45748,6 +50663,10 @@ + + + + @@ -45755,6 +50674,10 @@ + + + + @@ -45762,6 +50685,10 @@ + + + + @@ -45769,6 +50696,10 @@ + + + + @@ -45848,6 +50779,10 @@ + + + + @@ -45855,6 +50790,10 @@ + + + + @@ -45862,6 +50801,10 @@ + + + + @@ -45869,6 +50812,10 @@ + + + + @@ -45876,6 +50823,10 @@ + + + + @@ -45883,6 +50834,10 @@ + + + + @@ -45890,6 +50845,10 @@ + + + + @@ -45897,6 +50856,10 @@ + + + + @@ -45904,6 +50867,10 @@ + + + + @@ -45911,6 +50878,10 @@ + + + + @@ -45918,6 +50889,10 @@ + + + + @@ -45925,6 +50900,10 @@ + + + + @@ -45932,6 +50911,10 @@ + + + + @@ -45939,6 +50922,10 @@ + + + + @@ -45946,6 +50933,10 @@ + + + + @@ -45953,6 +50944,10 @@ + + + + @@ -45960,6 +50955,10 @@ + + + + @@ -45967,6 +50966,10 @@ + + + + @@ -46359,13 +51362,13 @@ - - + + - - + + @@ -46490,18 +51493,30 @@ + + + + + + + + + + + + @@ -46704,6 +51719,13 @@ + + + + + + + @@ -46718,6 +51740,13 @@ + + + + + + + @@ -46731,6 +51760,13 @@ + + + + + + + @@ -46745,6 +51781,13 @@ + + + + + + + @@ -46758,6 +51801,13 @@ + + + + + + + @@ -46772,6 +51822,13 @@ + + + + + + + @@ -46788,6 +51845,13 @@ + + + + + + + @@ -46804,6 +51868,13 @@ + + + + + + + @@ -46817,6 +51888,16 @@ + + + + + + + + + + @@ -46830,6 +51911,16 @@ + + + + + + + + + + @@ -46992,6 +52083,9 @@ + + + @@ -47000,6 +52094,10 @@ + + + + @@ -47013,6 +52111,10 @@ + + + + @@ -47142,6 +52244,10 @@ + + + + @@ -47412,6 +52518,11 @@ + + + + + @@ -47428,6 +52539,11 @@ + + + + + @@ -47436,6 +52552,11 @@ + + + + + @@ -47455,6 +52576,11 @@ + + + + + @@ -47472,12 +52598,22 @@ + + + + + + + + + + @@ -48001,10 +53137,24 @@ - - + + + + + + + + + + + + + + + + @@ -48019,6 +53169,9 @@ + + + @@ -48030,8 +53183,17 @@ + + + + + + + + + + - @@ -48317,6 +53479,9 @@ + + + @@ -48935,6 +54100,11 @@ + + + + + @@ -48953,6 +54123,11 @@ + + + + + @@ -48968,6 +54143,16 @@ + + + + + + + + + + @@ -48983,6 +54168,16 @@ + + + + + + + + + + @@ -49002,6 +54197,13 @@ + + + + + + + @@ -49018,6 +54220,11 @@ + + + + + @@ -49029,6 +54236,11 @@ + + + + + @@ -49046,6 +54258,11 @@ + + + + + @@ -49063,6 +54280,11 @@ + + + + + @@ -49080,6 +54302,13 @@ + + + + + + + @@ -49097,6 +54326,13 @@ + + + + + + + @@ -49114,6 +54350,13 @@ + + + + + + + @@ -49506,6 +54749,16 @@ + + + + + + + + + + @@ -49523,6 +54776,16 @@ + + + + + + + + + + @@ -49539,6 +54802,12 @@ + + + + + + @@ -49554,6 +54823,12 @@ + + + + + + @@ -49569,6 +54844,12 @@ + + + + + + @@ -49584,6 +54865,12 @@ + + + + + + @@ -49962,6 +55249,10 @@ + + + + @@ -50173,6 +55464,13 @@ + + + + + + + @@ -50188,6 +55486,11 @@ + + + + + @@ -50205,6 +55508,13 @@ + + + + + + + @@ -50222,6 +55532,11 @@ + + + + + @@ -50238,6 +55553,13 @@ + + + + + + + @@ -50254,6 +55576,13 @@ + + + + + + + @@ -50269,6 +55598,11 @@ + + + + + @@ -50278,6 +55612,11 @@ + + + + + @@ -50293,6 +55632,16 @@ + + + + + + + + + + @@ -50308,6 +55657,11 @@ + + + + + @@ -50323,14 +55677,29 @@ + + + + + + + + + + + + + + + @@ -50350,6 +55719,11 @@ + + + + + @@ -50366,6 +55740,11 @@ + + + + + @@ -51175,6 +56554,9 @@ + + + @@ -51237,6 +56619,9 @@ + + + @@ -51245,6 +56630,9 @@ + + + @@ -51537,9 +56925,15 @@ + + + + + + @@ -51551,6 +56945,9 @@ + + + @@ -51569,6 +56966,10 @@ + + + + @@ -51694,6 +57095,10 @@ + + + + @@ -51708,8 +57113,7 @@ - + @@ -51755,6 +57159,11 @@ + + + + + @@ -51768,6 +57177,11 @@ + + + + + @@ -51775,6 +57189,11 @@ + + + + + @@ -51788,6 +57207,11 @@ + + + + + @@ -51887,6 +57311,13 @@ + + + + + + + @@ -51896,6 +57327,11 @@ + + + + + @@ -51911,6 +57347,13 @@ + + + + + + + @@ -51926,6 +57369,13 @@ + + + + + + + @@ -51944,6 +57394,11 @@ + + + + + @@ -51959,6 +57414,13 @@ + + + + + + + @@ -51974,6 +57436,16 @@ + + + + + + + + + + @@ -51989,9 +57461,24 @@ + + + + + + + + + + + + + + + @@ -52004,6 +57491,11 @@ + + + + + @@ -52011,6 +57503,11 @@ + + + + + @@ -52533,6 +58030,9 @@ + + + @@ -52562,6 +58062,9 @@ + + + @@ -52675,6 +58178,9 @@ + + + @@ -52843,6 +58349,9 @@ + + + @@ -53082,11 +58591,17 @@ + + + + + + @@ -53107,6 +58622,9 @@ + + + @@ -53472,6 +58990,10 @@ + + + + @@ -53479,6 +59001,10 @@ + + + + @@ -53552,6 +59078,11 @@ + + + + + @@ -53567,6 +59098,11 @@ + + + + + @@ -53581,6 +59117,11 @@ + + + + + @@ -53597,6 +59138,13 @@ + + + + + + + @@ -53615,6 +59163,13 @@ + + + + + + + @@ -53627,6 +59182,11 @@ + + + + + @@ -53642,6 +59202,11 @@ + + + + + @@ -53739,6 +59304,13 @@ + + + + + + + @@ -53754,6 +59326,10 @@ + + + + @@ -53766,6 +59342,11 @@ + + + + + @@ -53785,6 +59366,10 @@ + + + + @@ -53802,6 +59387,9 @@ + + + @@ -53809,6 +59397,10 @@ + + + + @@ -54005,6 +59597,9 @@ + + + @@ -54036,8 +59631,8 @@ - - + + @@ -54386,9 +59981,8 @@ - - + + @@ -54504,6 +60098,10 @@ + + + + @@ -54515,21 +60113,33 @@ + + + + + + + + + + + + @@ -56013,6 +61623,9 @@ + + + @@ -56138,6 +61751,13 @@ + + + + + + + @@ -56149,6 +61769,11 @@ + + + + + @@ -56156,6 +61781,11 @@ + + + + + @@ -56165,6 +61795,11 @@ + + + + + @@ -56173,12 +61808,19 @@ + + + + + + + @@ -56215,6 +61857,11 @@ + + + + + @@ -56224,6 +61871,9 @@ + + + @@ -56248,10 +61898,18 @@ + + + + + + + + @@ -56303,6 +61961,9 @@ + + + @@ -57351,7 +63012,7 @@ - + @@ -57799,7 +63460,7 @@ - + @@ -57834,15 +63495,15 @@ - + - + - + @@ -57850,7 +63511,7 @@ - + @@ -58018,6 +63679,9 @@ + + + @@ -58050,8 +63714,8 @@ - - + + @@ -58271,15 +63935,15 @@ - + - + - + @@ -58304,6 +63968,9 @@ + + + @@ -58325,6 +63992,13 @@ + + + + + + + @@ -58343,6 +64017,13 @@ + + + + + + + @@ -58363,6 +64044,13 @@ + + + + + + + @@ -58381,6 +64069,13 @@ + + + + + + + @@ -58401,6 +64096,13 @@ + + + + + + + @@ -58419,6 +64121,13 @@ + + + + + + + @@ -58440,6 +64149,13 @@ + + + + + + + @@ -58461,6 +64177,13 @@ + + + + + + + @@ -58477,6 +64200,16 @@ + + + + + + + + + + @@ -58495,6 +64228,16 @@ + + + + + + + + + + @@ -58502,6 +64245,11 @@ + + + + + @@ -58509,6 +64257,11 @@ + + + + + @@ -58525,6 +64278,11 @@ + + + + + @@ -58541,6 +64299,11 @@ + + + + + @@ -58556,6 +64319,11 @@ + + + + + @@ -58569,6 +64337,11 @@ + + + + + @@ -58579,6 +64352,11 @@ + + + + + @@ -58596,6 +64374,11 @@ + + + + + @@ -58735,63 +64518,63 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -58811,6 +64594,13 @@ + + + + + + + @@ -58826,6 +64616,16 @@ + + + + + + + + + + @@ -58841,6 +64641,16 @@ + + + + + + + + + + @@ -58859,6 +64669,11 @@ + + + + + @@ -58876,6 +64691,11 @@ + + + + + @@ -58893,6 +64713,13 @@ + + + + + + + @@ -58910,6 +64737,11 @@ + + + + + @@ -58928,6 +64760,11 @@ + + + + + @@ -58937,21 +64774,25 @@ + + + + - - + + - - + + - - + + @@ -59233,6 +65074,13 @@ + + + + + + + @@ -59249,6 +65097,13 @@ + + + + + + + @@ -59572,12 +65427,14 @@ - + - + @@ -60062,6 +65919,13 @@ + + + + + + + @@ -60078,12 +65942,24 @@ + + + + + + + + + + + + @@ -60091,6 +65967,11 @@ + + + + + @@ -60110,6 +65991,13 @@ + + + + + + + @@ -60120,6 +66008,11 @@ + + + + + @@ -60130,6 +66023,11 @@ + + + + + @@ -60144,6 +66042,16 @@ + + + + + + + + + + @@ -60158,6 +66066,16 @@ + + + + + + + + + + @@ -60165,18 +66083,31 @@ + + + + + + + + + + + + + @@ -60185,11 +66116,11 @@ - + - + @@ -60221,7 +66152,7 @@ - + @@ -60244,7 +66175,7 @@ - + @@ -60311,7 +66242,7 @@ - + @@ -60342,19 +66273,27 @@ - + + + + + + + + + @@ -60711,13 +66650,13 @@ - - + + - - + + @@ -60726,8 +66665,8 @@ - - + + @@ -60736,8 +66675,8 @@ - - + + @@ -60756,6 +66695,13 @@ + + + + + + + @@ -61421,6 +67367,11 @@ + + + + + @@ -61438,6 +67389,13 @@ + + + + + + + @@ -61456,6 +67414,13 @@ + + + + + + + @@ -61473,6 +67438,13 @@ + + + + + + + @@ -61491,6 +67463,13 @@ + + + + + + + @@ -61508,6 +67487,13 @@ + + + + + + + @@ -61526,6 +67512,13 @@ + + + + + + + @@ -61541,6 +67534,11 @@ + + + + + @@ -61560,6 +67558,13 @@ + + + + + + + @@ -61580,6 +67585,13 @@ + + + + + + + @@ -61589,6 +67601,11 @@ + + + + + @@ -61597,6 +67614,11 @@ + + + + + @@ -61613,6 +67635,17 @@ + + + + + + + + + + + @@ -61630,6 +67663,17 @@ + + + + + + + + + + + @@ -61645,6 +67689,11 @@ + + + + + @@ -61660,6 +67709,11 @@ + + + + + @@ -61679,6 +67733,11 @@ + + + + + @@ -61698,6 +67757,11 @@ + + + + + @@ -61716,6 +67780,17 @@ + + + + + + + + + + + @@ -61735,6 +67810,17 @@ + + + + + + + + + + + @@ -62841,21 +68927,25 @@ - + - + - + - + @@ -63198,8 +69288,8 @@ - - + + @@ -64286,6 +70376,9 @@ + + + @@ -64331,8 +70424,8 @@ - - + + @@ -64494,6 +70587,9 @@ + + + @@ -64508,6 +70604,9 @@ + + + @@ -64522,6 +70621,9 @@ + + + @@ -64529,9 +70631,16 @@ + + + + + + + @@ -65266,6 +71375,11 @@ + + + + + @@ -65286,6 +71400,11 @@ + + + + + @@ -65308,6 +71427,11 @@ + + + + + @@ -65318,6 +71442,11 @@ + + + + + @@ -65332,6 +71461,11 @@ + + + + + @@ -65351,6 +71485,11 @@ + + + + + @@ -65365,6 +71504,11 @@ + + + + + @@ -65384,6 +71528,11 @@ + + + + + @@ -65400,6 +71549,13 @@ + + + + + + + @@ -65416,6 +71572,13 @@ + + + + + + + @@ -65432,6 +71595,13 @@ + + + + + + + @@ -65442,6 +71612,11 @@ + + + + + @@ -65461,6 +71636,13 @@ + + + + + + + @@ -65469,6 +71651,11 @@ + + + + + @@ -65480,6 +71667,11 @@ + + + + + @@ -65496,6 +71688,17 @@ + + + + + + + + + + + @@ -65512,6 +71715,17 @@ + + + + + + + + + + + @@ -65527,6 +71741,11 @@ + + + + + @@ -65543,6 +71762,11 @@ + + + + + @@ -65550,6 +71774,11 @@ + + + + + @@ -65557,6 +71786,11 @@ + + + + + @@ -65568,6 +71802,11 @@ + + + + + @@ -65586,6 +71825,11 @@ + + + + + @@ -65596,6 +71840,11 @@ + + + + + @@ -65604,6 +71853,11 @@ + + + + + @@ -65622,6 +71876,11 @@ + + + + + @@ -65632,6 +71891,11 @@ + + + + + @@ -65640,6 +71904,11 @@ + + + + + @@ -65658,6 +71927,11 @@ + + + + + @@ -65669,6 +71943,11 @@ + + + + + @@ -65677,6 +71956,11 @@ + + + + + @@ -65693,6 +71977,11 @@ + + + + + @@ -65703,6 +71992,11 @@ + + + + + @@ -65872,6 +72166,11 @@ + + + + + @@ -65886,10 +72185,20 @@ + + + + + + + + + + @@ -67087,6 +73396,9 @@ + + + @@ -67520,8 +73832,8 @@ - - + + @@ -67561,12 +73873,19 @@ + + + + + + + @@ -67579,12 +73898,18 @@ + + + + + + @@ -67643,6 +73968,11 @@ + + + + + @@ -67653,6 +73983,11 @@ + + + + + @@ -67661,6 +73996,11 @@ + + + + + @@ -67677,6 +74017,11 @@ + + + + + @@ -67686,6 +74031,11 @@ + + + + + @@ -67696,6 +74046,11 @@ + + + + + @@ -67713,6 +74068,11 @@ + + + + + @@ -67720,6 +74080,11 @@ + + + + + @@ -68800,6 +75165,13 @@ + + + + + + + @@ -68816,6 +75188,13 @@ + + + + + + + @@ -68832,6 +75211,13 @@ + + + + + + + @@ -68848,6 +75234,13 @@ + + + + + + + @@ -68864,6 +75257,13 @@ + + + + + + + @@ -68880,6 +75280,13 @@ + + + + + + + @@ -68898,6 +75305,13 @@ + + + + + + + @@ -68916,6 +75330,13 @@ + + + + + + + @@ -68934,6 +75355,13 @@ + + + + + + + @@ -68952,6 +75380,13 @@ + + + + + + + @@ -68970,6 +75405,13 @@ + + + + + + + @@ -68988,6 +75430,13 @@ + + + + + + + @@ -68998,6 +75447,11 @@ + + + + + @@ -69019,6 +75473,13 @@ + + + + + + + @@ -69040,6 +75501,13 @@ + + + + + + + @@ -69061,6 +75529,13 @@ + + + + + + + @@ -69082,6 +75557,13 @@ + + + + + + + @@ -69091,6 +75573,11 @@ + + + + + @@ -69108,6 +75595,17 @@ + + + + + + + + + + + @@ -69125,6 +75623,17 @@ + + + + + + + + + + + @@ -69138,6 +75647,11 @@ + + + + + @@ -69155,6 +75669,17 @@ + + + + + + + + + + + @@ -69172,6 +75697,17 @@ + + + + + + + + + + + @@ -69185,6 +75721,11 @@ + + + + + diff --git a/src/account/account_repository_db.cpp b/src/account/account_repository_db.cpp index cfe1f1d05be..b150a636a97 100644 --- a/src/account/account_repository_db.cpp +++ b/src/account/account_repository_db.cpp @@ -20,9 +20,7 @@ #include "account/account_info.hpp" AccountRepositoryDB::AccountRepositoryDB() : - coinTypeToColumn({ { enumToValue(CoinType::Normal), "coins" }, - { enumToValue(CoinType::Tournament), "tournament_coins" }, - { enumToValue(CoinType::Transferable), "coins_transferable" } }) { } + coinTypeToColumn({ { enumToValue(CoinType::Normal), "coins" }, { enumToValue(CoinType::Tournament), "tournament_coins" }, { enumToValue(CoinType::Transferable), "coins_transferable" } }) { } bool AccountRepositoryDB::loadByID(const uint32_t &id, AccountInfo &acc) { auto query = fmt::format("SELECT `id`, `type`, `premdays`, `lastday`, `creation`, `premdays_purchased`, 0 AS `expires` FROM `accounts` WHERE `id` = {}", id); diff --git a/src/config/config_enums.hpp b/src/config/config_enums.hpp index dd8934caeed..ee8b531ddcc 100644 --- a/src/config/config_enums.hpp +++ b/src/config/config_enums.hpp @@ -36,6 +36,7 @@ enum ConfigKey_t : uint16_t { CLASSIC_ATTACK_SPEED, CLEAN_PROTECTION_ZONES, COMBAT_CHAIN_DELAY, + COMBAT_CHAIN_TARGETS, COMPRESSION_LEVEL, CONVERT_UNSAFE_SCRIPTS, CORE_DIRECTORY, @@ -273,6 +274,7 @@ enum ConfigKey_t : uint16_t { TIBIADROME_CONCOCTION_DURATION, TIBIADROME_CONCOCTION_TICK_TYPE, TOGGLE_ATTACK_SPEED_ONFIST, + TOGGLE_CHAIN_SYSTEM, TOGGLE_DOWNLOAD_MAP, TOGGLE_FREE_QUEST, TOGGLE_GOLD_POUCH_ALLOW_ANYTHING, diff --git a/src/config/configmanager.cpp b/src/config/configmanager.cpp index f6f12546c43..7069ca10fb2 100644 --- a/src/config/configmanager.cpp +++ b/src/config/configmanager.cpp @@ -139,6 +139,7 @@ bool ConfigManager::load() { loadBoolConfig(L, TELEPORT_PLAYER_TO_VOCATION_ROOM, "teleportPlayerToVocationRoom", true); loadBoolConfig(L, TELEPORT_SUMMONS, "teleportSummons", false); loadBoolConfig(L, TOGGLE_ATTACK_SPEED_ONFIST, "toggleAttackSpeedOnFist", false); + loadBoolConfig(L, TOGGLE_CHAIN_SYSTEM, "toggleChainSystem", true); loadBoolConfig(L, TOGGLE_DOWNLOAD_MAP, "toggleDownloadMap", false); loadBoolConfig(L, TOGGLE_FREE_QUEST, "toggleFreeQuest", true); loadBoolConfig(L, TOGGLE_GOLD_POUCH_ALLOW_ANYTHING, "toggleGoldPouchAllowAnything", false); @@ -215,6 +216,7 @@ bool ConfigManager::load() { loadIntConfig(L, BUY_BLESS_COMMAND_FEE, "buyBlessCommandFee", 0); loadIntConfig(L, CHECK_EXPIRED_MARKET_OFFERS_EACH_MINUTES, "checkExpiredMarketOffersEachMinutes", 60); loadIntConfig(L, COMBAT_CHAIN_DELAY, "combatChainDelay", 50); + loadIntConfig(L, COMBAT_CHAIN_TARGETS, "combatChainTargets", 5); loadIntConfig(L, COMPRESSION_LEVEL, "packetCompressionLevel", 6); loadIntConfig(L, CRITICALCHANCE, "criticalChance", 10); loadIntConfig(L, DAY_KILLS_TO_RED, "dayKillsToRedSkull", 3); diff --git a/src/creatures/combat/combat.cpp b/src/creatures/combat/combat.cpp index 36b90ca1eba..7456f572938 100644 --- a/src/creatures/combat/combat.cpp +++ b/src/creatures/combat/combat.cpp @@ -510,6 +510,7 @@ bool Combat::setCallback(CallBackParam_t key) { case CALLBACK_PARAM_CHAINVALUE: { params.chainCallback = std::make_unique(); + params.chainCallback->setFromLua(true); return true; } @@ -521,6 +522,11 @@ bool Combat::setCallback(CallBackParam_t key) { return false; } +void Combat::setChainCallback(uint8_t chainTargets, uint8_t chainDistance, bool backtracking) { + params.chainCallback = std::make_unique(chainTargets, chainDistance, backtracking); + g_logger().debug("ChainCallback created: {}, with targets: {}, distance: {}, backtracking: {}", params.chainCallback != nullptr, chainTargets, chainDistance, backtracking); +} + CallBack* Combat::getCallback(CallBackParam_t key) { switch (key) { case CALLBACK_PARAM_LEVELMAGICVALUE: @@ -930,6 +936,76 @@ void Combat::doChainEffect(const Position &origin, const Position &dest, uint8_t } } +void Combat::setupChain(const std::shared_ptr &weapon) { + if (!weapon) { + return; + } + + // clang-format off + static std::list areaList = { + 0, 0, 0, 1, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 0, + 0, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 3, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 0, + 0, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 1, 0, 0, 0, + }; + // clang-format on + auto area = std::make_unique(); + area->setupArea(areaList, 7); + setArea(area); + g_logger().trace("Weapon: {}, element type: {}", Item::items[weapon->getID()].name, weapon->params.combatType); + setParam(COMBAT_PARAM_TYPE, weapon->params.combatType); + const auto &weaponType = weapon->getWeaponType(); + if (weaponType != WEAPON_WAND) { + setParam(COMBAT_PARAM_BLOCKARMOR, true); + } + + weapon->params.chainCallback = std::make_unique(); + + auto setCommonValues = [this, weapon](double formula, SoundEffect_t impactSound, uint32_t effect) { + double weaponSkillFormula = weapon->getChainSkillValue(); + setPlayerCombatValues(COMBAT_FORMULA_SKILL, 0, 0, weaponSkillFormula ? weaponSkillFormula : formula, 0); + setParam(COMBAT_PARAM_IMPACTSOUND, impactSound); + setParam(COMBAT_PARAM_EFFECT, effect); + setParam(COMBAT_PARAM_BLOCKARMOR, true); + }; + + setChainCallback(g_configManager().getNumber(COMBAT_CHAIN_TARGETS, __FUNCTION__), 1, true); + + switch (weaponType) { + case WEAPON_SWORD: + setCommonValues(1.1, MELEE_ATK_SWORD, CONST_ME_SLASH); + break; + + case WEAPON_CLUB: + setCommonValues(0.7, MELEE_ATK_CLUB, CONST_ME_BLACK_BLOOD); + break; + + case WEAPON_AXE: + setCommonValues(0.9, MELEE_ATK_AXE, CONST_ANI_WHIRLWINDAXE); + break; + } + + if (weaponType == WEAPON_WAND) { + static const std::map> elementEffects = { + { COMBAT_DEATHDAMAGE, { CONST_ME_MORTAREA, CONST_ME_BLACK_BLOOD } }, + { COMBAT_ENERGYDAMAGE, { CONST_ME_ENERGYAREA, CONST_ME_PINK_ENERGY_SPARK } }, + { COMBAT_FIREDAMAGE, { CONST_ME_FIREATTACK, CONST_ME_FIREATTACK } }, + { COMBAT_ICEDAMAGE, { CONST_ME_ICEATTACK, CONST_ME_ICEATTACK } }, + { COMBAT_EARTHDAMAGE, { CONST_ME_STONES, CONST_ME_POISONAREA } }, + }; + + auto it = elementEffects.find(weapon->getElementType()); + if (it != elementEffects.end()) { + setPlayerCombatValues(COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0); + setParam(COMBAT_PARAM_EFFECT, it->second.first); + setParam(COMBAT_PARAM_CHAIN_EFFECT, it->second.second); + } + } +} + bool Combat::doCombatChain(std::shared_ptr caster, std::shared_ptr target, bool aggressive) const { metrics::method_latency measure(__METHOD_NAME__); if (!params.chainCallback) { @@ -939,7 +1015,7 @@ bool Combat::doCombatChain(std::shared_ptr caster, std::shared_ptronChainCombat(caster, maxTargets, chainDistance, backtracking); + params.chainCallback->getChainValues(caster, maxTargets, chainDistance, backtracking); auto targets = pickChainTargets(caster, params, chainDistance, maxTargets, backtracking, aggressive, target); g_logger().debug("[{}] Chain targets: {}", __FUNCTION__, targets.size()); @@ -1476,42 +1552,16 @@ void ValueCallback::getMinMaxValues(std::shared_ptr player, CombatDamage case COMBAT_FORMULA_SKILL: { // onGetPlayerMinMaxValues(player, attackSkill, attackValue, attackFactor) std::shared_ptr tool = player->getWeapon(); - const WeaponShared_ptr weapon = g_weapons().getWeapon(tool); - std::shared_ptr item = nullptr; - + const auto &weapon = g_weapons().getWeapon(tool); + int32_t attackSkill = 0; + float attackFactor = 0; if (weapon) { - attackValue = tool->getAttack(); - if (tool->getWeaponType() == WEAPON_AMMO) { - item = player->getWeapon(true); - if (item) { - attackValue += item->getAttack(); - } - } - - CombatType_t elementType = weapon->getElementType(); - damage.secondary.type = elementType; - - if (elementType != COMBAT_NONE) { - if (weapon) { - elementAttack = weapon->getElementDamageValue(); - shouldCalculateSecondaryDamage = true; - attackValue += elementAttack; - } - } else { - shouldCalculateSecondaryDamage = false; - } - - if (useCharges) { - auto charges = tool->getAttribute(ItemAttribute_t::CHARGES); - if (charges != 0) { - g_game().transformItem(tool, tool->getID(), charges - 1); - } - } + shouldCalculateSecondaryDamage = weapon->calculateSkillFormula(player, attackSkill, attackValue, attackFactor, elementAttack, damage, useCharges); } - lua_pushnumber(L, player->getWeaponSkill(item ? item : tool)); + lua_pushnumber(L, attackSkill); lua_pushnumber(L, attackValue); - lua_pushnumber(L, player->getAttackFactor()); + lua_pushnumber(L, attackFactor); parameters += 3; break; } @@ -1635,7 +1685,19 @@ void TargetCallback::onTargetCombat(std::shared_ptr creature, std::sha //**********************************************************// -void ChainCallback::onChainCombat(std::shared_ptr creature, uint8_t &maxTargets, uint8_t &chainDistance, bool &backtracking) const { +void ChainCallback::getChainValues(const std::shared_ptr &creature, uint8_t &maxTargets, uint8_t &chainDistance, bool &backtracking) { + if (m_fromLua) { + onChainCombat(creature, maxTargets, chainDistance, backtracking); + return; + } + + if (m_chainTargets && m_chainDistance) { + maxTargets = m_chainTargets; + chainDistance = m_chainDistance; + backtracking = m_backtracking; + } +} +void ChainCallback::onChainCombat(std::shared_ptr creature, uint8_t &maxTargets, uint8_t &chainDistance, bool &backtracking) { // onChainCombat(creature) if (!scriptInterface->reserveScriptEnv()) { g_logger().error("[ChainCallback::onTargetCombat - Creature {}] " diff --git a/src/creatures/combat/combat.hpp b/src/creatures/combat/combat.hpp index c7d886a7fd2..6a79455c7c4 100644 --- a/src/creatures/combat/combat.hpp +++ b/src/creatures/combat/combat.hpp @@ -20,6 +20,7 @@ class Item; class Spell; class Player; class MatrixArea; +class Weapon; // for luascript callback class ValueCallback final : public CallBack { @@ -59,7 +60,22 @@ class TargetCallback final : public CallBack { class ChainCallback final : public CallBack { public: - void onChainCombat(std::shared_ptr creature, uint8_t &chainTargets, uint8_t &chainDistance, bool &backtracking) const; + ChainCallback() = default; + ChainCallback(uint8_t &chainTargets, uint8_t &chainDistance, bool &backtracking) : + m_chainDistance(chainDistance), m_chainTargets(chainTargets), m_backtracking(backtracking) { } + + void getChainValues(const std::shared_ptr &creature, uint8_t &maxTargets, uint8_t &chainDistance, bool &backtracking); + void setFromLua(bool fromLua) { + m_fromLua = fromLua; + } + +private: + void onChainCombat(std::shared_ptr creature, uint8_t &chainTargets, uint8_t &chainDistance, bool &backtracking); + + uint8_t m_chainTargets = 0; + uint8_t m_chainDistance = 0; + bool m_backtracking = false; + bool m_fromLua = false; }; class ChainPickerCallback final : public CallBack { @@ -293,6 +309,7 @@ class Combat { bool doCombat(std::shared_ptr caster, const Position &pos) const; bool setCallback(CallBackParam_t key); + void setChainCallback(uint8_t chainTargets, uint8_t chainDistance, bool backtracking); CallBack* getCallback(CallBackParam_t key); bool setParam(CombatParam_t param, uint32_t value); @@ -328,6 +345,9 @@ class Combat { */ void setRuneSpellName(const std::string &value); + void setupChain(const std::shared_ptr &weapon); + bool doCombatChain(std::shared_ptr caster, std::shared_ptr target, bool aggressive) const; + private: static void doChainEffect(const Position &origin, const Position &pos, uint8_t effect); static std::vector>> pickChainTargets(std::shared_ptr caster, const CombatParams ¶ms, uint8_t chainDistance, uint8_t maxTargets, bool aggressive, bool backtracking, std::shared_ptr initialTarget = nullptr); @@ -376,8 +396,6 @@ class Combat { int32_t getLevelFormula(std::shared_ptr player, const std::shared_ptr wheelSpell, const CombatDamage &damage) const; CombatDamage getCombatDamage(std::shared_ptr creature, std::shared_ptr target) const; - bool doCombatChain(std::shared_ptr caster, std::shared_ptr target, bool aggressive) const; - // configureable CombatParams params; diff --git a/src/items/functions/item/item_parse.cpp b/src/items/functions/item/item_parse.cpp index 9a4294994e0..365cda202ce 100644 --- a/src/items/functions/item/item_parse.cpp +++ b/src/items/functions/item/item_parse.cpp @@ -10,7 +10,10 @@ #include "pch.hpp" #include "items/functions/item/item_parse.hpp" +#include "items/weapons/weapons.hpp" +#include "lua/creature/movement.hpp" #include "utils/pugicast.hpp" +#include "creatures/combat/combat.hpp" void ItemParse::initParse(const std::string &tmpStrValue, pugi::xml_node attributeNode, pugi::xml_attribute valueAttribute, ItemType &itemType) { // Parse all item attributes @@ -74,6 +77,7 @@ void ItemParse::initParse(const std::string &tmpStrValue, pugi::xml_node attribu ItemParse::parseTransformOnUse(tmpStrValue, valueAttribute, itemType); ItemParse::parsePrimaryType(tmpStrValue, valueAttribute, itemType); ItemParse::parseHouseRelated(tmpStrValue, valueAttribute, itemType); + ItemParse::parseUnscriptedItems(tmpStrValue, attributeNode, valueAttribute, itemType); } void ItemParse::parseDummyRate(pugi::xml_node attributeNode, ItemType &itemType) { @@ -967,3 +971,294 @@ void ItemParse::parseHouseRelated(const std::string_view &tmpStrValue, pugi::xml itemType.m_canBeUsedByGuests = valueAttribute.as_bool(); } } + +void ItemParse::createAndRegisterScript(ItemType &itemType, pugi::xml_node attributeNode, MoveEvent_t eventType /*= MOVE_EVENT_NONE*/, WeaponType_t weaponType /*= WEAPON_NONE*/) { + std::shared_ptr moveevent; + if (eventType != MOVE_EVENT_NONE) { + moveevent = std::make_shared(&g_moveEvents().getScriptInterface()); + moveevent->setItemId(itemType.id); + moveevent->setEventType(eventType); + moveevent->setFromXML(true); + + if (eventType == MOVE_EVENT_EQUIP) { + moveevent->equipFunction = moveevent->EquipItem; + } else if (eventType == MOVE_EVENT_DEEQUIP) { + moveevent->equipFunction = moveevent->DeEquipItem; + } else if (eventType == MOVE_EVENT_STEP_IN) { + moveevent->stepFunction = moveevent->StepInField; + } else if (eventType == MOVE_EVENT_STEP_OUT) { + moveevent->stepFunction = moveevent->StepOutField; + } else if (eventType == MOVE_EVENT_ADD_ITEM_ITEMTILE) { + moveevent->moveFunction = moveevent->AddItemField; + } else if (eventType == MOVE_EVENT_REMOVE_ITEM) { + moveevent->moveFunction = moveevent->RemoveItemField; + } + } + + std::shared_ptr weapon = nullptr; + if (weaponType != WEAPON_NONE) { + if (weaponType == WEAPON_DISTANCE || weaponType == WEAPON_AMMO || weaponType == WEAPON_MISSILE) { + weapon = std::make_shared(&g_weapons().getScriptInterface()); + } else if (weaponType == WEAPON_WAND) { + weapon = std::make_shared(&g_weapons().getScriptInterface()); + } else { + weapon = std::make_shared(&g_weapons().getScriptInterface()); + } + + weapon->weaponType = weaponType; + itemType.weaponType = weapon->weaponType; + weapon->configureWeapon(itemType); + g_logger().trace("Created weapon with type '{}'", getWeaponName(weaponType)); + } + uint32_t fromDamage = 0; + uint32_t toDamage = 0; + for (auto subAttributeNode : attributeNode.children()) { + pugi::xml_attribute subKeyAttribute = subAttributeNode.attribute("key"); + if (!subKeyAttribute) { + continue; + } + + pugi::xml_attribute subValueAttribute = subAttributeNode.attribute("value"); + if (!subValueAttribute) { + continue; + } + + auto stringKey = asLowerCaseString(subKeyAttribute.as_string()); + if (stringKey == "slot") { + if (moveevent && (moveevent->getEventType() == MOVE_EVENT_EQUIP || moveevent->getEventType() == MOVE_EVENT_DEEQUIP)) { + auto slotName = asLowerCaseString(subValueAttribute.as_string()); + if (slotName == "head") { + moveevent->setSlot(SLOTP_HEAD); + } else if (slotName == "necklace") { + moveevent->setSlot(SLOTP_NECKLACE); + } else if (slotName == "backpack") { + moveevent->setSlot(SLOTP_BACKPACK); + } else if (slotName == "armor" || slotName == "body") { + moveevent->setSlot(SLOTP_ARMOR); + } else if (slotName == "right-hand") { + moveevent->setSlot(SLOTP_RIGHT); + } else if (slotName == "left-hand") { + moveevent->setSlot(SLOTP_LEFT); + } else if (slotName == "hand" || slotName == "shield") { + moveevent->setSlot(SLOTP_RIGHT | SLOTP_LEFT); + } else if (slotName == "legs") { + moveevent->setSlot(SLOTP_LEGS); + } else if (slotName == "feet") { + moveevent->setSlot(SLOTP_FEET); + } else if (slotName == "ring") { + moveevent->setSlot(SLOTP_RING); + } else if (slotName == "ammo") { + moveevent->setSlot(SLOTP_AMMO); + } else { + g_logger().warn("[{}] unknown slot type '{}'", __FUNCTION__, slotName); + } + } else if (weapon) { + uint16_t id = weapon->getID(); + ItemType &it = Item::items.getItemType(id); + auto slotName = asLowerCaseString(subValueAttribute.as_string()); + if (slotName == "two-handed") { + it.slotPosition = SLOTP_TWO_HAND; + } else { + it.slotPosition = SLOTP_HAND; + } + } + } else if (stringKey == "level") { + auto numberValue = subValueAttribute.as_uint(); + if (moveevent) { + g_logger().trace("Added required moveevent level '{}'", numberValue); + moveevent->setRequiredLevel(numberValue); + moveevent->setWieldInfo(WIELDINFO_LEVEL); + } else if (weapon) { + g_logger().trace("Added required weapon level '{}'", numberValue); + weapon->setRequiredLevel(numberValue); + weapon->setWieldInfo(WIELDINFO_LEVEL); + } + } else if (stringKey == "vocation") { + auto vocations = subValueAttribute.as_string(); + std::string tmp; + std::stringstream ss(vocations); + std::string token; + + while (std::getline(ss, token, ',')) { + token.erase(token.begin(), std::find_if(token.begin(), token.end(), [](unsigned char ch) { + return !std::isspace(ch); + })); + token.erase(std::find_if(token.rbegin(), token.rend(), [](unsigned char ch) { + return !std::isspace(ch); + }).base(), + token.end()); + + std::string v1; + bool showInDescription = false; + + std::stringstream inner_ss(token); + std::getline(inner_ss, v1, ';'); + std::string showInDescriptionStr; + std::getline(inner_ss, showInDescriptionStr, ';'); + showInDescription = showInDescriptionStr == "true"; + + if (moveevent) { + moveevent->addVocEquipMap(v1); + moveevent->setWieldInfo(WIELDINFO_VOCREQ); + } + + if (showInDescription) { + if (moveevent && moveevent->getVocationString().empty()) { + tmp = asLowerCaseString(v1); + tmp += "s"; + moveevent->setVocationString(tmp); + } else if (weapon && weapon->getVocationString().empty()) { + tmp = asLowerCaseString(v1); + tmp += "s"; + weapon->setVocationString(tmp); + } else { + tmp += ", "; + tmp += asLowerCaseString(v1); + tmp += "s"; + } + } + } + + size_t lastComma = tmp.rfind(','); + if (lastComma != std::string::npos) { + tmp.replace(lastComma, 1, " and"); + if (moveevent) { + moveevent->setVocationString(tmp); + } else if (weapon) { + weapon->setVocationString(tmp); + } + } + } else if (stringKey == "action" && weapon) { + auto action = asLowerCaseString(subValueAttribute.as_string()); + if (action == "removecharge") { + weapon->action = WEAPONACTION_REMOVECHARGE; + } else if (action == "removecount") { + weapon->action = WEAPONACTION_REMOVECOUNT; + } else if (action == "move") { + weapon->action = WEAPONACTION_MOVE; + } + } else if (stringKey == "breakchance" && weapon) { + weapon->setBreakChance(subValueAttribute.as_uint()); + } else if (stringKey == "mana" && weapon) { + weapon->setMana(subValueAttribute.as_uint()); + } else if (stringKey == "unproperly" && weapon) { + weapon->setWieldUnproperly(subValueAttribute.as_bool()); + } else if (stringKey == "fromdamage" && weapon) { + fromDamage = subValueAttribute.as_uint(); + } else if (stringKey == "todamage" && weapon) { + toDamage = subValueAttribute.as_uint(); + } else if (stringKey == "wandtype" && weapon) { + std::string elementName = asLowerCaseString(subValueAttribute.as_string()); + if (elementName == "earth") { + weapon->params.combatType = COMBAT_EARTHDAMAGE; + } else if (elementName == "ice") { + weapon->params.combatType = COMBAT_ICEDAMAGE; + } else if (elementName == "energy") { + weapon->params.combatType = COMBAT_ENERGYDAMAGE; + } else if (elementName == "fire") { + weapon->params.combatType = COMBAT_FIREDAMAGE; + } else if (elementName == "death") { + weapon->params.combatType = COMBAT_DEATHDAMAGE; + } else if (elementName == "holy") { + weapon->params.combatType = COMBAT_HOLYDAMAGE; + } else { + g_logger().warn("[{}] - wandtype '{}' does not exist", __FUNCTION__, elementName); + } + } else if (stringKey == "chain" && weapon) { + auto value = subValueAttribute.as_double(); + weapon->setChainSkillValue(value); + g_logger().trace("Found chain skill value '{}' for weapon: {}", value, itemType.name); + } + } + + if (weapon) { + if (auto weaponWand = dynamic_pointer_cast(weapon)) { + g_logger().trace("Added weapon damage from '{}', to '{}'", fromDamage, toDamage); + weaponWand->setMinChange(fromDamage); + weaponWand->setMaxChange(toDamage); + } + + auto combat = weapon->getCombat(); + if (combat) { + combat->setupChain(weapon); + } + + if (weapon->getWieldInfo() != 0) { + itemType.wieldInfo = weapon->getWieldInfo(); + itemType.vocationString = weapon->getVocationString(); + itemType.minReqLevel = weapon->getReqLevel(); + itemType.minReqMagicLevel = weapon->getReqMagLv(); + } + + if (!g_weapons().registerLuaEvent(weapon, true)) { + g_logger().error("[{}] failed to register weapon from item name {}", __FUNCTION__, itemType.name); + } + } + + if (moveevent && !g_moveEvents().registerLuaItemEvent(moveevent)) { + g_logger().error("[{}] failed to register moveevent from item name {}", __FUNCTION__, itemType.name); + } +} + +void ItemParse::parseUnscriptedItems(const std::string_view &tmpStrValue, pugi::xml_node attributeNode, pugi::xml_attribute valueAttribute, ItemType &itemType) { + if (tmpStrValue == "script") { + std::string scriptName = valueAttribute.as_string(); + auto tokens = split(scriptName.data(), ';'); + for (const auto &token : tokens) { + if (token == "moveevent") { + g_logger().trace("Registering moveevent for item id '{}', name '{}'", itemType.id, itemType.name); + MoveEvent_t eventType = MOVE_EVENT_NONE; + for (auto subAttributeNode : attributeNode.children()) { + pugi::xml_attribute subKeyAttribute = subAttributeNode.attribute("key"); + if (!subKeyAttribute) { + continue; + } + + pugi::xml_attribute subValueAttribute = subAttributeNode.attribute("value"); + if (!subValueAttribute) { + continue; + } + + auto stringKey = asLowerCaseString(subKeyAttribute.as_string()); + if (stringKey == "eventtype") { + const auto &eventTypeName = asLowerCaseString(subValueAttribute.as_string()); + eventType = getMoveEventType(eventTypeName); + g_logger().trace("Found event type '{}'", eventTypeName); + break; + } + } + + // Event type stepin/out need to be registered both at same time + if (eventType == MOVE_EVENT_NONE) { + createAndRegisterScript(itemType, attributeNode, MOVE_EVENT_EQUIP); + createAndRegisterScript(itemType, attributeNode, MOVE_EVENT_DEEQUIP); + } else { + createAndRegisterScript(itemType, attributeNode, eventType); + } + } else if (token == "weapon") { + WeaponType_t weaponType; + g_logger().trace("Registering weapon for item id '{}', name '{}'", itemType.id, itemType.name); + for (auto subAttributeNode : attributeNode.children()) { + pugi::xml_attribute subKeyAttribute = subAttributeNode.attribute("key"); + if (!subKeyAttribute) { + continue; + } + + pugi::xml_attribute subValueAttribute = subAttributeNode.attribute("value"); + if (!subValueAttribute) { + continue; + } + + auto stringKey = asLowerCaseString(subKeyAttribute.as_string()); + if (stringKey == "weapontype") { + weaponType = getWeaponType(subValueAttribute.as_string()); + g_logger().trace("Found weapon type '{}''", subValueAttribute.as_string()); + break; + } + } + + createAndRegisterScript(itemType, attributeNode, MOVE_EVENT_NONE, weaponType); + } + } + } +} diff --git a/src/items/functions/item/item_parse.hpp b/src/items/functions/item/item_parse.hpp index 7ead9cc6ef8..7859a77fe9c 100644 --- a/src/items/functions/item/item_parse.hpp +++ b/src/items/functions/item/item_parse.hpp @@ -157,6 +157,7 @@ const phmap::flat_hash_map ItemParseAttribut { "reflectpercentall", ITEM_PARSE_REFLECTPERCENTALL }, { "primarytype", ITEM_PARSE_PRIMARYTYPE }, { "usedbyhouseguests", ITEM_PARSE_USEDBYGUESTS }, + { "script", ITEM_PARSE_SCRIPT }, }; const phmap::flat_hash_map ItemTypesMap = { @@ -312,10 +313,12 @@ class ItemParse : public Items { static void parseTransformOnUse(const std::string_view &tmpStrValue, pugi::xml_attribute valueAttribute, ItemType &itemType); static void parsePrimaryType(const std::string_view &tmpStrValue, pugi::xml_attribute valueAttribute, ItemType &itemType); static void parseHouseRelated(const std::string_view &tmpStrValue, pugi::xml_attribute valueAttribute, ItemType &itemType); + static void parseUnscriptedItems(const std::string_view &tmpStrValue, pugi::xml_node attributeNode, pugi::xml_attribute valueAttribute, ItemType &itemType); private: // Parent of the function: static void parseField static std::tuple parseFieldConditions(std::string lowerStringValue, pugi::xml_attribute valueAttribute); static CombatType_t parseFieldCombatType(std::string string, pugi::xml_attribute valueAttribute); static void parseFieldCombatDamage(std::shared_ptr conditionDamage, std::string stringValue, pugi::xml_node attributeNode); + static void createAndRegisterScript(ItemType &itemType, pugi::xml_node attributeNode, MoveEvent_t eventType = MOVE_EVENT_NONE, WeaponType_t weaponType = WEAPON_NONE); }; diff --git a/src/items/items.cpp b/src/items/items.cpp index 6e56e4e99a2..9e31f5f105f 100644 --- a/src/items/items.cpp +++ b/src/items/items.cpp @@ -11,6 +11,8 @@ #include "items/functions/item/item_parse.hpp" #include "items/items.hpp" +#include "items/weapons/weapons.hpp" +#include "lua/creature/movement.hpp" #include "game/game.hpp" #include "utils/pugicast.hpp" @@ -23,6 +25,8 @@ void Items::clear() { ladders.clear(); dummys.clear(); nameToItems.clear(); + g_moveEvents().clear(true); + g_weapons().clear(true); } using LootTypeNames = phmap::flat_hash_map; @@ -184,8 +188,7 @@ void Items::loadFromProtobuf() { iType.isWrapKit = object.flags().wrapkit(); if (!iType.name.empty()) { - nameToItems.insert({ asLowerCaseString(iType.name), - iType.id }); + nameToItems.insert({ asLowerCaseString(iType.name), iType.id }); } } @@ -269,8 +272,7 @@ void Items::parseItemNode(const pugi::xml_node &itemNode, uint16_t id) { } itemType.name = xmlName; - nameToItems.insert({ asLowerCaseString(itemType.name), - id }); + nameToItems.insert({ asLowerCaseString(itemType.name), id }); } itemType.loaded = true; diff --git a/src/items/items_definitions.hpp b/src/items/items_definitions.hpp index 3bf8fc8b52a..f044d4b5248 100644 --- a/src/items/items_definitions.hpp +++ b/src/items/items_definitions.hpp @@ -605,6 +605,7 @@ enum ItemParseAttributes_t { ITEM_PARSE_REFLECTDAMAGE, ITEM_PARSE_PRIMARYTYPE, ITEM_PARSE_USEDBYGUESTS, + ITEM_PARSE_SCRIPT, }; struct ImbuementInfo { diff --git a/src/items/weapons/weapons.cpp b/src/items/weapons/weapons.cpp index 8ddce42d60d..25287ca9f92 100644 --- a/src/items/weapons/weapons.cpp +++ b/src/items/weapons/weapons.cpp @@ -31,12 +31,34 @@ const WeaponShared_ptr Weapons::getWeapon(std::shared_ptr item) const { return it->second; } -void Weapons::clear() { +void Weapons::clear(bool isFromXML /*= false*/) { + if (isFromXML) { + int numRemoved = 0; + for (auto it = weapons.begin(); it != weapons.end();) { + if (it->second && it->second->isFromXML()) { + g_logger().debug("Weapon with id '{}' is from XML and will be removed.", it->first); + it = weapons.erase(it); + ++numRemoved; + } else { + ++it; + } + } + + if (numRemoved > 0) { + g_logger().debug("Removed '{}' Weapon from XML.", numRemoved); + } + + return; + } + weapons.clear(); } -bool Weapons::registerLuaEvent(WeaponShared_ptr event) { +bool Weapons::registerLuaEvent(WeaponShared_ptr event, bool fromXML /*= false*/) { weapons[event->getID()] = event; + if (fromXML) { + event->setFromXML(fromXML); + } return true; } @@ -190,6 +212,7 @@ void Weapon::internalUseWeapon(std::shared_ptr player, std::shared_ptrgetID(); executeUseWeapon(player, var); + g_logger().debug("Weapon::internalUseWeapon - Lua callback executed."); } else { CombatDamage damage; WeaponType_t weaponType = item->getWeaponType(); @@ -200,6 +223,7 @@ void Weapon::internalUseWeapon(std::shared_ptr player, std::shared_ptr player, std::shared_ptrdoCombatChain(player, target, params.aggressive); + } else { + Combat::doCombatHealth(player, target, damage, params); + } + g_logger().debug("Weapon::internalUseWeapon - cpp callback executed."); } onUsedWeapon(player, item, target->getTile()); @@ -356,6 +385,43 @@ void Weapon::decrementItemCount(std::shared_ptr item) { } } +bool Weapon::calculateSkillFormula(const std::shared_ptr &player, int32_t &attackSkill, int32_t &attackValue, float &attackFactor, int16_t &elementAttack, CombatDamage &damage, bool useCharges /* = false*/) const { + std::shared_ptr tool = player->getWeapon(); + if (!tool) { + return false; + } + + std::shared_ptr item = nullptr; + attackValue = tool->getAttack(); + if (tool->getWeaponType() == WEAPON_AMMO) { + item = player->getWeapon(true); + if (item) { + attackValue += item->getAttack(); + } + } + + CombatType_t elementType = getElementType(); + damage.secondary.type = elementType; + + bool shouldCalculateSecondaryDamage = false; + if (elementType != COMBAT_NONE) { + elementAttack = getElementDamageValue(); + shouldCalculateSecondaryDamage = true; + attackValue += elementAttack; + } + + if (useCharges) { + auto charges = tool->getAttribute(ItemAttribute_t::CHARGES); + if (charges != 0) { + g_game().transformItem(tool, tool->getID(), charges - 1); + } + } + + attackSkill = player->getWeaponSkill(item ? item : tool); + attackFactor = player->getAttackFactor(); + return shouldCalculateSecondaryDamage; +} + WeaponMelee::WeaponMelee(LuaScriptInterface* interface) : Weapon(interface) { // Add combat type and blocked attributes to the weapon @@ -813,11 +879,27 @@ void WeaponWand::configureWeapon(const ItemType &it) { Weapon::configureWeapon(it); } -int32_t WeaponWand::getWeaponDamage(std::shared_ptr, std::shared_ptr, std::shared_ptr, bool maxDamage /*= false*/) const { - if (maxDamage) { - return -maxChange; +int32_t WeaponWand::getWeaponDamage(std::shared_ptr player, std::shared_ptr, std::shared_ptr, bool maxDamage /* = false*/) const { + if (!g_configManager().getBoolean(TOGGLE_CHAIN_SYSTEM, __FUNCTION__)) { + // Returns maximum damage or a random value between minChange and maxChange + return maxDamage ? -maxChange : -normal_random(minChange, maxChange); } - return -normal_random(minChange, maxChange); + + // If chain system is enabled, calculates magic-based damage + int32_t attackSkill; + int32_t attackValue; + float attackFactor; + [[maybe_unused]] int16_t elementAttack; + [[maybe_unused]] CombatDamage combatDamage; + calculateSkillFormula(player, attackSkill, attackValue, attackFactor, elementAttack, combatDamage); + + auto magLevel = player->getMagicLevel(); + auto level = player->getLevel(); + double min = (level / 5.0) + (magLevel + attackValue) / 3.0; + double max = (level / 5.0) + (magLevel + attackValue); + + // Returns the calculated maximum damage or a random value between the calculated minimum and maximum + return maxDamage ? -max : -normal_random(min, max); } int16_t WeaponWand::getElementDamageValue() const { diff --git a/src/items/weapons/weapons.hpp b/src/items/weapons/weapons.hpp index cb2bee4b1f5..2cf97568aef 100644 --- a/src/items/weapons/weapons.hpp +++ b/src/items/weapons/weapons.hpp @@ -44,8 +44,8 @@ class Weapons final : public Scripts { static int32_t getMaxMeleeDamage(int32_t attackSkill, int32_t attackValue); static int32_t getMaxWeaponDamage(uint32_t level, int32_t attackSkill, int32_t attackValue, float attackFactor, bool isMelee); - bool registerLuaEvent(WeaponShared_ptr event); - void clear(); + bool registerLuaEvent(WeaponShared_ptr event, bool fromXML = false); + void clear(bool isFromXML = false); private: std::map weapons; @@ -176,6 +176,45 @@ class Weapon : public Script { vocationString = str; } + void setFromXML(bool newFromXML) { + m_fromXML = newFromXML; + } + + bool isFromXML() const { + return m_fromXML; + } + + void setChainSkillValue(double value) { + m_chainSkillValue = value; + } + + double getChainSkillValue() const { + return m_chainSkillValue; + } + + const WeaponType_t getWeaponType() const { + return weaponType; + } + + const std::shared_ptr getCombat() const { + if (!m_combat) { + g_logger().error("Weapon::getCombat() - m_combat is nullptr"); + return nullptr; + } + + return m_combat; + } + + std::shared_ptr getCombat() { + if (!m_combat) { + m_combat = std::make_shared(); + } + + return m_combat; + } + + bool calculateSkillFormula(const std::shared_ptr &player, int32_t &attackSkill, int32_t &attackValue, float &attackFactor, int16_t &elementAttack, CombatDamage &damage, bool useCharges = false) const; + protected: void internalUseWeapon(std::shared_ptr player, std::shared_ptr item, std::shared_ptr target, int32_t damageModifier, int32_t cleavePercent = 0) const; void internalUseWeapon(std::shared_ptr player, std::shared_ptr item, std::shared_ptr tile) const; @@ -199,6 +238,7 @@ class Weapon : public Script { uint32_t healthPercent = 0; uint32_t soul = 0; uint32_t wieldInfo = WIELDINFO_NONE; + double m_chainSkillValue = 0.0; uint8_t breakChance = 0; bool enabled = true; bool premium = false; @@ -213,12 +253,16 @@ class Weapon : public Script { CombatParams params; WeaponType_t weaponType; std::map vocWeaponMap; + std::shared_ptr m_combat; + + bool m_fromXML = false; friend class Combat; friend class WeaponWand; friend class WeaponMelee; friend class WeaponDistance; friend class WeaponFunctions; + friend class ItemParse; }; class WeaponMelee final : public Weapon { @@ -290,7 +334,7 @@ class WeaponWand final : public Weapon { return 0; } CombatType_t getElementType() const override { - return COMBAT_NONE; + return params.combatType; } virtual int16_t getElementDamageValue() const override; void setMinChange(int32_t change) { diff --git a/src/lua/creature/movement.cpp b/src/lua/creature/movement.cpp index 7f9a194e047..076d2b90216 100644 --- a/src/lua/creature/movement.cpp +++ b/src/lua/creature/movement.cpp @@ -15,7 +15,34 @@ #include "lua/callbacks/events_callbacks.hpp" #include "lua/creature/movement.hpp" -void MoveEvents::clear() { +void MoveEvents::clear(bool isFromXML /*= false*/) { + if (isFromXML) { + int numRemoved = 0; + for (auto &pair : itemIdMap) { + MoveEventList &moveEventList = pair.second; + + for (int moveEventType = 0; moveEventType < MOVE_EVENT_LAST; ++moveEventType) { + auto &eventList = moveEventList.moveEvent[moveEventType]; + + int originalSize = eventList.size(); + + eventList.remove_if([&](const std::shared_ptr &moveEvent) { + bool removed = moveEvent && moveEvent->isFromXML(); + if (removed) { + g_logger().debug("MoveEvent with id '{}' is from XML and will be removed.", pair.first); + ++numRemoved; + } + return removed; + }); + } + } + + if (numRemoved > 0) { + g_logger().debug("Removed '{}' MoveEvent from XML.", numRemoved); + } + return; + } + uniqueIdMap.clear(); actionIdMap.clear(); itemIdMap.clear(); diff --git a/src/lua/creature/movement.hpp b/src/lua/creature/movement.hpp index 2decdbaa001..485454a0564 100644 --- a/src/lua/creature/movement.hpp +++ b/src/lua/creature/movement.hpp @@ -112,7 +112,7 @@ class MoveEvents final : public Scripts { bool registerLuaUniqueEvent(const std::shared_ptr moveEvent); bool registerLuaPositionEvent(const std::shared_ptr moveEvent); bool registerLuaEvent(const std::shared_ptr event); - void clear(); + void clear(bool isFromXML = false); private: void clearMap(std::map &map) const; @@ -179,7 +179,7 @@ class MoveEvent final : public Script, public SharedObject { return vocEquipMap; } void addVocEquipMap(std::string vocName) { - int32_t vocationId = g_vocations().getVocationId(vocName); + uint16_t vocationId = g_vocations().getVocationId(vocName); if (vocationId != -1) { vocEquipMap[vocationId] = true; } @@ -251,6 +251,14 @@ class MoveEvent final : public Script, public SharedObject { static uint32_t EquipItem(const std::shared_ptr moveEvent, std::shared_ptr player, std::shared_ptr item, Slots_t slot, bool boolean); static uint32_t DeEquipItem(const std::shared_ptr moveEvent, std::shared_ptr player, std::shared_ptr item, Slots_t slot, bool boolean); + void setFromXML(bool newFromXML) { + m_fromXML = newFromXML; + } + + bool isFromXML() const { + return m_fromXML; + } + private: std::string getScriptTypeName() const override; @@ -290,10 +298,13 @@ class MoveEvent final : public Script, public SharedObject { std::map vocEquipMap; bool tileItem = false; + bool m_fromXML = false; + std::vector itemIdVector; std::vector actionIdVector; std::vector uniqueIdVector; std::vector positionVector; friend class MoveEventFunctions; + friend class ItemParse; }; diff --git a/src/protobuf/appearances.pb.cc b/src/protobuf/appearances.pb.cc deleted file mode 100644 index ced2a617345..00000000000 --- a/src/protobuf/appearances.pb.cc +++ /dev/null @@ -1,10027 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: appearances.proto - -#include "appearances.pb.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) -#include - -PROTOBUF_PRAGMA_INIT_SEG - -namespace _pb = ::PROTOBUF_NAMESPACE_ID; -namespace _pbi = _pb::internal; - -namespace Canary { -namespace protobuf { -namespace appearances { -PROTOBUF_CONSTEXPR Coordinate::Coordinate( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.x_)*/0u - , /*decltype(_impl_.y_)*/0u - , /*decltype(_impl_.z_)*/0u} {} -struct CoordinateDefaultTypeInternal { - PROTOBUF_CONSTEXPR CoordinateDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~CoordinateDefaultTypeInternal() {} - union { - Coordinate _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CoordinateDefaultTypeInternal _Coordinate_default_instance_; -PROTOBUF_CONSTEXPR Appearances::Appearances( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.object_)*/{} - , /*decltype(_impl_.outfit_)*/{} - , /*decltype(_impl_.effect_)*/{} - , /*decltype(_impl_.missile_)*/{} - , /*decltype(_impl_.special_meaning_appearance_ids_)*/nullptr} {} -struct AppearancesDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearancesDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearancesDefaultTypeInternal() {} - union { - Appearances _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearancesDefaultTypeInternal _Appearances_default_instance_; -PROTOBUF_CONSTEXPR SpritePhase::SpritePhase( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.duration_min_)*/0u - , /*decltype(_impl_.duration_max_)*/0u} {} -struct SpritePhaseDefaultTypeInternal { - PROTOBUF_CONSTEXPR SpritePhaseDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~SpritePhaseDefaultTypeInternal() {} - union { - SpritePhase _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SpritePhaseDefaultTypeInternal _SpritePhase_default_instance_; -PROTOBUF_CONSTEXPR SpriteAnimation::SpriteAnimation( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.sprite_phase_)*/{} - , /*decltype(_impl_.default_start_phase_)*/0u - , /*decltype(_impl_.synchronized_)*/false - , /*decltype(_impl_.random_start_phase_)*/false - , /*decltype(_impl_.loop_count_)*/0u - , /*decltype(_impl_.loop_type_)*/-1} {} -struct SpriteAnimationDefaultTypeInternal { - PROTOBUF_CONSTEXPR SpriteAnimationDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~SpriteAnimationDefaultTypeInternal() {} - union { - SpriteAnimation _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SpriteAnimationDefaultTypeInternal _SpriteAnimation_default_instance_; -PROTOBUF_CONSTEXPR Box::Box( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.x_)*/0u - , /*decltype(_impl_.y_)*/0u - , /*decltype(_impl_.width_)*/0u - , /*decltype(_impl_.height_)*/0u} {} -struct BoxDefaultTypeInternal { - PROTOBUF_CONSTEXPR BoxDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~BoxDefaultTypeInternal() {} - union { - Box _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BoxDefaultTypeInternal _Box_default_instance_; -PROTOBUF_CONSTEXPR SpriteInfo::SpriteInfo( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.sprite_id_)*/{} - , /*decltype(_impl_.bounding_box_per_direction_)*/{} - , /*decltype(_impl_.animation_)*/nullptr - , /*decltype(_impl_.pattern_width_)*/0u - , /*decltype(_impl_.pattern_height_)*/0u - , /*decltype(_impl_.pattern_depth_)*/0u - , /*decltype(_impl_.layers_)*/0u - , /*decltype(_impl_.bounding_square_)*/0u - , /*decltype(_impl_.is_opaque_)*/false} {} -struct SpriteInfoDefaultTypeInternal { - PROTOBUF_CONSTEXPR SpriteInfoDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~SpriteInfoDefaultTypeInternal() {} - union { - SpriteInfo _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SpriteInfoDefaultTypeInternal _SpriteInfo_default_instance_; -PROTOBUF_CONSTEXPR FrameGroup::FrameGroup( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.sprite_info_)*/nullptr - , /*decltype(_impl_.fixed_frame_group_)*/0 - , /*decltype(_impl_.id_)*/0u} {} -struct FrameGroupDefaultTypeInternal { - PROTOBUF_CONSTEXPR FrameGroupDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~FrameGroupDefaultTypeInternal() {} - union { - FrameGroup _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FrameGroupDefaultTypeInternal _FrameGroup_default_instance_; -PROTOBUF_CONSTEXPR Appearance::Appearance( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.frame_group_)*/{} - , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.flags_)*/nullptr - , /*decltype(_impl_.id_)*/0u} {} -struct AppearanceDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceDefaultTypeInternal() {} - union { - Appearance _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceDefaultTypeInternal _Appearance_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlags::AppearanceFlags( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.npcsaledata_)*/{} - , /*decltype(_impl_.bank_)*/nullptr - , /*decltype(_impl_.write_)*/nullptr - , /*decltype(_impl_.write_once_)*/nullptr - , /*decltype(_impl_.hook_)*/nullptr - , /*decltype(_impl_.light_)*/nullptr - , /*decltype(_impl_.shift_)*/nullptr - , /*decltype(_impl_.height_)*/nullptr - , /*decltype(_impl_.automap_)*/nullptr - , /*decltype(_impl_.lenshelp_)*/nullptr - , /*decltype(_impl_.clothes_)*/nullptr - , /*decltype(_impl_.default_action_)*/nullptr - , /*decltype(_impl_.market_)*/nullptr - , /*decltype(_impl_.changedtoexpire_)*/nullptr - , /*decltype(_impl_.cyclopediaitem_)*/nullptr - , /*decltype(_impl_.upgradeclassification_)*/nullptr - , /*decltype(_impl_.clip_)*/false - , /*decltype(_impl_.bottom_)*/false - , /*decltype(_impl_.top_)*/false - , /*decltype(_impl_.container_)*/false - , /*decltype(_impl_.cumulative_)*/false - , /*decltype(_impl_.usable_)*/false - , /*decltype(_impl_.forceuse_)*/false - , /*decltype(_impl_.multiuse_)*/false - , /*decltype(_impl_.liquidpool_)*/false - , /*decltype(_impl_.unpass_)*/false - , /*decltype(_impl_.unmove_)*/false - , /*decltype(_impl_.unsight_)*/false - , /*decltype(_impl_.avoid_)*/false - , /*decltype(_impl_.no_movement_animation_)*/false - , /*decltype(_impl_.take_)*/false - , /*decltype(_impl_.liquidcontainer_)*/false - , /*decltype(_impl_.hang_)*/false - , /*decltype(_impl_.rotate_)*/false - , /*decltype(_impl_.dont_hide_)*/false - , /*decltype(_impl_.translucent_)*/false - , /*decltype(_impl_.lying_object_)*/false - , /*decltype(_impl_.animate_always_)*/false - , /*decltype(_impl_.fullbank_)*/false - , /*decltype(_impl_.ignore_look_)*/false - , /*decltype(_impl_.wrap_)*/false - , /*decltype(_impl_.unwrap_)*/false - , /*decltype(_impl_.topeffect_)*/false - , /*decltype(_impl_.corpse_)*/false - , /*decltype(_impl_.player_corpse_)*/false - , /*decltype(_impl_.ammo_)*/false - , /*decltype(_impl_.show_off_socket_)*/false - , /*decltype(_impl_.reportable_)*/false - , /*decltype(_impl_.reverse_addons_east_)*/false - , /*decltype(_impl_.reverse_addons_west_)*/false - , /*decltype(_impl_.reverse_addons_south_)*/false - , /*decltype(_impl_.reverse_addons_north_)*/false - , /*decltype(_impl_.wearout_)*/false - , /*decltype(_impl_.clockexpire_)*/false - , /*decltype(_impl_.expire_)*/false - , /*decltype(_impl_.expirestop_)*/false - , /*decltype(_impl_.wrapkit_)*/false} {} -struct AppearanceFlagsDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagsDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagsDefaultTypeInternal() {} - union { - AppearanceFlags _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagsDefaultTypeInternal _AppearanceFlags_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagUpgradeClassification::AppearanceFlagUpgradeClassification( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.upgrade_classification_)*/0u} {} -struct AppearanceFlagUpgradeClassificationDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagUpgradeClassificationDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagUpgradeClassificationDefaultTypeInternal() {} - union { - AppearanceFlagUpgradeClassification _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagUpgradeClassificationDefaultTypeInternal _AppearanceFlagUpgradeClassification_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagBank::AppearanceFlagBank( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.waypoints_)*/0u} {} -struct AppearanceFlagBankDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagBankDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagBankDefaultTypeInternal() {} - union { - AppearanceFlagBank _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagBankDefaultTypeInternal _AppearanceFlagBank_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagWrite::AppearanceFlagWrite( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.max_text_length_)*/0u} {} -struct AppearanceFlagWriteDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagWriteDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagWriteDefaultTypeInternal() {} - union { - AppearanceFlagWrite _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagWriteDefaultTypeInternal _AppearanceFlagWrite_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagWriteOnce::AppearanceFlagWriteOnce( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.max_text_length_once_)*/0u} {} -struct AppearanceFlagWriteOnceDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagWriteOnceDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagWriteOnceDefaultTypeInternal() {} - union { - AppearanceFlagWriteOnce _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagWriteOnceDefaultTypeInternal _AppearanceFlagWriteOnce_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagLight::AppearanceFlagLight( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.brightness_)*/0u - , /*decltype(_impl_.color_)*/0u} {} -struct AppearanceFlagLightDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagLightDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagLightDefaultTypeInternal() {} - union { - AppearanceFlagLight _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagLightDefaultTypeInternal _AppearanceFlagLight_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagHeight::AppearanceFlagHeight( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.elevation_)*/0u} {} -struct AppearanceFlagHeightDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagHeightDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagHeightDefaultTypeInternal() {} - union { - AppearanceFlagHeight _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagHeightDefaultTypeInternal _AppearanceFlagHeight_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagShift::AppearanceFlagShift( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.x_)*/0u - , /*decltype(_impl_.y_)*/0u} {} -struct AppearanceFlagShiftDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagShiftDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagShiftDefaultTypeInternal() {} - union { - AppearanceFlagShift _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagShiftDefaultTypeInternal _AppearanceFlagShift_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagClothes::AppearanceFlagClothes( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.slot_)*/0u} {} -struct AppearanceFlagClothesDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagClothesDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagClothesDefaultTypeInternal() {} - union { - AppearanceFlagClothes _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagClothesDefaultTypeInternal _AppearanceFlagClothes_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagDefaultAction::AppearanceFlagDefaultAction( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.action_)*/0} {} -struct AppearanceFlagDefaultActionDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagDefaultActionDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagDefaultActionDefaultTypeInternal() {} - union { - AppearanceFlagDefaultAction _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagDefaultActionDefaultTypeInternal _AppearanceFlagDefaultAction_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagMarket::AppearanceFlagMarket( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.restrict_to_profession_)*/{} - , /*decltype(_impl_.trade_as_object_id_)*/0u - , /*decltype(_impl_.show_as_object_id_)*/0u - , /*decltype(_impl_.minimum_level_)*/0u - , /*decltype(_impl_.category_)*/1} {} -struct AppearanceFlagMarketDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagMarketDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagMarketDefaultTypeInternal() {} - union { - AppearanceFlagMarket _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagMarketDefaultTypeInternal _AppearanceFlagMarket_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagNPC::AppearanceFlagNPC( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.location_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.currency_quest_flag_display_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.sale_price_)*/0u - , /*decltype(_impl_.buy_price_)*/0u - , /*decltype(_impl_.currency_object_type_id_)*/0u} {} -struct AppearanceFlagNPCDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagNPCDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagNPCDefaultTypeInternal() {} - union { - AppearanceFlagNPC _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagNPCDefaultTypeInternal _AppearanceFlagNPC_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagAutomap::AppearanceFlagAutomap( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.color_)*/0u} {} -struct AppearanceFlagAutomapDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagAutomapDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagAutomapDefaultTypeInternal() {} - union { - AppearanceFlagAutomap _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagAutomapDefaultTypeInternal _AppearanceFlagAutomap_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagHook::AppearanceFlagHook( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.direction_)*/1} {} -struct AppearanceFlagHookDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagHookDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagHookDefaultTypeInternal() {} - union { - AppearanceFlagHook _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagHookDefaultTypeInternal _AppearanceFlagHook_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagLenshelp::AppearanceFlagLenshelp( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.id_)*/0u} {} -struct AppearanceFlagLenshelpDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagLenshelpDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagLenshelpDefaultTypeInternal() {} - union { - AppearanceFlagLenshelp _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagLenshelpDefaultTypeInternal _AppearanceFlagLenshelp_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagChangedToExpire::AppearanceFlagChangedToExpire( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.former_object_typeid_)*/0u} {} -struct AppearanceFlagChangedToExpireDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagChangedToExpireDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagChangedToExpireDefaultTypeInternal() {} - union { - AppearanceFlagChangedToExpire _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagChangedToExpireDefaultTypeInternal _AppearanceFlagChangedToExpire_default_instance_; -PROTOBUF_CONSTEXPR AppearanceFlagCyclopedia::AppearanceFlagCyclopedia( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.cyclopedia_type_)*/0u} {} -struct AppearanceFlagCyclopediaDefaultTypeInternal { - PROTOBUF_CONSTEXPR AppearanceFlagCyclopediaDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~AppearanceFlagCyclopediaDefaultTypeInternal() {} - union { - AppearanceFlagCyclopedia _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AppearanceFlagCyclopediaDefaultTypeInternal _AppearanceFlagCyclopedia_default_instance_; -PROTOBUF_CONSTEXPR SpecialMeaningAppearanceIds::SpecialMeaningAppearanceIds( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.gold_coin_id_)*/0u - , /*decltype(_impl_.platinum_coin_id_)*/0u - , /*decltype(_impl_.crystal_coin_id_)*/0u - , /*decltype(_impl_.tibia_coin_id_)*/0u - , /*decltype(_impl_.stamped_letter_id_)*/0u - , /*decltype(_impl_.supply_stash_id_)*/0u - , /*decltype(_impl_.reward_chest_id_)*/0u} {} -struct SpecialMeaningAppearanceIdsDefaultTypeInternal { - PROTOBUF_CONSTEXPR SpecialMeaningAppearanceIdsDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~SpecialMeaningAppearanceIdsDefaultTypeInternal() {} - union { - SpecialMeaningAppearanceIds _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SpecialMeaningAppearanceIdsDefaultTypeInternal _SpecialMeaningAppearanceIds_default_instance_; -} // namespace appearances -} // namespace protobuf -} // namespace Canary -static ::_pb::Metadata file_level_metadata_appearances_2eproto[26]; -static const ::_pb::EnumDescriptor* file_level_enum_descriptors_appearances_2eproto[6]; -static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_appearances_2eproto = nullptr; - -const uint32_t TableStruct_appearances_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Coordinate, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Coordinate, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Coordinate, _impl_.x_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Coordinate, _impl_.y_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Coordinate, _impl_.z_), - 0, - 1, - 2, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_.object_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_.outfit_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_.effect_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_.missile_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearances, _impl_.special_meaning_appearance_ids_), - ~0u, - ~0u, - ~0u, - ~0u, - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpritePhase, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpritePhase, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpritePhase, _impl_.duration_min_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpritePhase, _impl_.duration_max_), - 0, - 1, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.default_start_phase_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.synchronized_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.random_start_phase_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.loop_type_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.loop_count_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteAnimation, _impl_.sprite_phase_), - 0, - 1, - 2, - 4, - 3, - ~0u, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _impl_.x_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _impl_.y_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _impl_.width_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Box, _impl_.height_), - 0, - 1, - 2, - 3, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.pattern_width_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.pattern_height_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.pattern_depth_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.layers_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.sprite_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.bounding_square_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.animation_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.is_opaque_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpriteInfo, _impl_.bounding_box_per_direction_), - 1, - 2, - 3, - 4, - ~0u, - 5, - 0, - 6, - ~0u, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::FrameGroup, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::FrameGroup, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::FrameGroup, _impl_.fixed_frame_group_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::FrameGroup, _impl_.id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::FrameGroup, _impl_.sprite_info_), - 1, - 2, - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_.id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_.frame_group_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_.flags_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_.name_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::Appearance, _impl_.description_), - 3, - ~0u, - 2, - 0, - 1, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.bank_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.clip_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.bottom_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.top_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.container_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.cumulative_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.usable_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.forceuse_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.multiuse_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.write_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.write_once_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.liquidpool_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.unpass_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.unmove_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.unsight_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.avoid_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.no_movement_animation_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.take_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.liquidcontainer_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.hang_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.hook_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.rotate_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.light_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.dont_hide_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.translucent_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.shift_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.height_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.lying_object_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.animate_always_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.automap_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.lenshelp_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.fullbank_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.ignore_look_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.clothes_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.default_action_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.market_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.wrap_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.unwrap_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.topeffect_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.npcsaledata_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.changedtoexpire_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.corpse_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.player_corpse_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.cyclopediaitem_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.ammo_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.show_off_socket_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.reportable_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.upgradeclassification_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.reverse_addons_east_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.reverse_addons_west_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.reverse_addons_south_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.reverse_addons_north_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.wearout_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.clockexpire_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.expire_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.expirestop_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlags, _impl_.wrapkit_), - 0, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 1, - 2, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 3, - 32, - 4, - 33, - 34, - 5, - 6, - 35, - 36, - 7, - 8, - 37, - 38, - 9, - 10, - 11, - 39, - 40, - 41, - ~0u, - 12, - 42, - 43, - 13, - 44, - 45, - 46, - 14, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification, _impl_.upgrade_classification_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagBank, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagBank, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagBank, _impl_.waypoints_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWrite, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWrite, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWrite, _impl_.max_text_length_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWriteOnce, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWriteOnce, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagWriteOnce, _impl_.max_text_length_once_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLight, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLight, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLight, _impl_.brightness_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLight, _impl_.color_), - 0, - 1, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHeight, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHeight, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHeight, _impl_.elevation_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagShift, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagShift, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagShift, _impl_.x_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagShift, _impl_.y_), - 0, - 1, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagClothes, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagClothes, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagClothes, _impl_.slot_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagDefaultAction, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagDefaultAction, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagDefaultAction, _impl_.action_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_.category_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_.trade_as_object_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_.show_as_object_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_.restrict_to_profession_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagMarket, _impl_.minimum_level_), - 3, - 0, - 1, - ~0u, - 2, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.name_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.location_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.sale_price_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.buy_price_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.currency_object_type_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagNPC, _impl_.currency_quest_flag_display_name_), - 0, - 1, - 3, - 4, - 5, - 2, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagAutomap, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagAutomap, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagAutomap, _impl_.color_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHook, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHook, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagHook, _impl_.direction_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLenshelp, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLenshelp, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagLenshelp, _impl_.id_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire, _impl_.former_object_typeid_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagCyclopedia, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagCyclopedia, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::AppearanceFlagCyclopedia, _impl_.cyclopedia_type_), - 0, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_._has_bits_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.gold_coin_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.platinum_coin_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.crystal_coin_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.tibia_coin_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.stamped_letter_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.supply_stash_id_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds, _impl_.reward_chest_id_), - 0, - 1, - 2, - 3, - 4, - 5, - 6, -}; -static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, 9, -1, sizeof(::Canary::protobuf::appearances::Coordinate)}, - { 12, 23, -1, sizeof(::Canary::protobuf::appearances::Appearances)}, - { 28, 36, -1, sizeof(::Canary::protobuf::appearances::SpritePhase)}, - { 38, 50, -1, sizeof(::Canary::protobuf::appearances::SpriteAnimation)}, - { 56, 66, -1, sizeof(::Canary::protobuf::appearances::Box)}, - { 70, 85, -1, sizeof(::Canary::protobuf::appearances::SpriteInfo)}, - { 94, 103, -1, sizeof(::Canary::protobuf::appearances::FrameGroup)}, - { 106, 117, -1, sizeof(::Canary::protobuf::appearances::Appearance)}, - { 122, 185, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlags)}, - { 242, 249, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification)}, - { 250, 257, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagBank)}, - { 258, 265, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagWrite)}, - { 266, 273, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagWriteOnce)}, - { 274, 282, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagLight)}, - { 284, 291, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagHeight)}, - { 292, 300, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagShift)}, - { 302, 309, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagClothes)}, - { 310, 317, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagDefaultAction)}, - { 318, 329, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagMarket)}, - { 334, 346, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagNPC)}, - { 352, 359, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagAutomap)}, - { 360, 367, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagHook)}, - { 368, 375, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagLenshelp)}, - { 376, 383, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire)}, - { 384, 391, -1, sizeof(::Canary::protobuf::appearances::AppearanceFlagCyclopedia)}, - { 392, 405, -1, sizeof(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds)}, -}; - -static const ::_pb::Message* const file_default_instances[] = { - &::Canary::protobuf::appearances::_Coordinate_default_instance_._instance, - &::Canary::protobuf::appearances::_Appearances_default_instance_._instance, - &::Canary::protobuf::appearances::_SpritePhase_default_instance_._instance, - &::Canary::protobuf::appearances::_SpriteAnimation_default_instance_._instance, - &::Canary::protobuf::appearances::_Box_default_instance_._instance, - &::Canary::protobuf::appearances::_SpriteInfo_default_instance_._instance, - &::Canary::protobuf::appearances::_FrameGroup_default_instance_._instance, - &::Canary::protobuf::appearances::_Appearance_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlags_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagUpgradeClassification_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagBank_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagWrite_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagWriteOnce_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagLight_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagHeight_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagShift_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagClothes_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagDefaultAction_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagMarket_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagNPC_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagAutomap_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagHook_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagLenshelp_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagChangedToExpire_default_instance_._instance, - &::Canary::protobuf::appearances::_AppearanceFlagCyclopedia_default_instance_._instance, - &::Canary::protobuf::appearances::_SpecialMeaningAppearanceIds_default_instance_._instance, -}; - -const char descriptor_table_protodef_appearances_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\021appearances.proto\022\033Canary.protobuf.app" - "earances\"-\n\nCoordinate\022\t\n\001x\030\001 \001(\r\022\t\n\001y\030\002" - " \001(\r\022\t\n\001z\030\003 \001(\r\"\324\002\n\013Appearances\0227\n\006objec" - "t\030\001 \003(\0132\'.Canary.protobuf.appearances.Ap" - "pearance\0227\n\006outfit\030\002 \003(\0132\'.Canary.protob" - "uf.appearances.Appearance\0227\n\006effect\030\003 \003(" - "\0132\'.Canary.protobuf.appearances.Appearan" - "ce\0228\n\007missile\030\004 \003(\0132\'.Canary.protobuf.ap" - "pearances.Appearance\022`\n\036special_meaning_" - "appearance_ids\030\005 \001(\01328.Canary.protobuf.a" - "ppearances.SpecialMeaningAppearanceIds\"9" - "\n\013SpritePhase\022\024\n\014duration_min\030\001 \001(\r\022\024\n\014d" - "uration_max\030\002 \001(\r\"\371\001\n\017SpriteAnimation\022\033\n" - "\023default_start_phase\030\001 \001(\r\022\024\n\014synchroniz" - "ed\030\002 \001(\010\022\032\n\022random_start_phase\030\003 \001(\010\022C\n\t" - "loop_type\030\004 \001(\01620.Canary.protobuf.appear" - "ances.ANIMATION_LOOP_TYPE\022\022\n\nloop_count\030" - "\005 \001(\r\022>\n\014sprite_phase\030\006 \003(\0132(.Canary.pro" - "tobuf.appearances.SpritePhase\":\n\003Box\022\t\n\001" - "x\030\001 \001(\r\022\t\n\001y\030\002 \001(\r\022\r\n\005width\030\003 \001(\r\022\016\n\006hei" - "ght\030\004 \001(\r\"\250\002\n\nSpriteInfo\022\025\n\rpattern_widt" - "h\030\001 \001(\r\022\026\n\016pattern_height\030\002 \001(\r\022\025\n\rpatte" - "rn_depth\030\003 \001(\r\022\016\n\006layers\030\004 \001(\r\022\021\n\tsprite" - "_id\030\005 \003(\r\022\027\n\017bounding_square\030\007 \001(\r\022\?\n\tan" - "imation\030\006 \001(\0132,.Canary.protobuf.appearan" - "ces.SpriteAnimation\022\021\n\tis_opaque\030\010 \001(\010\022D" - "\n\032bounding_box_per_direction\030\t \003(\0132 .Can" - "ary.protobuf.appearances.Box\"\241\001\n\nFrameGr" - "oup\022I\n\021fixed_frame_group\030\001 \001(\0162..Canary." - "protobuf.appearances.FIXED_FRAME_GROUP\022\n" - "\n\002id\030\002 \001(\r\022<\n\013sprite_info\030\003 \001(\0132\'.Canary" - ".protobuf.appearances.SpriteInfo\"\266\001\n\nApp" - "earance\022\n\n\002id\030\001 \001(\r\022<\n\013frame_group\030\002 \003(\013" - "2\'.Canary.protobuf.appearances.FrameGrou" - "p\022;\n\005flags\030\003 \001(\0132,.Canary.protobuf.appea" - "rances.AppearanceFlags\022\014\n\004name\030\004 \001(\014\022\023\n\013" - "description\030\005 \001(\014\"\256\017\n\017AppearanceFlags\022=\n" - "\004bank\030\001 \001(\0132/.Canary.protobuf.appearance" - "s.AppearanceFlagBank\022\014\n\004clip\030\002 \001(\010\022\016\n\006bo" - "ttom\030\003 \001(\010\022\013\n\003top\030\004 \001(\010\022\021\n\tcontainer\030\005 \001" - "(\010\022\022\n\ncumulative\030\006 \001(\010\022\016\n\006usable\030\007 \001(\010\022\020" - "\n\010forceuse\030\010 \001(\010\022\020\n\010multiuse\030\t \001(\010\022\?\n\005wr" - "ite\030\n \001(\01320.Canary.protobuf.appearances." - "AppearanceFlagWrite\022H\n\nwrite_once\030\013 \001(\0132" - "4.Canary.protobuf.appearances.Appearance" - "FlagWriteOnce\022\022\n\nliquidpool\030\014 \001(\010\022\016\n\006unp" - "ass\030\r \001(\010\022\016\n\006unmove\030\016 \001(\010\022\017\n\007unsight\030\017 \001" - "(\010\022\r\n\005avoid\030\020 \001(\010\022\035\n\025no_movement_animati" - "on\030\021 \001(\010\022\014\n\004take\030\022 \001(\010\022\027\n\017liquidcontaine" - "r\030\023 \001(\010\022\014\n\004hang\030\024 \001(\010\022=\n\004hook\030\025 \001(\0132/.Ca" - "nary.protobuf.appearances.AppearanceFlag" - "Hook\022\016\n\006rotate\030\026 \001(\010\022\?\n\005light\030\027 \001(\01320.Ca" - "nary.protobuf.appearances.AppearanceFlag" - "Light\022\021\n\tdont_hide\030\030 \001(\010\022\023\n\013translucent\030" - "\031 \001(\010\022\?\n\005shift\030\032 \001(\01320.Canary.protobuf.a" - "ppearances.AppearanceFlagShift\022A\n\006height" - "\030\033 \001(\01321.Canary.protobuf.appearances.App" - "earanceFlagHeight\022\024\n\014lying_object\030\034 \001(\010\022" - "\026\n\016animate_always\030\035 \001(\010\022C\n\007automap\030\036 \001(\013" - "22.Canary.protobuf.appearances.Appearanc" - "eFlagAutomap\022E\n\010lenshelp\030\037 \001(\01323.Canary." - "protobuf.appearances.AppearanceFlagLensh" - "elp\022\020\n\010fullbank\030 \001(\010\022\023\n\013ignore_look\030! \001" - "(\010\022C\n\007clothes\030\" \001(\01322.Canary.protobuf.ap" - "pearances.AppearanceFlagClothes\022P\n\016defau" - "lt_action\030# \001(\01328.Canary.protobuf.appear" - "ances.AppearanceFlagDefaultAction\022A\n\006mar" - "ket\030$ \001(\01321.Canary.protobuf.appearances." - "AppearanceFlagMarket\022\014\n\004wrap\030% \001(\010\022\016\n\006un" - "wrap\030& \001(\010\022\021\n\ttopeffect\030\' \001(\010\022C\n\013npcsale" - "data\030( \003(\0132..Canary.protobuf.appearances" - ".AppearanceFlagNPC\022S\n\017changedtoexpire\030) " - "\001(\0132:.Canary.protobuf.appearances.Appear" - "anceFlagChangedToExpire\022\016\n\006corpse\030* \001(\010\022" - "\025\n\rplayer_corpse\030+ \001(\010\022M\n\016cyclopediaitem" - "\030, \001(\01325.Canary.protobuf.appearances.App" - "earanceFlagCyclopedia\022\014\n\004ammo\030- \001(\010\022\027\n\017s" - "how_off_socket\030. \001(\010\022\022\n\nreportable\030/ \001(\010" - "\022_\n\025upgradeclassification\0300 \001(\0132@.Canary" - ".protobuf.appearances.AppearanceFlagUpgr" - "adeClassification\022\033\n\023reverse_addons_east" - "\0301 \001(\010\022\033\n\023reverse_addons_west\0302 \001(\010\022\034\n\024r" - "everse_addons_south\0303 \001(\010\022\034\n\024reverse_add" - "ons_north\0304 \001(\010\022\017\n\007wearout\0305 \001(\010\022\023\n\013cloc" - "kexpire\0306 \001(\010\022\016\n\006expire\0307 \001(\010\022\022\n\nexpires" - "top\0308 \001(\010\022\017\n\007wrapkit\0309 \001(\010\"E\n#Appearance" - "FlagUpgradeClassification\022\036\n\026upgrade_cla" - "ssification\030\001 \001(\r\"\'\n\022AppearanceFlagBank\022" - "\021\n\twaypoints\030\001 \001(\r\".\n\023AppearanceFlagWrit" - "e\022\027\n\017max_text_length\030\001 \001(\r\"7\n\027Appearance" - "FlagWriteOnce\022\034\n\024max_text_length_once\030\001 " - "\001(\r\"8\n\023AppearanceFlagLight\022\022\n\nbrightness" - "\030\001 \001(\r\022\r\n\005color\030\002 \001(\r\")\n\024AppearanceFlagH" - "eight\022\021\n\televation\030\001 \001(\r\"+\n\023AppearanceFl" - "agShift\022\t\n\001x\030\001 \001(\r\022\t\n\001y\030\002 \001(\r\"%\n\025Appeara" - "nceFlagClothes\022\014\n\004slot\030\001 \001(\r\"Y\n\033Appearan" - "ceFlagDefaultAction\022:\n\006action\030\001 \001(\0162*.Ca" - "nary.protobuf.appearances.PLAYER_ACTION\"" - "\362\001\n\024AppearanceFlagMarket\022<\n\010category\030\001 \001" - "(\0162*.Canary.protobuf.appearances.ITEM_CA" - "TEGORY\022\032\n\022trade_as_object_id\030\002 \001(\r\022\031\n\021sh" - "ow_as_object_id\030\003 \001(\r\022N\n\026restrict_to_pro" - "fession\030\005 \003(\0162..Canary.protobuf.appearan" - "ces.PLAYER_PROFESSION\022\025\n\rminimum_level\030\006" - " \001(\r\"\245\001\n\021AppearanceFlagNPC\022\014\n\004name\030\001 \001(\014" - "\022\020\n\010location\030\002 \001(\014\022\022\n\nsale_price\030\003 \001(\r\022\021" - "\n\tbuy_price\030\004 \001(\r\022\037\n\027currency_object_typ" - "e_id\030\005 \001(\r\022(\n currency_quest_flag_displa" - "y_name\030\006 \001(\014\"&\n\025AppearanceFlagAutomap\022\r\n" - "\005color\030\001 \001(\r\"O\n\022AppearanceFlagHook\0229\n\tdi" - "rection\030\001 \001(\0162&.Canary.protobuf.appearan" - "ces.HOOK_TYPE\"$\n\026AppearanceFlagLenshelp\022" - "\n\n\002id\030\001 \001(\r\"=\n\035AppearanceFlagChangedToEx" - "pire\022\034\n\024former_object_typeid\030\001 \001(\r\"3\n\030Ap" - "pearanceFlagCyclopedia\022\027\n\017cyclopedia_typ" - "e\030\001 \001(\r\"\312\001\n\033SpecialMeaningAppearanceIds\022" - "\024\n\014gold_coin_id\030\001 \001(\r\022\030\n\020platinum_coin_i" - "d\030\002 \001(\r\022\027\n\017crystal_coin_id\030\003 \001(\r\022\025\n\rtibi" - "a_coin_id\030\004 \001(\r\022\031\n\021stamped_letter_id\030\005 \001" - "(\r\022\027\n\017supply_stash_id\030\006 \001(\r\022\027\n\017reward_ch" - "est_id\030\007 \001(\r*\224\001\n\rPLAYER_ACTION\022\026\n\022PLAYER" - "_ACTION_NONE\020\000\022\026\n\022PLAYER_ACTION_LOOK\020\001\022\025" - "\n\021PLAYER_ACTION_USE\020\002\022\026\n\022PLAYER_ACTION_O" - "PEN\020\003\022$\n PLAYER_ACTION_AUTOWALK_HIGHLIGH" - "T\020\004*\315\005\n\rITEM_CATEGORY\022\030\n\024ITEM_CATEGORY_A" - "RMORS\020\001\022\031\n\025ITEM_CATEGORY_AMULETS\020\002\022\027\n\023IT" - "EM_CATEGORY_BOOTS\020\003\022\034\n\030ITEM_CATEGORY_CON" - "TAINERS\020\004\022\034\n\030ITEM_CATEGORY_DECORATION\020\005\022" - "\026\n\022ITEM_CATEGORY_FOOD\020\006\022\036\n\032ITEM_CATEGORY" - "_HELMETS_HATS\020\007\022\026\n\022ITEM_CATEGORY_LEGS\020\010\022" - "\030\n\024ITEM_CATEGORY_OTHERS\020\t\022\031\n\025ITEM_CATEGO" - "RY_POTIONS\020\n\022\027\n\023ITEM_CATEGORY_RINGS\020\013\022\027\n" - "\023ITEM_CATEGORY_RUNES\020\014\022\031\n\025ITEM_CATEGORY_" - "SHIELDS\020\r\022\027\n\023ITEM_CATEGORY_TOOLS\020\016\022\033\n\027IT" - "EM_CATEGORY_VALUABLES\020\017\022\034\n\030ITEM_CATEGORY" - "_AMMUNITION\020\020\022\026\n\022ITEM_CATEGORY_AXES\020\021\022\027\n" - "\023ITEM_CATEGORY_CLUBS\020\022\022\"\n\036ITEM_CATEGORY_" - "DISTANCE_WEAPONS\020\023\022\030\n\024ITEM_CATEGORY_SWOR" - "DS\020\024\022\034\n\030ITEM_CATEGORY_WANDS_RODS\020\025\022!\n\035IT" - "EM_CATEGORY_PREMIUM_SCROLLS\020\026\022\035\n\031ITEM_CA" - "TEGORY_TIBIA_COINS\020\027\022#\n\037ITEM_CATEGORY_CR" - "EATURE_PRODUCTS\020\030\022\030\n\024ITEM_CATEGORY_QUIVE" - "R\020\031*\355\001\n\021PLAYER_PROFESSION\022\"\n\025PLAYER_PROF" - "ESSION_ANY\020\377\377\377\377\377\377\377\377\377\001\022\032\n\026PLAYER_PROFESSI" - "ON_NONE\020\000\022\034\n\030PLAYER_PROFESSION_KNIGHT\020\001\022" - "\035\n\031PLAYER_PROFESSION_PALADIN\020\002\022\036\n\032PLAYER" - "_PROFESSION_SORCERER\020\003\022\033\n\027PLAYER_PROFESS" - "ION_DRUID\020\004\022\036\n\032PLAYER_PROFESSION_PROMOTE" - "D\020\n*\203\001\n\023ANIMATION_LOOP_TYPE\022)\n\034ANIMATION" - "_LOOP_TYPE_PINGPONG\020\377\377\377\377\377\377\377\377\377\001\022 \n\034ANIMAT" - "ION_LOOP_TYPE_INFINITE\020\000\022\037\n\033ANIMATION_LO" - "OP_TYPE_COUNTED\020\001*4\n\tHOOK_TYPE\022\023\n\017HOOK_T" - "YPE_SOUTH\020\001\022\022\n\016HOOK_TYPE_EAST\020\002*\201\001\n\021FIXE" - "D_FRAME_GROUP\022!\n\035FIXED_FRAME_GROUP_OUTFI" - "T_IDLE\020\000\022#\n\037FIXED_FRAME_GROUP_OUTFIT_MOV" - "ING\020\001\022$\n FIXED_FRAME_GROUP_OBJECT_INITIA" - "L\020\002" - ; -static ::_pbi::once_flag descriptor_table_appearances_2eproto_once; -const ::_pbi::DescriptorTable descriptor_table_appearances_2eproto = { - false, false, 6243, descriptor_table_protodef_appearances_2eproto, - "appearances.proto", - &descriptor_table_appearances_2eproto_once, nullptr, 0, 26, - schemas, file_default_instances, TableStruct_appearances_2eproto::offsets, - file_level_metadata_appearances_2eproto, file_level_enum_descriptors_appearances_2eproto, - file_level_service_descriptors_appearances_2eproto, -}; -PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_appearances_2eproto_getter() { - return &descriptor_table_appearances_2eproto; -} - -// Force running AddDescriptors() at dynamic initialization time. -PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_appearances_2eproto(&descriptor_table_appearances_2eproto); -namespace Canary { -namespace protobuf { -namespace appearances { -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PLAYER_ACTION_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[0]; -} -bool PLAYER_ACTION_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - case 3: - case 4: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ITEM_CATEGORY_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[1]; -} -bool ITEM_CATEGORY_IsValid(int value) { - switch (value) { - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PLAYER_PROFESSION_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[2]; -} -bool PLAYER_PROFESSION_IsValid(int value) { - switch (value) { - case -1: - case 0: - case 1: - case 2: - case 3: - case 4: - case 10: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ANIMATION_LOOP_TYPE_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[3]; -} -bool ANIMATION_LOOP_TYPE_IsValid(int value) { - switch (value) { - case -1: - case 0: - case 1: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HOOK_TYPE_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[4]; -} -bool HOOK_TYPE_IsValid(int value) { - switch (value) { - case 1: - case 2: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FIXED_FRAME_GROUP_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_appearances_2eproto); - return file_level_enum_descriptors_appearances_2eproto[5]; -} -bool FIXED_FRAME_GROUP_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - return true; - default: - return false; - } -} - - -// =================================================================== - -class Coordinate::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_x(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_y(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_z(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } -}; - -Coordinate::Coordinate(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.Coordinate) -} -Coordinate::Coordinate(const Coordinate& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - Coordinate* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){} - , decltype(_impl_.y_){} - , decltype(_impl_.z_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.x_, &from._impl_.x_, - static_cast(reinterpret_cast(&_impl_.z_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.z_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.Coordinate) -} - -inline void Coordinate::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){0u} - , decltype(_impl_.y_){0u} - , decltype(_impl_.z_){0u} - }; -} - -Coordinate::~Coordinate() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.Coordinate) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void Coordinate::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void Coordinate::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void Coordinate::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.Coordinate) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - ::memset(&_impl_.x_, 0, static_cast( - reinterpret_cast(&_impl_.z_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.z_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Coordinate::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 x = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_x(&has_bits); - _impl_.x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 y = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_y(&has_bits); - _impl_.y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 z = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_z(&has_bits); - _impl_.z_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Coordinate::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.Coordinate) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_x(), target); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_y(), target); - } - - // optional uint32 z = 3; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_z(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.Coordinate) - return target; -} - -size_t Coordinate::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.Coordinate) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_x()); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_y()); - } - - // optional uint32 z = 3; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_z()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Coordinate::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - Coordinate::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Coordinate::GetClassData() const { return &_class_data_; } - - -void Coordinate::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.Coordinate) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.x_ = from._impl_.x_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.y_ = from._impl_.y_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.z_ = from._impl_.z_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Coordinate::CopyFrom(const Coordinate& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.Coordinate) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Coordinate::IsInitialized() const { - return true; -} - -void Coordinate::InternalSwap(Coordinate* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(Coordinate, _impl_.z_) - + sizeof(Coordinate::_impl_.z_) - - PROTOBUF_FIELD_OFFSET(Coordinate, _impl_.x_)>( - reinterpret_cast(&_impl_.x_), - reinterpret_cast(&other->_impl_.x_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Coordinate::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[0]); -} - -// =================================================================== - -class Appearances::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& special_meaning_appearance_ids(const Appearances* msg); - static void set_has_special_meaning_appearance_ids(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& -Appearances::_Internal::special_meaning_appearance_ids(const Appearances* msg) { - return *msg->_impl_.special_meaning_appearance_ids_; -} -Appearances::Appearances(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.Appearances) -} -Appearances::Appearances(const Appearances& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - Appearances* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.object_){from._impl_.object_} - , decltype(_impl_.outfit_){from._impl_.outfit_} - , decltype(_impl_.effect_){from._impl_.effect_} - , decltype(_impl_.missile_){from._impl_.missile_} - , decltype(_impl_.special_meaning_appearance_ids_){nullptr}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_special_meaning_appearance_ids()) { - _this->_impl_.special_meaning_appearance_ids_ = new ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds(*from._impl_.special_meaning_appearance_ids_); - } - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.Appearances) -} - -inline void Appearances::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.object_){arena} - , decltype(_impl_.outfit_){arena} - , decltype(_impl_.effect_){arena} - , decltype(_impl_.missile_){arena} - , decltype(_impl_.special_meaning_appearance_ids_){nullptr} - }; -} - -Appearances::~Appearances() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.Appearances) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void Appearances::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.object_.~RepeatedPtrField(); - _impl_.outfit_.~RepeatedPtrField(); - _impl_.effect_.~RepeatedPtrField(); - _impl_.missile_.~RepeatedPtrField(); - if (this != internal_default_instance()) delete _impl_.special_meaning_appearance_ids_; -} - -void Appearances::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void Appearances::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.Appearances) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.object_.Clear(); - _impl_.outfit_.Clear(); - _impl_.effect_.Clear(); - _impl_.missile_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - GOOGLE_DCHECK(_impl_.special_meaning_appearance_ids_ != nullptr); - _impl_.special_meaning_appearance_ids_->Clear(); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Appearances::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // repeated .Canary.protobuf.appearances.Appearance object = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_object(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.Appearance outfit = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_outfit(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.Appearance effect = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_effect(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr)); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.Appearance missile = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_missile(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr)); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.SpecialMeaningAppearanceIds special_meaning_appearance_ids = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { - ptr = ctx->ParseMessage(_internal_mutable_special_meaning_appearance_ids(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Appearances::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.Appearances) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.Appearance object = 1; - for (unsigned i = 0, - n = static_cast(this->_internal_object_size()); i < n; i++) { - const auto& repfield = this->_internal_object(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); - } - - // repeated .Canary.protobuf.appearances.Appearance outfit = 2; - for (unsigned i = 0, - n = static_cast(this->_internal_outfit_size()); i < n; i++) { - const auto& repfield = this->_internal_outfit(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream); - } - - // repeated .Canary.protobuf.appearances.Appearance effect = 3; - for (unsigned i = 0, - n = static_cast(this->_internal_effect_size()); i < n; i++) { - const auto& repfield = this->_internal_effect(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream); - } - - // repeated .Canary.protobuf.appearances.Appearance missile = 4; - for (unsigned i = 0, - n = static_cast(this->_internal_missile_size()); i < n; i++) { - const auto& repfield = this->_internal_missile(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.SpecialMeaningAppearanceIds special_meaning_appearance_ids = 5; - if (cached_has_bits & 0x00000001u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(5, _Internal::special_meaning_appearance_ids(this), - _Internal::special_meaning_appearance_ids(this).GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.Appearances) - return target; -} - -size_t Appearances::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.Appearances) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.Appearance object = 1; - total_size += 1UL * this->_internal_object_size(); - for (const auto& msg : this->_impl_.object_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .Canary.protobuf.appearances.Appearance outfit = 2; - total_size += 1UL * this->_internal_outfit_size(); - for (const auto& msg : this->_impl_.outfit_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .Canary.protobuf.appearances.Appearance effect = 3; - total_size += 1UL * this->_internal_effect_size(); - for (const auto& msg : this->_impl_.effect_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .Canary.protobuf.appearances.Appearance missile = 4; - total_size += 1UL * this->_internal_missile_size(); - for (const auto& msg : this->_impl_.missile_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // optional .Canary.protobuf.appearances.SpecialMeaningAppearanceIds special_meaning_appearance_ids = 5; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.special_meaning_appearance_ids_); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Appearances::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - Appearances::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Appearances::GetClassData() const { return &_class_data_; } - - -void Appearances::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.Appearances) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.object_.MergeFrom(from._impl_.object_); - _this->_impl_.outfit_.MergeFrom(from._impl_.outfit_); - _this->_impl_.effect_.MergeFrom(from._impl_.effect_); - _this->_impl_.missile_.MergeFrom(from._impl_.missile_); - if (from._internal_has_special_meaning_appearance_ids()) { - _this->_internal_mutable_special_meaning_appearance_ids()->::Canary::protobuf::appearances::SpecialMeaningAppearanceIds::MergeFrom( - from._internal_special_meaning_appearance_ids()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Appearances::CopyFrom(const Appearances& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.Appearances) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Appearances::IsInitialized() const { - return true; -} - -void Appearances::InternalSwap(Appearances* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - _impl_.object_.InternalSwap(&other->_impl_.object_); - _impl_.outfit_.InternalSwap(&other->_impl_.outfit_); - _impl_.effect_.InternalSwap(&other->_impl_.effect_); - _impl_.missile_.InternalSwap(&other->_impl_.missile_); - swap(_impl_.special_meaning_appearance_ids_, other->_impl_.special_meaning_appearance_ids_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Appearances::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[1]); -} - -// =================================================================== - -class SpritePhase::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_duration_min(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_duration_max(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } -}; - -SpritePhase::SpritePhase(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.SpritePhase) -} -SpritePhase::SpritePhase(const SpritePhase& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - SpritePhase* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.duration_min_){} - , decltype(_impl_.duration_max_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.duration_min_, &from._impl_.duration_min_, - static_cast(reinterpret_cast(&_impl_.duration_max_) - - reinterpret_cast(&_impl_.duration_min_)) + sizeof(_impl_.duration_max_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.SpritePhase) -} - -inline void SpritePhase::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.duration_min_){0u} - , decltype(_impl_.duration_max_){0u} - }; -} - -SpritePhase::~SpritePhase() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.SpritePhase) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void SpritePhase::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void SpritePhase::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void SpritePhase::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.SpritePhase) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - ::memset(&_impl_.duration_min_, 0, static_cast( - reinterpret_cast(&_impl_.duration_max_) - - reinterpret_cast(&_impl_.duration_min_)) + sizeof(_impl_.duration_max_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* SpritePhase::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 duration_min = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_duration_min(&has_bits); - _impl_.duration_min_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 duration_max = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_duration_max(&has_bits); - _impl_.duration_max_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* SpritePhase::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.SpritePhase) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 duration_min = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_duration_min(), target); - } - - // optional uint32 duration_max = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_duration_max(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.SpritePhase) - return target; -} - -size_t SpritePhase::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.SpritePhase) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional uint32 duration_min = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_duration_min()); - } - - // optional uint32 duration_max = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_duration_max()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SpritePhase::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - SpritePhase::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SpritePhase::GetClassData() const { return &_class_data_; } - - -void SpritePhase::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.SpritePhase) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.duration_min_ = from._impl_.duration_min_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.duration_max_ = from._impl_.duration_max_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void SpritePhase::CopyFrom(const SpritePhase& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.SpritePhase) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpritePhase::IsInitialized() const { - return true; -} - -void SpritePhase::InternalSwap(SpritePhase* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(SpritePhase, _impl_.duration_max_) - + sizeof(SpritePhase::_impl_.duration_max_) - - PROTOBUF_FIELD_OFFSET(SpritePhase, _impl_.duration_min_)>( - reinterpret_cast(&_impl_.duration_min_), - reinterpret_cast(&other->_impl_.duration_min_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpritePhase::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[2]); -} - -// =================================================================== - -class SpriteAnimation::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_default_start_phase(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_synchronized(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_random_start_phase(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_loop_type(HasBits* has_bits) { - (*has_bits)[0] |= 16u; - } - static void set_has_loop_count(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } -}; - -SpriteAnimation::SpriteAnimation(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.SpriteAnimation) -} -SpriteAnimation::SpriteAnimation(const SpriteAnimation& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - SpriteAnimation* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_phase_){from._impl_.sprite_phase_} - , decltype(_impl_.default_start_phase_){} - , decltype(_impl_.synchronized_){} - , decltype(_impl_.random_start_phase_){} - , decltype(_impl_.loop_count_){} - , decltype(_impl_.loop_type_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.default_start_phase_, &from._impl_.default_start_phase_, - static_cast(reinterpret_cast(&_impl_.loop_type_) - - reinterpret_cast(&_impl_.default_start_phase_)) + sizeof(_impl_.loop_type_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.SpriteAnimation) -} - -inline void SpriteAnimation::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_phase_){arena} - , decltype(_impl_.default_start_phase_){0u} - , decltype(_impl_.synchronized_){false} - , decltype(_impl_.random_start_phase_){false} - , decltype(_impl_.loop_count_){0u} - , decltype(_impl_.loop_type_){-1} - }; -} - -SpriteAnimation::~SpriteAnimation() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.SpriteAnimation) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void SpriteAnimation::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.sprite_phase_.~RepeatedPtrField(); -} - -void SpriteAnimation::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void SpriteAnimation::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.SpriteAnimation) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.sprite_phase_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000001fu) { - ::memset(&_impl_.default_start_phase_, 0, static_cast( - reinterpret_cast(&_impl_.loop_count_) - - reinterpret_cast(&_impl_.default_start_phase_)) + sizeof(_impl_.loop_count_)); - _impl_.loop_type_ = -1; - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* SpriteAnimation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 default_start_phase = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_default_start_phase(&has_bits); - _impl_.default_start_phase_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool synchronized = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_synchronized(&has_bits); - _impl_.synchronized_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool random_start_phase = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_random_start_phase(&has_bits); - _impl_.random_start_phase_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.ANIMATION_LOOP_TYPE loop_type = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE_IsValid(val))) { - _internal_set_loop_type(static_cast<::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(4, val, mutable_unknown_fields()); - } - } else - goto handle_unusual; - continue; - // optional uint32 loop_count = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_loop_count(&has_bits); - _impl_.loop_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.SpritePhase sprite_phase = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_sprite_phase(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* SpriteAnimation::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.SpriteAnimation) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 default_start_phase = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_default_start_phase(), target); - } - - // optional bool synchronized = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_synchronized(), target); - } - - // optional bool random_start_phase = 3; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_random_start_phase(), target); - } - - // optional .Canary.protobuf.appearances.ANIMATION_LOOP_TYPE loop_type = 4; - if (cached_has_bits & 0x00000010u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 4, this->_internal_loop_type(), target); - } - - // optional uint32 loop_count = 5; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_loop_count(), target); - } - - // repeated .Canary.protobuf.appearances.SpritePhase sprite_phase = 6; - for (unsigned i = 0, - n = static_cast(this->_internal_sprite_phase_size()); i < n; i++) { - const auto& repfield = this->_internal_sprite_phase(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(6, repfield, repfield.GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.SpriteAnimation) - return target; -} - -size_t SpriteAnimation::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.SpriteAnimation) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.SpritePhase sprite_phase = 6; - total_size += 1UL * this->_internal_sprite_phase_size(); - for (const auto& msg : this->_impl_.sprite_phase_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000001fu) { - // optional uint32 default_start_phase = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_default_start_phase()); - } - - // optional bool synchronized = 2; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + 1; - } - - // optional bool random_start_phase = 3; - if (cached_has_bits & 0x00000004u) { - total_size += 1 + 1; - } - - // optional uint32 loop_count = 5; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_loop_count()); - } - - // optional .Canary.protobuf.appearances.ANIMATION_LOOP_TYPE loop_type = 4; - if (cached_has_bits & 0x00000010u) { - total_size += 1 + - ::_pbi::WireFormatLite::EnumSize(this->_internal_loop_type()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SpriteAnimation::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - SpriteAnimation::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SpriteAnimation::GetClassData() const { return &_class_data_; } - - -void SpriteAnimation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.SpriteAnimation) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.sprite_phase_.MergeFrom(from._impl_.sprite_phase_); - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000001fu) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.default_start_phase_ = from._impl_.default_start_phase_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.synchronized_ = from._impl_.synchronized_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.random_start_phase_ = from._impl_.random_start_phase_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.loop_count_ = from._impl_.loop_count_; - } - if (cached_has_bits & 0x00000010u) { - _this->_impl_.loop_type_ = from._impl_.loop_type_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void SpriteAnimation::CopyFrom(const SpriteAnimation& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.SpriteAnimation) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpriteAnimation::IsInitialized() const { - return true; -} - -void SpriteAnimation::InternalSwap(SpriteAnimation* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - _impl_.sprite_phase_.InternalSwap(&other->_impl_.sprite_phase_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(SpriteAnimation, _impl_.loop_count_) - + sizeof(SpriteAnimation::_impl_.loop_count_) - - PROTOBUF_FIELD_OFFSET(SpriteAnimation, _impl_.default_start_phase_)>( - reinterpret_cast(&_impl_.default_start_phase_), - reinterpret_cast(&other->_impl_.default_start_phase_)); - swap(_impl_.loop_type_, other->_impl_.loop_type_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpriteAnimation::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[3]); -} - -// =================================================================== - -class Box::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_x(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_y(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_width(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_height(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } -}; - -Box::Box(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.Box) -} -Box::Box(const Box& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - Box* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){} - , decltype(_impl_.y_){} - , decltype(_impl_.width_){} - , decltype(_impl_.height_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.x_, &from._impl_.x_, - static_cast(reinterpret_cast(&_impl_.height_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.height_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.Box) -} - -inline void Box::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){0u} - , decltype(_impl_.y_){0u} - , decltype(_impl_.width_){0u} - , decltype(_impl_.height_){0u} - }; -} - -Box::~Box() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.Box) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void Box::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void Box::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void Box::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.Box) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - ::memset(&_impl_.x_, 0, static_cast( - reinterpret_cast(&_impl_.height_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.height_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Box::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 x = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_x(&has_bits); - _impl_.x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 y = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_y(&has_bits); - _impl_.y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 width = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_width(&has_bits); - _impl_.width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 height = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _Internal::set_has_height(&has_bits); - _impl_.height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Box::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.Box) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_x(), target); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_y(), target); - } - - // optional uint32 width = 3; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_width(), target); - } - - // optional uint32 height = 4; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_height(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.Box) - return target; -} - -size_t Box::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.Box) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_x()); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_y()); - } - - // optional uint32 width = 3; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_width()); - } - - // optional uint32 height = 4; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_height()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Box::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - Box::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Box::GetClassData() const { return &_class_data_; } - - -void Box::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.Box) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.x_ = from._impl_.x_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.y_ = from._impl_.y_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.width_ = from._impl_.width_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.height_ = from._impl_.height_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Box::CopyFrom(const Box& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.Box) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Box::IsInitialized() const { - return true; -} - -void Box::InternalSwap(Box* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(Box, _impl_.height_) - + sizeof(Box::_impl_.height_) - - PROTOBUF_FIELD_OFFSET(Box, _impl_.x_)>( - reinterpret_cast(&_impl_.x_), - reinterpret_cast(&other->_impl_.x_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Box::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[4]); -} - -// =================================================================== - -class SpriteInfo::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_pattern_width(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_pattern_height(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_pattern_depth(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_layers(HasBits* has_bits) { - (*has_bits)[0] |= 16u; - } - static void set_has_bounding_square(HasBits* has_bits) { - (*has_bits)[0] |= 32u; - } - static const ::Canary::protobuf::appearances::SpriteAnimation& animation(const SpriteInfo* msg); - static void set_has_animation(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_is_opaque(HasBits* has_bits) { - (*has_bits)[0] |= 64u; - } -}; - -const ::Canary::protobuf::appearances::SpriteAnimation& -SpriteInfo::_Internal::animation(const SpriteInfo* msg) { - return *msg->_impl_.animation_; -} -SpriteInfo::SpriteInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.SpriteInfo) -} -SpriteInfo::SpriteInfo(const SpriteInfo& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - SpriteInfo* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_id_){from._impl_.sprite_id_} - , decltype(_impl_.bounding_box_per_direction_){from._impl_.bounding_box_per_direction_} - , decltype(_impl_.animation_){nullptr} - , decltype(_impl_.pattern_width_){} - , decltype(_impl_.pattern_height_){} - , decltype(_impl_.pattern_depth_){} - , decltype(_impl_.layers_){} - , decltype(_impl_.bounding_square_){} - , decltype(_impl_.is_opaque_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_animation()) { - _this->_impl_.animation_ = new ::Canary::protobuf::appearances::SpriteAnimation(*from._impl_.animation_); - } - ::memcpy(&_impl_.pattern_width_, &from._impl_.pattern_width_, - static_cast(reinterpret_cast(&_impl_.is_opaque_) - - reinterpret_cast(&_impl_.pattern_width_)) + sizeof(_impl_.is_opaque_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.SpriteInfo) -} - -inline void SpriteInfo::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_id_){arena} - , decltype(_impl_.bounding_box_per_direction_){arena} - , decltype(_impl_.animation_){nullptr} - , decltype(_impl_.pattern_width_){0u} - , decltype(_impl_.pattern_height_){0u} - , decltype(_impl_.pattern_depth_){0u} - , decltype(_impl_.layers_){0u} - , decltype(_impl_.bounding_square_){0u} - , decltype(_impl_.is_opaque_){false} - }; -} - -SpriteInfo::~SpriteInfo() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.SpriteInfo) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void SpriteInfo::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.sprite_id_.~RepeatedField(); - _impl_.bounding_box_per_direction_.~RepeatedPtrField(); - if (this != internal_default_instance()) delete _impl_.animation_; -} - -void SpriteInfo::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void SpriteInfo::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.SpriteInfo) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.sprite_id_.Clear(); - _impl_.bounding_box_per_direction_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - GOOGLE_DCHECK(_impl_.animation_ != nullptr); - _impl_.animation_->Clear(); - } - if (cached_has_bits & 0x0000007eu) { - ::memset(&_impl_.pattern_width_, 0, static_cast( - reinterpret_cast(&_impl_.is_opaque_) - - reinterpret_cast(&_impl_.pattern_width_)) + sizeof(_impl_.is_opaque_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* SpriteInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 pattern_width = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_pattern_width(&has_bits); - _impl_.pattern_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 pattern_height = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_pattern_height(&has_bits); - _impl_.pattern_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 pattern_depth = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_pattern_depth(&has_bits); - _impl_.pattern_depth_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 layers = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _Internal::set_has_layers(&has_bits); - _impl_.layers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated uint32 sprite_id = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - ptr -= 1; - do { - ptr += 1; - _internal_add_sprite_id(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr)); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<40>(ptr)); - } else if (static_cast(tag) == 42) { - ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_sprite_id(), ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.SpriteAnimation animation = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { - ptr = ctx->ParseMessage(_internal_mutable_animation(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 bounding_square = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - _Internal::set_has_bounding_square(&has_bits); - _impl_.bounding_square_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool is_opaque = 8; - case 8: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 64)) { - _Internal::set_has_is_opaque(&has_bits); - _impl_.is_opaque_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.Box bounding_box_per_direction = 9; - case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 74)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_bounding_box_per_direction(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr)); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* SpriteInfo::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.SpriteInfo) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 pattern_width = 1; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_pattern_width(), target); - } - - // optional uint32 pattern_height = 2; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_pattern_height(), target); - } - - // optional uint32 pattern_depth = 3; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_pattern_depth(), target); - } - - // optional uint32 layers = 4; - if (cached_has_bits & 0x00000010u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_layers(), target); - } - - // repeated uint32 sprite_id = 5; - for (int i = 0, n = this->_internal_sprite_id_size(); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_sprite_id(i), target); - } - - // optional .Canary.protobuf.appearances.SpriteAnimation animation = 6; - if (cached_has_bits & 0x00000001u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(6, _Internal::animation(this), - _Internal::animation(this).GetCachedSize(), target, stream); - } - - // optional uint32 bounding_square = 7; - if (cached_has_bits & 0x00000020u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(7, this->_internal_bounding_square(), target); - } - - // optional bool is_opaque = 8; - if (cached_has_bits & 0x00000040u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_is_opaque(), target); - } - - // repeated .Canary.protobuf.appearances.Box bounding_box_per_direction = 9; - for (unsigned i = 0, - n = static_cast(this->_internal_bounding_box_per_direction_size()); i < n; i++) { - const auto& repfield = this->_internal_bounding_box_per_direction(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(9, repfield, repfield.GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.SpriteInfo) - return target; -} - -size_t SpriteInfo::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.SpriteInfo) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated uint32 sprite_id = 5; - { - size_t data_size = ::_pbi::WireFormatLite:: - UInt32Size(this->_impl_.sprite_id_); - total_size += 1 * - ::_pbi::FromIntSize(this->_internal_sprite_id_size()); - total_size += data_size; - } - - // repeated .Canary.protobuf.appearances.Box bounding_box_per_direction = 9; - total_size += 1UL * this->_internal_bounding_box_per_direction_size(); - for (const auto& msg : this->_impl_.bounding_box_per_direction_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { - // optional .Canary.protobuf.appearances.SpriteAnimation animation = 6; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.animation_); - } - - // optional uint32 pattern_width = 1; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_pattern_width()); - } - - // optional uint32 pattern_height = 2; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_pattern_height()); - } - - // optional uint32 pattern_depth = 3; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_pattern_depth()); - } - - // optional uint32 layers = 4; - if (cached_has_bits & 0x00000010u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_layers()); - } - - // optional uint32 bounding_square = 7; - if (cached_has_bits & 0x00000020u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_bounding_square()); - } - - // optional bool is_opaque = 8; - if (cached_has_bits & 0x00000040u) { - total_size += 1 + 1; - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SpriteInfo::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - SpriteInfo::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SpriteInfo::GetClassData() const { return &_class_data_; } - - -void SpriteInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.SpriteInfo) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.sprite_id_.MergeFrom(from._impl_.sprite_id_); - _this->_impl_.bounding_box_per_direction_.MergeFrom(from._impl_.bounding_box_per_direction_); - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { - if (cached_has_bits & 0x00000001u) { - _this->_internal_mutable_animation()->::Canary::protobuf::appearances::SpriteAnimation::MergeFrom( - from._internal_animation()); - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.pattern_width_ = from._impl_.pattern_width_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.pattern_height_ = from._impl_.pattern_height_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.pattern_depth_ = from._impl_.pattern_depth_; - } - if (cached_has_bits & 0x00000010u) { - _this->_impl_.layers_ = from._impl_.layers_; - } - if (cached_has_bits & 0x00000020u) { - _this->_impl_.bounding_square_ = from._impl_.bounding_square_; - } - if (cached_has_bits & 0x00000040u) { - _this->_impl_.is_opaque_ = from._impl_.is_opaque_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void SpriteInfo::CopyFrom(const SpriteInfo& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.SpriteInfo) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpriteInfo::IsInitialized() const { - return true; -} - -void SpriteInfo::InternalSwap(SpriteInfo* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - _impl_.sprite_id_.InternalSwap(&other->_impl_.sprite_id_); - _impl_.bounding_box_per_direction_.InternalSwap(&other->_impl_.bounding_box_per_direction_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(SpriteInfo, _impl_.is_opaque_) - + sizeof(SpriteInfo::_impl_.is_opaque_) - - PROTOBUF_FIELD_OFFSET(SpriteInfo, _impl_.animation_)>( - reinterpret_cast(&_impl_.animation_), - reinterpret_cast(&other->_impl_.animation_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpriteInfo::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[5]); -} - -// =================================================================== - -class FrameGroup::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_fixed_frame_group(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_id(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static const ::Canary::protobuf::appearances::SpriteInfo& sprite_info(const FrameGroup* msg); - static void set_has_sprite_info(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -const ::Canary::protobuf::appearances::SpriteInfo& -FrameGroup::_Internal::sprite_info(const FrameGroup* msg) { - return *msg->_impl_.sprite_info_; -} -FrameGroup::FrameGroup(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.FrameGroup) -} -FrameGroup::FrameGroup(const FrameGroup& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - FrameGroup* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_info_){nullptr} - , decltype(_impl_.fixed_frame_group_){} - , decltype(_impl_.id_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_sprite_info()) { - _this->_impl_.sprite_info_ = new ::Canary::protobuf::appearances::SpriteInfo(*from._impl_.sprite_info_); - } - ::memcpy(&_impl_.fixed_frame_group_, &from._impl_.fixed_frame_group_, - static_cast(reinterpret_cast(&_impl_.id_) - - reinterpret_cast(&_impl_.fixed_frame_group_)) + sizeof(_impl_.id_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.FrameGroup) -} - -inline void FrameGroup::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.sprite_info_){nullptr} - , decltype(_impl_.fixed_frame_group_){0} - , decltype(_impl_.id_){0u} - }; -} - -FrameGroup::~FrameGroup() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.FrameGroup) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void FrameGroup::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete _impl_.sprite_info_; -} - -void FrameGroup::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void FrameGroup::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.FrameGroup) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - GOOGLE_DCHECK(_impl_.sprite_info_ != nullptr); - _impl_.sprite_info_->Clear(); - } - if (cached_has_bits & 0x00000006u) { - ::memset(&_impl_.fixed_frame_group_, 0, static_cast( - reinterpret_cast(&_impl_.id_) - - reinterpret_cast(&_impl_.fixed_frame_group_)) + sizeof(_impl_.id_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* FrameGroup::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional .Canary.protobuf.appearances.FIXED_FRAME_GROUP fixed_frame_group = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::FIXED_FRAME_GROUP_IsValid(val))) { - _internal_set_fixed_frame_group(static_cast<::Canary::protobuf::appearances::FIXED_FRAME_GROUP>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields()); - } - } else - goto handle_unusual; - continue; - // optional uint32 id = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_id(&has_bits); - _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.SpriteInfo sprite_info = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { - ptr = ctx->ParseMessage(_internal_mutable_sprite_info(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* FrameGroup::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.FrameGroup) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.FIXED_FRAME_GROUP fixed_frame_group = 1; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 1, this->_internal_fixed_frame_group(), target); - } - - // optional uint32 id = 2; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_id(), target); - } - - // optional .Canary.protobuf.appearances.SpriteInfo sprite_info = 3; - if (cached_has_bits & 0x00000001u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(3, _Internal::sprite_info(this), - _Internal::sprite_info(this).GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.FrameGroup) - return target; -} - -size_t FrameGroup::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.FrameGroup) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - // optional .Canary.protobuf.appearances.SpriteInfo sprite_info = 3; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.sprite_info_); - } - - // optional .Canary.protobuf.appearances.FIXED_FRAME_GROUP fixed_frame_group = 1; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + - ::_pbi::WireFormatLite::EnumSize(this->_internal_fixed_frame_group()); - } - - // optional uint32 id = 2; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FrameGroup::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - FrameGroup::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FrameGroup::GetClassData() const { return &_class_data_; } - - -void FrameGroup::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.FrameGroup) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - if (cached_has_bits & 0x00000001u) { - _this->_internal_mutable_sprite_info()->::Canary::protobuf::appearances::SpriteInfo::MergeFrom( - from._internal_sprite_info()); - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.fixed_frame_group_ = from._impl_.fixed_frame_group_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.id_ = from._impl_.id_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void FrameGroup::CopyFrom(const FrameGroup& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.FrameGroup) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool FrameGroup::IsInitialized() const { - return true; -} - -void FrameGroup::InternalSwap(FrameGroup* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(FrameGroup, _impl_.id_) - + sizeof(FrameGroup::_impl_.id_) - - PROTOBUF_FIELD_OFFSET(FrameGroup, _impl_.sprite_info_)>( - reinterpret_cast(&_impl_.sprite_info_), - reinterpret_cast(&other->_impl_.sprite_info_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata FrameGroup::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[6]); -} - -// =================================================================== - -class Appearance::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_id(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static const ::Canary::protobuf::appearances::AppearanceFlags& flags(const Appearance* msg); - static void set_has_flags(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_name(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_description(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } -}; - -const ::Canary::protobuf::appearances::AppearanceFlags& -Appearance::_Internal::flags(const Appearance* msg) { - return *msg->_impl_.flags_; -} -Appearance::Appearance(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.Appearance) -} -Appearance::Appearance(const Appearance& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - Appearance* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.frame_group_){from._impl_.frame_group_} - , decltype(_impl_.name_){} - , decltype(_impl_.description_){} - , decltype(_impl_.flags_){nullptr} - , decltype(_impl_.id_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _impl_.name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (from._internal_has_name()) { - _this->_impl_.name_.Set(from._internal_name(), - _this->GetArenaForAllocation()); - } - _impl_.description_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.description_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (from._internal_has_description()) { - _this->_impl_.description_.Set(from._internal_description(), - _this->GetArenaForAllocation()); - } - if (from._internal_has_flags()) { - _this->_impl_.flags_ = new ::Canary::protobuf::appearances::AppearanceFlags(*from._impl_.flags_); - } - _this->_impl_.id_ = from._impl_.id_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.Appearance) -} - -inline void Appearance::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.frame_group_){arena} - , decltype(_impl_.name_){} - , decltype(_impl_.description_){} - , decltype(_impl_.flags_){nullptr} - , decltype(_impl_.id_){0u} - }; - _impl_.name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.description_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.description_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING -} - -Appearance::~Appearance() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.Appearance) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void Appearance::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.frame_group_.~RepeatedPtrField(); - _impl_.name_.Destroy(); - _impl_.description_.Destroy(); - if (this != internal_default_instance()) delete _impl_.flags_; -} - -void Appearance::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void Appearance::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.Appearance) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.frame_group_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - if (cached_has_bits & 0x00000001u) { - _impl_.name_.ClearNonDefaultToEmpty(); - } - if (cached_has_bits & 0x00000002u) { - _impl_.description_.ClearNonDefaultToEmpty(); - } - if (cached_has_bits & 0x00000004u) { - GOOGLE_DCHECK(_impl_.flags_ != nullptr); - _impl_.flags_->Clear(); - } - } - _impl_.id_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* Appearance::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 id = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_id(&has_bits); - _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.FrameGroup frame_group = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_frame_group(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlags flags = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { - ptr = ctx->ParseMessage(_internal_mutable_flags(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bytes name = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { - auto str = _internal_mutable_name(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bytes description = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { - auto str = _internal_mutable_description(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* Appearance::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.Appearance) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 id = 1; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target); - } - - // repeated .Canary.protobuf.appearances.FrameGroup frame_group = 2; - for (unsigned i = 0, - n = static_cast(this->_internal_frame_group_size()); i < n; i++) { - const auto& repfield = this->_internal_frame_group(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlags flags = 3; - if (cached_has_bits & 0x00000004u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(3, _Internal::flags(this), - _Internal::flags(this).GetCachedSize(), target, stream); - } - - // optional bytes name = 4; - if (cached_has_bits & 0x00000001u) { - target = stream->WriteBytesMaybeAliased( - 4, this->_internal_name(), target); - } - - // optional bytes description = 5; - if (cached_has_bits & 0x00000002u) { - target = stream->WriteBytesMaybeAliased( - 5, this->_internal_description(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.Appearance) - return target; -} - -size_t Appearance::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.Appearance) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.FrameGroup frame_group = 2; - total_size += 1UL * this->_internal_frame_group_size(); - for (const auto& msg : this->_impl_.frame_group_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - // optional bytes name = 4; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_name()); - } - - // optional bytes description = 5; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_description()); - } - - // optional .Canary.protobuf.appearances.AppearanceFlags flags = 3; - if (cached_has_bits & 0x00000004u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.flags_); - } - - // optional uint32 id = 1; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Appearance::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - Appearance::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Appearance::GetClassData() const { return &_class_data_; } - - -void Appearance::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.Appearance) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.frame_group_.MergeFrom(from._impl_.frame_group_); - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - if (cached_has_bits & 0x00000001u) { - _this->_internal_set_name(from._internal_name()); - } - if (cached_has_bits & 0x00000002u) { - _this->_internal_set_description(from._internal_description()); - } - if (cached_has_bits & 0x00000004u) { - _this->_internal_mutable_flags()->::Canary::protobuf::appearances::AppearanceFlags::MergeFrom( - from._internal_flags()); - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.id_ = from._impl_.id_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void Appearance::CopyFrom(const Appearance& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.Appearance) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool Appearance::IsInitialized() const { - return true; -} - -void Appearance::InternalSwap(Appearance* other) { - using std::swap; - auto* lhs_arena = GetArenaForAllocation(); - auto* rhs_arena = other->GetArenaForAllocation(); - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - _impl_.frame_group_.InternalSwap(&other->_impl_.frame_group_); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.name_, lhs_arena, - &other->_impl_.name_, rhs_arena - ); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.description_, lhs_arena, - &other->_impl_.description_, rhs_arena - ); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(Appearance, _impl_.id_) - + sizeof(Appearance::_impl_.id_) - - PROTOBUF_FIELD_OFFSET(Appearance, _impl_.flags_)>( - reinterpret_cast(&_impl_.flags_), - reinterpret_cast(&other->_impl_.flags_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata Appearance::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[7]); -} - -// =================================================================== - -class AppearanceFlags::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static const ::Canary::protobuf::appearances::AppearanceFlagBank& bank(const AppearanceFlags* msg); - static void set_has_bank(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_clip(HasBits* has_bits) { - (*has_bits)[0] |= 32768u; - } - static void set_has_bottom(HasBits* has_bits) { - (*has_bits)[0] |= 65536u; - } - static void set_has_top(HasBits* has_bits) { - (*has_bits)[0] |= 131072u; - } - static void set_has_container(HasBits* has_bits) { - (*has_bits)[0] |= 262144u; - } - static void set_has_cumulative(HasBits* has_bits) { - (*has_bits)[0] |= 524288u; - } - static void set_has_usable(HasBits* has_bits) { - (*has_bits)[0] |= 1048576u; - } - static void set_has_forceuse(HasBits* has_bits) { - (*has_bits)[0] |= 2097152u; - } - static void set_has_multiuse(HasBits* has_bits) { - (*has_bits)[0] |= 4194304u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagWrite& write(const AppearanceFlags* msg); - static void set_has_write(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& write_once(const AppearanceFlags* msg); - static void set_has_write_once(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_liquidpool(HasBits* has_bits) { - (*has_bits)[0] |= 8388608u; - } - static void set_has_unpass(HasBits* has_bits) { - (*has_bits)[0] |= 16777216u; - } - static void set_has_unmove(HasBits* has_bits) { - (*has_bits)[0] |= 33554432u; - } - static void set_has_unsight(HasBits* has_bits) { - (*has_bits)[0] |= 67108864u; - } - static void set_has_avoid(HasBits* has_bits) { - (*has_bits)[0] |= 134217728u; - } - static void set_has_no_movement_animation(HasBits* has_bits) { - (*has_bits)[0] |= 268435456u; - } - static void set_has_take(HasBits* has_bits) { - (*has_bits)[0] |= 536870912u; - } - static void set_has_liquidcontainer(HasBits* has_bits) { - (*has_bits)[0] |= 1073741824u; - } - static void set_has_hang(HasBits* has_bits) { - (*has_bits)[0] |= 2147483648u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagHook& hook(const AppearanceFlags* msg); - static void set_has_hook(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_rotate(HasBits* has_bits) { - (*has_bits)[1] |= 1u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagLight& light(const AppearanceFlags* msg); - static void set_has_light(HasBits* has_bits) { - (*has_bits)[0] |= 16u; - } - static void set_has_dont_hide(HasBits* has_bits) { - (*has_bits)[1] |= 2u; - } - static void set_has_translucent(HasBits* has_bits) { - (*has_bits)[1] |= 4u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagShift& shift(const AppearanceFlags* msg); - static void set_has_shift(HasBits* has_bits) { - (*has_bits)[0] |= 32u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagHeight& height(const AppearanceFlags* msg); - static void set_has_height(HasBits* has_bits) { - (*has_bits)[0] |= 64u; - } - static void set_has_lying_object(HasBits* has_bits) { - (*has_bits)[1] |= 8u; - } - static void set_has_animate_always(HasBits* has_bits) { - (*has_bits)[1] |= 16u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagAutomap& automap(const AppearanceFlags* msg); - static void set_has_automap(HasBits* has_bits) { - (*has_bits)[0] |= 128u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& lenshelp(const AppearanceFlags* msg); - static void set_has_lenshelp(HasBits* has_bits) { - (*has_bits)[0] |= 256u; - } - static void set_has_fullbank(HasBits* has_bits) { - (*has_bits)[1] |= 32u; - } - static void set_has_ignore_look(HasBits* has_bits) { - (*has_bits)[1] |= 64u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagClothes& clothes(const AppearanceFlags* msg); - static void set_has_clothes(HasBits* has_bits) { - (*has_bits)[0] |= 512u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& default_action(const AppearanceFlags* msg); - static void set_has_default_action(HasBits* has_bits) { - (*has_bits)[0] |= 1024u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagMarket& market(const AppearanceFlags* msg); - static void set_has_market(HasBits* has_bits) { - (*has_bits)[0] |= 2048u; - } - static void set_has_wrap(HasBits* has_bits) { - (*has_bits)[1] |= 128u; - } - static void set_has_unwrap(HasBits* has_bits) { - (*has_bits)[1] |= 256u; - } - static void set_has_topeffect(HasBits* has_bits) { - (*has_bits)[1] |= 512u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& changedtoexpire(const AppearanceFlags* msg); - static void set_has_changedtoexpire(HasBits* has_bits) { - (*has_bits)[0] |= 4096u; - } - static void set_has_corpse(HasBits* has_bits) { - (*has_bits)[1] |= 1024u; - } - static void set_has_player_corpse(HasBits* has_bits) { - (*has_bits)[1] |= 2048u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& cyclopediaitem(const AppearanceFlags* msg); - static void set_has_cyclopediaitem(HasBits* has_bits) { - (*has_bits)[0] |= 8192u; - } - static void set_has_ammo(HasBits* has_bits) { - (*has_bits)[1] |= 4096u; - } - static void set_has_show_off_socket(HasBits* has_bits) { - (*has_bits)[1] |= 8192u; - } - static void set_has_reportable(HasBits* has_bits) { - (*has_bits)[1] |= 16384u; - } - static const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& upgradeclassification(const AppearanceFlags* msg); - static void set_has_upgradeclassification(HasBits* has_bits) { - (*has_bits)[0] |= 16384u; - } - static void set_has_reverse_addons_east(HasBits* has_bits) { - (*has_bits)[1] |= 32768u; - } - static void set_has_reverse_addons_west(HasBits* has_bits) { - (*has_bits)[1] |= 65536u; - } - static void set_has_reverse_addons_south(HasBits* has_bits) { - (*has_bits)[1] |= 131072u; - } - static void set_has_reverse_addons_north(HasBits* has_bits) { - (*has_bits)[1] |= 262144u; - } - static void set_has_wearout(HasBits* has_bits) { - (*has_bits)[1] |= 524288u; - } - static void set_has_clockexpire(HasBits* has_bits) { - (*has_bits)[1] |= 1048576u; - } - static void set_has_expire(HasBits* has_bits) { - (*has_bits)[1] |= 2097152u; - } - static void set_has_expirestop(HasBits* has_bits) { - (*has_bits)[1] |= 4194304u; - } - static void set_has_wrapkit(HasBits* has_bits) { - (*has_bits)[1] |= 8388608u; - } -}; - -const ::Canary::protobuf::appearances::AppearanceFlagBank& -AppearanceFlags::_Internal::bank(const AppearanceFlags* msg) { - return *msg->_impl_.bank_; -} -const ::Canary::protobuf::appearances::AppearanceFlagWrite& -AppearanceFlags::_Internal::write(const AppearanceFlags* msg) { - return *msg->_impl_.write_; -} -const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& -AppearanceFlags::_Internal::write_once(const AppearanceFlags* msg) { - return *msg->_impl_.write_once_; -} -const ::Canary::protobuf::appearances::AppearanceFlagHook& -AppearanceFlags::_Internal::hook(const AppearanceFlags* msg) { - return *msg->_impl_.hook_; -} -const ::Canary::protobuf::appearances::AppearanceFlagLight& -AppearanceFlags::_Internal::light(const AppearanceFlags* msg) { - return *msg->_impl_.light_; -} -const ::Canary::protobuf::appearances::AppearanceFlagShift& -AppearanceFlags::_Internal::shift(const AppearanceFlags* msg) { - return *msg->_impl_.shift_; -} -const ::Canary::protobuf::appearances::AppearanceFlagHeight& -AppearanceFlags::_Internal::height(const AppearanceFlags* msg) { - return *msg->_impl_.height_; -} -const ::Canary::protobuf::appearances::AppearanceFlagAutomap& -AppearanceFlags::_Internal::automap(const AppearanceFlags* msg) { - return *msg->_impl_.automap_; -} -const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& -AppearanceFlags::_Internal::lenshelp(const AppearanceFlags* msg) { - return *msg->_impl_.lenshelp_; -} -const ::Canary::protobuf::appearances::AppearanceFlagClothes& -AppearanceFlags::_Internal::clothes(const AppearanceFlags* msg) { - return *msg->_impl_.clothes_; -} -const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& -AppearanceFlags::_Internal::default_action(const AppearanceFlags* msg) { - return *msg->_impl_.default_action_; -} -const ::Canary::protobuf::appearances::AppearanceFlagMarket& -AppearanceFlags::_Internal::market(const AppearanceFlags* msg) { - return *msg->_impl_.market_; -} -const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& -AppearanceFlags::_Internal::changedtoexpire(const AppearanceFlags* msg) { - return *msg->_impl_.changedtoexpire_; -} -const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& -AppearanceFlags::_Internal::cyclopediaitem(const AppearanceFlags* msg) { - return *msg->_impl_.cyclopediaitem_; -} -const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& -AppearanceFlags::_Internal::upgradeclassification(const AppearanceFlags* msg) { - return *msg->_impl_.upgradeclassification_; -} -AppearanceFlags::AppearanceFlags(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlags) -} -AppearanceFlags::AppearanceFlags(const AppearanceFlags& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlags* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.npcsaledata_){from._impl_.npcsaledata_} - , decltype(_impl_.bank_){nullptr} - , decltype(_impl_.write_){nullptr} - , decltype(_impl_.write_once_){nullptr} - , decltype(_impl_.hook_){nullptr} - , decltype(_impl_.light_){nullptr} - , decltype(_impl_.shift_){nullptr} - , decltype(_impl_.height_){nullptr} - , decltype(_impl_.automap_){nullptr} - , decltype(_impl_.lenshelp_){nullptr} - , decltype(_impl_.clothes_){nullptr} - , decltype(_impl_.default_action_){nullptr} - , decltype(_impl_.market_){nullptr} - , decltype(_impl_.changedtoexpire_){nullptr} - , decltype(_impl_.cyclopediaitem_){nullptr} - , decltype(_impl_.upgradeclassification_){nullptr} - , decltype(_impl_.clip_){} - , decltype(_impl_.bottom_){} - , decltype(_impl_.top_){} - , decltype(_impl_.container_){} - , decltype(_impl_.cumulative_){} - , decltype(_impl_.usable_){} - , decltype(_impl_.forceuse_){} - , decltype(_impl_.multiuse_){} - , decltype(_impl_.liquidpool_){} - , decltype(_impl_.unpass_){} - , decltype(_impl_.unmove_){} - , decltype(_impl_.unsight_){} - , decltype(_impl_.avoid_){} - , decltype(_impl_.no_movement_animation_){} - , decltype(_impl_.take_){} - , decltype(_impl_.liquidcontainer_){} - , decltype(_impl_.hang_){} - , decltype(_impl_.rotate_){} - , decltype(_impl_.dont_hide_){} - , decltype(_impl_.translucent_){} - , decltype(_impl_.lying_object_){} - , decltype(_impl_.animate_always_){} - , decltype(_impl_.fullbank_){} - , decltype(_impl_.ignore_look_){} - , decltype(_impl_.wrap_){} - , decltype(_impl_.unwrap_){} - , decltype(_impl_.topeffect_){} - , decltype(_impl_.corpse_){} - , decltype(_impl_.player_corpse_){} - , decltype(_impl_.ammo_){} - , decltype(_impl_.show_off_socket_){} - , decltype(_impl_.reportable_){} - , decltype(_impl_.reverse_addons_east_){} - , decltype(_impl_.reverse_addons_west_){} - , decltype(_impl_.reverse_addons_south_){} - , decltype(_impl_.reverse_addons_north_){} - , decltype(_impl_.wearout_){} - , decltype(_impl_.clockexpire_){} - , decltype(_impl_.expire_){} - , decltype(_impl_.expirestop_){} - , decltype(_impl_.wrapkit_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_bank()) { - _this->_impl_.bank_ = new ::Canary::protobuf::appearances::AppearanceFlagBank(*from._impl_.bank_); - } - if (from._internal_has_write()) { - _this->_impl_.write_ = new ::Canary::protobuf::appearances::AppearanceFlagWrite(*from._impl_.write_); - } - if (from._internal_has_write_once()) { - _this->_impl_.write_once_ = new ::Canary::protobuf::appearances::AppearanceFlagWriteOnce(*from._impl_.write_once_); - } - if (from._internal_has_hook()) { - _this->_impl_.hook_ = new ::Canary::protobuf::appearances::AppearanceFlagHook(*from._impl_.hook_); - } - if (from._internal_has_light()) { - _this->_impl_.light_ = new ::Canary::protobuf::appearances::AppearanceFlagLight(*from._impl_.light_); - } - if (from._internal_has_shift()) { - _this->_impl_.shift_ = new ::Canary::protobuf::appearances::AppearanceFlagShift(*from._impl_.shift_); - } - if (from._internal_has_height()) { - _this->_impl_.height_ = new ::Canary::protobuf::appearances::AppearanceFlagHeight(*from._impl_.height_); - } - if (from._internal_has_automap()) { - _this->_impl_.automap_ = new ::Canary::protobuf::appearances::AppearanceFlagAutomap(*from._impl_.automap_); - } - if (from._internal_has_lenshelp()) { - _this->_impl_.lenshelp_ = new ::Canary::protobuf::appearances::AppearanceFlagLenshelp(*from._impl_.lenshelp_); - } - if (from._internal_has_clothes()) { - _this->_impl_.clothes_ = new ::Canary::protobuf::appearances::AppearanceFlagClothes(*from._impl_.clothes_); - } - if (from._internal_has_default_action()) { - _this->_impl_.default_action_ = new ::Canary::protobuf::appearances::AppearanceFlagDefaultAction(*from._impl_.default_action_); - } - if (from._internal_has_market()) { - _this->_impl_.market_ = new ::Canary::protobuf::appearances::AppearanceFlagMarket(*from._impl_.market_); - } - if (from._internal_has_changedtoexpire()) { - _this->_impl_.changedtoexpire_ = new ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire(*from._impl_.changedtoexpire_); - } - if (from._internal_has_cyclopediaitem()) { - _this->_impl_.cyclopediaitem_ = new ::Canary::protobuf::appearances::AppearanceFlagCyclopedia(*from._impl_.cyclopediaitem_); - } - if (from._internal_has_upgradeclassification()) { - _this->_impl_.upgradeclassification_ = new ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification(*from._impl_.upgradeclassification_); - } - ::memcpy(&_impl_.clip_, &from._impl_.clip_, - static_cast(reinterpret_cast(&_impl_.wrapkit_) - - reinterpret_cast(&_impl_.clip_)) + sizeof(_impl_.wrapkit_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlags) -} - -inline void AppearanceFlags::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.npcsaledata_){arena} - , decltype(_impl_.bank_){nullptr} - , decltype(_impl_.write_){nullptr} - , decltype(_impl_.write_once_){nullptr} - , decltype(_impl_.hook_){nullptr} - , decltype(_impl_.light_){nullptr} - , decltype(_impl_.shift_){nullptr} - , decltype(_impl_.height_){nullptr} - , decltype(_impl_.automap_){nullptr} - , decltype(_impl_.lenshelp_){nullptr} - , decltype(_impl_.clothes_){nullptr} - , decltype(_impl_.default_action_){nullptr} - , decltype(_impl_.market_){nullptr} - , decltype(_impl_.changedtoexpire_){nullptr} - , decltype(_impl_.cyclopediaitem_){nullptr} - , decltype(_impl_.upgradeclassification_){nullptr} - , decltype(_impl_.clip_){false} - , decltype(_impl_.bottom_){false} - , decltype(_impl_.top_){false} - , decltype(_impl_.container_){false} - , decltype(_impl_.cumulative_){false} - , decltype(_impl_.usable_){false} - , decltype(_impl_.forceuse_){false} - , decltype(_impl_.multiuse_){false} - , decltype(_impl_.liquidpool_){false} - , decltype(_impl_.unpass_){false} - , decltype(_impl_.unmove_){false} - , decltype(_impl_.unsight_){false} - , decltype(_impl_.avoid_){false} - , decltype(_impl_.no_movement_animation_){false} - , decltype(_impl_.take_){false} - , decltype(_impl_.liquidcontainer_){false} - , decltype(_impl_.hang_){false} - , decltype(_impl_.rotate_){false} - , decltype(_impl_.dont_hide_){false} - , decltype(_impl_.translucent_){false} - , decltype(_impl_.lying_object_){false} - , decltype(_impl_.animate_always_){false} - , decltype(_impl_.fullbank_){false} - , decltype(_impl_.ignore_look_){false} - , decltype(_impl_.wrap_){false} - , decltype(_impl_.unwrap_){false} - , decltype(_impl_.topeffect_){false} - , decltype(_impl_.corpse_){false} - , decltype(_impl_.player_corpse_){false} - , decltype(_impl_.ammo_){false} - , decltype(_impl_.show_off_socket_){false} - , decltype(_impl_.reportable_){false} - , decltype(_impl_.reverse_addons_east_){false} - , decltype(_impl_.reverse_addons_west_){false} - , decltype(_impl_.reverse_addons_south_){false} - , decltype(_impl_.reverse_addons_north_){false} - , decltype(_impl_.wearout_){false} - , decltype(_impl_.clockexpire_){false} - , decltype(_impl_.expire_){false} - , decltype(_impl_.expirestop_){false} - , decltype(_impl_.wrapkit_){false} - }; -} - -AppearanceFlags::~AppearanceFlags() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlags) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlags::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.npcsaledata_.~RepeatedPtrField(); - if (this != internal_default_instance()) delete _impl_.bank_; - if (this != internal_default_instance()) delete _impl_.write_; - if (this != internal_default_instance()) delete _impl_.write_once_; - if (this != internal_default_instance()) delete _impl_.hook_; - if (this != internal_default_instance()) delete _impl_.light_; - if (this != internal_default_instance()) delete _impl_.shift_; - if (this != internal_default_instance()) delete _impl_.height_; - if (this != internal_default_instance()) delete _impl_.automap_; - if (this != internal_default_instance()) delete _impl_.lenshelp_; - if (this != internal_default_instance()) delete _impl_.clothes_; - if (this != internal_default_instance()) delete _impl_.default_action_; - if (this != internal_default_instance()) delete _impl_.market_; - if (this != internal_default_instance()) delete _impl_.changedtoexpire_; - if (this != internal_default_instance()) delete _impl_.cyclopediaitem_; - if (this != internal_default_instance()) delete _impl_.upgradeclassification_; -} - -void AppearanceFlags::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlags::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlags) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.npcsaledata_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x000000ffu) { - if (cached_has_bits & 0x00000001u) { - GOOGLE_DCHECK(_impl_.bank_ != nullptr); - _impl_.bank_->Clear(); - } - if (cached_has_bits & 0x00000002u) { - GOOGLE_DCHECK(_impl_.write_ != nullptr); - _impl_.write_->Clear(); - } - if (cached_has_bits & 0x00000004u) { - GOOGLE_DCHECK(_impl_.write_once_ != nullptr); - _impl_.write_once_->Clear(); - } - if (cached_has_bits & 0x00000008u) { - GOOGLE_DCHECK(_impl_.hook_ != nullptr); - _impl_.hook_->Clear(); - } - if (cached_has_bits & 0x00000010u) { - GOOGLE_DCHECK(_impl_.light_ != nullptr); - _impl_.light_->Clear(); - } - if (cached_has_bits & 0x00000020u) { - GOOGLE_DCHECK(_impl_.shift_ != nullptr); - _impl_.shift_->Clear(); - } - if (cached_has_bits & 0x00000040u) { - GOOGLE_DCHECK(_impl_.height_ != nullptr); - _impl_.height_->Clear(); - } - if (cached_has_bits & 0x00000080u) { - GOOGLE_DCHECK(_impl_.automap_ != nullptr); - _impl_.automap_->Clear(); - } - } - if (cached_has_bits & 0x00007f00u) { - if (cached_has_bits & 0x00000100u) { - GOOGLE_DCHECK(_impl_.lenshelp_ != nullptr); - _impl_.lenshelp_->Clear(); - } - if (cached_has_bits & 0x00000200u) { - GOOGLE_DCHECK(_impl_.clothes_ != nullptr); - _impl_.clothes_->Clear(); - } - if (cached_has_bits & 0x00000400u) { - GOOGLE_DCHECK(_impl_.default_action_ != nullptr); - _impl_.default_action_->Clear(); - } - if (cached_has_bits & 0x00000800u) { - GOOGLE_DCHECK(_impl_.market_ != nullptr); - _impl_.market_->Clear(); - } - if (cached_has_bits & 0x00001000u) { - GOOGLE_DCHECK(_impl_.changedtoexpire_ != nullptr); - _impl_.changedtoexpire_->Clear(); - } - if (cached_has_bits & 0x00002000u) { - GOOGLE_DCHECK(_impl_.cyclopediaitem_ != nullptr); - _impl_.cyclopediaitem_->Clear(); - } - if (cached_has_bits & 0x00004000u) { - GOOGLE_DCHECK(_impl_.upgradeclassification_ != nullptr); - _impl_.upgradeclassification_->Clear(); - } - } - _impl_.clip_ = false; - if (cached_has_bits & 0x00ff0000u) { - ::memset(&_impl_.bottom_, 0, static_cast( - reinterpret_cast(&_impl_.liquidpool_) - - reinterpret_cast(&_impl_.bottom_)) + sizeof(_impl_.liquidpool_)); - } - if (cached_has_bits & 0xff000000u) { - ::memset(&_impl_.unpass_, 0, static_cast( - reinterpret_cast(&_impl_.hang_) - - reinterpret_cast(&_impl_.unpass_)) + sizeof(_impl_.hang_)); - } - cached_has_bits = _impl_._has_bits_[1]; - if (cached_has_bits & 0x000000ffu) { - ::memset(&_impl_.rotate_, 0, static_cast( - reinterpret_cast(&_impl_.wrap_) - - reinterpret_cast(&_impl_.rotate_)) + sizeof(_impl_.wrap_)); - } - if (cached_has_bits & 0x0000ff00u) { - ::memset(&_impl_.unwrap_, 0, static_cast( - reinterpret_cast(&_impl_.reverse_addons_east_) - - reinterpret_cast(&_impl_.unwrap_)) + sizeof(_impl_.reverse_addons_east_)); - } - if (cached_has_bits & 0x00ff0000u) { - ::memset(&_impl_.reverse_addons_west_, 0, static_cast( - reinterpret_cast(&_impl_.wrapkit_) - - reinterpret_cast(&_impl_.reverse_addons_west_)) + sizeof(_impl_.wrapkit_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlags::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional .Canary.protobuf.appearances.AppearanceFlagBank bank = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_bank(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool clip = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_clip(&_impl_._has_bits_); - _impl_.clip_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool bottom = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_bottom(&_impl_._has_bits_); - _impl_.bottom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool top = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _Internal::set_has_top(&_impl_._has_bits_); - _impl_.top_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool container = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_container(&_impl_._has_bits_); - _impl_.container_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool cumulative = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _Internal::set_has_cumulative(&_impl_._has_bits_); - _impl_.cumulative_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool usable = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - _Internal::set_has_usable(&_impl_._has_bits_); - _impl_.usable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool forceuse = 8; - case 8: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 64)) { - _Internal::set_has_forceuse(&_impl_._has_bits_); - _impl_.forceuse_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool multiuse = 9; - case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 72)) { - _Internal::set_has_multiuse(&_impl_._has_bits_); - _impl_.multiuse_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagWrite write = 10; - case 10: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 82)) { - ptr = ctx->ParseMessage(_internal_mutable_write(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagWriteOnce write_once = 11; - case 11: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 90)) { - ptr = ctx->ParseMessage(_internal_mutable_write_once(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool liquidpool = 12; - case 12: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 96)) { - _Internal::set_has_liquidpool(&_impl_._has_bits_); - _impl_.liquidpool_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool unpass = 13; - case 13: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 104)) { - _Internal::set_has_unpass(&_impl_._has_bits_); - _impl_.unpass_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool unmove = 14; - case 14: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 112)) { - _Internal::set_has_unmove(&_impl_._has_bits_); - _impl_.unmove_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool unsight = 15; - case 15: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 120)) { - _Internal::set_has_unsight(&_impl_._has_bits_); - _impl_.unsight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool avoid = 16; - case 16: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 128)) { - _Internal::set_has_avoid(&_impl_._has_bits_); - _impl_.avoid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool no_movement_animation = 17; - case 17: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 136)) { - _Internal::set_has_no_movement_animation(&_impl_._has_bits_); - _impl_.no_movement_animation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool take = 18; - case 18: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 144)) { - _Internal::set_has_take(&_impl_._has_bits_); - _impl_.take_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool liquidcontainer = 19; - case 19: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 152)) { - _Internal::set_has_liquidcontainer(&_impl_._has_bits_); - _impl_.liquidcontainer_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool hang = 20; - case 20: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 160)) { - _Internal::set_has_hang(&_impl_._has_bits_); - _impl_.hang_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagHook hook = 21; - case 21: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 170)) { - ptr = ctx->ParseMessage(_internal_mutable_hook(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool rotate = 22; - case 22: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 176)) { - _Internal::set_has_rotate(&_impl_._has_bits_); - _impl_.rotate_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagLight light = 23; - case 23: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 186)) { - ptr = ctx->ParseMessage(_internal_mutable_light(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool dont_hide = 24; - case 24: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 192)) { - _Internal::set_has_dont_hide(&_impl_._has_bits_); - _impl_.dont_hide_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool translucent = 25; - case 25: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 200)) { - _Internal::set_has_translucent(&_impl_._has_bits_); - _impl_.translucent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagShift shift = 26; - case 26: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 210)) { - ptr = ctx->ParseMessage(_internal_mutable_shift(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagHeight height = 27; - case 27: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 218)) { - ptr = ctx->ParseMessage(_internal_mutable_height(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool lying_object = 28; - case 28: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 224)) { - _Internal::set_has_lying_object(&_impl_._has_bits_); - _impl_.lying_object_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool animate_always = 29; - case 29: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 232)) { - _Internal::set_has_animate_always(&_impl_._has_bits_); - _impl_.animate_always_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagAutomap automap = 30; - case 30: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 242)) { - ptr = ctx->ParseMessage(_internal_mutable_automap(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagLenshelp lenshelp = 31; - case 31: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 250)) { - ptr = ctx->ParseMessage(_internal_mutable_lenshelp(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool fullbank = 32; - case 32: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 0)) { - _Internal::set_has_fullbank(&_impl_._has_bits_); - _impl_.fullbank_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool ignore_look = 33; - case 33: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_ignore_look(&_impl_._has_bits_); - _impl_.ignore_look_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagClothes clothes = 34; - case 34: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_clothes(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagDefaultAction default_action = 35; - case 35: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { - ptr = ctx->ParseMessage(_internal_mutable_default_action(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagMarket market = 36; - case 36: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { - ptr = ctx->ParseMessage(_internal_mutable_market(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool wrap = 37; - case 37: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_wrap(&_impl_._has_bits_); - _impl_.wrap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool unwrap = 38; - case 38: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _Internal::set_has_unwrap(&_impl_._has_bits_); - _impl_.unwrap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool topeffect = 39; - case 39: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - _Internal::set_has_topeffect(&_impl_._has_bits_); - _impl_.topeffect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.AppearanceFlagNPC npcsaledata = 40; - case 40: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 66)) { - ptr -= 2; - do { - ptr += 2; - ptr = ctx->ParseMessage(_internal_add_npcsaledata(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<322>(ptr)); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagChangedToExpire changedtoexpire = 41; - case 41: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 74)) { - ptr = ctx->ParseMessage(_internal_mutable_changedtoexpire(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool corpse = 42; - case 42: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 80)) { - _Internal::set_has_corpse(&_impl_._has_bits_); - _impl_.corpse_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool player_corpse = 43; - case 43: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 88)) { - _Internal::set_has_player_corpse(&_impl_._has_bits_); - _impl_.player_corpse_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagCyclopedia cyclopediaitem = 44; - case 44: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 98)) { - ptr = ctx->ParseMessage(_internal_mutable_cyclopediaitem(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool ammo = 45; - case 45: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 104)) { - _Internal::set_has_ammo(&_impl_._has_bits_); - _impl_.ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool show_off_socket = 46; - case 46: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 112)) { - _Internal::set_has_show_off_socket(&_impl_._has_bits_); - _impl_.show_off_socket_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool reportable = 47; - case 47: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 120)) { - _Internal::set_has_reportable(&_impl_._has_bits_); - _impl_.reportable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional .Canary.protobuf.appearances.AppearanceFlagUpgradeClassification upgradeclassification = 48; - case 48: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 130)) { - ptr = ctx->ParseMessage(_internal_mutable_upgradeclassification(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool reverse_addons_east = 49; - case 49: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 136)) { - _Internal::set_has_reverse_addons_east(&_impl_._has_bits_); - _impl_.reverse_addons_east_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool reverse_addons_west = 50; - case 50: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 144)) { - _Internal::set_has_reverse_addons_west(&_impl_._has_bits_); - _impl_.reverse_addons_west_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool reverse_addons_south = 51; - case 51: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 152)) { - _Internal::set_has_reverse_addons_south(&_impl_._has_bits_); - _impl_.reverse_addons_south_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool reverse_addons_north = 52; - case 52: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 160)) { - _Internal::set_has_reverse_addons_north(&_impl_._has_bits_); - _impl_.reverse_addons_north_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool wearout = 53; - case 53: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 168)) { - _Internal::set_has_wearout(&_impl_._has_bits_); - _impl_.wearout_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool clockexpire = 54; - case 54: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 176)) { - _Internal::set_has_clockexpire(&_impl_._has_bits_); - _impl_.clockexpire_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool expire = 55; - case 55: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 184)) { - _Internal::set_has_expire(&_impl_._has_bits_); - _impl_.expire_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool expirestop = 56; - case 56: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 192)) { - _Internal::set_has_expirestop(&_impl_._has_bits_); - _impl_.expirestop_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bool wrapkit = 57; - case 57: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 200)) { - _Internal::set_has_wrapkit(&_impl_._has_bits_); - _impl_.wrapkit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlags::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlags) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagBank bank = 1; - if (cached_has_bits & 0x00000001u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, _Internal::bank(this), - _Internal::bank(this).GetCachedSize(), target, stream); - } - - // optional bool clip = 2; - if (cached_has_bits & 0x00008000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_clip(), target); - } - - // optional bool bottom = 3; - if (cached_has_bits & 0x00010000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_bottom(), target); - } - - // optional bool top = 4; - if (cached_has_bits & 0x00020000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_top(), target); - } - - // optional bool container = 5; - if (cached_has_bits & 0x00040000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(5, this->_internal_container(), target); - } - - // optional bool cumulative = 6; - if (cached_has_bits & 0x00080000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_cumulative(), target); - } - - // optional bool usable = 7; - if (cached_has_bits & 0x00100000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(7, this->_internal_usable(), target); - } - - // optional bool forceuse = 8; - if (cached_has_bits & 0x00200000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(8, this->_internal_forceuse(), target); - } - - // optional bool multiuse = 9; - if (cached_has_bits & 0x00400000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(9, this->_internal_multiuse(), target); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagWrite write = 10; - if (cached_has_bits & 0x00000002u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(10, _Internal::write(this), - _Internal::write(this).GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagWriteOnce write_once = 11; - if (cached_has_bits & 0x00000004u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(11, _Internal::write_once(this), - _Internal::write_once(this).GetCachedSize(), target, stream); - } - - // optional bool liquidpool = 12; - if (cached_has_bits & 0x00800000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(12, this->_internal_liquidpool(), target); - } - - // optional bool unpass = 13; - if (cached_has_bits & 0x01000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(13, this->_internal_unpass(), target); - } - - // optional bool unmove = 14; - if (cached_has_bits & 0x02000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(14, this->_internal_unmove(), target); - } - - // optional bool unsight = 15; - if (cached_has_bits & 0x04000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(15, this->_internal_unsight(), target); - } - - // optional bool avoid = 16; - if (cached_has_bits & 0x08000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(16, this->_internal_avoid(), target); - } - - // optional bool no_movement_animation = 17; - if (cached_has_bits & 0x10000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(17, this->_internal_no_movement_animation(), target); - } - - // optional bool take = 18; - if (cached_has_bits & 0x20000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(18, this->_internal_take(), target); - } - - // optional bool liquidcontainer = 19; - if (cached_has_bits & 0x40000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(19, this->_internal_liquidcontainer(), target); - } - - // optional bool hang = 20; - if (cached_has_bits & 0x80000000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(20, this->_internal_hang(), target); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagHook hook = 21; - if (cached_has_bits & 0x00000008u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(21, _Internal::hook(this), - _Internal::hook(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool rotate = 22; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(22, this->_internal_rotate(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagLight light = 23; - if (cached_has_bits & 0x00000010u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(23, _Internal::light(this), - _Internal::light(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool dont_hide = 24; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(24, this->_internal_dont_hide(), target); - } - - // optional bool translucent = 25; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(25, this->_internal_translucent(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagShift shift = 26; - if (cached_has_bits & 0x00000020u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(26, _Internal::shift(this), - _Internal::shift(this).GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagHeight height = 27; - if (cached_has_bits & 0x00000040u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(27, _Internal::height(this), - _Internal::height(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool lying_object = 28; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(28, this->_internal_lying_object(), target); - } - - // optional bool animate_always = 29; - if (cached_has_bits & 0x00000010u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(29, this->_internal_animate_always(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagAutomap automap = 30; - if (cached_has_bits & 0x00000080u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(30, _Internal::automap(this), - _Internal::automap(this).GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagLenshelp lenshelp = 31; - if (cached_has_bits & 0x00000100u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(31, _Internal::lenshelp(this), - _Internal::lenshelp(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool fullbank = 32; - if (cached_has_bits & 0x00000020u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(32, this->_internal_fullbank(), target); - } - - // optional bool ignore_look = 33; - if (cached_has_bits & 0x00000040u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(33, this->_internal_ignore_look(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagClothes clothes = 34; - if (cached_has_bits & 0x00000200u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(34, _Internal::clothes(this), - _Internal::clothes(this).GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagDefaultAction default_action = 35; - if (cached_has_bits & 0x00000400u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(35, _Internal::default_action(this), - _Internal::default_action(this).GetCachedSize(), target, stream); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagMarket market = 36; - if (cached_has_bits & 0x00000800u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(36, _Internal::market(this), - _Internal::market(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool wrap = 37; - if (cached_has_bits & 0x00000080u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(37, this->_internal_wrap(), target); - } - - // optional bool unwrap = 38; - if (cached_has_bits & 0x00000100u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(38, this->_internal_unwrap(), target); - } - - // optional bool topeffect = 39; - if (cached_has_bits & 0x00000200u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(39, this->_internal_topeffect(), target); - } - - // repeated .Canary.protobuf.appearances.AppearanceFlagNPC npcsaledata = 40; - for (unsigned i = 0, - n = static_cast(this->_internal_npcsaledata_size()); i < n; i++) { - const auto& repfield = this->_internal_npcsaledata(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(40, repfield, repfield.GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagChangedToExpire changedtoexpire = 41; - if (cached_has_bits & 0x00001000u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(41, _Internal::changedtoexpire(this), - _Internal::changedtoexpire(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool corpse = 42; - if (cached_has_bits & 0x00000400u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(42, this->_internal_corpse(), target); - } - - // optional bool player_corpse = 43; - if (cached_has_bits & 0x00000800u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(43, this->_internal_player_corpse(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagCyclopedia cyclopediaitem = 44; - if (cached_has_bits & 0x00002000u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(44, _Internal::cyclopediaitem(this), - _Internal::cyclopediaitem(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool ammo = 45; - if (cached_has_bits & 0x00001000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(45, this->_internal_ammo(), target); - } - - // optional bool show_off_socket = 46; - if (cached_has_bits & 0x00002000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(46, this->_internal_show_off_socket(), target); - } - - // optional bool reportable = 47; - if (cached_has_bits & 0x00004000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(47, this->_internal_reportable(), target); - } - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.AppearanceFlagUpgradeClassification upgradeclassification = 48; - if (cached_has_bits & 0x00004000u) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(48, _Internal::upgradeclassification(this), - _Internal::upgradeclassification(this).GetCachedSize(), target, stream); - } - - cached_has_bits = _impl_._has_bits_[1]; - // optional bool reverse_addons_east = 49; - if (cached_has_bits & 0x00008000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(49, this->_internal_reverse_addons_east(), target); - } - - // optional bool reverse_addons_west = 50; - if (cached_has_bits & 0x00010000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(50, this->_internal_reverse_addons_west(), target); - } - - // optional bool reverse_addons_south = 51; - if (cached_has_bits & 0x00020000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(51, this->_internal_reverse_addons_south(), target); - } - - // optional bool reverse_addons_north = 52; - if (cached_has_bits & 0x00040000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(52, this->_internal_reverse_addons_north(), target); - } - - // optional bool wearout = 53; - if (cached_has_bits & 0x00080000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(53, this->_internal_wearout(), target); - } - - // optional bool clockexpire = 54; - if (cached_has_bits & 0x00100000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(54, this->_internal_clockexpire(), target); - } - - // optional bool expire = 55; - if (cached_has_bits & 0x00200000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(55, this->_internal_expire(), target); - } - - // optional bool expirestop = 56; - if (cached_has_bits & 0x00400000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(56, this->_internal_expirestop(), target); - } - - // optional bool wrapkit = 57; - if (cached_has_bits & 0x00800000u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(57, this->_internal_wrapkit(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlags) - return target; -} - -size_t AppearanceFlags::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlags) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.AppearanceFlagNPC npcsaledata = 40; - total_size += 2UL * this->_internal_npcsaledata_size(); - for (const auto& msg : this->_impl_.npcsaledata_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x000000ffu) { - // optional .Canary.protobuf.appearances.AppearanceFlagBank bank = 1; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.bank_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagWrite write = 10; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.write_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagWriteOnce write_once = 11; - if (cached_has_bits & 0x00000004u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.write_once_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagHook hook = 21; - if (cached_has_bits & 0x00000008u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.hook_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagLight light = 23; - if (cached_has_bits & 0x00000010u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.light_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagShift shift = 26; - if (cached_has_bits & 0x00000020u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.shift_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagHeight height = 27; - if (cached_has_bits & 0x00000040u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.height_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagAutomap automap = 30; - if (cached_has_bits & 0x00000080u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.automap_); - } - - } - if (cached_has_bits & 0x0000ff00u) { - // optional .Canary.protobuf.appearances.AppearanceFlagLenshelp lenshelp = 31; - if (cached_has_bits & 0x00000100u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.lenshelp_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagClothes clothes = 34; - if (cached_has_bits & 0x00000200u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.clothes_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagDefaultAction default_action = 35; - if (cached_has_bits & 0x00000400u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.default_action_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagMarket market = 36; - if (cached_has_bits & 0x00000800u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.market_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagChangedToExpire changedtoexpire = 41; - if (cached_has_bits & 0x00001000u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.changedtoexpire_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagCyclopedia cyclopediaitem = 44; - if (cached_has_bits & 0x00002000u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.cyclopediaitem_); - } - - // optional .Canary.protobuf.appearances.AppearanceFlagUpgradeClassification upgradeclassification = 48; - if (cached_has_bits & 0x00004000u) { - total_size += 2 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.upgradeclassification_); - } - - // optional bool clip = 2; - if (cached_has_bits & 0x00008000u) { - total_size += 1 + 1; - } - - } - if (cached_has_bits & 0x00ff0000u) { - // optional bool bottom = 3; - if (cached_has_bits & 0x00010000u) { - total_size += 1 + 1; - } - - // optional bool top = 4; - if (cached_has_bits & 0x00020000u) { - total_size += 1 + 1; - } - - // optional bool container = 5; - if (cached_has_bits & 0x00040000u) { - total_size += 1 + 1; - } - - // optional bool cumulative = 6; - if (cached_has_bits & 0x00080000u) { - total_size += 1 + 1; - } - - // optional bool usable = 7; - if (cached_has_bits & 0x00100000u) { - total_size += 1 + 1; - } - - // optional bool forceuse = 8; - if (cached_has_bits & 0x00200000u) { - total_size += 1 + 1; - } - - // optional bool multiuse = 9; - if (cached_has_bits & 0x00400000u) { - total_size += 1 + 1; - } - - // optional bool liquidpool = 12; - if (cached_has_bits & 0x00800000u) { - total_size += 1 + 1; - } - - } - if (cached_has_bits & 0xff000000u) { - // optional bool unpass = 13; - if (cached_has_bits & 0x01000000u) { - total_size += 1 + 1; - } - - // optional bool unmove = 14; - if (cached_has_bits & 0x02000000u) { - total_size += 1 + 1; - } - - // optional bool unsight = 15; - if (cached_has_bits & 0x04000000u) { - total_size += 1 + 1; - } - - // optional bool avoid = 16; - if (cached_has_bits & 0x08000000u) { - total_size += 2 + 1; - } - - // optional bool no_movement_animation = 17; - if (cached_has_bits & 0x10000000u) { - total_size += 2 + 1; - } - - // optional bool take = 18; - if (cached_has_bits & 0x20000000u) { - total_size += 2 + 1; - } - - // optional bool liquidcontainer = 19; - if (cached_has_bits & 0x40000000u) { - total_size += 2 + 1; - } - - // optional bool hang = 20; - if (cached_has_bits & 0x80000000u) { - total_size += 2 + 1; - } - - } - cached_has_bits = _impl_._has_bits_[1]; - if (cached_has_bits & 0x000000ffu) { - // optional bool rotate = 22; - if (cached_has_bits & 0x00000001u) { - total_size += 2 + 1; - } - - // optional bool dont_hide = 24; - if (cached_has_bits & 0x00000002u) { - total_size += 2 + 1; - } - - // optional bool translucent = 25; - if (cached_has_bits & 0x00000004u) { - total_size += 2 + 1; - } - - // optional bool lying_object = 28; - if (cached_has_bits & 0x00000008u) { - total_size += 2 + 1; - } - - // optional bool animate_always = 29; - if (cached_has_bits & 0x00000010u) { - total_size += 2 + 1; - } - - // optional bool fullbank = 32; - if (cached_has_bits & 0x00000020u) { - total_size += 2 + 1; - } - - // optional bool ignore_look = 33; - if (cached_has_bits & 0x00000040u) { - total_size += 2 + 1; - } - - // optional bool wrap = 37; - if (cached_has_bits & 0x00000080u) { - total_size += 2 + 1; - } - - } - if (cached_has_bits & 0x0000ff00u) { - // optional bool unwrap = 38; - if (cached_has_bits & 0x00000100u) { - total_size += 2 + 1; - } - - // optional bool topeffect = 39; - if (cached_has_bits & 0x00000200u) { - total_size += 2 + 1; - } - - // optional bool corpse = 42; - if (cached_has_bits & 0x00000400u) { - total_size += 2 + 1; - } - - // optional bool player_corpse = 43; - if (cached_has_bits & 0x00000800u) { - total_size += 2 + 1; - } - - // optional bool ammo = 45; - if (cached_has_bits & 0x00001000u) { - total_size += 2 + 1; - } - - // optional bool show_off_socket = 46; - if (cached_has_bits & 0x00002000u) { - total_size += 2 + 1; - } - - // optional bool reportable = 47; - if (cached_has_bits & 0x00004000u) { - total_size += 2 + 1; - } - - // optional bool reverse_addons_east = 49; - if (cached_has_bits & 0x00008000u) { - total_size += 2 + 1; - } - - } - if (cached_has_bits & 0x00ff0000u) { - // optional bool reverse_addons_west = 50; - if (cached_has_bits & 0x00010000u) { - total_size += 2 + 1; - } - - // optional bool reverse_addons_south = 51; - if (cached_has_bits & 0x00020000u) { - total_size += 2 + 1; - } - - // optional bool reverse_addons_north = 52; - if (cached_has_bits & 0x00040000u) { - total_size += 2 + 1; - } - - // optional bool wearout = 53; - if (cached_has_bits & 0x00080000u) { - total_size += 2 + 1; - } - - // optional bool clockexpire = 54; - if (cached_has_bits & 0x00100000u) { - total_size += 2 + 1; - } - - // optional bool expire = 55; - if (cached_has_bits & 0x00200000u) { - total_size += 2 + 1; - } - - // optional bool expirestop = 56; - if (cached_has_bits & 0x00400000u) { - total_size += 2 + 1; - } - - // optional bool wrapkit = 57; - if (cached_has_bits & 0x00800000u) { - total_size += 2 + 1; - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlags::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlags::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlags::GetClassData() const { return &_class_data_; } - - -void AppearanceFlags::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlags) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.npcsaledata_.MergeFrom(from._impl_.npcsaledata_); - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x000000ffu) { - if (cached_has_bits & 0x00000001u) { - _this->_internal_mutable_bank()->::Canary::protobuf::appearances::AppearanceFlagBank::MergeFrom( - from._internal_bank()); - } - if (cached_has_bits & 0x00000002u) { - _this->_internal_mutable_write()->::Canary::protobuf::appearances::AppearanceFlagWrite::MergeFrom( - from._internal_write()); - } - if (cached_has_bits & 0x00000004u) { - _this->_internal_mutable_write_once()->::Canary::protobuf::appearances::AppearanceFlagWriteOnce::MergeFrom( - from._internal_write_once()); - } - if (cached_has_bits & 0x00000008u) { - _this->_internal_mutable_hook()->::Canary::protobuf::appearances::AppearanceFlagHook::MergeFrom( - from._internal_hook()); - } - if (cached_has_bits & 0x00000010u) { - _this->_internal_mutable_light()->::Canary::protobuf::appearances::AppearanceFlagLight::MergeFrom( - from._internal_light()); - } - if (cached_has_bits & 0x00000020u) { - _this->_internal_mutable_shift()->::Canary::protobuf::appearances::AppearanceFlagShift::MergeFrom( - from._internal_shift()); - } - if (cached_has_bits & 0x00000040u) { - _this->_internal_mutable_height()->::Canary::protobuf::appearances::AppearanceFlagHeight::MergeFrom( - from._internal_height()); - } - if (cached_has_bits & 0x00000080u) { - _this->_internal_mutable_automap()->::Canary::protobuf::appearances::AppearanceFlagAutomap::MergeFrom( - from._internal_automap()); - } - } - if (cached_has_bits & 0x0000ff00u) { - if (cached_has_bits & 0x00000100u) { - _this->_internal_mutable_lenshelp()->::Canary::protobuf::appearances::AppearanceFlagLenshelp::MergeFrom( - from._internal_lenshelp()); - } - if (cached_has_bits & 0x00000200u) { - _this->_internal_mutable_clothes()->::Canary::protobuf::appearances::AppearanceFlagClothes::MergeFrom( - from._internal_clothes()); - } - if (cached_has_bits & 0x00000400u) { - _this->_internal_mutable_default_action()->::Canary::protobuf::appearances::AppearanceFlagDefaultAction::MergeFrom( - from._internal_default_action()); - } - if (cached_has_bits & 0x00000800u) { - _this->_internal_mutable_market()->::Canary::protobuf::appearances::AppearanceFlagMarket::MergeFrom( - from._internal_market()); - } - if (cached_has_bits & 0x00001000u) { - _this->_internal_mutable_changedtoexpire()->::Canary::protobuf::appearances::AppearanceFlagChangedToExpire::MergeFrom( - from._internal_changedtoexpire()); - } - if (cached_has_bits & 0x00002000u) { - _this->_internal_mutable_cyclopediaitem()->::Canary::protobuf::appearances::AppearanceFlagCyclopedia::MergeFrom( - from._internal_cyclopediaitem()); - } - if (cached_has_bits & 0x00004000u) { - _this->_internal_mutable_upgradeclassification()->::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification::MergeFrom( - from._internal_upgradeclassification()); - } - if (cached_has_bits & 0x00008000u) { - _this->_impl_.clip_ = from._impl_.clip_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - if (cached_has_bits & 0x00ff0000u) { - if (cached_has_bits & 0x00010000u) { - _this->_impl_.bottom_ = from._impl_.bottom_; - } - if (cached_has_bits & 0x00020000u) { - _this->_impl_.top_ = from._impl_.top_; - } - if (cached_has_bits & 0x00040000u) { - _this->_impl_.container_ = from._impl_.container_; - } - if (cached_has_bits & 0x00080000u) { - _this->_impl_.cumulative_ = from._impl_.cumulative_; - } - if (cached_has_bits & 0x00100000u) { - _this->_impl_.usable_ = from._impl_.usable_; - } - if (cached_has_bits & 0x00200000u) { - _this->_impl_.forceuse_ = from._impl_.forceuse_; - } - if (cached_has_bits & 0x00400000u) { - _this->_impl_.multiuse_ = from._impl_.multiuse_; - } - if (cached_has_bits & 0x00800000u) { - _this->_impl_.liquidpool_ = from._impl_.liquidpool_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - if (cached_has_bits & 0xff000000u) { - if (cached_has_bits & 0x01000000u) { - _this->_impl_.unpass_ = from._impl_.unpass_; - } - if (cached_has_bits & 0x02000000u) { - _this->_impl_.unmove_ = from._impl_.unmove_; - } - if (cached_has_bits & 0x04000000u) { - _this->_impl_.unsight_ = from._impl_.unsight_; - } - if (cached_has_bits & 0x08000000u) { - _this->_impl_.avoid_ = from._impl_.avoid_; - } - if (cached_has_bits & 0x10000000u) { - _this->_impl_.no_movement_animation_ = from._impl_.no_movement_animation_; - } - if (cached_has_bits & 0x20000000u) { - _this->_impl_.take_ = from._impl_.take_; - } - if (cached_has_bits & 0x40000000u) { - _this->_impl_.liquidcontainer_ = from._impl_.liquidcontainer_; - } - if (cached_has_bits & 0x80000000u) { - _this->_impl_.hang_ = from._impl_.hang_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - cached_has_bits = from._impl_._has_bits_[1]; - if (cached_has_bits & 0x000000ffu) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.rotate_ = from._impl_.rotate_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.dont_hide_ = from._impl_.dont_hide_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.translucent_ = from._impl_.translucent_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.lying_object_ = from._impl_.lying_object_; - } - if (cached_has_bits & 0x00000010u) { - _this->_impl_.animate_always_ = from._impl_.animate_always_; - } - if (cached_has_bits & 0x00000020u) { - _this->_impl_.fullbank_ = from._impl_.fullbank_; - } - if (cached_has_bits & 0x00000040u) { - _this->_impl_.ignore_look_ = from._impl_.ignore_look_; - } - if (cached_has_bits & 0x00000080u) { - _this->_impl_.wrap_ = from._impl_.wrap_; - } - _this->_impl_._has_bits_[1] |= cached_has_bits; - } - if (cached_has_bits & 0x0000ff00u) { - if (cached_has_bits & 0x00000100u) { - _this->_impl_.unwrap_ = from._impl_.unwrap_; - } - if (cached_has_bits & 0x00000200u) { - _this->_impl_.topeffect_ = from._impl_.topeffect_; - } - if (cached_has_bits & 0x00000400u) { - _this->_impl_.corpse_ = from._impl_.corpse_; - } - if (cached_has_bits & 0x00000800u) { - _this->_impl_.player_corpse_ = from._impl_.player_corpse_; - } - if (cached_has_bits & 0x00001000u) { - _this->_impl_.ammo_ = from._impl_.ammo_; - } - if (cached_has_bits & 0x00002000u) { - _this->_impl_.show_off_socket_ = from._impl_.show_off_socket_; - } - if (cached_has_bits & 0x00004000u) { - _this->_impl_.reportable_ = from._impl_.reportable_; - } - if (cached_has_bits & 0x00008000u) { - _this->_impl_.reverse_addons_east_ = from._impl_.reverse_addons_east_; - } - _this->_impl_._has_bits_[1] |= cached_has_bits; - } - if (cached_has_bits & 0x00ff0000u) { - if (cached_has_bits & 0x00010000u) { - _this->_impl_.reverse_addons_west_ = from._impl_.reverse_addons_west_; - } - if (cached_has_bits & 0x00020000u) { - _this->_impl_.reverse_addons_south_ = from._impl_.reverse_addons_south_; - } - if (cached_has_bits & 0x00040000u) { - _this->_impl_.reverse_addons_north_ = from._impl_.reverse_addons_north_; - } - if (cached_has_bits & 0x00080000u) { - _this->_impl_.wearout_ = from._impl_.wearout_; - } - if (cached_has_bits & 0x00100000u) { - _this->_impl_.clockexpire_ = from._impl_.clockexpire_; - } - if (cached_has_bits & 0x00200000u) { - _this->_impl_.expire_ = from._impl_.expire_; - } - if (cached_has_bits & 0x00400000u) { - _this->_impl_.expirestop_ = from._impl_.expirestop_; - } - if (cached_has_bits & 0x00800000u) { - _this->_impl_.wrapkit_ = from._impl_.wrapkit_; - } - _this->_impl_._has_bits_[1] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlags::CopyFrom(const AppearanceFlags& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlags) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlags::IsInitialized() const { - return true; -} - -void AppearanceFlags::InternalSwap(AppearanceFlags* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]); - _impl_.npcsaledata_.InternalSwap(&other->_impl_.npcsaledata_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(AppearanceFlags, _impl_.wrapkit_) - + sizeof(AppearanceFlags::_impl_.wrapkit_) - - PROTOBUF_FIELD_OFFSET(AppearanceFlags, _impl_.bank_)>( - reinterpret_cast(&_impl_.bank_), - reinterpret_cast(&other->_impl_.bank_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlags::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[8]); -} - -// =================================================================== - -class AppearanceFlagUpgradeClassification::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_upgrade_classification(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagUpgradeClassification::AppearanceFlagUpgradeClassification(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) -} -AppearanceFlagUpgradeClassification::AppearanceFlagUpgradeClassification(const AppearanceFlagUpgradeClassification& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagUpgradeClassification* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.upgrade_classification_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.upgrade_classification_ = from._impl_.upgrade_classification_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) -} - -inline void AppearanceFlagUpgradeClassification::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.upgrade_classification_){0u} - }; -} - -AppearanceFlagUpgradeClassification::~AppearanceFlagUpgradeClassification() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagUpgradeClassification::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagUpgradeClassification::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagUpgradeClassification::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.upgrade_classification_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagUpgradeClassification::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 upgrade_classification = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_upgrade_classification(&has_bits); - _impl_.upgrade_classification_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagUpgradeClassification::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 upgrade_classification = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_upgrade_classification(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - return target; -} - -size_t AppearanceFlagUpgradeClassification::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 upgrade_classification = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_upgrade_classification()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagUpgradeClassification::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagUpgradeClassification::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagUpgradeClassification::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagUpgradeClassification::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_upgrade_classification()) { - _this->_internal_set_upgrade_classification(from._internal_upgrade_classification()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagUpgradeClassification::CopyFrom(const AppearanceFlagUpgradeClassification& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagUpgradeClassification::IsInitialized() const { - return true; -} - -void AppearanceFlagUpgradeClassification::InternalSwap(AppearanceFlagUpgradeClassification* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.upgrade_classification_, other->_impl_.upgrade_classification_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagUpgradeClassification::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[9]); -} - -// =================================================================== - -class AppearanceFlagBank::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_waypoints(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagBank::AppearanceFlagBank(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagBank) -} -AppearanceFlagBank::AppearanceFlagBank(const AppearanceFlagBank& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagBank* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.waypoints_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.waypoints_ = from._impl_.waypoints_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagBank) -} - -inline void AppearanceFlagBank::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.waypoints_){0u} - }; -} - -AppearanceFlagBank::~AppearanceFlagBank() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagBank) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagBank::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagBank::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagBank::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagBank) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.waypoints_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagBank::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 waypoints = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_waypoints(&has_bits); - _impl_.waypoints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagBank::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagBank) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 waypoints = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_waypoints(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagBank) - return target; -} - -size_t AppearanceFlagBank::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagBank) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 waypoints = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_waypoints()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagBank::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagBank::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagBank::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagBank::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagBank) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_waypoints()) { - _this->_internal_set_waypoints(from._internal_waypoints()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagBank::CopyFrom(const AppearanceFlagBank& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagBank) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagBank::IsInitialized() const { - return true; -} - -void AppearanceFlagBank::InternalSwap(AppearanceFlagBank* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.waypoints_, other->_impl_.waypoints_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagBank::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[10]); -} - -// =================================================================== - -class AppearanceFlagWrite::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_max_text_length(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagWrite::AppearanceFlagWrite(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagWrite) -} -AppearanceFlagWrite::AppearanceFlagWrite(const AppearanceFlagWrite& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagWrite* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.max_text_length_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.max_text_length_ = from._impl_.max_text_length_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagWrite) -} - -inline void AppearanceFlagWrite::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.max_text_length_){0u} - }; -} - -AppearanceFlagWrite::~AppearanceFlagWrite() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagWrite) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagWrite::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagWrite::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagWrite::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagWrite) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.max_text_length_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagWrite::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 max_text_length = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_max_text_length(&has_bits); - _impl_.max_text_length_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagWrite::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagWrite) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 max_text_length = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_max_text_length(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagWrite) - return target; -} - -size_t AppearanceFlagWrite::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagWrite) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 max_text_length = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_max_text_length()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagWrite::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagWrite::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagWrite::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagWrite::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagWrite) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_max_text_length()) { - _this->_internal_set_max_text_length(from._internal_max_text_length()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagWrite::CopyFrom(const AppearanceFlagWrite& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagWrite) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagWrite::IsInitialized() const { - return true; -} - -void AppearanceFlagWrite::InternalSwap(AppearanceFlagWrite* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.max_text_length_, other->_impl_.max_text_length_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagWrite::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[11]); -} - -// =================================================================== - -class AppearanceFlagWriteOnce::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_max_text_length_once(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagWriteOnce::AppearanceFlagWriteOnce(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagWriteOnce) -} -AppearanceFlagWriteOnce::AppearanceFlagWriteOnce(const AppearanceFlagWriteOnce& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagWriteOnce* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.max_text_length_once_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.max_text_length_once_ = from._impl_.max_text_length_once_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagWriteOnce) -} - -inline void AppearanceFlagWriteOnce::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.max_text_length_once_){0u} - }; -} - -AppearanceFlagWriteOnce::~AppearanceFlagWriteOnce() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagWriteOnce::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagWriteOnce::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagWriteOnce::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.max_text_length_once_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagWriteOnce::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 max_text_length_once = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_max_text_length_once(&has_bits); - _impl_.max_text_length_once_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagWriteOnce::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 max_text_length_once = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_max_text_length_once(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - return target; -} - -size_t AppearanceFlagWriteOnce::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 max_text_length_once = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_max_text_length_once()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagWriteOnce::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagWriteOnce::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagWriteOnce::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagWriteOnce::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_max_text_length_once()) { - _this->_internal_set_max_text_length_once(from._internal_max_text_length_once()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagWriteOnce::CopyFrom(const AppearanceFlagWriteOnce& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagWriteOnce::IsInitialized() const { - return true; -} - -void AppearanceFlagWriteOnce::InternalSwap(AppearanceFlagWriteOnce* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.max_text_length_once_, other->_impl_.max_text_length_once_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagWriteOnce::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[12]); -} - -// =================================================================== - -class AppearanceFlagLight::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_brightness(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_color(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } -}; - -AppearanceFlagLight::AppearanceFlagLight(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagLight) -} -AppearanceFlagLight::AppearanceFlagLight(const AppearanceFlagLight& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagLight* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.brightness_){} - , decltype(_impl_.color_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.brightness_, &from._impl_.brightness_, - static_cast(reinterpret_cast(&_impl_.color_) - - reinterpret_cast(&_impl_.brightness_)) + sizeof(_impl_.color_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagLight) -} - -inline void AppearanceFlagLight::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.brightness_){0u} - , decltype(_impl_.color_){0u} - }; -} - -AppearanceFlagLight::~AppearanceFlagLight() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagLight) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagLight::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagLight::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagLight::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagLight) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - ::memset(&_impl_.brightness_, 0, static_cast( - reinterpret_cast(&_impl_.color_) - - reinterpret_cast(&_impl_.brightness_)) + sizeof(_impl_.color_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagLight::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 brightness = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_brightness(&has_bits); - _impl_.brightness_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 color = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_color(&has_bits); - _impl_.color_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagLight::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagLight) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 brightness = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_brightness(), target); - } - - // optional uint32 color = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_color(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagLight) - return target; -} - -size_t AppearanceFlagLight::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagLight) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional uint32 brightness = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_brightness()); - } - - // optional uint32 color = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_color()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagLight::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagLight::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagLight::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagLight::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagLight) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.brightness_ = from._impl_.brightness_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.color_ = from._impl_.color_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagLight::CopyFrom(const AppearanceFlagLight& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagLight) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagLight::IsInitialized() const { - return true; -} - -void AppearanceFlagLight::InternalSwap(AppearanceFlagLight* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(AppearanceFlagLight, _impl_.color_) - + sizeof(AppearanceFlagLight::_impl_.color_) - - PROTOBUF_FIELD_OFFSET(AppearanceFlagLight, _impl_.brightness_)>( - reinterpret_cast(&_impl_.brightness_), - reinterpret_cast(&other->_impl_.brightness_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagLight::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[13]); -} - -// =================================================================== - -class AppearanceFlagHeight::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_elevation(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagHeight::AppearanceFlagHeight(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagHeight) -} -AppearanceFlagHeight::AppearanceFlagHeight(const AppearanceFlagHeight& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagHeight* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.elevation_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.elevation_ = from._impl_.elevation_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagHeight) -} - -inline void AppearanceFlagHeight::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.elevation_){0u} - }; -} - -AppearanceFlagHeight::~AppearanceFlagHeight() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagHeight) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagHeight::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagHeight::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagHeight::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagHeight) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.elevation_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagHeight::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 elevation = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_elevation(&has_bits); - _impl_.elevation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagHeight::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagHeight) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 elevation = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_elevation(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagHeight) - return target; -} - -size_t AppearanceFlagHeight::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagHeight) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 elevation = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_elevation()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagHeight::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagHeight::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagHeight::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagHeight::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagHeight) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_elevation()) { - _this->_internal_set_elevation(from._internal_elevation()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagHeight::CopyFrom(const AppearanceFlagHeight& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagHeight) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagHeight::IsInitialized() const { - return true; -} - -void AppearanceFlagHeight::InternalSwap(AppearanceFlagHeight* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.elevation_, other->_impl_.elevation_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagHeight::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[14]); -} - -// =================================================================== - -class AppearanceFlagShift::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_x(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_y(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } -}; - -AppearanceFlagShift::AppearanceFlagShift(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagShift) -} -AppearanceFlagShift::AppearanceFlagShift(const AppearanceFlagShift& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagShift* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){} - , decltype(_impl_.y_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.x_, &from._impl_.x_, - static_cast(reinterpret_cast(&_impl_.y_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.y_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagShift) -} - -inline void AppearanceFlagShift::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.x_){0u} - , decltype(_impl_.y_){0u} - }; -} - -AppearanceFlagShift::~AppearanceFlagShift() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagShift) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagShift::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagShift::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagShift::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagShift) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - ::memset(&_impl_.x_, 0, static_cast( - reinterpret_cast(&_impl_.y_) - - reinterpret_cast(&_impl_.x_)) + sizeof(_impl_.y_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagShift::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 x = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_x(&has_bits); - _impl_.x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 y = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_y(&has_bits); - _impl_.y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagShift::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagShift) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_x(), target); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_y(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagShift) - return target; -} - -size_t AppearanceFlagShift::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagShift) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional uint32 x = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_x()); - } - - // optional uint32 y = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_y()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagShift::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagShift::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagShift::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagShift::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagShift) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.x_ = from._impl_.x_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.y_ = from._impl_.y_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagShift::CopyFrom(const AppearanceFlagShift& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagShift) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagShift::IsInitialized() const { - return true; -} - -void AppearanceFlagShift::InternalSwap(AppearanceFlagShift* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(AppearanceFlagShift, _impl_.y_) - + sizeof(AppearanceFlagShift::_impl_.y_) - - PROTOBUF_FIELD_OFFSET(AppearanceFlagShift, _impl_.x_)>( - reinterpret_cast(&_impl_.x_), - reinterpret_cast(&other->_impl_.x_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagShift::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[15]); -} - -// =================================================================== - -class AppearanceFlagClothes::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_slot(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagClothes::AppearanceFlagClothes(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagClothes) -} -AppearanceFlagClothes::AppearanceFlagClothes(const AppearanceFlagClothes& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagClothes* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.slot_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.slot_ = from._impl_.slot_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagClothes) -} - -inline void AppearanceFlagClothes::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.slot_){0u} - }; -} - -AppearanceFlagClothes::~AppearanceFlagClothes() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagClothes) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagClothes::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagClothes::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagClothes::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagClothes) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.slot_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagClothes::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 slot = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_slot(&has_bits); - _impl_.slot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagClothes::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagClothes) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 slot = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_slot(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagClothes) - return target; -} - -size_t AppearanceFlagClothes::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagClothes) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 slot = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_slot()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagClothes::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagClothes::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagClothes::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagClothes::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagClothes) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_slot()) { - _this->_internal_set_slot(from._internal_slot()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagClothes::CopyFrom(const AppearanceFlagClothes& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagClothes) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagClothes::IsInitialized() const { - return true; -} - -void AppearanceFlagClothes::InternalSwap(AppearanceFlagClothes* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.slot_, other->_impl_.slot_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagClothes::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[16]); -} - -// =================================================================== - -class AppearanceFlagDefaultAction::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_action(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagDefaultAction::AppearanceFlagDefaultAction(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagDefaultAction) -} -AppearanceFlagDefaultAction::AppearanceFlagDefaultAction(const AppearanceFlagDefaultAction& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagDefaultAction* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.action_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.action_ = from._impl_.action_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagDefaultAction) -} - -inline void AppearanceFlagDefaultAction::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.action_){0} - }; -} - -AppearanceFlagDefaultAction::~AppearanceFlagDefaultAction() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagDefaultAction::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagDefaultAction::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagDefaultAction::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.action_ = 0; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagDefaultAction::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional .Canary.protobuf.appearances.PLAYER_ACTION action = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::PLAYER_ACTION_IsValid(val))) { - _internal_set_action(static_cast<::Canary::protobuf::appearances::PLAYER_ACTION>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields()); - } - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagDefaultAction::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.PLAYER_ACTION action = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 1, this->_internal_action(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - return target; -} - -size_t AppearanceFlagDefaultAction::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional .Canary.protobuf.appearances.PLAYER_ACTION action = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::_pbi::WireFormatLite::EnumSize(this->_internal_action()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagDefaultAction::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagDefaultAction::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagDefaultAction::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagDefaultAction::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_action()) { - _this->_internal_set_action(from._internal_action()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagDefaultAction::CopyFrom(const AppearanceFlagDefaultAction& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagDefaultAction::IsInitialized() const { - return true; -} - -void AppearanceFlagDefaultAction::InternalSwap(AppearanceFlagDefaultAction* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.action_, other->_impl_.action_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagDefaultAction::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[17]); -} - -// =================================================================== - -class AppearanceFlagMarket::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_category(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_trade_as_object_id(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_show_as_object_id(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_minimum_level(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } -}; - -AppearanceFlagMarket::AppearanceFlagMarket(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagMarket) -} -AppearanceFlagMarket::AppearanceFlagMarket(const AppearanceFlagMarket& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagMarket* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.restrict_to_profession_){from._impl_.restrict_to_profession_} - , decltype(_impl_.trade_as_object_id_){} - , decltype(_impl_.show_as_object_id_){} - , decltype(_impl_.minimum_level_){} - , decltype(_impl_.category_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.trade_as_object_id_, &from._impl_.trade_as_object_id_, - static_cast(reinterpret_cast(&_impl_.category_) - - reinterpret_cast(&_impl_.trade_as_object_id_)) + sizeof(_impl_.category_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagMarket) -} - -inline void AppearanceFlagMarket::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.restrict_to_profession_){arena} - , decltype(_impl_.trade_as_object_id_){0u} - , decltype(_impl_.show_as_object_id_){0u} - , decltype(_impl_.minimum_level_){0u} - , decltype(_impl_.category_){1} - }; -} - -AppearanceFlagMarket::~AppearanceFlagMarket() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagMarket) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagMarket::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.restrict_to_profession_.~RepeatedField(); -} - -void AppearanceFlagMarket::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagMarket::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagMarket) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.restrict_to_profession_.Clear(); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - ::memset(&_impl_.trade_as_object_id_, 0, static_cast( - reinterpret_cast(&_impl_.minimum_level_) - - reinterpret_cast(&_impl_.trade_as_object_id_)) + sizeof(_impl_.minimum_level_)); - _impl_.category_ = 1; - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagMarket::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional .Canary.protobuf.appearances.ITEM_CATEGORY category = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::ITEM_CATEGORY_IsValid(val))) { - _internal_set_category(static_cast<::Canary::protobuf::appearances::ITEM_CATEGORY>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields()); - } - } else - goto handle_unusual; - continue; - // optional uint32 trade_as_object_id = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_trade_as_object_id(&has_bits); - _impl_.trade_as_object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 show_as_object_id = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_show_as_object_id(&has_bits); - _impl_.show_as_object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // repeated .Canary.protobuf.appearances.PLAYER_PROFESSION restrict_to_profession = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - ptr -= 1; - do { - ptr += 1; - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::PLAYER_PROFESSION_IsValid(val))) { - _internal_add_restrict_to_profession(static_cast<::Canary::protobuf::appearances::PLAYER_PROFESSION>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(5, val, mutable_unknown_fields()); - } - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<40>(ptr)); - } else if (static_cast(tag) == 42) { - ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(_internal_mutable_restrict_to_profession(), ptr, ctx, ::Canary::protobuf::appearances::PLAYER_PROFESSION_IsValid, &_internal_metadata_, 5); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 minimum_level = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _Internal::set_has_minimum_level(&has_bits); - _impl_.minimum_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagMarket::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagMarket) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.ITEM_CATEGORY category = 1; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 1, this->_internal_category(), target); - } - - // optional uint32 trade_as_object_id = 2; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_trade_as_object_id(), target); - } - - // optional uint32 show_as_object_id = 3; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_show_as_object_id(), target); - } - - // repeated .Canary.protobuf.appearances.PLAYER_PROFESSION restrict_to_profession = 5; - for (int i = 0, n = this->_internal_restrict_to_profession_size(); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 5, this->_internal_restrict_to_profession(i), target); - } - - // optional uint32 minimum_level = 6; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(6, this->_internal_minimum_level(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagMarket) - return target; -} - -size_t AppearanceFlagMarket::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagMarket) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.appearances.PLAYER_PROFESSION restrict_to_profession = 5; - { - size_t data_size = 0; - unsigned int count = static_cast(this->_internal_restrict_to_profession_size());for (unsigned int i = 0; i < count; i++) { - data_size += ::_pbi::WireFormatLite::EnumSize( - this->_internal_restrict_to_profession(static_cast(i))); - } - total_size += (1UL * count) + data_size; - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - // optional uint32 trade_as_object_id = 2; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_trade_as_object_id()); - } - - // optional uint32 show_as_object_id = 3; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_show_as_object_id()); - } - - // optional uint32 minimum_level = 6; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_minimum_level()); - } - - // optional .Canary.protobuf.appearances.ITEM_CATEGORY category = 1; - if (cached_has_bits & 0x00000008u) { - total_size += 1 + - ::_pbi::WireFormatLite::EnumSize(this->_internal_category()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagMarket::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagMarket::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagMarket::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagMarket::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagMarket) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.restrict_to_profession_.MergeFrom(from._impl_.restrict_to_profession_); - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.trade_as_object_id_ = from._impl_.trade_as_object_id_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.show_as_object_id_ = from._impl_.show_as_object_id_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.minimum_level_ = from._impl_.minimum_level_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.category_ = from._impl_.category_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagMarket::CopyFrom(const AppearanceFlagMarket& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagMarket) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagMarket::IsInitialized() const { - return true; -} - -void AppearanceFlagMarket::InternalSwap(AppearanceFlagMarket* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - _impl_.restrict_to_profession_.InternalSwap(&other->_impl_.restrict_to_profession_); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(AppearanceFlagMarket, _impl_.minimum_level_) - + sizeof(AppearanceFlagMarket::_impl_.minimum_level_) - - PROTOBUF_FIELD_OFFSET(AppearanceFlagMarket, _impl_.trade_as_object_id_)>( - reinterpret_cast(&_impl_.trade_as_object_id_), - reinterpret_cast(&other->_impl_.trade_as_object_id_)); - swap(_impl_.category_, other->_impl_.category_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagMarket::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[18]); -} - -// =================================================================== - -class AppearanceFlagNPC::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_name(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_location(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_sale_price(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_buy_price(HasBits* has_bits) { - (*has_bits)[0] |= 16u; - } - static void set_has_currency_object_type_id(HasBits* has_bits) { - (*has_bits)[0] |= 32u; - } - static void set_has_currency_quest_flag_display_name(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } -}; - -AppearanceFlagNPC::AppearanceFlagNPC(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagNPC) -} -AppearanceFlagNPC::AppearanceFlagNPC(const AppearanceFlagNPC& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagNPC* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.name_){} - , decltype(_impl_.location_){} - , decltype(_impl_.currency_quest_flag_display_name_){} - , decltype(_impl_.sale_price_){} - , decltype(_impl_.buy_price_){} - , decltype(_impl_.currency_object_type_id_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _impl_.name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (from._internal_has_name()) { - _this->_impl_.name_.Set(from._internal_name(), - _this->GetArenaForAllocation()); - } - _impl_.location_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.location_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (from._internal_has_location()) { - _this->_impl_.location_.Set(from._internal_location(), - _this->GetArenaForAllocation()); - } - _impl_.currency_quest_flag_display_name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.currency_quest_flag_display_name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (from._internal_has_currency_quest_flag_display_name()) { - _this->_impl_.currency_quest_flag_display_name_.Set(from._internal_currency_quest_flag_display_name(), - _this->GetArenaForAllocation()); - } - ::memcpy(&_impl_.sale_price_, &from._impl_.sale_price_, - static_cast(reinterpret_cast(&_impl_.currency_object_type_id_) - - reinterpret_cast(&_impl_.sale_price_)) + sizeof(_impl_.currency_object_type_id_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagNPC) -} - -inline void AppearanceFlagNPC::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.name_){} - , decltype(_impl_.location_){} - , decltype(_impl_.currency_quest_flag_display_name_){} - , decltype(_impl_.sale_price_){0u} - , decltype(_impl_.buy_price_){0u} - , decltype(_impl_.currency_object_type_id_){0u} - }; - _impl_.name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.location_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.location_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.currency_quest_flag_display_name_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.currency_quest_flag_display_name_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING -} - -AppearanceFlagNPC::~AppearanceFlagNPC() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagNPC) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagNPC::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.name_.Destroy(); - _impl_.location_.Destroy(); - _impl_.currency_quest_flag_display_name_.Destroy(); -} - -void AppearanceFlagNPC::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagNPC::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagNPC) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000007u) { - if (cached_has_bits & 0x00000001u) { - _impl_.name_.ClearNonDefaultToEmpty(); - } - if (cached_has_bits & 0x00000002u) { - _impl_.location_.ClearNonDefaultToEmpty(); - } - if (cached_has_bits & 0x00000004u) { - _impl_.currency_quest_flag_display_name_.ClearNonDefaultToEmpty(); - } - } - if (cached_has_bits & 0x00000038u) { - ::memset(&_impl_.sale_price_, 0, static_cast( - reinterpret_cast(&_impl_.currency_object_type_id_) - - reinterpret_cast(&_impl_.sale_price_)) + sizeof(_impl_.currency_object_type_id_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagNPC::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional bytes name = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - auto str = _internal_mutable_name(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bytes location = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - auto str = _internal_mutable_location(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 sale_price = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_sale_price(&has_bits); - _impl_.sale_price_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 buy_price = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _Internal::set_has_buy_price(&has_bits); - _impl_.buy_price_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 currency_object_type_id = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_currency_object_type_id(&has_bits); - _impl_.currency_object_type_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional bytes currency_quest_flag_display_name = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { - auto str = _internal_mutable_currency_quest_flag_display_name(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagNPC::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagNPC) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional bytes name = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->WriteBytesMaybeAliased( - 1, this->_internal_name(), target); - } - - // optional bytes location = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->WriteBytesMaybeAliased( - 2, this->_internal_location(), target); - } - - // optional uint32 sale_price = 3; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_sale_price(), target); - } - - // optional uint32 buy_price = 4; - if (cached_has_bits & 0x00000010u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_buy_price(), target); - } - - // optional uint32 currency_object_type_id = 5; - if (cached_has_bits & 0x00000020u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_currency_object_type_id(), target); - } - - // optional bytes currency_quest_flag_display_name = 6; - if (cached_has_bits & 0x00000004u) { - target = stream->WriteBytesMaybeAliased( - 6, this->_internal_currency_quest_flag_display_name(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagNPC) - return target; -} - -size_t AppearanceFlagNPC::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagNPC) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000003fu) { - // optional bytes name = 1; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_name()); - } - - // optional bytes location = 2; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_location()); - } - - // optional bytes currency_quest_flag_display_name = 6; - if (cached_has_bits & 0x00000004u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_currency_quest_flag_display_name()); - } - - // optional uint32 sale_price = 3; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_sale_price()); - } - - // optional uint32 buy_price = 4; - if (cached_has_bits & 0x00000010u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_buy_price()); - } - - // optional uint32 currency_object_type_id = 5; - if (cached_has_bits & 0x00000020u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_currency_object_type_id()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagNPC::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagNPC::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagNPC::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagNPC::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagNPC) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000003fu) { - if (cached_has_bits & 0x00000001u) { - _this->_internal_set_name(from._internal_name()); - } - if (cached_has_bits & 0x00000002u) { - _this->_internal_set_location(from._internal_location()); - } - if (cached_has_bits & 0x00000004u) { - _this->_internal_set_currency_quest_flag_display_name(from._internal_currency_quest_flag_display_name()); - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.sale_price_ = from._impl_.sale_price_; - } - if (cached_has_bits & 0x00000010u) { - _this->_impl_.buy_price_ = from._impl_.buy_price_; - } - if (cached_has_bits & 0x00000020u) { - _this->_impl_.currency_object_type_id_ = from._impl_.currency_object_type_id_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagNPC::CopyFrom(const AppearanceFlagNPC& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagNPC) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagNPC::IsInitialized() const { - return true; -} - -void AppearanceFlagNPC::InternalSwap(AppearanceFlagNPC* other) { - using std::swap; - auto* lhs_arena = GetArenaForAllocation(); - auto* rhs_arena = other->GetArenaForAllocation(); - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.name_, lhs_arena, - &other->_impl_.name_, rhs_arena - ); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.location_, lhs_arena, - &other->_impl_.location_, rhs_arena - ); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.currency_quest_flag_display_name_, lhs_arena, - &other->_impl_.currency_quest_flag_display_name_, rhs_arena - ); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(AppearanceFlagNPC, _impl_.currency_object_type_id_) - + sizeof(AppearanceFlagNPC::_impl_.currency_object_type_id_) - - PROTOBUF_FIELD_OFFSET(AppearanceFlagNPC, _impl_.sale_price_)>( - reinterpret_cast(&_impl_.sale_price_), - reinterpret_cast(&other->_impl_.sale_price_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagNPC::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[19]); -} - -// =================================================================== - -class AppearanceFlagAutomap::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_color(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagAutomap::AppearanceFlagAutomap(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagAutomap) -} -AppearanceFlagAutomap::AppearanceFlagAutomap(const AppearanceFlagAutomap& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagAutomap* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.color_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.color_ = from._impl_.color_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagAutomap) -} - -inline void AppearanceFlagAutomap::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.color_){0u} - }; -} - -AppearanceFlagAutomap::~AppearanceFlagAutomap() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagAutomap) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagAutomap::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagAutomap::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagAutomap::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagAutomap) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.color_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagAutomap::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 color = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_color(&has_bits); - _impl_.color_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagAutomap::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagAutomap) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 color = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_color(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagAutomap) - return target; -} - -size_t AppearanceFlagAutomap::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagAutomap) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 color = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_color()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagAutomap::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagAutomap::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagAutomap::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagAutomap::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagAutomap) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_color()) { - _this->_internal_set_color(from._internal_color()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagAutomap::CopyFrom(const AppearanceFlagAutomap& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagAutomap) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagAutomap::IsInitialized() const { - return true; -} - -void AppearanceFlagAutomap::InternalSwap(AppearanceFlagAutomap* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.color_, other->_impl_.color_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagAutomap::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[20]); -} - -// =================================================================== - -class AppearanceFlagHook::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_direction(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagHook::AppearanceFlagHook(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagHook) -} -AppearanceFlagHook::AppearanceFlagHook(const AppearanceFlagHook& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagHook* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.direction_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.direction_ = from._impl_.direction_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagHook) -} - -inline void AppearanceFlagHook::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.direction_){1} - }; -} - -AppearanceFlagHook::~AppearanceFlagHook() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagHook) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagHook::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagHook::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagHook::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagHook) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.direction_ = 1; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagHook::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional .Canary.protobuf.appearances.HOOK_TYPE direction = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); - CHK_(ptr); - if (PROTOBUF_PREDICT_TRUE(::Canary::protobuf::appearances::HOOK_TYPE_IsValid(val))) { - _internal_set_direction(static_cast<::Canary::protobuf::appearances::HOOK_TYPE>(val)); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields()); - } - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagHook::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagHook) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional .Canary.protobuf.appearances.HOOK_TYPE direction = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteEnumToArray( - 1, this->_internal_direction(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagHook) - return target; -} - -size_t AppearanceFlagHook::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagHook) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional .Canary.protobuf.appearances.HOOK_TYPE direction = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += 1 + - ::_pbi::WireFormatLite::EnumSize(this->_internal_direction()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagHook::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagHook::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagHook::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagHook::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagHook) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_direction()) { - _this->_internal_set_direction(from._internal_direction()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagHook::CopyFrom(const AppearanceFlagHook& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagHook) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagHook::IsInitialized() const { - return true; -} - -void AppearanceFlagHook::InternalSwap(AppearanceFlagHook* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.direction_, other->_impl_.direction_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagHook::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[21]); -} - -// =================================================================== - -class AppearanceFlagLenshelp::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_id(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagLenshelp::AppearanceFlagLenshelp(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagLenshelp) -} -AppearanceFlagLenshelp::AppearanceFlagLenshelp(const AppearanceFlagLenshelp& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagLenshelp* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.id_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.id_ = from._impl_.id_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagLenshelp) -} - -inline void AppearanceFlagLenshelp::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.id_){0u} - }; -} - -AppearanceFlagLenshelp::~AppearanceFlagLenshelp() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagLenshelp) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagLenshelp::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagLenshelp::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagLenshelp::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagLenshelp) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.id_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagLenshelp::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 id = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_id(&has_bits); - _impl_.id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagLenshelp::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagLenshelp) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 id = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagLenshelp) - return target; -} - -size_t AppearanceFlagLenshelp::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagLenshelp) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 id = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_id()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagLenshelp::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagLenshelp::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagLenshelp::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagLenshelp::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagLenshelp) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_id()) { - _this->_internal_set_id(from._internal_id()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagLenshelp::CopyFrom(const AppearanceFlagLenshelp& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagLenshelp) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagLenshelp::IsInitialized() const { - return true; -} - -void AppearanceFlagLenshelp::InternalSwap(AppearanceFlagLenshelp* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.id_, other->_impl_.id_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagLenshelp::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[22]); -} - -// =================================================================== - -class AppearanceFlagChangedToExpire::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_former_object_typeid(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagChangedToExpire::AppearanceFlagChangedToExpire(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) -} -AppearanceFlagChangedToExpire::AppearanceFlagChangedToExpire(const AppearanceFlagChangedToExpire& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagChangedToExpire* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.former_object_typeid_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.former_object_typeid_ = from._impl_.former_object_typeid_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) -} - -inline void AppearanceFlagChangedToExpire::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.former_object_typeid_){0u} - }; -} - -AppearanceFlagChangedToExpire::~AppearanceFlagChangedToExpire() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagChangedToExpire::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagChangedToExpire::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagChangedToExpire::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.former_object_typeid_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagChangedToExpire::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 former_object_typeid = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_former_object_typeid(&has_bits); - _impl_.former_object_typeid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagChangedToExpire::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 former_object_typeid = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_former_object_typeid(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - return target; -} - -size_t AppearanceFlagChangedToExpire::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 former_object_typeid = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_former_object_typeid()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagChangedToExpire::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagChangedToExpire::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagChangedToExpire::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagChangedToExpire::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_former_object_typeid()) { - _this->_internal_set_former_object_typeid(from._internal_former_object_typeid()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagChangedToExpire::CopyFrom(const AppearanceFlagChangedToExpire& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagChangedToExpire::IsInitialized() const { - return true; -} - -void AppearanceFlagChangedToExpire::InternalSwap(AppearanceFlagChangedToExpire* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.former_object_typeid_, other->_impl_.former_object_typeid_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagChangedToExpire::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[23]); -} - -// =================================================================== - -class AppearanceFlagCyclopedia::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_cyclopedia_type(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } -}; - -AppearanceFlagCyclopedia::AppearanceFlagCyclopedia(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.AppearanceFlagCyclopedia) -} -AppearanceFlagCyclopedia::AppearanceFlagCyclopedia(const AppearanceFlagCyclopedia& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - AppearanceFlagCyclopedia* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.cyclopedia_type_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _this->_impl_.cyclopedia_type_ = from._impl_.cyclopedia_type_; - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.AppearanceFlagCyclopedia) -} - -inline void AppearanceFlagCyclopedia::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.cyclopedia_type_){0u} - }; -} - -AppearanceFlagCyclopedia::~AppearanceFlagCyclopedia() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void AppearanceFlagCyclopedia::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void AppearanceFlagCyclopedia::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void AppearanceFlagCyclopedia::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.cyclopedia_type_ = 0u; - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* AppearanceFlagCyclopedia::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 cyclopedia_type = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_cyclopedia_type(&has_bits); - _impl_.cyclopedia_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* AppearanceFlagCyclopedia::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 cyclopedia_type = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_cyclopedia_type(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - return target; -} - -size_t AppearanceFlagCyclopedia::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // optional uint32 cyclopedia_type = 1; - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_cyclopedia_type()); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AppearanceFlagCyclopedia::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - AppearanceFlagCyclopedia::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AppearanceFlagCyclopedia::GetClassData() const { return &_class_data_; } - - -void AppearanceFlagCyclopedia::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (from._internal_has_cyclopedia_type()) { - _this->_internal_set_cyclopedia_type(from._internal_cyclopedia_type()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void AppearanceFlagCyclopedia::CopyFrom(const AppearanceFlagCyclopedia& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool AppearanceFlagCyclopedia::IsInitialized() const { - return true; -} - -void AppearanceFlagCyclopedia::InternalSwap(AppearanceFlagCyclopedia* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - swap(_impl_.cyclopedia_type_, other->_impl_.cyclopedia_type_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata AppearanceFlagCyclopedia::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[24]); -} - -// =================================================================== - -class SpecialMeaningAppearanceIds::_Internal { - public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_gold_coin_id(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_platinum_coin_id(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } - static void set_has_crystal_coin_id(HasBits* has_bits) { - (*has_bits)[0] |= 4u; - } - static void set_has_tibia_coin_id(HasBits* has_bits) { - (*has_bits)[0] |= 8u; - } - static void set_has_stamped_letter_id(HasBits* has_bits) { - (*has_bits)[0] |= 16u; - } - static void set_has_supply_stash_id(HasBits* has_bits) { - (*has_bits)[0] |= 32u; - } - static void set_has_reward_chest_id(HasBits* has_bits) { - (*has_bits)[0] |= 64u; - } -}; - -SpecialMeaningAppearanceIds::SpecialMeaningAppearanceIds(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) -} -SpecialMeaningAppearanceIds::SpecialMeaningAppearanceIds(const SpecialMeaningAppearanceIds& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - SpecialMeaningAppearanceIds* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.gold_coin_id_){} - , decltype(_impl_.platinum_coin_id_){} - , decltype(_impl_.crystal_coin_id_){} - , decltype(_impl_.tibia_coin_id_){} - , decltype(_impl_.stamped_letter_id_){} - , decltype(_impl_.supply_stash_id_){} - , decltype(_impl_.reward_chest_id_){}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - ::memcpy(&_impl_.gold_coin_id_, &from._impl_.gold_coin_id_, - static_cast(reinterpret_cast(&_impl_.reward_chest_id_) - - reinterpret_cast(&_impl_.gold_coin_id_)) + sizeof(_impl_.reward_chest_id_)); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) -} - -inline void SpecialMeaningAppearanceIds::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.gold_coin_id_){0u} - , decltype(_impl_.platinum_coin_id_){0u} - , decltype(_impl_.crystal_coin_id_){0u} - , decltype(_impl_.tibia_coin_id_){0u} - , decltype(_impl_.stamped_letter_id_){0u} - , decltype(_impl_.supply_stash_id_){0u} - , decltype(_impl_.reward_chest_id_){0u} - }; -} - -SpecialMeaningAppearanceIds::~SpecialMeaningAppearanceIds() { - // @@protoc_insertion_point(destructor:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void SpecialMeaningAppearanceIds::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); -} - -void SpecialMeaningAppearanceIds::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void SpecialMeaningAppearanceIds::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { - ::memset(&_impl_.gold_coin_id_, 0, static_cast( - reinterpret_cast(&_impl_.reward_chest_id_) - - reinterpret_cast(&_impl_.gold_coin_id_)) + sizeof(_impl_.reward_chest_id_)); - } - _impl_._has_bits_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* SpecialMeaningAppearanceIds::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // optional uint32 gold_coin_id = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { - _Internal::set_has_gold_coin_id(&has_bits); - _impl_.gold_coin_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 platinum_coin_id = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _Internal::set_has_platinum_coin_id(&has_bits); - _impl_.platinum_coin_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 crystal_coin_id = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _Internal::set_has_crystal_coin_id(&has_bits); - _impl_.crystal_coin_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 tibia_coin_id = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _Internal::set_has_tibia_coin_id(&has_bits); - _impl_.tibia_coin_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 stamped_letter_id = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_stamped_letter_id(&has_bits); - _impl_.stamped_letter_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 supply_stash_id = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _Internal::set_has_supply_stash_id(&has_bits); - _impl_.supply_stash_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 reward_chest_id = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - _Internal::set_has_reward_chest_id(&has_bits); - _impl_.reward_chest_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - _impl_._has_bits_.Or(has_bits); - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* SpecialMeaningAppearanceIds::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - // optional uint32 gold_coin_id = 1; - if (cached_has_bits & 0x00000001u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_gold_coin_id(), target); - } - - // optional uint32 platinum_coin_id = 2; - if (cached_has_bits & 0x00000002u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_platinum_coin_id(), target); - } - - // optional uint32 crystal_coin_id = 3; - if (cached_has_bits & 0x00000004u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_crystal_coin_id(), target); - } - - // optional uint32 tibia_coin_id = 4; - if (cached_has_bits & 0x00000008u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_tibia_coin_id(), target); - } - - // optional uint32 stamped_letter_id = 5; - if (cached_has_bits & 0x00000010u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_stamped_letter_id(), target); - } - - // optional uint32 supply_stash_id = 6; - if (cached_has_bits & 0x00000020u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(6, this->_internal_supply_stash_id(), target); - } - - // optional uint32 reward_chest_id = 7; - if (cached_has_bits & 0x00000040u) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(7, this->_internal_reward_chest_id(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - return target; -} - -size_t SpecialMeaningAppearanceIds::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { - // optional uint32 gold_coin_id = 1; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_gold_coin_id()); - } - - // optional uint32 platinum_coin_id = 2; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_platinum_coin_id()); - } - - // optional uint32 crystal_coin_id = 3; - if (cached_has_bits & 0x00000004u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_crystal_coin_id()); - } - - // optional uint32 tibia_coin_id = 4; - if (cached_has_bits & 0x00000008u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_tibia_coin_id()); - } - - // optional uint32 stamped_letter_id = 5; - if (cached_has_bits & 0x00000010u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_stamped_letter_id()); - } - - // optional uint32 supply_stash_id = 6; - if (cached_has_bits & 0x00000020u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_supply_stash_id()); - } - - // optional uint32 reward_chest_id = 7; - if (cached_has_bits & 0x00000040u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_reward_chest_id()); - } - - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SpecialMeaningAppearanceIds::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - SpecialMeaningAppearanceIds::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SpecialMeaningAppearanceIds::GetClassData() const { return &_class_data_; } - - -void SpecialMeaningAppearanceIds::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x0000007fu) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.gold_coin_id_ = from._impl_.gold_coin_id_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.platinum_coin_id_ = from._impl_.platinum_coin_id_; - } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.crystal_coin_id_ = from._impl_.crystal_coin_id_; - } - if (cached_has_bits & 0x00000008u) { - _this->_impl_.tibia_coin_id_ = from._impl_.tibia_coin_id_; - } - if (cached_has_bits & 0x00000010u) { - _this->_impl_.stamped_letter_id_ = from._impl_.stamped_letter_id_; - } - if (cached_has_bits & 0x00000020u) { - _this->_impl_.supply_stash_id_ = from._impl_.supply_stash_id_; - } - if (cached_has_bits & 0x00000040u) { - _this->_impl_.reward_chest_id_ = from._impl_.reward_chest_id_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void SpecialMeaningAppearanceIds::CopyFrom(const SpecialMeaningAppearanceIds& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpecialMeaningAppearanceIds::IsInitialized() const { - return true; -} - -void SpecialMeaningAppearanceIds::InternalSwap(SpecialMeaningAppearanceIds* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); - ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(SpecialMeaningAppearanceIds, _impl_.reward_chest_id_) - + sizeof(SpecialMeaningAppearanceIds::_impl_.reward_chest_id_) - - PROTOBUF_FIELD_OFFSET(SpecialMeaningAppearanceIds, _impl_.gold_coin_id_)>( - reinterpret_cast(&_impl_.gold_coin_id_), - reinterpret_cast(&other->_impl_.gold_coin_id_)); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpecialMeaningAppearanceIds::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_appearances_2eproto_getter, &descriptor_table_appearances_2eproto_once, - file_level_metadata_appearances_2eproto[25]); -} - -// @@protoc_insertion_point(namespace_scope) -} // namespace appearances -} // namespace protobuf -} // namespace Canary -PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::Coordinate* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::Coordinate >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::Coordinate >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::Appearances* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::Appearances >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::Appearances >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::SpritePhase* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::SpritePhase >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::SpritePhase >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::SpriteAnimation* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::SpriteAnimation >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::SpriteAnimation >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::Box* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::Box >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::Box >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::SpriteInfo* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::SpriteInfo >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::SpriteInfo >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::FrameGroup* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::FrameGroup >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::FrameGroup >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::Appearance* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::Appearance >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::Appearance >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlags* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlags >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlags >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagBank* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagBank >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagBank >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagWrite* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagWrite >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagWrite >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagWriteOnce >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagWriteOnce >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagLight* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagLight >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagLight >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagHeight* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagHeight >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagHeight >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagShift* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagShift >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagShift >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagClothes* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagClothes >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagClothes >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagDefaultAction >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagDefaultAction >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagMarket* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagMarket >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagMarket >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagNPC* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagNPC >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagNPC >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagAutomap* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagAutomap >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagAutomap >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagHook* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagHook >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagHook >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagLenshelp* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagLenshelp >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagLenshelp >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::AppearanceFlagCyclopedia >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::AppearanceFlagCyclopedia >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* -Arena::CreateMaybeMessage< ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds >(arena); -} -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) -#include diff --git a/src/protobuf/appearances.pb.h b/src/protobuf/appearances.pb.h deleted file mode 100644 index 65bc2c7e9cc..00000000000 --- a/src/protobuf/appearances.pb.h +++ /dev/null @@ -1,11506 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: appearances.proto - -#ifndef GOOGLE_PROTOBUF_INCLUDED_appearances_2eproto -#define GOOGLE_PROTOBUF_INCLUDED_appearances_2eproto - -#include -#include - -#include -#if PROTOBUF_VERSION < 3021000 -#error This file was generated by a newer version of protoc which is -#error incompatible with your Protocol Buffer headers. Please update -#error your headers. -#endif -#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION -#error This file was generated by an older version of protoc which is -#error incompatible with your Protocol Buffer headers. Please -#error regenerate this file with a newer version of protoc. -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include // IWYU pragma: export -#include // IWYU pragma: export -#include -#include -// @@protoc_insertion_point(includes) -#include -#define PROTOBUF_INTERNAL_EXPORT_appearances_2eproto -PROTOBUF_NAMESPACE_OPEN -namespace internal { -class AnyMetadata; -} // namespace internal -PROTOBUF_NAMESPACE_CLOSE - -// Internal implementation detail -- do not use these members. -struct TableStruct_appearances_2eproto { - static const uint32_t offsets[]; -}; -extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_appearances_2eproto; -namespace Canary { -namespace protobuf { -namespace appearances { -class Appearance; -struct AppearanceDefaultTypeInternal; -extern AppearanceDefaultTypeInternal _Appearance_default_instance_; -class AppearanceFlagAutomap; -struct AppearanceFlagAutomapDefaultTypeInternal; -extern AppearanceFlagAutomapDefaultTypeInternal _AppearanceFlagAutomap_default_instance_; -class AppearanceFlagBank; -struct AppearanceFlagBankDefaultTypeInternal; -extern AppearanceFlagBankDefaultTypeInternal _AppearanceFlagBank_default_instance_; -class AppearanceFlagChangedToExpire; -struct AppearanceFlagChangedToExpireDefaultTypeInternal; -extern AppearanceFlagChangedToExpireDefaultTypeInternal _AppearanceFlagChangedToExpire_default_instance_; -class AppearanceFlagClothes; -struct AppearanceFlagClothesDefaultTypeInternal; -extern AppearanceFlagClothesDefaultTypeInternal _AppearanceFlagClothes_default_instance_; -class AppearanceFlagCyclopedia; -struct AppearanceFlagCyclopediaDefaultTypeInternal; -extern AppearanceFlagCyclopediaDefaultTypeInternal _AppearanceFlagCyclopedia_default_instance_; -class AppearanceFlagDefaultAction; -struct AppearanceFlagDefaultActionDefaultTypeInternal; -extern AppearanceFlagDefaultActionDefaultTypeInternal _AppearanceFlagDefaultAction_default_instance_; -class AppearanceFlagHeight; -struct AppearanceFlagHeightDefaultTypeInternal; -extern AppearanceFlagHeightDefaultTypeInternal _AppearanceFlagHeight_default_instance_; -class AppearanceFlagHook; -struct AppearanceFlagHookDefaultTypeInternal; -extern AppearanceFlagHookDefaultTypeInternal _AppearanceFlagHook_default_instance_; -class AppearanceFlagLenshelp; -struct AppearanceFlagLenshelpDefaultTypeInternal; -extern AppearanceFlagLenshelpDefaultTypeInternal _AppearanceFlagLenshelp_default_instance_; -class AppearanceFlagLight; -struct AppearanceFlagLightDefaultTypeInternal; -extern AppearanceFlagLightDefaultTypeInternal _AppearanceFlagLight_default_instance_; -class AppearanceFlagMarket; -struct AppearanceFlagMarketDefaultTypeInternal; -extern AppearanceFlagMarketDefaultTypeInternal _AppearanceFlagMarket_default_instance_; -class AppearanceFlagNPC; -struct AppearanceFlagNPCDefaultTypeInternal; -extern AppearanceFlagNPCDefaultTypeInternal _AppearanceFlagNPC_default_instance_; -class AppearanceFlagShift; -struct AppearanceFlagShiftDefaultTypeInternal; -extern AppearanceFlagShiftDefaultTypeInternal _AppearanceFlagShift_default_instance_; -class AppearanceFlagUpgradeClassification; -struct AppearanceFlagUpgradeClassificationDefaultTypeInternal; -extern AppearanceFlagUpgradeClassificationDefaultTypeInternal _AppearanceFlagUpgradeClassification_default_instance_; -class AppearanceFlagWrite; -struct AppearanceFlagWriteDefaultTypeInternal; -extern AppearanceFlagWriteDefaultTypeInternal _AppearanceFlagWrite_default_instance_; -class AppearanceFlagWriteOnce; -struct AppearanceFlagWriteOnceDefaultTypeInternal; -extern AppearanceFlagWriteOnceDefaultTypeInternal _AppearanceFlagWriteOnce_default_instance_; -class AppearanceFlags; -struct AppearanceFlagsDefaultTypeInternal; -extern AppearanceFlagsDefaultTypeInternal _AppearanceFlags_default_instance_; -class Appearances; -struct AppearancesDefaultTypeInternal; -extern AppearancesDefaultTypeInternal _Appearances_default_instance_; -class Box; -struct BoxDefaultTypeInternal; -extern BoxDefaultTypeInternal _Box_default_instance_; -class Coordinate; -struct CoordinateDefaultTypeInternal; -extern CoordinateDefaultTypeInternal _Coordinate_default_instance_; -class FrameGroup; -struct FrameGroupDefaultTypeInternal; -extern FrameGroupDefaultTypeInternal _FrameGroup_default_instance_; -class SpecialMeaningAppearanceIds; -struct SpecialMeaningAppearanceIdsDefaultTypeInternal; -extern SpecialMeaningAppearanceIdsDefaultTypeInternal _SpecialMeaningAppearanceIds_default_instance_; -class SpriteAnimation; -struct SpriteAnimationDefaultTypeInternal; -extern SpriteAnimationDefaultTypeInternal _SpriteAnimation_default_instance_; -class SpriteInfo; -struct SpriteInfoDefaultTypeInternal; -extern SpriteInfoDefaultTypeInternal _SpriteInfo_default_instance_; -class SpritePhase; -struct SpritePhaseDefaultTypeInternal; -extern SpritePhaseDefaultTypeInternal _SpritePhase_default_instance_; -} // namespace appearances -} // namespace protobuf -} // namespace Canary -PROTOBUF_NAMESPACE_OPEN -template<> ::Canary::protobuf::appearances::Appearance* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::Appearance>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagAutomap* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagAutomap>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagBank* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagBank>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagChangedToExpire>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagClothes* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagClothes>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagCyclopedia>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagDefaultAction>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagHeight* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagHeight>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagHook* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagHook>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagLenshelp* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagLenshelp>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagLight* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagLight>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagMarket* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagMarket>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagNPC* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagNPC>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagShift* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagShift>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagWrite* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagWrite>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagWriteOnce>(Arena*); -template<> ::Canary::protobuf::appearances::AppearanceFlags* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlags>(Arena*); -template<> ::Canary::protobuf::appearances::Appearances* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::Appearances>(Arena*); -template<> ::Canary::protobuf::appearances::Box* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::Box>(Arena*); -template<> ::Canary::protobuf::appearances::Coordinate* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::Coordinate>(Arena*); -template<> ::Canary::protobuf::appearances::FrameGroup* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::FrameGroup>(Arena*); -template<> ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::SpecialMeaningAppearanceIds>(Arena*); -template<> ::Canary::protobuf::appearances::SpriteAnimation* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::SpriteAnimation>(Arena*); -template<> ::Canary::protobuf::appearances::SpriteInfo* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::SpriteInfo>(Arena*); -template<> ::Canary::protobuf::appearances::SpritePhase* Arena::CreateMaybeMessage<::Canary::protobuf::appearances::SpritePhase>(Arena*); -PROTOBUF_NAMESPACE_CLOSE -namespace Canary { -namespace protobuf { -namespace appearances { - -enum PLAYER_ACTION : int { - PLAYER_ACTION_NONE = 0, - PLAYER_ACTION_LOOK = 1, - PLAYER_ACTION_USE = 2, - PLAYER_ACTION_OPEN = 3, - PLAYER_ACTION_AUTOWALK_HIGHLIGHT = 4 -}; -bool PLAYER_ACTION_IsValid(int value); -constexpr PLAYER_ACTION PLAYER_ACTION_MIN = PLAYER_ACTION_NONE; -constexpr PLAYER_ACTION PLAYER_ACTION_MAX = PLAYER_ACTION_AUTOWALK_HIGHLIGHT; -constexpr int PLAYER_ACTION_ARRAYSIZE = PLAYER_ACTION_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PLAYER_ACTION_descriptor(); -template -inline const std::string& PLAYER_ACTION_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function PLAYER_ACTION_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - PLAYER_ACTION_descriptor(), enum_t_value); -} -inline bool PLAYER_ACTION_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PLAYER_ACTION* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - PLAYER_ACTION_descriptor(), name, value); -} -enum ITEM_CATEGORY : int { - ITEM_CATEGORY_ARMORS = 1, - ITEM_CATEGORY_AMULETS = 2, - ITEM_CATEGORY_BOOTS = 3, - ITEM_CATEGORY_CONTAINERS = 4, - ITEM_CATEGORY_DECORATION = 5, - ITEM_CATEGORY_FOOD = 6, - ITEM_CATEGORY_HELMETS_HATS = 7, - ITEM_CATEGORY_LEGS = 8, - ITEM_CATEGORY_OTHERS = 9, - ITEM_CATEGORY_POTIONS = 10, - ITEM_CATEGORY_RINGS = 11, - ITEM_CATEGORY_RUNES = 12, - ITEM_CATEGORY_SHIELDS = 13, - ITEM_CATEGORY_TOOLS = 14, - ITEM_CATEGORY_VALUABLES = 15, - ITEM_CATEGORY_AMMUNITION = 16, - ITEM_CATEGORY_AXES = 17, - ITEM_CATEGORY_CLUBS = 18, - ITEM_CATEGORY_DISTANCE_WEAPONS = 19, - ITEM_CATEGORY_SWORDS = 20, - ITEM_CATEGORY_WANDS_RODS = 21, - ITEM_CATEGORY_PREMIUM_SCROLLS = 22, - ITEM_CATEGORY_TIBIA_COINS = 23, - ITEM_CATEGORY_CREATURE_PRODUCTS = 24, - ITEM_CATEGORY_QUIVER = 25 -}; -bool ITEM_CATEGORY_IsValid(int value); -constexpr ITEM_CATEGORY ITEM_CATEGORY_MIN = ITEM_CATEGORY_ARMORS; -constexpr ITEM_CATEGORY ITEM_CATEGORY_MAX = ITEM_CATEGORY_QUIVER; -constexpr int ITEM_CATEGORY_ARRAYSIZE = ITEM_CATEGORY_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ITEM_CATEGORY_descriptor(); -template -inline const std::string& ITEM_CATEGORY_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function ITEM_CATEGORY_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - ITEM_CATEGORY_descriptor(), enum_t_value); -} -inline bool ITEM_CATEGORY_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ITEM_CATEGORY* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - ITEM_CATEGORY_descriptor(), name, value); -} -enum PLAYER_PROFESSION : int { - PLAYER_PROFESSION_ANY = -1, - PLAYER_PROFESSION_NONE = 0, - PLAYER_PROFESSION_KNIGHT = 1, - PLAYER_PROFESSION_PALADIN = 2, - PLAYER_PROFESSION_SORCERER = 3, - PLAYER_PROFESSION_DRUID = 4, - PLAYER_PROFESSION_PROMOTED = 10 -}; -bool PLAYER_PROFESSION_IsValid(int value); -constexpr PLAYER_PROFESSION PLAYER_PROFESSION_MIN = PLAYER_PROFESSION_ANY; -constexpr PLAYER_PROFESSION PLAYER_PROFESSION_MAX = PLAYER_PROFESSION_PROMOTED; -constexpr int PLAYER_PROFESSION_ARRAYSIZE = PLAYER_PROFESSION_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PLAYER_PROFESSION_descriptor(); -template -inline const std::string& PLAYER_PROFESSION_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function PLAYER_PROFESSION_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - PLAYER_PROFESSION_descriptor(), enum_t_value); -} -inline bool PLAYER_PROFESSION_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PLAYER_PROFESSION* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - PLAYER_PROFESSION_descriptor(), name, value); -} -enum ANIMATION_LOOP_TYPE : int { - ANIMATION_LOOP_TYPE_PINGPONG = -1, - ANIMATION_LOOP_TYPE_INFINITE = 0, - ANIMATION_LOOP_TYPE_COUNTED = 1 -}; -bool ANIMATION_LOOP_TYPE_IsValid(int value); -constexpr ANIMATION_LOOP_TYPE ANIMATION_LOOP_TYPE_MIN = ANIMATION_LOOP_TYPE_PINGPONG; -constexpr ANIMATION_LOOP_TYPE ANIMATION_LOOP_TYPE_MAX = ANIMATION_LOOP_TYPE_COUNTED; -constexpr int ANIMATION_LOOP_TYPE_ARRAYSIZE = ANIMATION_LOOP_TYPE_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ANIMATION_LOOP_TYPE_descriptor(); -template -inline const std::string& ANIMATION_LOOP_TYPE_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function ANIMATION_LOOP_TYPE_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - ANIMATION_LOOP_TYPE_descriptor(), enum_t_value); -} -inline bool ANIMATION_LOOP_TYPE_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ANIMATION_LOOP_TYPE* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - ANIMATION_LOOP_TYPE_descriptor(), name, value); -} -enum HOOK_TYPE : int { - HOOK_TYPE_SOUTH = 1, - HOOK_TYPE_EAST = 2 -}; -bool HOOK_TYPE_IsValid(int value); -constexpr HOOK_TYPE HOOK_TYPE_MIN = HOOK_TYPE_SOUTH; -constexpr HOOK_TYPE HOOK_TYPE_MAX = HOOK_TYPE_EAST; -constexpr int HOOK_TYPE_ARRAYSIZE = HOOK_TYPE_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HOOK_TYPE_descriptor(); -template -inline const std::string& HOOK_TYPE_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function HOOK_TYPE_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - HOOK_TYPE_descriptor(), enum_t_value); -} -inline bool HOOK_TYPE_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, HOOK_TYPE* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - HOOK_TYPE_descriptor(), name, value); -} -enum FIXED_FRAME_GROUP : int { - FIXED_FRAME_GROUP_OUTFIT_IDLE = 0, - FIXED_FRAME_GROUP_OUTFIT_MOVING = 1, - FIXED_FRAME_GROUP_OBJECT_INITIAL = 2 -}; -bool FIXED_FRAME_GROUP_IsValid(int value); -constexpr FIXED_FRAME_GROUP FIXED_FRAME_GROUP_MIN = FIXED_FRAME_GROUP_OUTFIT_IDLE; -constexpr FIXED_FRAME_GROUP FIXED_FRAME_GROUP_MAX = FIXED_FRAME_GROUP_OBJECT_INITIAL; -constexpr int FIXED_FRAME_GROUP_ARRAYSIZE = FIXED_FRAME_GROUP_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FIXED_FRAME_GROUP_descriptor(); -template -inline const std::string& FIXED_FRAME_GROUP_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function FIXED_FRAME_GROUP_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - FIXED_FRAME_GROUP_descriptor(), enum_t_value); -} -inline bool FIXED_FRAME_GROUP_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, FIXED_FRAME_GROUP* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - FIXED_FRAME_GROUP_descriptor(), name, value); -} -// =================================================================== - -class Coordinate final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.Coordinate) */ { - public: - inline Coordinate() : Coordinate(nullptr) {} - ~Coordinate() override; - explicit PROTOBUF_CONSTEXPR Coordinate(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Coordinate(const Coordinate& from); - Coordinate(Coordinate&& from) noexcept - : Coordinate() { - *this = ::std::move(from); - } - - inline Coordinate& operator=(const Coordinate& from) { - CopyFrom(from); - return *this; - } - inline Coordinate& operator=(Coordinate&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Coordinate& default_instance() { - return *internal_default_instance(); - } - static inline const Coordinate* internal_default_instance() { - return reinterpret_cast( - &_Coordinate_default_instance_); - } - static constexpr int kIndexInFileMessages = - 0; - - friend void swap(Coordinate& a, Coordinate& b) { - a.Swap(&b); - } - inline void Swap(Coordinate* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Coordinate* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Coordinate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Coordinate& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const Coordinate& from) { - Coordinate::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Coordinate* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.Coordinate"; - } - protected: - explicit Coordinate(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kXFieldNumber = 1, - kYFieldNumber = 2, - kZFieldNumber = 3, - }; - // optional uint32 x = 1; - bool has_x() const; - private: - bool _internal_has_x() const; - public: - void clear_x(); - uint32_t x() const; - void set_x(uint32_t value); - private: - uint32_t _internal_x() const; - void _internal_set_x(uint32_t value); - public: - - // optional uint32 y = 2; - bool has_y() const; - private: - bool _internal_has_y() const; - public: - void clear_y(); - uint32_t y() const; - void set_y(uint32_t value); - private: - uint32_t _internal_y() const; - void _internal_set_y(uint32_t value); - public: - - // optional uint32 z = 3; - bool has_z() const; - private: - bool _internal_has_z() const; - public: - void clear_z(); - uint32_t z() const; - void set_z(uint32_t value); - private: - uint32_t _internal_z() const; - void _internal_set_z(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.Coordinate) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t x_; - uint32_t y_; - uint32_t z_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class Appearances final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.Appearances) */ { - public: - inline Appearances() : Appearances(nullptr) {} - ~Appearances() override; - explicit PROTOBUF_CONSTEXPR Appearances(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Appearances(const Appearances& from); - Appearances(Appearances&& from) noexcept - : Appearances() { - *this = ::std::move(from); - } - - inline Appearances& operator=(const Appearances& from) { - CopyFrom(from); - return *this; - } - inline Appearances& operator=(Appearances&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Appearances& default_instance() { - return *internal_default_instance(); - } - static inline const Appearances* internal_default_instance() { - return reinterpret_cast( - &_Appearances_default_instance_); - } - static constexpr int kIndexInFileMessages = - 1; - - friend void swap(Appearances& a, Appearances& b) { - a.Swap(&b); - } - inline void Swap(Appearances* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Appearances* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Appearances* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Appearances& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const Appearances& from) { - Appearances::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Appearances* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.Appearances"; - } - protected: - explicit Appearances(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kObjectFieldNumber = 1, - kOutfitFieldNumber = 2, - kEffectFieldNumber = 3, - kMissileFieldNumber = 4, - kSpecialMeaningAppearanceIdsFieldNumber = 5, - }; - // repeated .Canary.protobuf.appearances.Appearance object = 1; - int object_size() const; - private: - int _internal_object_size() const; - public: - void clear_object(); - ::Canary::protobuf::appearances::Appearance* mutable_object(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* - mutable_object(); - private: - const ::Canary::protobuf::appearances::Appearance& _internal_object(int index) const; - ::Canary::protobuf::appearances::Appearance* _internal_add_object(); - public: - const ::Canary::protobuf::appearances::Appearance& object(int index) const; - ::Canary::protobuf::appearances::Appearance* add_object(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& - object() const; - - // repeated .Canary.protobuf.appearances.Appearance outfit = 2; - int outfit_size() const; - private: - int _internal_outfit_size() const; - public: - void clear_outfit(); - ::Canary::protobuf::appearances::Appearance* mutable_outfit(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* - mutable_outfit(); - private: - const ::Canary::protobuf::appearances::Appearance& _internal_outfit(int index) const; - ::Canary::protobuf::appearances::Appearance* _internal_add_outfit(); - public: - const ::Canary::protobuf::appearances::Appearance& outfit(int index) const; - ::Canary::protobuf::appearances::Appearance* add_outfit(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& - outfit() const; - - // repeated .Canary.protobuf.appearances.Appearance effect = 3; - int effect_size() const; - private: - int _internal_effect_size() const; - public: - void clear_effect(); - ::Canary::protobuf::appearances::Appearance* mutable_effect(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* - mutable_effect(); - private: - const ::Canary::protobuf::appearances::Appearance& _internal_effect(int index) const; - ::Canary::protobuf::appearances::Appearance* _internal_add_effect(); - public: - const ::Canary::protobuf::appearances::Appearance& effect(int index) const; - ::Canary::protobuf::appearances::Appearance* add_effect(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& - effect() const; - - // repeated .Canary.protobuf.appearances.Appearance missile = 4; - int missile_size() const; - private: - int _internal_missile_size() const; - public: - void clear_missile(); - ::Canary::protobuf::appearances::Appearance* mutable_missile(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* - mutable_missile(); - private: - const ::Canary::protobuf::appearances::Appearance& _internal_missile(int index) const; - ::Canary::protobuf::appearances::Appearance* _internal_add_missile(); - public: - const ::Canary::protobuf::appearances::Appearance& missile(int index) const; - ::Canary::protobuf::appearances::Appearance* add_missile(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& - missile() const; - - // optional .Canary.protobuf.appearances.SpecialMeaningAppearanceIds special_meaning_appearance_ids = 5; - bool has_special_meaning_appearance_ids() const; - private: - bool _internal_has_special_meaning_appearance_ids() const; - public: - void clear_special_meaning_appearance_ids(); - const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& special_meaning_appearance_ids() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* release_special_meaning_appearance_ids(); - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* mutable_special_meaning_appearance_ids(); - void set_allocated_special_meaning_appearance_ids(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* special_meaning_appearance_ids); - private: - const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& _internal_special_meaning_appearance_ids() const; - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* _internal_mutable_special_meaning_appearance_ids(); - public: - void unsafe_arena_set_allocated_special_meaning_appearance_ids( - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* special_meaning_appearance_ids); - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* unsafe_arena_release_special_meaning_appearance_ids(); - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.Appearances) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance > object_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance > outfit_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance > effect_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance > missile_; - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* special_meaning_appearance_ids_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class SpritePhase final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.SpritePhase) */ { - public: - inline SpritePhase() : SpritePhase(nullptr) {} - ~SpritePhase() override; - explicit PROTOBUF_CONSTEXPR SpritePhase(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - SpritePhase(const SpritePhase& from); - SpritePhase(SpritePhase&& from) noexcept - : SpritePhase() { - *this = ::std::move(from); - } - - inline SpritePhase& operator=(const SpritePhase& from) { - CopyFrom(from); - return *this; - } - inline SpritePhase& operator=(SpritePhase&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const SpritePhase& default_instance() { - return *internal_default_instance(); - } - static inline const SpritePhase* internal_default_instance() { - return reinterpret_cast( - &_SpritePhase_default_instance_); - } - static constexpr int kIndexInFileMessages = - 2; - - friend void swap(SpritePhase& a, SpritePhase& b) { - a.Swap(&b); - } - inline void Swap(SpritePhase* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpritePhase* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - SpritePhase* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const SpritePhase& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const SpritePhase& from) { - SpritePhase::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpritePhase* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.SpritePhase"; - } - protected: - explicit SpritePhase(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kDurationMinFieldNumber = 1, - kDurationMaxFieldNumber = 2, - }; - // optional uint32 duration_min = 1; - bool has_duration_min() const; - private: - bool _internal_has_duration_min() const; - public: - void clear_duration_min(); - uint32_t duration_min() const; - void set_duration_min(uint32_t value); - private: - uint32_t _internal_duration_min() const; - void _internal_set_duration_min(uint32_t value); - public: - - // optional uint32 duration_max = 2; - bool has_duration_max() const; - private: - bool _internal_has_duration_max() const; - public: - void clear_duration_max(); - uint32_t duration_max() const; - void set_duration_max(uint32_t value); - private: - uint32_t _internal_duration_max() const; - void _internal_set_duration_max(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.SpritePhase) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t duration_min_; - uint32_t duration_max_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class SpriteAnimation final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.SpriteAnimation) */ { - public: - inline SpriteAnimation() : SpriteAnimation(nullptr) {} - ~SpriteAnimation() override; - explicit PROTOBUF_CONSTEXPR SpriteAnimation(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - SpriteAnimation(const SpriteAnimation& from); - SpriteAnimation(SpriteAnimation&& from) noexcept - : SpriteAnimation() { - *this = ::std::move(from); - } - - inline SpriteAnimation& operator=(const SpriteAnimation& from) { - CopyFrom(from); - return *this; - } - inline SpriteAnimation& operator=(SpriteAnimation&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const SpriteAnimation& default_instance() { - return *internal_default_instance(); - } - static inline const SpriteAnimation* internal_default_instance() { - return reinterpret_cast( - &_SpriteAnimation_default_instance_); - } - static constexpr int kIndexInFileMessages = - 3; - - friend void swap(SpriteAnimation& a, SpriteAnimation& b) { - a.Swap(&b); - } - inline void Swap(SpriteAnimation* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpriteAnimation* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - SpriteAnimation* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const SpriteAnimation& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const SpriteAnimation& from) { - SpriteAnimation::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpriteAnimation* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.SpriteAnimation"; - } - protected: - explicit SpriteAnimation(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kSpritePhaseFieldNumber = 6, - kDefaultStartPhaseFieldNumber = 1, - kSynchronizedFieldNumber = 2, - kRandomStartPhaseFieldNumber = 3, - kLoopCountFieldNumber = 5, - kLoopTypeFieldNumber = 4, - }; - // repeated .Canary.protobuf.appearances.SpritePhase sprite_phase = 6; - int sprite_phase_size() const; - private: - int _internal_sprite_phase_size() const; - public: - void clear_sprite_phase(); - ::Canary::protobuf::appearances::SpritePhase* mutable_sprite_phase(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::SpritePhase >* - mutable_sprite_phase(); - private: - const ::Canary::protobuf::appearances::SpritePhase& _internal_sprite_phase(int index) const; - ::Canary::protobuf::appearances::SpritePhase* _internal_add_sprite_phase(); - public: - const ::Canary::protobuf::appearances::SpritePhase& sprite_phase(int index) const; - ::Canary::protobuf::appearances::SpritePhase* add_sprite_phase(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::SpritePhase >& - sprite_phase() const; - - // optional uint32 default_start_phase = 1; - bool has_default_start_phase() const; - private: - bool _internal_has_default_start_phase() const; - public: - void clear_default_start_phase(); - uint32_t default_start_phase() const; - void set_default_start_phase(uint32_t value); - private: - uint32_t _internal_default_start_phase() const; - void _internal_set_default_start_phase(uint32_t value); - public: - - // optional bool synchronized = 2; - bool has_synchronized() const; - private: - bool _internal_has_synchronized() const; - public: - void clear_synchronized(); - bool synchronized() const; - void set_synchronized(bool value); - private: - bool _internal_synchronized() const; - void _internal_set_synchronized(bool value); - public: - - // optional bool random_start_phase = 3; - bool has_random_start_phase() const; - private: - bool _internal_has_random_start_phase() const; - public: - void clear_random_start_phase(); - bool random_start_phase() const; - void set_random_start_phase(bool value); - private: - bool _internal_random_start_phase() const; - void _internal_set_random_start_phase(bool value); - public: - - // optional uint32 loop_count = 5; - bool has_loop_count() const; - private: - bool _internal_has_loop_count() const; - public: - void clear_loop_count(); - uint32_t loop_count() const; - void set_loop_count(uint32_t value); - private: - uint32_t _internal_loop_count() const; - void _internal_set_loop_count(uint32_t value); - public: - - // optional .Canary.protobuf.appearances.ANIMATION_LOOP_TYPE loop_type = 4; - bool has_loop_type() const; - private: - bool _internal_has_loop_type() const; - public: - void clear_loop_type(); - ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE loop_type() const; - void set_loop_type(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE value); - private: - ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE _internal_loop_type() const; - void _internal_set_loop_type(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.SpriteAnimation) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::SpritePhase > sprite_phase_; - uint32_t default_start_phase_; - bool synchronized_; - bool random_start_phase_; - uint32_t loop_count_; - int loop_type_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class Box final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.Box) */ { - public: - inline Box() : Box(nullptr) {} - ~Box() override; - explicit PROTOBUF_CONSTEXPR Box(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Box(const Box& from); - Box(Box&& from) noexcept - : Box() { - *this = ::std::move(from); - } - - inline Box& operator=(const Box& from) { - CopyFrom(from); - return *this; - } - inline Box& operator=(Box&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Box& default_instance() { - return *internal_default_instance(); - } - static inline const Box* internal_default_instance() { - return reinterpret_cast( - &_Box_default_instance_); - } - static constexpr int kIndexInFileMessages = - 4; - - friend void swap(Box& a, Box& b) { - a.Swap(&b); - } - inline void Swap(Box* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Box* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Box* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Box& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const Box& from) { - Box::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Box* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.Box"; - } - protected: - explicit Box(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kXFieldNumber = 1, - kYFieldNumber = 2, - kWidthFieldNumber = 3, - kHeightFieldNumber = 4, - }; - // optional uint32 x = 1; - bool has_x() const; - private: - bool _internal_has_x() const; - public: - void clear_x(); - uint32_t x() const; - void set_x(uint32_t value); - private: - uint32_t _internal_x() const; - void _internal_set_x(uint32_t value); - public: - - // optional uint32 y = 2; - bool has_y() const; - private: - bool _internal_has_y() const; - public: - void clear_y(); - uint32_t y() const; - void set_y(uint32_t value); - private: - uint32_t _internal_y() const; - void _internal_set_y(uint32_t value); - public: - - // optional uint32 width = 3; - bool has_width() const; - private: - bool _internal_has_width() const; - public: - void clear_width(); - uint32_t width() const; - void set_width(uint32_t value); - private: - uint32_t _internal_width() const; - void _internal_set_width(uint32_t value); - public: - - // optional uint32 height = 4; - bool has_height() const; - private: - bool _internal_has_height() const; - public: - void clear_height(); - uint32_t height() const; - void set_height(uint32_t value); - private: - uint32_t _internal_height() const; - void _internal_set_height(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.Box) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t x_; - uint32_t y_; - uint32_t width_; - uint32_t height_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class SpriteInfo final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.SpriteInfo) */ { - public: - inline SpriteInfo() : SpriteInfo(nullptr) {} - ~SpriteInfo() override; - explicit PROTOBUF_CONSTEXPR SpriteInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - SpriteInfo(const SpriteInfo& from); - SpriteInfo(SpriteInfo&& from) noexcept - : SpriteInfo() { - *this = ::std::move(from); - } - - inline SpriteInfo& operator=(const SpriteInfo& from) { - CopyFrom(from); - return *this; - } - inline SpriteInfo& operator=(SpriteInfo&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const SpriteInfo& default_instance() { - return *internal_default_instance(); - } - static inline const SpriteInfo* internal_default_instance() { - return reinterpret_cast( - &_SpriteInfo_default_instance_); - } - static constexpr int kIndexInFileMessages = - 5; - - friend void swap(SpriteInfo& a, SpriteInfo& b) { - a.Swap(&b); - } - inline void Swap(SpriteInfo* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpriteInfo* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - SpriteInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const SpriteInfo& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const SpriteInfo& from) { - SpriteInfo::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpriteInfo* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.SpriteInfo"; - } - protected: - explicit SpriteInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kSpriteIdFieldNumber = 5, - kBoundingBoxPerDirectionFieldNumber = 9, - kAnimationFieldNumber = 6, - kPatternWidthFieldNumber = 1, - kPatternHeightFieldNumber = 2, - kPatternDepthFieldNumber = 3, - kLayersFieldNumber = 4, - kBoundingSquareFieldNumber = 7, - kIsOpaqueFieldNumber = 8, - }; - // repeated uint32 sprite_id = 5; - int sprite_id_size() const; - private: - int _internal_sprite_id_size() const; - public: - void clear_sprite_id(); - private: - uint32_t _internal_sprite_id(int index) const; - const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >& - _internal_sprite_id() const; - void _internal_add_sprite_id(uint32_t value); - ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >* - _internal_mutable_sprite_id(); - public: - uint32_t sprite_id(int index) const; - void set_sprite_id(int index, uint32_t value); - void add_sprite_id(uint32_t value); - const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >& - sprite_id() const; - ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >* - mutable_sprite_id(); - - // repeated .Canary.protobuf.appearances.Box bounding_box_per_direction = 9; - int bounding_box_per_direction_size() const; - private: - int _internal_bounding_box_per_direction_size() const; - public: - void clear_bounding_box_per_direction(); - ::Canary::protobuf::appearances::Box* mutable_bounding_box_per_direction(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Box >* - mutable_bounding_box_per_direction(); - private: - const ::Canary::protobuf::appearances::Box& _internal_bounding_box_per_direction(int index) const; - ::Canary::protobuf::appearances::Box* _internal_add_bounding_box_per_direction(); - public: - const ::Canary::protobuf::appearances::Box& bounding_box_per_direction(int index) const; - ::Canary::protobuf::appearances::Box* add_bounding_box_per_direction(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Box >& - bounding_box_per_direction() const; - - // optional .Canary.protobuf.appearances.SpriteAnimation animation = 6; - bool has_animation() const; - private: - bool _internal_has_animation() const; - public: - void clear_animation(); - const ::Canary::protobuf::appearances::SpriteAnimation& animation() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::SpriteAnimation* release_animation(); - ::Canary::protobuf::appearances::SpriteAnimation* mutable_animation(); - void set_allocated_animation(::Canary::protobuf::appearances::SpriteAnimation* animation); - private: - const ::Canary::protobuf::appearances::SpriteAnimation& _internal_animation() const; - ::Canary::protobuf::appearances::SpriteAnimation* _internal_mutable_animation(); - public: - void unsafe_arena_set_allocated_animation( - ::Canary::protobuf::appearances::SpriteAnimation* animation); - ::Canary::protobuf::appearances::SpriteAnimation* unsafe_arena_release_animation(); - - // optional uint32 pattern_width = 1; - bool has_pattern_width() const; - private: - bool _internal_has_pattern_width() const; - public: - void clear_pattern_width(); - uint32_t pattern_width() const; - void set_pattern_width(uint32_t value); - private: - uint32_t _internal_pattern_width() const; - void _internal_set_pattern_width(uint32_t value); - public: - - // optional uint32 pattern_height = 2; - bool has_pattern_height() const; - private: - bool _internal_has_pattern_height() const; - public: - void clear_pattern_height(); - uint32_t pattern_height() const; - void set_pattern_height(uint32_t value); - private: - uint32_t _internal_pattern_height() const; - void _internal_set_pattern_height(uint32_t value); - public: - - // optional uint32 pattern_depth = 3; - bool has_pattern_depth() const; - private: - bool _internal_has_pattern_depth() const; - public: - void clear_pattern_depth(); - uint32_t pattern_depth() const; - void set_pattern_depth(uint32_t value); - private: - uint32_t _internal_pattern_depth() const; - void _internal_set_pattern_depth(uint32_t value); - public: - - // optional uint32 layers = 4; - bool has_layers() const; - private: - bool _internal_has_layers() const; - public: - void clear_layers(); - uint32_t layers() const; - void set_layers(uint32_t value); - private: - uint32_t _internal_layers() const; - void _internal_set_layers(uint32_t value); - public: - - // optional uint32 bounding_square = 7; - bool has_bounding_square() const; - private: - bool _internal_has_bounding_square() const; - public: - void clear_bounding_square(); - uint32_t bounding_square() const; - void set_bounding_square(uint32_t value); - private: - uint32_t _internal_bounding_square() const; - void _internal_set_bounding_square(uint32_t value); - public: - - // optional bool is_opaque = 8; - bool has_is_opaque() const; - private: - bool _internal_has_is_opaque() const; - public: - void clear_is_opaque(); - bool is_opaque() const; - void set_is_opaque(bool value); - private: - bool _internal_is_opaque() const; - void _internal_set_is_opaque(bool value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.SpriteInfo) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > sprite_id_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Box > bounding_box_per_direction_; - ::Canary::protobuf::appearances::SpriteAnimation* animation_; - uint32_t pattern_width_; - uint32_t pattern_height_; - uint32_t pattern_depth_; - uint32_t layers_; - uint32_t bounding_square_; - bool is_opaque_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class FrameGroup final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.FrameGroup) */ { - public: - inline FrameGroup() : FrameGroup(nullptr) {} - ~FrameGroup() override; - explicit PROTOBUF_CONSTEXPR FrameGroup(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - FrameGroup(const FrameGroup& from); - FrameGroup(FrameGroup&& from) noexcept - : FrameGroup() { - *this = ::std::move(from); - } - - inline FrameGroup& operator=(const FrameGroup& from) { - CopyFrom(from); - return *this; - } - inline FrameGroup& operator=(FrameGroup&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const FrameGroup& default_instance() { - return *internal_default_instance(); - } - static inline const FrameGroup* internal_default_instance() { - return reinterpret_cast( - &_FrameGroup_default_instance_); - } - static constexpr int kIndexInFileMessages = - 6; - - friend void swap(FrameGroup& a, FrameGroup& b) { - a.Swap(&b); - } - inline void Swap(FrameGroup* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(FrameGroup* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - FrameGroup* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const FrameGroup& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const FrameGroup& from) { - FrameGroup::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(FrameGroup* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.FrameGroup"; - } - protected: - explicit FrameGroup(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kSpriteInfoFieldNumber = 3, - kFixedFrameGroupFieldNumber = 1, - kIdFieldNumber = 2, - }; - // optional .Canary.protobuf.appearances.SpriteInfo sprite_info = 3; - bool has_sprite_info() const; - private: - bool _internal_has_sprite_info() const; - public: - void clear_sprite_info(); - const ::Canary::protobuf::appearances::SpriteInfo& sprite_info() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::SpriteInfo* release_sprite_info(); - ::Canary::protobuf::appearances::SpriteInfo* mutable_sprite_info(); - void set_allocated_sprite_info(::Canary::protobuf::appearances::SpriteInfo* sprite_info); - private: - const ::Canary::protobuf::appearances::SpriteInfo& _internal_sprite_info() const; - ::Canary::protobuf::appearances::SpriteInfo* _internal_mutable_sprite_info(); - public: - void unsafe_arena_set_allocated_sprite_info( - ::Canary::protobuf::appearances::SpriteInfo* sprite_info); - ::Canary::protobuf::appearances::SpriteInfo* unsafe_arena_release_sprite_info(); - - // optional .Canary.protobuf.appearances.FIXED_FRAME_GROUP fixed_frame_group = 1; - bool has_fixed_frame_group() const; - private: - bool _internal_has_fixed_frame_group() const; - public: - void clear_fixed_frame_group(); - ::Canary::protobuf::appearances::FIXED_FRAME_GROUP fixed_frame_group() const; - void set_fixed_frame_group(::Canary::protobuf::appearances::FIXED_FRAME_GROUP value); - private: - ::Canary::protobuf::appearances::FIXED_FRAME_GROUP _internal_fixed_frame_group() const; - void _internal_set_fixed_frame_group(::Canary::protobuf::appearances::FIXED_FRAME_GROUP value); - public: - - // optional uint32 id = 2; - bool has_id() const; - private: - bool _internal_has_id() const; - public: - void clear_id(); - uint32_t id() const; - void set_id(uint32_t value); - private: - uint32_t _internal_id() const; - void _internal_set_id(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.FrameGroup) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::Canary::protobuf::appearances::SpriteInfo* sprite_info_; - int fixed_frame_group_; - uint32_t id_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class Appearance final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.Appearance) */ { - public: - inline Appearance() : Appearance(nullptr) {} - ~Appearance() override; - explicit PROTOBUF_CONSTEXPR Appearance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - Appearance(const Appearance& from); - Appearance(Appearance&& from) noexcept - : Appearance() { - *this = ::std::move(from); - } - - inline Appearance& operator=(const Appearance& from) { - CopyFrom(from); - return *this; - } - inline Appearance& operator=(Appearance&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const Appearance& default_instance() { - return *internal_default_instance(); - } - static inline const Appearance* internal_default_instance() { - return reinterpret_cast( - &_Appearance_default_instance_); - } - static constexpr int kIndexInFileMessages = - 7; - - friend void swap(Appearance& a, Appearance& b) { - a.Swap(&b); - } - inline void Swap(Appearance* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(Appearance* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - Appearance* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const Appearance& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const Appearance& from) { - Appearance::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(Appearance* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.Appearance"; - } - protected: - explicit Appearance(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kFrameGroupFieldNumber = 2, - kNameFieldNumber = 4, - kDescriptionFieldNumber = 5, - kFlagsFieldNumber = 3, - kIdFieldNumber = 1, - }; - // repeated .Canary.protobuf.appearances.FrameGroup frame_group = 2; - int frame_group_size() const; - private: - int _internal_frame_group_size() const; - public: - void clear_frame_group(); - ::Canary::protobuf::appearances::FrameGroup* mutable_frame_group(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::FrameGroup >* - mutable_frame_group(); - private: - const ::Canary::protobuf::appearances::FrameGroup& _internal_frame_group(int index) const; - ::Canary::protobuf::appearances::FrameGroup* _internal_add_frame_group(); - public: - const ::Canary::protobuf::appearances::FrameGroup& frame_group(int index) const; - ::Canary::protobuf::appearances::FrameGroup* add_frame_group(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::FrameGroup >& - frame_group() const; - - // optional bytes name = 4; - bool has_name() const; - private: - bool _internal_has_name() const; - public: - void clear_name(); - const std::string& name() const; - template - void set_name(ArgT0&& arg0, ArgT... args); - std::string* mutable_name(); - PROTOBUF_NODISCARD std::string* release_name(); - void set_allocated_name(std::string* name); - private: - const std::string& _internal_name() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); - std::string* _internal_mutable_name(); - public: - - // optional bytes description = 5; - bool has_description() const; - private: - bool _internal_has_description() const; - public: - void clear_description(); - const std::string& description() const; - template - void set_description(ArgT0&& arg0, ArgT... args); - std::string* mutable_description(); - PROTOBUF_NODISCARD std::string* release_description(); - void set_allocated_description(std::string* description); - private: - const std::string& _internal_description() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value); - std::string* _internal_mutable_description(); - public: - - // optional .Canary.protobuf.appearances.AppearanceFlags flags = 3; - bool has_flags() const; - private: - bool _internal_has_flags() const; - public: - void clear_flags(); - const ::Canary::protobuf::appearances::AppearanceFlags& flags() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlags* release_flags(); - ::Canary::protobuf::appearances::AppearanceFlags* mutable_flags(); - void set_allocated_flags(::Canary::protobuf::appearances::AppearanceFlags* flags); - private: - const ::Canary::protobuf::appearances::AppearanceFlags& _internal_flags() const; - ::Canary::protobuf::appearances::AppearanceFlags* _internal_mutable_flags(); - public: - void unsafe_arena_set_allocated_flags( - ::Canary::protobuf::appearances::AppearanceFlags* flags); - ::Canary::protobuf::appearances::AppearanceFlags* unsafe_arena_release_flags(); - - // optional uint32 id = 1; - bool has_id() const; - private: - bool _internal_has_id() const; - public: - void clear_id(); - uint32_t id() const; - void set_id(uint32_t value); - private: - uint32_t _internal_id() const; - void _internal_set_id(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.Appearance) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::FrameGroup > frame_group_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_; - ::Canary::protobuf::appearances::AppearanceFlags* flags_; - uint32_t id_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlags final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlags) */ { - public: - inline AppearanceFlags() : AppearanceFlags(nullptr) {} - ~AppearanceFlags() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlags(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlags(const AppearanceFlags& from); - AppearanceFlags(AppearanceFlags&& from) noexcept - : AppearanceFlags() { - *this = ::std::move(from); - } - - inline AppearanceFlags& operator=(const AppearanceFlags& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlags& operator=(AppearanceFlags&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlags& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlags* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlags_default_instance_); - } - static constexpr int kIndexInFileMessages = - 8; - - friend void swap(AppearanceFlags& a, AppearanceFlags& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlags* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlags* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlags* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlags& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlags& from) { - AppearanceFlags::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlags* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlags"; - } - protected: - explicit AppearanceFlags(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kNpcsaledataFieldNumber = 40, - kBankFieldNumber = 1, - kWriteFieldNumber = 10, - kWriteOnceFieldNumber = 11, - kHookFieldNumber = 21, - kLightFieldNumber = 23, - kShiftFieldNumber = 26, - kHeightFieldNumber = 27, - kAutomapFieldNumber = 30, - kLenshelpFieldNumber = 31, - kClothesFieldNumber = 34, - kDefaultActionFieldNumber = 35, - kMarketFieldNumber = 36, - kChangedtoexpireFieldNumber = 41, - kCyclopediaitemFieldNumber = 44, - kUpgradeclassificationFieldNumber = 48, - kClipFieldNumber = 2, - kBottomFieldNumber = 3, - kTopFieldNumber = 4, - kContainerFieldNumber = 5, - kCumulativeFieldNumber = 6, - kUsableFieldNumber = 7, - kForceuseFieldNumber = 8, - kMultiuseFieldNumber = 9, - kLiquidpoolFieldNumber = 12, - kUnpassFieldNumber = 13, - kUnmoveFieldNumber = 14, - kUnsightFieldNumber = 15, - kAvoidFieldNumber = 16, - kNoMovementAnimationFieldNumber = 17, - kTakeFieldNumber = 18, - kLiquidcontainerFieldNumber = 19, - kHangFieldNumber = 20, - kRotateFieldNumber = 22, - kDontHideFieldNumber = 24, - kTranslucentFieldNumber = 25, - kLyingObjectFieldNumber = 28, - kAnimateAlwaysFieldNumber = 29, - kFullbankFieldNumber = 32, - kIgnoreLookFieldNumber = 33, - kWrapFieldNumber = 37, - kUnwrapFieldNumber = 38, - kTopeffectFieldNumber = 39, - kCorpseFieldNumber = 42, - kPlayerCorpseFieldNumber = 43, - kAmmoFieldNumber = 45, - kShowOffSocketFieldNumber = 46, - kReportableFieldNumber = 47, - kReverseAddonsEastFieldNumber = 49, - kReverseAddonsWestFieldNumber = 50, - kReverseAddonsSouthFieldNumber = 51, - kReverseAddonsNorthFieldNumber = 52, - kWearoutFieldNumber = 53, - kClockexpireFieldNumber = 54, - kExpireFieldNumber = 55, - kExpirestopFieldNumber = 56, - kWrapkitFieldNumber = 57, - }; - // repeated .Canary.protobuf.appearances.AppearanceFlagNPC npcsaledata = 40; - int npcsaledata_size() const; - private: - int _internal_npcsaledata_size() const; - public: - void clear_npcsaledata(); - ::Canary::protobuf::appearances::AppearanceFlagNPC* mutable_npcsaledata(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::AppearanceFlagNPC >* - mutable_npcsaledata(); - private: - const ::Canary::protobuf::appearances::AppearanceFlagNPC& _internal_npcsaledata(int index) const; - ::Canary::protobuf::appearances::AppearanceFlagNPC* _internal_add_npcsaledata(); - public: - const ::Canary::protobuf::appearances::AppearanceFlagNPC& npcsaledata(int index) const; - ::Canary::protobuf::appearances::AppearanceFlagNPC* add_npcsaledata(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::AppearanceFlagNPC >& - npcsaledata() const; - - // optional .Canary.protobuf.appearances.AppearanceFlagBank bank = 1; - bool has_bank() const; - private: - bool _internal_has_bank() const; - public: - void clear_bank(); - const ::Canary::protobuf::appearances::AppearanceFlagBank& bank() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagBank* release_bank(); - ::Canary::protobuf::appearances::AppearanceFlagBank* mutable_bank(); - void set_allocated_bank(::Canary::protobuf::appearances::AppearanceFlagBank* bank); - private: - const ::Canary::protobuf::appearances::AppearanceFlagBank& _internal_bank() const; - ::Canary::protobuf::appearances::AppearanceFlagBank* _internal_mutable_bank(); - public: - void unsafe_arena_set_allocated_bank( - ::Canary::protobuf::appearances::AppearanceFlagBank* bank); - ::Canary::protobuf::appearances::AppearanceFlagBank* unsafe_arena_release_bank(); - - // optional .Canary.protobuf.appearances.AppearanceFlagWrite write = 10; - bool has_write() const; - private: - bool _internal_has_write() const; - public: - void clear_write(); - const ::Canary::protobuf::appearances::AppearanceFlagWrite& write() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagWrite* release_write(); - ::Canary::protobuf::appearances::AppearanceFlagWrite* mutable_write(); - void set_allocated_write(::Canary::protobuf::appearances::AppearanceFlagWrite* write); - private: - const ::Canary::protobuf::appearances::AppearanceFlagWrite& _internal_write() const; - ::Canary::protobuf::appearances::AppearanceFlagWrite* _internal_mutable_write(); - public: - void unsafe_arena_set_allocated_write( - ::Canary::protobuf::appearances::AppearanceFlagWrite* write); - ::Canary::protobuf::appearances::AppearanceFlagWrite* unsafe_arena_release_write(); - - // optional .Canary.protobuf.appearances.AppearanceFlagWriteOnce write_once = 11; - bool has_write_once() const; - private: - bool _internal_has_write_once() const; - public: - void clear_write_once(); - const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& write_once() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* release_write_once(); - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* mutable_write_once(); - void set_allocated_write_once(::Canary::protobuf::appearances::AppearanceFlagWriteOnce* write_once); - private: - const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& _internal_write_once() const; - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* _internal_mutable_write_once(); - public: - void unsafe_arena_set_allocated_write_once( - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* write_once); - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* unsafe_arena_release_write_once(); - - // optional .Canary.protobuf.appearances.AppearanceFlagHook hook = 21; - bool has_hook() const; - private: - bool _internal_has_hook() const; - public: - void clear_hook(); - const ::Canary::protobuf::appearances::AppearanceFlagHook& hook() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagHook* release_hook(); - ::Canary::protobuf::appearances::AppearanceFlagHook* mutable_hook(); - void set_allocated_hook(::Canary::protobuf::appearances::AppearanceFlagHook* hook); - private: - const ::Canary::protobuf::appearances::AppearanceFlagHook& _internal_hook() const; - ::Canary::protobuf::appearances::AppearanceFlagHook* _internal_mutable_hook(); - public: - void unsafe_arena_set_allocated_hook( - ::Canary::protobuf::appearances::AppearanceFlagHook* hook); - ::Canary::protobuf::appearances::AppearanceFlagHook* unsafe_arena_release_hook(); - - // optional .Canary.protobuf.appearances.AppearanceFlagLight light = 23; - bool has_light() const; - private: - bool _internal_has_light() const; - public: - void clear_light(); - const ::Canary::protobuf::appearances::AppearanceFlagLight& light() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagLight* release_light(); - ::Canary::protobuf::appearances::AppearanceFlagLight* mutable_light(); - void set_allocated_light(::Canary::protobuf::appearances::AppearanceFlagLight* light); - private: - const ::Canary::protobuf::appearances::AppearanceFlagLight& _internal_light() const; - ::Canary::protobuf::appearances::AppearanceFlagLight* _internal_mutable_light(); - public: - void unsafe_arena_set_allocated_light( - ::Canary::protobuf::appearances::AppearanceFlagLight* light); - ::Canary::protobuf::appearances::AppearanceFlagLight* unsafe_arena_release_light(); - - // optional .Canary.protobuf.appearances.AppearanceFlagShift shift = 26; - bool has_shift() const; - private: - bool _internal_has_shift() const; - public: - void clear_shift(); - const ::Canary::protobuf::appearances::AppearanceFlagShift& shift() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagShift* release_shift(); - ::Canary::protobuf::appearances::AppearanceFlagShift* mutable_shift(); - void set_allocated_shift(::Canary::protobuf::appearances::AppearanceFlagShift* shift); - private: - const ::Canary::protobuf::appearances::AppearanceFlagShift& _internal_shift() const; - ::Canary::protobuf::appearances::AppearanceFlagShift* _internal_mutable_shift(); - public: - void unsafe_arena_set_allocated_shift( - ::Canary::protobuf::appearances::AppearanceFlagShift* shift); - ::Canary::protobuf::appearances::AppearanceFlagShift* unsafe_arena_release_shift(); - - // optional .Canary.protobuf.appearances.AppearanceFlagHeight height = 27; - bool has_height() const; - private: - bool _internal_has_height() const; - public: - void clear_height(); - const ::Canary::protobuf::appearances::AppearanceFlagHeight& height() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagHeight* release_height(); - ::Canary::protobuf::appearances::AppearanceFlagHeight* mutable_height(); - void set_allocated_height(::Canary::protobuf::appearances::AppearanceFlagHeight* height); - private: - const ::Canary::protobuf::appearances::AppearanceFlagHeight& _internal_height() const; - ::Canary::protobuf::appearances::AppearanceFlagHeight* _internal_mutable_height(); - public: - void unsafe_arena_set_allocated_height( - ::Canary::protobuf::appearances::AppearanceFlagHeight* height); - ::Canary::protobuf::appearances::AppearanceFlagHeight* unsafe_arena_release_height(); - - // optional .Canary.protobuf.appearances.AppearanceFlagAutomap automap = 30; - bool has_automap() const; - private: - bool _internal_has_automap() const; - public: - void clear_automap(); - const ::Canary::protobuf::appearances::AppearanceFlagAutomap& automap() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagAutomap* release_automap(); - ::Canary::protobuf::appearances::AppearanceFlagAutomap* mutable_automap(); - void set_allocated_automap(::Canary::protobuf::appearances::AppearanceFlagAutomap* automap); - private: - const ::Canary::protobuf::appearances::AppearanceFlagAutomap& _internal_automap() const; - ::Canary::protobuf::appearances::AppearanceFlagAutomap* _internal_mutable_automap(); - public: - void unsafe_arena_set_allocated_automap( - ::Canary::protobuf::appearances::AppearanceFlagAutomap* automap); - ::Canary::protobuf::appearances::AppearanceFlagAutomap* unsafe_arena_release_automap(); - - // optional .Canary.protobuf.appearances.AppearanceFlagLenshelp lenshelp = 31; - bool has_lenshelp() const; - private: - bool _internal_has_lenshelp() const; - public: - void clear_lenshelp(); - const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& lenshelp() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagLenshelp* release_lenshelp(); - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* mutable_lenshelp(); - void set_allocated_lenshelp(::Canary::protobuf::appearances::AppearanceFlagLenshelp* lenshelp); - private: - const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& _internal_lenshelp() const; - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* _internal_mutable_lenshelp(); - public: - void unsafe_arena_set_allocated_lenshelp( - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* lenshelp); - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* unsafe_arena_release_lenshelp(); - - // optional .Canary.protobuf.appearances.AppearanceFlagClothes clothes = 34; - bool has_clothes() const; - private: - bool _internal_has_clothes() const; - public: - void clear_clothes(); - const ::Canary::protobuf::appearances::AppearanceFlagClothes& clothes() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagClothes* release_clothes(); - ::Canary::protobuf::appearances::AppearanceFlagClothes* mutable_clothes(); - void set_allocated_clothes(::Canary::protobuf::appearances::AppearanceFlagClothes* clothes); - private: - const ::Canary::protobuf::appearances::AppearanceFlagClothes& _internal_clothes() const; - ::Canary::protobuf::appearances::AppearanceFlagClothes* _internal_mutable_clothes(); - public: - void unsafe_arena_set_allocated_clothes( - ::Canary::protobuf::appearances::AppearanceFlagClothes* clothes); - ::Canary::protobuf::appearances::AppearanceFlagClothes* unsafe_arena_release_clothes(); - - // optional .Canary.protobuf.appearances.AppearanceFlagDefaultAction default_action = 35; - bool has_default_action() const; - private: - bool _internal_has_default_action() const; - public: - void clear_default_action(); - const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& default_action() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* release_default_action(); - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* mutable_default_action(); - void set_allocated_default_action(::Canary::protobuf::appearances::AppearanceFlagDefaultAction* default_action); - private: - const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& _internal_default_action() const; - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* _internal_mutable_default_action(); - public: - void unsafe_arena_set_allocated_default_action( - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* default_action); - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* unsafe_arena_release_default_action(); - - // optional .Canary.protobuf.appearances.AppearanceFlagMarket market = 36; - bool has_market() const; - private: - bool _internal_has_market() const; - public: - void clear_market(); - const ::Canary::protobuf::appearances::AppearanceFlagMarket& market() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagMarket* release_market(); - ::Canary::protobuf::appearances::AppearanceFlagMarket* mutable_market(); - void set_allocated_market(::Canary::protobuf::appearances::AppearanceFlagMarket* market); - private: - const ::Canary::protobuf::appearances::AppearanceFlagMarket& _internal_market() const; - ::Canary::protobuf::appearances::AppearanceFlagMarket* _internal_mutable_market(); - public: - void unsafe_arena_set_allocated_market( - ::Canary::protobuf::appearances::AppearanceFlagMarket* market); - ::Canary::protobuf::appearances::AppearanceFlagMarket* unsafe_arena_release_market(); - - // optional .Canary.protobuf.appearances.AppearanceFlagChangedToExpire changedtoexpire = 41; - bool has_changedtoexpire() const; - private: - bool _internal_has_changedtoexpire() const; - public: - void clear_changedtoexpire(); - const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& changedtoexpire() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* release_changedtoexpire(); - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* mutable_changedtoexpire(); - void set_allocated_changedtoexpire(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* changedtoexpire); - private: - const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& _internal_changedtoexpire() const; - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* _internal_mutable_changedtoexpire(); - public: - void unsafe_arena_set_allocated_changedtoexpire( - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* changedtoexpire); - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* unsafe_arena_release_changedtoexpire(); - - // optional .Canary.protobuf.appearances.AppearanceFlagCyclopedia cyclopediaitem = 44; - bool has_cyclopediaitem() const; - private: - bool _internal_has_cyclopediaitem() const; - public: - void clear_cyclopediaitem(); - const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& cyclopediaitem() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* release_cyclopediaitem(); - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* mutable_cyclopediaitem(); - void set_allocated_cyclopediaitem(::Canary::protobuf::appearances::AppearanceFlagCyclopedia* cyclopediaitem); - private: - const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& _internal_cyclopediaitem() const; - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* _internal_mutable_cyclopediaitem(); - public: - void unsafe_arena_set_allocated_cyclopediaitem( - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* cyclopediaitem); - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* unsafe_arena_release_cyclopediaitem(); - - // optional .Canary.protobuf.appearances.AppearanceFlagUpgradeClassification upgradeclassification = 48; - bool has_upgradeclassification() const; - private: - bool _internal_has_upgradeclassification() const; - public: - void clear_upgradeclassification(); - const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& upgradeclassification() const; - PROTOBUF_NODISCARD ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* release_upgradeclassification(); - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* mutable_upgradeclassification(); - void set_allocated_upgradeclassification(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* upgradeclassification); - private: - const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& _internal_upgradeclassification() const; - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* _internal_mutable_upgradeclassification(); - public: - void unsafe_arena_set_allocated_upgradeclassification( - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* upgradeclassification); - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* unsafe_arena_release_upgradeclassification(); - - // optional bool clip = 2; - bool has_clip() const; - private: - bool _internal_has_clip() const; - public: - void clear_clip(); - bool clip() const; - void set_clip(bool value); - private: - bool _internal_clip() const; - void _internal_set_clip(bool value); - public: - - // optional bool bottom = 3; - bool has_bottom() const; - private: - bool _internal_has_bottom() const; - public: - void clear_bottom(); - bool bottom() const; - void set_bottom(bool value); - private: - bool _internal_bottom() const; - void _internal_set_bottom(bool value); - public: - - // optional bool top = 4; - bool has_top() const; - private: - bool _internal_has_top() const; - public: - void clear_top(); - bool top() const; - void set_top(bool value); - private: - bool _internal_top() const; - void _internal_set_top(bool value); - public: - - // optional bool container = 5; - bool has_container() const; - private: - bool _internal_has_container() const; - public: - void clear_container(); - bool container() const; - void set_container(bool value); - private: - bool _internal_container() const; - void _internal_set_container(bool value); - public: - - // optional bool cumulative = 6; - bool has_cumulative() const; - private: - bool _internal_has_cumulative() const; - public: - void clear_cumulative(); - bool cumulative() const; - void set_cumulative(bool value); - private: - bool _internal_cumulative() const; - void _internal_set_cumulative(bool value); - public: - - // optional bool usable = 7; - bool has_usable() const; - private: - bool _internal_has_usable() const; - public: - void clear_usable(); - bool usable() const; - void set_usable(bool value); - private: - bool _internal_usable() const; - void _internal_set_usable(bool value); - public: - - // optional bool forceuse = 8; - bool has_forceuse() const; - private: - bool _internal_has_forceuse() const; - public: - void clear_forceuse(); - bool forceuse() const; - void set_forceuse(bool value); - private: - bool _internal_forceuse() const; - void _internal_set_forceuse(bool value); - public: - - // optional bool multiuse = 9; - bool has_multiuse() const; - private: - bool _internal_has_multiuse() const; - public: - void clear_multiuse(); - bool multiuse() const; - void set_multiuse(bool value); - private: - bool _internal_multiuse() const; - void _internal_set_multiuse(bool value); - public: - - // optional bool liquidpool = 12; - bool has_liquidpool() const; - private: - bool _internal_has_liquidpool() const; - public: - void clear_liquidpool(); - bool liquidpool() const; - void set_liquidpool(bool value); - private: - bool _internal_liquidpool() const; - void _internal_set_liquidpool(bool value); - public: - - // optional bool unpass = 13; - bool has_unpass() const; - private: - bool _internal_has_unpass() const; - public: - void clear_unpass(); - bool unpass() const; - void set_unpass(bool value); - private: - bool _internal_unpass() const; - void _internal_set_unpass(bool value); - public: - - // optional bool unmove = 14; - bool has_unmove() const; - private: - bool _internal_has_unmove() const; - public: - void clear_unmove(); - bool unmove() const; - void set_unmove(bool value); - private: - bool _internal_unmove() const; - void _internal_set_unmove(bool value); - public: - - // optional bool unsight = 15; - bool has_unsight() const; - private: - bool _internal_has_unsight() const; - public: - void clear_unsight(); - bool unsight() const; - void set_unsight(bool value); - private: - bool _internal_unsight() const; - void _internal_set_unsight(bool value); - public: - - // optional bool avoid = 16; - bool has_avoid() const; - private: - bool _internal_has_avoid() const; - public: - void clear_avoid(); - bool avoid() const; - void set_avoid(bool value); - private: - bool _internal_avoid() const; - void _internal_set_avoid(bool value); - public: - - // optional bool no_movement_animation = 17; - bool has_no_movement_animation() const; - private: - bool _internal_has_no_movement_animation() const; - public: - void clear_no_movement_animation(); - bool no_movement_animation() const; - void set_no_movement_animation(bool value); - private: - bool _internal_no_movement_animation() const; - void _internal_set_no_movement_animation(bool value); - public: - - // optional bool take = 18; - bool has_take() const; - private: - bool _internal_has_take() const; - public: - void clear_take(); - bool take() const; - void set_take(bool value); - private: - bool _internal_take() const; - void _internal_set_take(bool value); - public: - - // optional bool liquidcontainer = 19; - bool has_liquidcontainer() const; - private: - bool _internal_has_liquidcontainer() const; - public: - void clear_liquidcontainer(); - bool liquidcontainer() const; - void set_liquidcontainer(bool value); - private: - bool _internal_liquidcontainer() const; - void _internal_set_liquidcontainer(bool value); - public: - - // optional bool hang = 20; - bool has_hang() const; - private: - bool _internal_has_hang() const; - public: - void clear_hang(); - bool hang() const; - void set_hang(bool value); - private: - bool _internal_hang() const; - void _internal_set_hang(bool value); - public: - - // optional bool rotate = 22; - bool has_rotate() const; - private: - bool _internal_has_rotate() const; - public: - void clear_rotate(); - bool rotate() const; - void set_rotate(bool value); - private: - bool _internal_rotate() const; - void _internal_set_rotate(bool value); - public: - - // optional bool dont_hide = 24; - bool has_dont_hide() const; - private: - bool _internal_has_dont_hide() const; - public: - void clear_dont_hide(); - bool dont_hide() const; - void set_dont_hide(bool value); - private: - bool _internal_dont_hide() const; - void _internal_set_dont_hide(bool value); - public: - - // optional bool translucent = 25; - bool has_translucent() const; - private: - bool _internal_has_translucent() const; - public: - void clear_translucent(); - bool translucent() const; - void set_translucent(bool value); - private: - bool _internal_translucent() const; - void _internal_set_translucent(bool value); - public: - - // optional bool lying_object = 28; - bool has_lying_object() const; - private: - bool _internal_has_lying_object() const; - public: - void clear_lying_object(); - bool lying_object() const; - void set_lying_object(bool value); - private: - bool _internal_lying_object() const; - void _internal_set_lying_object(bool value); - public: - - // optional bool animate_always = 29; - bool has_animate_always() const; - private: - bool _internal_has_animate_always() const; - public: - void clear_animate_always(); - bool animate_always() const; - void set_animate_always(bool value); - private: - bool _internal_animate_always() const; - void _internal_set_animate_always(bool value); - public: - - // optional bool fullbank = 32; - bool has_fullbank() const; - private: - bool _internal_has_fullbank() const; - public: - void clear_fullbank(); - bool fullbank() const; - void set_fullbank(bool value); - private: - bool _internal_fullbank() const; - void _internal_set_fullbank(bool value); - public: - - // optional bool ignore_look = 33; - bool has_ignore_look() const; - private: - bool _internal_has_ignore_look() const; - public: - void clear_ignore_look(); - bool ignore_look() const; - void set_ignore_look(bool value); - private: - bool _internal_ignore_look() const; - void _internal_set_ignore_look(bool value); - public: - - // optional bool wrap = 37; - bool has_wrap() const; - private: - bool _internal_has_wrap() const; - public: - void clear_wrap(); - bool wrap() const; - void set_wrap(bool value); - private: - bool _internal_wrap() const; - void _internal_set_wrap(bool value); - public: - - // optional bool unwrap = 38; - bool has_unwrap() const; - private: - bool _internal_has_unwrap() const; - public: - void clear_unwrap(); - bool unwrap() const; - void set_unwrap(bool value); - private: - bool _internal_unwrap() const; - void _internal_set_unwrap(bool value); - public: - - // optional bool topeffect = 39; - bool has_topeffect() const; - private: - bool _internal_has_topeffect() const; - public: - void clear_topeffect(); - bool topeffect() const; - void set_topeffect(bool value); - private: - bool _internal_topeffect() const; - void _internal_set_topeffect(bool value); - public: - - // optional bool corpse = 42; - bool has_corpse() const; - private: - bool _internal_has_corpse() const; - public: - void clear_corpse(); - bool corpse() const; - void set_corpse(bool value); - private: - bool _internal_corpse() const; - void _internal_set_corpse(bool value); - public: - - // optional bool player_corpse = 43; - bool has_player_corpse() const; - private: - bool _internal_has_player_corpse() const; - public: - void clear_player_corpse(); - bool player_corpse() const; - void set_player_corpse(bool value); - private: - bool _internal_player_corpse() const; - void _internal_set_player_corpse(bool value); - public: - - // optional bool ammo = 45; - bool has_ammo() const; - private: - bool _internal_has_ammo() const; - public: - void clear_ammo(); - bool ammo() const; - void set_ammo(bool value); - private: - bool _internal_ammo() const; - void _internal_set_ammo(bool value); - public: - - // optional bool show_off_socket = 46; - bool has_show_off_socket() const; - private: - bool _internal_has_show_off_socket() const; - public: - void clear_show_off_socket(); - bool show_off_socket() const; - void set_show_off_socket(bool value); - private: - bool _internal_show_off_socket() const; - void _internal_set_show_off_socket(bool value); - public: - - // optional bool reportable = 47; - bool has_reportable() const; - private: - bool _internal_has_reportable() const; - public: - void clear_reportable(); - bool reportable() const; - void set_reportable(bool value); - private: - bool _internal_reportable() const; - void _internal_set_reportable(bool value); - public: - - // optional bool reverse_addons_east = 49; - bool has_reverse_addons_east() const; - private: - bool _internal_has_reverse_addons_east() const; - public: - void clear_reverse_addons_east(); - bool reverse_addons_east() const; - void set_reverse_addons_east(bool value); - private: - bool _internal_reverse_addons_east() const; - void _internal_set_reverse_addons_east(bool value); - public: - - // optional bool reverse_addons_west = 50; - bool has_reverse_addons_west() const; - private: - bool _internal_has_reverse_addons_west() const; - public: - void clear_reverse_addons_west(); - bool reverse_addons_west() const; - void set_reverse_addons_west(bool value); - private: - bool _internal_reverse_addons_west() const; - void _internal_set_reverse_addons_west(bool value); - public: - - // optional bool reverse_addons_south = 51; - bool has_reverse_addons_south() const; - private: - bool _internal_has_reverse_addons_south() const; - public: - void clear_reverse_addons_south(); - bool reverse_addons_south() const; - void set_reverse_addons_south(bool value); - private: - bool _internal_reverse_addons_south() const; - void _internal_set_reverse_addons_south(bool value); - public: - - // optional bool reverse_addons_north = 52; - bool has_reverse_addons_north() const; - private: - bool _internal_has_reverse_addons_north() const; - public: - void clear_reverse_addons_north(); - bool reverse_addons_north() const; - void set_reverse_addons_north(bool value); - private: - bool _internal_reverse_addons_north() const; - void _internal_set_reverse_addons_north(bool value); - public: - - // optional bool wearout = 53; - bool has_wearout() const; - private: - bool _internal_has_wearout() const; - public: - void clear_wearout(); - bool wearout() const; - void set_wearout(bool value); - private: - bool _internal_wearout() const; - void _internal_set_wearout(bool value); - public: - - // optional bool clockexpire = 54; - bool has_clockexpire() const; - private: - bool _internal_has_clockexpire() const; - public: - void clear_clockexpire(); - bool clockexpire() const; - void set_clockexpire(bool value); - private: - bool _internal_clockexpire() const; - void _internal_set_clockexpire(bool value); - public: - - // optional bool expire = 55; - bool has_expire() const; - private: - bool _internal_has_expire() const; - public: - void clear_expire(); - bool expire() const; - void set_expire(bool value); - private: - bool _internal_expire() const; - void _internal_set_expire(bool value); - public: - - // optional bool expirestop = 56; - bool has_expirestop() const; - private: - bool _internal_has_expirestop() const; - public: - void clear_expirestop(); - bool expirestop() const; - void set_expirestop(bool value); - private: - bool _internal_expirestop() const; - void _internal_set_expirestop(bool value); - public: - - // optional bool wrapkit = 57; - bool has_wrapkit() const; - private: - bool _internal_has_wrapkit() const; - public: - void clear_wrapkit(); - bool wrapkit() const; - void set_wrapkit(bool value); - private: - bool _internal_wrapkit() const; - void _internal_set_wrapkit(bool value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlags) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<2> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::AppearanceFlagNPC > npcsaledata_; - ::Canary::protobuf::appearances::AppearanceFlagBank* bank_; - ::Canary::protobuf::appearances::AppearanceFlagWrite* write_; - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* write_once_; - ::Canary::protobuf::appearances::AppearanceFlagHook* hook_; - ::Canary::protobuf::appearances::AppearanceFlagLight* light_; - ::Canary::protobuf::appearances::AppearanceFlagShift* shift_; - ::Canary::protobuf::appearances::AppearanceFlagHeight* height_; - ::Canary::protobuf::appearances::AppearanceFlagAutomap* automap_; - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* lenshelp_; - ::Canary::protobuf::appearances::AppearanceFlagClothes* clothes_; - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* default_action_; - ::Canary::protobuf::appearances::AppearanceFlagMarket* market_; - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* changedtoexpire_; - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* cyclopediaitem_; - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* upgradeclassification_; - bool clip_; - bool bottom_; - bool top_; - bool container_; - bool cumulative_; - bool usable_; - bool forceuse_; - bool multiuse_; - bool liquidpool_; - bool unpass_; - bool unmove_; - bool unsight_; - bool avoid_; - bool no_movement_animation_; - bool take_; - bool liquidcontainer_; - bool hang_; - bool rotate_; - bool dont_hide_; - bool translucent_; - bool lying_object_; - bool animate_always_; - bool fullbank_; - bool ignore_look_; - bool wrap_; - bool unwrap_; - bool topeffect_; - bool corpse_; - bool player_corpse_; - bool ammo_; - bool show_off_socket_; - bool reportable_; - bool reverse_addons_east_; - bool reverse_addons_west_; - bool reverse_addons_south_; - bool reverse_addons_north_; - bool wearout_; - bool clockexpire_; - bool expire_; - bool expirestop_; - bool wrapkit_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagUpgradeClassification final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) */ { - public: - inline AppearanceFlagUpgradeClassification() : AppearanceFlagUpgradeClassification(nullptr) {} - ~AppearanceFlagUpgradeClassification() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagUpgradeClassification(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagUpgradeClassification(const AppearanceFlagUpgradeClassification& from); - AppearanceFlagUpgradeClassification(AppearanceFlagUpgradeClassification&& from) noexcept - : AppearanceFlagUpgradeClassification() { - *this = ::std::move(from); - } - - inline AppearanceFlagUpgradeClassification& operator=(const AppearanceFlagUpgradeClassification& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagUpgradeClassification& operator=(AppearanceFlagUpgradeClassification&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagUpgradeClassification& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagUpgradeClassification* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagUpgradeClassification_default_instance_); - } - static constexpr int kIndexInFileMessages = - 9; - - friend void swap(AppearanceFlagUpgradeClassification& a, AppearanceFlagUpgradeClassification& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagUpgradeClassification* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagUpgradeClassification* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagUpgradeClassification* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagUpgradeClassification& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagUpgradeClassification& from) { - AppearanceFlagUpgradeClassification::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagUpgradeClassification* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagUpgradeClassification"; - } - protected: - explicit AppearanceFlagUpgradeClassification(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kUpgradeClassificationFieldNumber = 1, - }; - // optional uint32 upgrade_classification = 1; - bool has_upgrade_classification() const; - private: - bool _internal_has_upgrade_classification() const; - public: - void clear_upgrade_classification(); - uint32_t upgrade_classification() const; - void set_upgrade_classification(uint32_t value); - private: - uint32_t _internal_upgrade_classification() const; - void _internal_set_upgrade_classification(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t upgrade_classification_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagBank final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagBank) */ { - public: - inline AppearanceFlagBank() : AppearanceFlagBank(nullptr) {} - ~AppearanceFlagBank() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagBank(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagBank(const AppearanceFlagBank& from); - AppearanceFlagBank(AppearanceFlagBank&& from) noexcept - : AppearanceFlagBank() { - *this = ::std::move(from); - } - - inline AppearanceFlagBank& operator=(const AppearanceFlagBank& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagBank& operator=(AppearanceFlagBank&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagBank& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagBank* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagBank_default_instance_); - } - static constexpr int kIndexInFileMessages = - 10; - - friend void swap(AppearanceFlagBank& a, AppearanceFlagBank& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagBank* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagBank* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagBank* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagBank& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagBank& from) { - AppearanceFlagBank::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagBank* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagBank"; - } - protected: - explicit AppearanceFlagBank(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kWaypointsFieldNumber = 1, - }; - // optional uint32 waypoints = 1; - bool has_waypoints() const; - private: - bool _internal_has_waypoints() const; - public: - void clear_waypoints(); - uint32_t waypoints() const; - void set_waypoints(uint32_t value); - private: - uint32_t _internal_waypoints() const; - void _internal_set_waypoints(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagBank) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t waypoints_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagWrite final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagWrite) */ { - public: - inline AppearanceFlagWrite() : AppearanceFlagWrite(nullptr) {} - ~AppearanceFlagWrite() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagWrite(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagWrite(const AppearanceFlagWrite& from); - AppearanceFlagWrite(AppearanceFlagWrite&& from) noexcept - : AppearanceFlagWrite() { - *this = ::std::move(from); - } - - inline AppearanceFlagWrite& operator=(const AppearanceFlagWrite& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagWrite& operator=(AppearanceFlagWrite&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagWrite& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagWrite* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagWrite_default_instance_); - } - static constexpr int kIndexInFileMessages = - 11; - - friend void swap(AppearanceFlagWrite& a, AppearanceFlagWrite& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagWrite* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagWrite* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagWrite* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagWrite& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagWrite& from) { - AppearanceFlagWrite::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagWrite* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagWrite"; - } - protected: - explicit AppearanceFlagWrite(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kMaxTextLengthFieldNumber = 1, - }; - // optional uint32 max_text_length = 1; - bool has_max_text_length() const; - private: - bool _internal_has_max_text_length() const; - public: - void clear_max_text_length(); - uint32_t max_text_length() const; - void set_max_text_length(uint32_t value); - private: - uint32_t _internal_max_text_length() const; - void _internal_set_max_text_length(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagWrite) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t max_text_length_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagWriteOnce final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagWriteOnce) */ { - public: - inline AppearanceFlagWriteOnce() : AppearanceFlagWriteOnce(nullptr) {} - ~AppearanceFlagWriteOnce() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagWriteOnce(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagWriteOnce(const AppearanceFlagWriteOnce& from); - AppearanceFlagWriteOnce(AppearanceFlagWriteOnce&& from) noexcept - : AppearanceFlagWriteOnce() { - *this = ::std::move(from); - } - - inline AppearanceFlagWriteOnce& operator=(const AppearanceFlagWriteOnce& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagWriteOnce& operator=(AppearanceFlagWriteOnce&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagWriteOnce& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagWriteOnce* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagWriteOnce_default_instance_); - } - static constexpr int kIndexInFileMessages = - 12; - - friend void swap(AppearanceFlagWriteOnce& a, AppearanceFlagWriteOnce& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagWriteOnce* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagWriteOnce* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagWriteOnce* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagWriteOnce& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagWriteOnce& from) { - AppearanceFlagWriteOnce::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagWriteOnce* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagWriteOnce"; - } - protected: - explicit AppearanceFlagWriteOnce(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kMaxTextLengthOnceFieldNumber = 1, - }; - // optional uint32 max_text_length_once = 1; - bool has_max_text_length_once() const; - private: - bool _internal_has_max_text_length_once() const; - public: - void clear_max_text_length_once(); - uint32_t max_text_length_once() const; - void set_max_text_length_once(uint32_t value); - private: - uint32_t _internal_max_text_length_once() const; - void _internal_set_max_text_length_once(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagWriteOnce) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t max_text_length_once_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagLight final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagLight) */ { - public: - inline AppearanceFlagLight() : AppearanceFlagLight(nullptr) {} - ~AppearanceFlagLight() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagLight(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagLight(const AppearanceFlagLight& from); - AppearanceFlagLight(AppearanceFlagLight&& from) noexcept - : AppearanceFlagLight() { - *this = ::std::move(from); - } - - inline AppearanceFlagLight& operator=(const AppearanceFlagLight& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagLight& operator=(AppearanceFlagLight&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagLight& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagLight* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagLight_default_instance_); - } - static constexpr int kIndexInFileMessages = - 13; - - friend void swap(AppearanceFlagLight& a, AppearanceFlagLight& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagLight* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagLight* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagLight* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagLight& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagLight& from) { - AppearanceFlagLight::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagLight* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagLight"; - } - protected: - explicit AppearanceFlagLight(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kBrightnessFieldNumber = 1, - kColorFieldNumber = 2, - }; - // optional uint32 brightness = 1; - bool has_brightness() const; - private: - bool _internal_has_brightness() const; - public: - void clear_brightness(); - uint32_t brightness() const; - void set_brightness(uint32_t value); - private: - uint32_t _internal_brightness() const; - void _internal_set_brightness(uint32_t value); - public: - - // optional uint32 color = 2; - bool has_color() const; - private: - bool _internal_has_color() const; - public: - void clear_color(); - uint32_t color() const; - void set_color(uint32_t value); - private: - uint32_t _internal_color() const; - void _internal_set_color(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagLight) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t brightness_; - uint32_t color_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagHeight final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagHeight) */ { - public: - inline AppearanceFlagHeight() : AppearanceFlagHeight(nullptr) {} - ~AppearanceFlagHeight() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagHeight(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagHeight(const AppearanceFlagHeight& from); - AppearanceFlagHeight(AppearanceFlagHeight&& from) noexcept - : AppearanceFlagHeight() { - *this = ::std::move(from); - } - - inline AppearanceFlagHeight& operator=(const AppearanceFlagHeight& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagHeight& operator=(AppearanceFlagHeight&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagHeight& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagHeight* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagHeight_default_instance_); - } - static constexpr int kIndexInFileMessages = - 14; - - friend void swap(AppearanceFlagHeight& a, AppearanceFlagHeight& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagHeight* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagHeight* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagHeight* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagHeight& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagHeight& from) { - AppearanceFlagHeight::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagHeight* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagHeight"; - } - protected: - explicit AppearanceFlagHeight(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kElevationFieldNumber = 1, - }; - // optional uint32 elevation = 1; - bool has_elevation() const; - private: - bool _internal_has_elevation() const; - public: - void clear_elevation(); - uint32_t elevation() const; - void set_elevation(uint32_t value); - private: - uint32_t _internal_elevation() const; - void _internal_set_elevation(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagHeight) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t elevation_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagShift final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagShift) */ { - public: - inline AppearanceFlagShift() : AppearanceFlagShift(nullptr) {} - ~AppearanceFlagShift() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagShift(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagShift(const AppearanceFlagShift& from); - AppearanceFlagShift(AppearanceFlagShift&& from) noexcept - : AppearanceFlagShift() { - *this = ::std::move(from); - } - - inline AppearanceFlagShift& operator=(const AppearanceFlagShift& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagShift& operator=(AppearanceFlagShift&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagShift& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagShift* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagShift_default_instance_); - } - static constexpr int kIndexInFileMessages = - 15; - - friend void swap(AppearanceFlagShift& a, AppearanceFlagShift& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagShift* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagShift* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagShift* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagShift& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagShift& from) { - AppearanceFlagShift::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagShift* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagShift"; - } - protected: - explicit AppearanceFlagShift(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kXFieldNumber = 1, - kYFieldNumber = 2, - }; - // optional uint32 x = 1; - bool has_x() const; - private: - bool _internal_has_x() const; - public: - void clear_x(); - uint32_t x() const; - void set_x(uint32_t value); - private: - uint32_t _internal_x() const; - void _internal_set_x(uint32_t value); - public: - - // optional uint32 y = 2; - bool has_y() const; - private: - bool _internal_has_y() const; - public: - void clear_y(); - uint32_t y() const; - void set_y(uint32_t value); - private: - uint32_t _internal_y() const; - void _internal_set_y(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagShift) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t x_; - uint32_t y_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagClothes final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagClothes) */ { - public: - inline AppearanceFlagClothes() : AppearanceFlagClothes(nullptr) {} - ~AppearanceFlagClothes() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagClothes(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagClothes(const AppearanceFlagClothes& from); - AppearanceFlagClothes(AppearanceFlagClothes&& from) noexcept - : AppearanceFlagClothes() { - *this = ::std::move(from); - } - - inline AppearanceFlagClothes& operator=(const AppearanceFlagClothes& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagClothes& operator=(AppearanceFlagClothes&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagClothes& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagClothes* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagClothes_default_instance_); - } - static constexpr int kIndexInFileMessages = - 16; - - friend void swap(AppearanceFlagClothes& a, AppearanceFlagClothes& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagClothes* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagClothes* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagClothes* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagClothes& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagClothes& from) { - AppearanceFlagClothes::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagClothes* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagClothes"; - } - protected: - explicit AppearanceFlagClothes(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kSlotFieldNumber = 1, - }; - // optional uint32 slot = 1; - bool has_slot() const; - private: - bool _internal_has_slot() const; - public: - void clear_slot(); - uint32_t slot() const; - void set_slot(uint32_t value); - private: - uint32_t _internal_slot() const; - void _internal_set_slot(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagClothes) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t slot_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagDefaultAction final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagDefaultAction) */ { - public: - inline AppearanceFlagDefaultAction() : AppearanceFlagDefaultAction(nullptr) {} - ~AppearanceFlagDefaultAction() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagDefaultAction(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagDefaultAction(const AppearanceFlagDefaultAction& from); - AppearanceFlagDefaultAction(AppearanceFlagDefaultAction&& from) noexcept - : AppearanceFlagDefaultAction() { - *this = ::std::move(from); - } - - inline AppearanceFlagDefaultAction& operator=(const AppearanceFlagDefaultAction& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagDefaultAction& operator=(AppearanceFlagDefaultAction&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagDefaultAction& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagDefaultAction* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagDefaultAction_default_instance_); - } - static constexpr int kIndexInFileMessages = - 17; - - friend void swap(AppearanceFlagDefaultAction& a, AppearanceFlagDefaultAction& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagDefaultAction* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagDefaultAction* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagDefaultAction* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagDefaultAction& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagDefaultAction& from) { - AppearanceFlagDefaultAction::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagDefaultAction* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagDefaultAction"; - } - protected: - explicit AppearanceFlagDefaultAction(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kActionFieldNumber = 1, - }; - // optional .Canary.protobuf.appearances.PLAYER_ACTION action = 1; - bool has_action() const; - private: - bool _internal_has_action() const; - public: - void clear_action(); - ::Canary::protobuf::appearances::PLAYER_ACTION action() const; - void set_action(::Canary::protobuf::appearances::PLAYER_ACTION value); - private: - ::Canary::protobuf::appearances::PLAYER_ACTION _internal_action() const; - void _internal_set_action(::Canary::protobuf::appearances::PLAYER_ACTION value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagDefaultAction) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - int action_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagMarket final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagMarket) */ { - public: - inline AppearanceFlagMarket() : AppearanceFlagMarket(nullptr) {} - ~AppearanceFlagMarket() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagMarket(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagMarket(const AppearanceFlagMarket& from); - AppearanceFlagMarket(AppearanceFlagMarket&& from) noexcept - : AppearanceFlagMarket() { - *this = ::std::move(from); - } - - inline AppearanceFlagMarket& operator=(const AppearanceFlagMarket& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagMarket& operator=(AppearanceFlagMarket&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagMarket& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagMarket* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagMarket_default_instance_); - } - static constexpr int kIndexInFileMessages = - 18; - - friend void swap(AppearanceFlagMarket& a, AppearanceFlagMarket& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagMarket* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagMarket* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagMarket* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagMarket& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagMarket& from) { - AppearanceFlagMarket::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagMarket* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagMarket"; - } - protected: - explicit AppearanceFlagMarket(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kRestrictToProfessionFieldNumber = 5, - kTradeAsObjectIdFieldNumber = 2, - kShowAsObjectIdFieldNumber = 3, - kMinimumLevelFieldNumber = 6, - kCategoryFieldNumber = 1, - }; - // repeated .Canary.protobuf.appearances.PLAYER_PROFESSION restrict_to_profession = 5; - int restrict_to_profession_size() const; - private: - int _internal_restrict_to_profession_size() const; - public: - void clear_restrict_to_profession(); - private: - ::Canary::protobuf::appearances::PLAYER_PROFESSION _internal_restrict_to_profession(int index) const; - void _internal_add_restrict_to_profession(::Canary::protobuf::appearances::PLAYER_PROFESSION value); - ::PROTOBUF_NAMESPACE_ID::RepeatedField* _internal_mutable_restrict_to_profession(); - public: - ::Canary::protobuf::appearances::PLAYER_PROFESSION restrict_to_profession(int index) const; - void set_restrict_to_profession(int index, ::Canary::protobuf::appearances::PLAYER_PROFESSION value); - void add_restrict_to_profession(::Canary::protobuf::appearances::PLAYER_PROFESSION value); - const ::PROTOBUF_NAMESPACE_ID::RepeatedField& restrict_to_profession() const; - ::PROTOBUF_NAMESPACE_ID::RepeatedField* mutable_restrict_to_profession(); - - // optional uint32 trade_as_object_id = 2; - bool has_trade_as_object_id() const; - private: - bool _internal_has_trade_as_object_id() const; - public: - void clear_trade_as_object_id(); - uint32_t trade_as_object_id() const; - void set_trade_as_object_id(uint32_t value); - private: - uint32_t _internal_trade_as_object_id() const; - void _internal_set_trade_as_object_id(uint32_t value); - public: - - // optional uint32 show_as_object_id = 3; - bool has_show_as_object_id() const; - private: - bool _internal_has_show_as_object_id() const; - public: - void clear_show_as_object_id(); - uint32_t show_as_object_id() const; - void set_show_as_object_id(uint32_t value); - private: - uint32_t _internal_show_as_object_id() const; - void _internal_set_show_as_object_id(uint32_t value); - public: - - // optional uint32 minimum_level = 6; - bool has_minimum_level() const; - private: - bool _internal_has_minimum_level() const; - public: - void clear_minimum_level(); - uint32_t minimum_level() const; - void set_minimum_level(uint32_t value); - private: - uint32_t _internal_minimum_level() const; - void _internal_set_minimum_level(uint32_t value); - public: - - // optional .Canary.protobuf.appearances.ITEM_CATEGORY category = 1; - bool has_category() const; - private: - bool _internal_has_category() const; - public: - void clear_category(); - ::Canary::protobuf::appearances::ITEM_CATEGORY category() const; - void set_category(::Canary::protobuf::appearances::ITEM_CATEGORY value); - private: - ::Canary::protobuf::appearances::ITEM_CATEGORY _internal_category() const; - void _internal_set_category(::Canary::protobuf::appearances::ITEM_CATEGORY value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagMarket) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedField restrict_to_profession_; - uint32_t trade_as_object_id_; - uint32_t show_as_object_id_; - uint32_t minimum_level_; - int category_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagNPC final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagNPC) */ { - public: - inline AppearanceFlagNPC() : AppearanceFlagNPC(nullptr) {} - ~AppearanceFlagNPC() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagNPC(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagNPC(const AppearanceFlagNPC& from); - AppearanceFlagNPC(AppearanceFlagNPC&& from) noexcept - : AppearanceFlagNPC() { - *this = ::std::move(from); - } - - inline AppearanceFlagNPC& operator=(const AppearanceFlagNPC& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagNPC& operator=(AppearanceFlagNPC&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagNPC& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagNPC* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagNPC_default_instance_); - } - static constexpr int kIndexInFileMessages = - 19; - - friend void swap(AppearanceFlagNPC& a, AppearanceFlagNPC& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagNPC* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagNPC* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagNPC* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagNPC& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagNPC& from) { - AppearanceFlagNPC::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagNPC* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagNPC"; - } - protected: - explicit AppearanceFlagNPC(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kNameFieldNumber = 1, - kLocationFieldNumber = 2, - kCurrencyQuestFlagDisplayNameFieldNumber = 6, - kSalePriceFieldNumber = 3, - kBuyPriceFieldNumber = 4, - kCurrencyObjectTypeIdFieldNumber = 5, - }; - // optional bytes name = 1; - bool has_name() const; - private: - bool _internal_has_name() const; - public: - void clear_name(); - const std::string& name() const; - template - void set_name(ArgT0&& arg0, ArgT... args); - std::string* mutable_name(); - PROTOBUF_NODISCARD std::string* release_name(); - void set_allocated_name(std::string* name); - private: - const std::string& _internal_name() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); - std::string* _internal_mutable_name(); - public: - - // optional bytes location = 2; - bool has_location() const; - private: - bool _internal_has_location() const; - public: - void clear_location(); - const std::string& location() const; - template - void set_location(ArgT0&& arg0, ArgT... args); - std::string* mutable_location(); - PROTOBUF_NODISCARD std::string* release_location(); - void set_allocated_location(std::string* location); - private: - const std::string& _internal_location() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_location(const std::string& value); - std::string* _internal_mutable_location(); - public: - - // optional bytes currency_quest_flag_display_name = 6; - bool has_currency_quest_flag_display_name() const; - private: - bool _internal_has_currency_quest_flag_display_name() const; - public: - void clear_currency_quest_flag_display_name(); - const std::string& currency_quest_flag_display_name() const; - template - void set_currency_quest_flag_display_name(ArgT0&& arg0, ArgT... args); - std::string* mutable_currency_quest_flag_display_name(); - PROTOBUF_NODISCARD std::string* release_currency_quest_flag_display_name(); - void set_allocated_currency_quest_flag_display_name(std::string* currency_quest_flag_display_name); - private: - const std::string& _internal_currency_quest_flag_display_name() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_currency_quest_flag_display_name(const std::string& value); - std::string* _internal_mutable_currency_quest_flag_display_name(); - public: - - // optional uint32 sale_price = 3; - bool has_sale_price() const; - private: - bool _internal_has_sale_price() const; - public: - void clear_sale_price(); - uint32_t sale_price() const; - void set_sale_price(uint32_t value); - private: - uint32_t _internal_sale_price() const; - void _internal_set_sale_price(uint32_t value); - public: - - // optional uint32 buy_price = 4; - bool has_buy_price() const; - private: - bool _internal_has_buy_price() const; - public: - void clear_buy_price(); - uint32_t buy_price() const; - void set_buy_price(uint32_t value); - private: - uint32_t _internal_buy_price() const; - void _internal_set_buy_price(uint32_t value); - public: - - // optional uint32 currency_object_type_id = 5; - bool has_currency_object_type_id() const; - private: - bool _internal_has_currency_object_type_id() const; - public: - void clear_currency_object_type_id(); - uint32_t currency_object_type_id() const; - void set_currency_object_type_id(uint32_t value); - private: - uint32_t _internal_currency_object_type_id() const; - void _internal_set_currency_object_type_id(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagNPC) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr location_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr currency_quest_flag_display_name_; - uint32_t sale_price_; - uint32_t buy_price_; - uint32_t currency_object_type_id_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagAutomap final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagAutomap) */ { - public: - inline AppearanceFlagAutomap() : AppearanceFlagAutomap(nullptr) {} - ~AppearanceFlagAutomap() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagAutomap(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagAutomap(const AppearanceFlagAutomap& from); - AppearanceFlagAutomap(AppearanceFlagAutomap&& from) noexcept - : AppearanceFlagAutomap() { - *this = ::std::move(from); - } - - inline AppearanceFlagAutomap& operator=(const AppearanceFlagAutomap& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagAutomap& operator=(AppearanceFlagAutomap&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagAutomap& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagAutomap* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagAutomap_default_instance_); - } - static constexpr int kIndexInFileMessages = - 20; - - friend void swap(AppearanceFlagAutomap& a, AppearanceFlagAutomap& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagAutomap* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagAutomap* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagAutomap* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagAutomap& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagAutomap& from) { - AppearanceFlagAutomap::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagAutomap* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagAutomap"; - } - protected: - explicit AppearanceFlagAutomap(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kColorFieldNumber = 1, - }; - // optional uint32 color = 1; - bool has_color() const; - private: - bool _internal_has_color() const; - public: - void clear_color(); - uint32_t color() const; - void set_color(uint32_t value); - private: - uint32_t _internal_color() const; - void _internal_set_color(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagAutomap) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t color_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagHook final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagHook) */ { - public: - inline AppearanceFlagHook() : AppearanceFlagHook(nullptr) {} - ~AppearanceFlagHook() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagHook(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagHook(const AppearanceFlagHook& from); - AppearanceFlagHook(AppearanceFlagHook&& from) noexcept - : AppearanceFlagHook() { - *this = ::std::move(from); - } - - inline AppearanceFlagHook& operator=(const AppearanceFlagHook& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagHook& operator=(AppearanceFlagHook&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagHook& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagHook* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagHook_default_instance_); - } - static constexpr int kIndexInFileMessages = - 21; - - friend void swap(AppearanceFlagHook& a, AppearanceFlagHook& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagHook* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagHook* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagHook* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagHook& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagHook& from) { - AppearanceFlagHook::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagHook* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagHook"; - } - protected: - explicit AppearanceFlagHook(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kDirectionFieldNumber = 1, - }; - // optional .Canary.protobuf.appearances.HOOK_TYPE direction = 1; - bool has_direction() const; - private: - bool _internal_has_direction() const; - public: - void clear_direction(); - ::Canary::protobuf::appearances::HOOK_TYPE direction() const; - void set_direction(::Canary::protobuf::appearances::HOOK_TYPE value); - private: - ::Canary::protobuf::appearances::HOOK_TYPE _internal_direction() const; - void _internal_set_direction(::Canary::protobuf::appearances::HOOK_TYPE value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagHook) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - int direction_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagLenshelp final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagLenshelp) */ { - public: - inline AppearanceFlagLenshelp() : AppearanceFlagLenshelp(nullptr) {} - ~AppearanceFlagLenshelp() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagLenshelp(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagLenshelp(const AppearanceFlagLenshelp& from); - AppearanceFlagLenshelp(AppearanceFlagLenshelp&& from) noexcept - : AppearanceFlagLenshelp() { - *this = ::std::move(from); - } - - inline AppearanceFlagLenshelp& operator=(const AppearanceFlagLenshelp& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagLenshelp& operator=(AppearanceFlagLenshelp&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagLenshelp& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagLenshelp* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagLenshelp_default_instance_); - } - static constexpr int kIndexInFileMessages = - 22; - - friend void swap(AppearanceFlagLenshelp& a, AppearanceFlagLenshelp& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagLenshelp* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagLenshelp* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagLenshelp* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagLenshelp& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagLenshelp& from) { - AppearanceFlagLenshelp::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagLenshelp* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagLenshelp"; - } - protected: - explicit AppearanceFlagLenshelp(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kIdFieldNumber = 1, - }; - // optional uint32 id = 1; - bool has_id() const; - private: - bool _internal_has_id() const; - public: - void clear_id(); - uint32_t id() const; - void set_id(uint32_t value); - private: - uint32_t _internal_id() const; - void _internal_set_id(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagLenshelp) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t id_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagChangedToExpire final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) */ { - public: - inline AppearanceFlagChangedToExpire() : AppearanceFlagChangedToExpire(nullptr) {} - ~AppearanceFlagChangedToExpire() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagChangedToExpire(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagChangedToExpire(const AppearanceFlagChangedToExpire& from); - AppearanceFlagChangedToExpire(AppearanceFlagChangedToExpire&& from) noexcept - : AppearanceFlagChangedToExpire() { - *this = ::std::move(from); - } - - inline AppearanceFlagChangedToExpire& operator=(const AppearanceFlagChangedToExpire& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagChangedToExpire& operator=(AppearanceFlagChangedToExpire&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagChangedToExpire& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagChangedToExpire* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagChangedToExpire_default_instance_); - } - static constexpr int kIndexInFileMessages = - 23; - - friend void swap(AppearanceFlagChangedToExpire& a, AppearanceFlagChangedToExpire& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagChangedToExpire* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagChangedToExpire* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagChangedToExpire* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagChangedToExpire& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagChangedToExpire& from) { - AppearanceFlagChangedToExpire::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagChangedToExpire* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagChangedToExpire"; - } - protected: - explicit AppearanceFlagChangedToExpire(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kFormerObjectTypeidFieldNumber = 1, - }; - // optional uint32 former_object_typeid = 1; - bool has_former_object_typeid() const; - private: - bool _internal_has_former_object_typeid() const; - public: - void clear_former_object_typeid(); - uint32_t former_object_typeid() const; - void set_former_object_typeid(uint32_t value); - private: - uint32_t _internal_former_object_typeid() const; - void _internal_set_former_object_typeid(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagChangedToExpire) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t former_object_typeid_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class AppearanceFlagCyclopedia final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.AppearanceFlagCyclopedia) */ { - public: - inline AppearanceFlagCyclopedia() : AppearanceFlagCyclopedia(nullptr) {} - ~AppearanceFlagCyclopedia() override; - explicit PROTOBUF_CONSTEXPR AppearanceFlagCyclopedia(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - AppearanceFlagCyclopedia(const AppearanceFlagCyclopedia& from); - AppearanceFlagCyclopedia(AppearanceFlagCyclopedia&& from) noexcept - : AppearanceFlagCyclopedia() { - *this = ::std::move(from); - } - - inline AppearanceFlagCyclopedia& operator=(const AppearanceFlagCyclopedia& from) { - CopyFrom(from); - return *this; - } - inline AppearanceFlagCyclopedia& operator=(AppearanceFlagCyclopedia&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const AppearanceFlagCyclopedia& default_instance() { - return *internal_default_instance(); - } - static inline const AppearanceFlagCyclopedia* internal_default_instance() { - return reinterpret_cast( - &_AppearanceFlagCyclopedia_default_instance_); - } - static constexpr int kIndexInFileMessages = - 24; - - friend void swap(AppearanceFlagCyclopedia& a, AppearanceFlagCyclopedia& b) { - a.Swap(&b); - } - inline void Swap(AppearanceFlagCyclopedia* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(AppearanceFlagCyclopedia* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - AppearanceFlagCyclopedia* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const AppearanceFlagCyclopedia& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const AppearanceFlagCyclopedia& from) { - AppearanceFlagCyclopedia::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(AppearanceFlagCyclopedia* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.AppearanceFlagCyclopedia"; - } - protected: - explicit AppearanceFlagCyclopedia(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kCyclopediaTypeFieldNumber = 1, - }; - // optional uint32 cyclopedia_type = 1; - bool has_cyclopedia_type() const; - private: - bool _internal_has_cyclopedia_type() const; - public: - void clear_cyclopedia_type(); - uint32_t cyclopedia_type() const; - void set_cyclopedia_type(uint32_t value); - private: - uint32_t _internal_cyclopedia_type() const; - void _internal_set_cyclopedia_type(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.AppearanceFlagCyclopedia) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t cyclopedia_type_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// ------------------------------------------------------------------- - -class SpecialMeaningAppearanceIds final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) */ { - public: - inline SpecialMeaningAppearanceIds() : SpecialMeaningAppearanceIds(nullptr) {} - ~SpecialMeaningAppearanceIds() override; - explicit PROTOBUF_CONSTEXPR SpecialMeaningAppearanceIds(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - SpecialMeaningAppearanceIds(const SpecialMeaningAppearanceIds& from); - SpecialMeaningAppearanceIds(SpecialMeaningAppearanceIds&& from) noexcept - : SpecialMeaningAppearanceIds() { - *this = ::std::move(from); - } - - inline SpecialMeaningAppearanceIds& operator=(const SpecialMeaningAppearanceIds& from) { - CopyFrom(from); - return *this; - } - inline SpecialMeaningAppearanceIds& operator=(SpecialMeaningAppearanceIds&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); - } - inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const SpecialMeaningAppearanceIds& default_instance() { - return *internal_default_instance(); - } - static inline const SpecialMeaningAppearanceIds* internal_default_instance() { - return reinterpret_cast( - &_SpecialMeaningAppearanceIds_default_instance_); - } - static constexpr int kIndexInFileMessages = - 25; - - friend void swap(SpecialMeaningAppearanceIds& a, SpecialMeaningAppearanceIds& b) { - a.Swap(&b); - } - inline void Swap(SpecialMeaningAppearanceIds* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpecialMeaningAppearanceIds* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - SpecialMeaningAppearanceIds* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const SpecialMeaningAppearanceIds& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const SpecialMeaningAppearanceIds& from) { - SpecialMeaningAppearanceIds::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpecialMeaningAppearanceIds* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.appearances.SpecialMeaningAppearanceIds"; - } - protected: - explicit SpecialMeaningAppearanceIds(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kGoldCoinIdFieldNumber = 1, - kPlatinumCoinIdFieldNumber = 2, - kCrystalCoinIdFieldNumber = 3, - kTibiaCoinIdFieldNumber = 4, - kStampedLetterIdFieldNumber = 5, - kSupplyStashIdFieldNumber = 6, - kRewardChestIdFieldNumber = 7, - }; - // optional uint32 gold_coin_id = 1; - bool has_gold_coin_id() const; - private: - bool _internal_has_gold_coin_id() const; - public: - void clear_gold_coin_id(); - uint32_t gold_coin_id() const; - void set_gold_coin_id(uint32_t value); - private: - uint32_t _internal_gold_coin_id() const; - void _internal_set_gold_coin_id(uint32_t value); - public: - - // optional uint32 platinum_coin_id = 2; - bool has_platinum_coin_id() const; - private: - bool _internal_has_platinum_coin_id() const; - public: - void clear_platinum_coin_id(); - uint32_t platinum_coin_id() const; - void set_platinum_coin_id(uint32_t value); - private: - uint32_t _internal_platinum_coin_id() const; - void _internal_set_platinum_coin_id(uint32_t value); - public: - - // optional uint32 crystal_coin_id = 3; - bool has_crystal_coin_id() const; - private: - bool _internal_has_crystal_coin_id() const; - public: - void clear_crystal_coin_id(); - uint32_t crystal_coin_id() const; - void set_crystal_coin_id(uint32_t value); - private: - uint32_t _internal_crystal_coin_id() const; - void _internal_set_crystal_coin_id(uint32_t value); - public: - - // optional uint32 tibia_coin_id = 4; - bool has_tibia_coin_id() const; - private: - bool _internal_has_tibia_coin_id() const; - public: - void clear_tibia_coin_id(); - uint32_t tibia_coin_id() const; - void set_tibia_coin_id(uint32_t value); - private: - uint32_t _internal_tibia_coin_id() const; - void _internal_set_tibia_coin_id(uint32_t value); - public: - - // optional uint32 stamped_letter_id = 5; - bool has_stamped_letter_id() const; - private: - bool _internal_has_stamped_letter_id() const; - public: - void clear_stamped_letter_id(); - uint32_t stamped_letter_id() const; - void set_stamped_letter_id(uint32_t value); - private: - uint32_t _internal_stamped_letter_id() const; - void _internal_set_stamped_letter_id(uint32_t value); - public: - - // optional uint32 supply_stash_id = 6; - bool has_supply_stash_id() const; - private: - bool _internal_has_supply_stash_id() const; - public: - void clear_supply_stash_id(); - uint32_t supply_stash_id() const; - void set_supply_stash_id(uint32_t value); - private: - uint32_t _internal_supply_stash_id() const; - void _internal_set_supply_stash_id(uint32_t value); - public: - - // optional uint32 reward_chest_id = 7; - bool has_reward_chest_id() const; - private: - bool _internal_has_reward_chest_id() const; - public: - void clear_reward_chest_id(); - uint32_t reward_chest_id() const; - void set_reward_chest_id(uint32_t value); - private: - uint32_t _internal_reward_chest_id() const; - void _internal_set_reward_chest_id(uint32_t value); - public: - - // @@protoc_insertion_point(class_scope:Canary.protobuf.appearances.SpecialMeaningAppearanceIds) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t gold_coin_id_; - uint32_t platinum_coin_id_; - uint32_t crystal_coin_id_; - uint32_t tibia_coin_id_; - uint32_t stamped_letter_id_; - uint32_t supply_stash_id_; - uint32_t reward_chest_id_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_appearances_2eproto; -}; -// =================================================================== - - -// =================================================================== - -#ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif // __GNUC__ -// Coordinate - -// optional uint32 x = 1; -inline bool Coordinate::_internal_has_x() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool Coordinate::has_x() const { - return _internal_has_x(); -} -inline void Coordinate::clear_x() { - _impl_.x_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t Coordinate::_internal_x() const { - return _impl_.x_; -} -inline uint32_t Coordinate::x() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Coordinate.x) - return _internal_x(); -} -inline void Coordinate::_internal_set_x(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.x_ = value; -} -inline void Coordinate::set_x(uint32_t value) { - _internal_set_x(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Coordinate.x) -} - -// optional uint32 y = 2; -inline bool Coordinate::_internal_has_y() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool Coordinate::has_y() const { - return _internal_has_y(); -} -inline void Coordinate::clear_y() { - _impl_.y_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t Coordinate::_internal_y() const { - return _impl_.y_; -} -inline uint32_t Coordinate::y() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Coordinate.y) - return _internal_y(); -} -inline void Coordinate::_internal_set_y(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.y_ = value; -} -inline void Coordinate::set_y(uint32_t value) { - _internal_set_y(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Coordinate.y) -} - -// optional uint32 z = 3; -inline bool Coordinate::_internal_has_z() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool Coordinate::has_z() const { - return _internal_has_z(); -} -inline void Coordinate::clear_z() { - _impl_.z_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t Coordinate::_internal_z() const { - return _impl_.z_; -} -inline uint32_t Coordinate::z() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Coordinate.z) - return _internal_z(); -} -inline void Coordinate::_internal_set_z(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.z_ = value; -} -inline void Coordinate::set_z(uint32_t value) { - _internal_set_z(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Coordinate.z) -} - -// ------------------------------------------------------------------- - -// Appearances - -// repeated .Canary.protobuf.appearances.Appearance object = 1; -inline int Appearances::_internal_object_size() const { - return _impl_.object_.size(); -} -inline int Appearances::object_size() const { - return _internal_object_size(); -} -inline void Appearances::clear_object() { - _impl_.object_.Clear(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::mutable_object(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearances.object) - return _impl_.object_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* -Appearances::mutable_object() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.Appearances.object) - return &_impl_.object_; -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::_internal_object(int index) const { - return _impl_.object_.Get(index); -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::object(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearances.object) - return _internal_object(index); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::_internal_add_object() { - return _impl_.object_.Add(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::add_object() { - ::Canary::protobuf::appearances::Appearance* _add = _internal_add_object(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.Appearances.object) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& -Appearances::object() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.Appearances.object) - return _impl_.object_; -} - -// repeated .Canary.protobuf.appearances.Appearance outfit = 2; -inline int Appearances::_internal_outfit_size() const { - return _impl_.outfit_.size(); -} -inline int Appearances::outfit_size() const { - return _internal_outfit_size(); -} -inline void Appearances::clear_outfit() { - _impl_.outfit_.Clear(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::mutable_outfit(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearances.outfit) - return _impl_.outfit_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* -Appearances::mutable_outfit() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.Appearances.outfit) - return &_impl_.outfit_; -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::_internal_outfit(int index) const { - return _impl_.outfit_.Get(index); -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::outfit(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearances.outfit) - return _internal_outfit(index); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::_internal_add_outfit() { - return _impl_.outfit_.Add(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::add_outfit() { - ::Canary::protobuf::appearances::Appearance* _add = _internal_add_outfit(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.Appearances.outfit) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& -Appearances::outfit() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.Appearances.outfit) - return _impl_.outfit_; -} - -// repeated .Canary.protobuf.appearances.Appearance effect = 3; -inline int Appearances::_internal_effect_size() const { - return _impl_.effect_.size(); -} -inline int Appearances::effect_size() const { - return _internal_effect_size(); -} -inline void Appearances::clear_effect() { - _impl_.effect_.Clear(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::mutable_effect(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearances.effect) - return _impl_.effect_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* -Appearances::mutable_effect() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.Appearances.effect) - return &_impl_.effect_; -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::_internal_effect(int index) const { - return _impl_.effect_.Get(index); -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::effect(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearances.effect) - return _internal_effect(index); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::_internal_add_effect() { - return _impl_.effect_.Add(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::add_effect() { - ::Canary::protobuf::appearances::Appearance* _add = _internal_add_effect(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.Appearances.effect) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& -Appearances::effect() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.Appearances.effect) - return _impl_.effect_; -} - -// repeated .Canary.protobuf.appearances.Appearance missile = 4; -inline int Appearances::_internal_missile_size() const { - return _impl_.missile_.size(); -} -inline int Appearances::missile_size() const { - return _internal_missile_size(); -} -inline void Appearances::clear_missile() { - _impl_.missile_.Clear(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::mutable_missile(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearances.missile) - return _impl_.missile_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >* -Appearances::mutable_missile() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.Appearances.missile) - return &_impl_.missile_; -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::_internal_missile(int index) const { - return _impl_.missile_.Get(index); -} -inline const ::Canary::protobuf::appearances::Appearance& Appearances::missile(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearances.missile) - return _internal_missile(index); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::_internal_add_missile() { - return _impl_.missile_.Add(); -} -inline ::Canary::protobuf::appearances::Appearance* Appearances::add_missile() { - ::Canary::protobuf::appearances::Appearance* _add = _internal_add_missile(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.Appearances.missile) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Appearance >& -Appearances::missile() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.Appearances.missile) - return _impl_.missile_; -} - -// optional .Canary.protobuf.appearances.SpecialMeaningAppearanceIds special_meaning_appearance_ids = 5; -inline bool Appearances::_internal_has_special_meaning_appearance_ids() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - PROTOBUF_ASSUME(!value || _impl_.special_meaning_appearance_ids_ != nullptr); - return value; -} -inline bool Appearances::has_special_meaning_appearance_ids() const { - return _internal_has_special_meaning_appearance_ids(); -} -inline void Appearances::clear_special_meaning_appearance_ids() { - if (_impl_.special_meaning_appearance_ids_ != nullptr) _impl_.special_meaning_appearance_ids_->Clear(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& Appearances::_internal_special_meaning_appearance_ids() const { - const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* p = _impl_.special_meaning_appearance_ids_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_SpecialMeaningAppearanceIds_default_instance_); -} -inline const ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds& Appearances::special_meaning_appearance_ids() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearances.special_meaning_appearance_ids) - return _internal_special_meaning_appearance_ids(); -} -inline void Appearances::unsafe_arena_set_allocated_special_meaning_appearance_ids( - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* special_meaning_appearance_ids) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.special_meaning_appearance_ids_); - } - _impl_.special_meaning_appearance_ids_ = special_meaning_appearance_ids; - if (special_meaning_appearance_ids) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.Appearances.special_meaning_appearance_ids) -} -inline ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* Appearances::release_special_meaning_appearance_ids() { - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* temp = _impl_.special_meaning_appearance_ids_; - _impl_.special_meaning_appearance_ids_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* Appearances::unsafe_arena_release_special_meaning_appearance_ids() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.Appearances.special_meaning_appearance_ids) - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* temp = _impl_.special_meaning_appearance_ids_; - _impl_.special_meaning_appearance_ids_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* Appearances::_internal_mutable_special_meaning_appearance_ids() { - _impl_._has_bits_[0] |= 0x00000001u; - if (_impl_.special_meaning_appearance_ids_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::SpecialMeaningAppearanceIds>(GetArenaForAllocation()); - _impl_.special_meaning_appearance_ids_ = p; - } - return _impl_.special_meaning_appearance_ids_; -} -inline ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* Appearances::mutable_special_meaning_appearance_ids() { - ::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* _msg = _internal_mutable_special_meaning_appearance_ids(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearances.special_meaning_appearance_ids) - return _msg; -} -inline void Appearances::set_allocated_special_meaning_appearance_ids(::Canary::protobuf::appearances::SpecialMeaningAppearanceIds* special_meaning_appearance_ids) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.special_meaning_appearance_ids_; - } - if (special_meaning_appearance_ids) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(special_meaning_appearance_ids); - if (message_arena != submessage_arena) { - special_meaning_appearance_ids = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, special_meaning_appearance_ids, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.special_meaning_appearance_ids_ = special_meaning_appearance_ids; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.Appearances.special_meaning_appearance_ids) -} - -// ------------------------------------------------------------------- - -// SpritePhase - -// optional uint32 duration_min = 1; -inline bool SpritePhase::_internal_has_duration_min() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool SpritePhase::has_duration_min() const { - return _internal_has_duration_min(); -} -inline void SpritePhase::clear_duration_min() { - _impl_.duration_min_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t SpritePhase::_internal_duration_min() const { - return _impl_.duration_min_; -} -inline uint32_t SpritePhase::duration_min() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpritePhase.duration_min) - return _internal_duration_min(); -} -inline void SpritePhase::_internal_set_duration_min(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.duration_min_ = value; -} -inline void SpritePhase::set_duration_min(uint32_t value) { - _internal_set_duration_min(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpritePhase.duration_min) -} - -// optional uint32 duration_max = 2; -inline bool SpritePhase::_internal_has_duration_max() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool SpritePhase::has_duration_max() const { - return _internal_has_duration_max(); -} -inline void SpritePhase::clear_duration_max() { - _impl_.duration_max_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t SpritePhase::_internal_duration_max() const { - return _impl_.duration_max_; -} -inline uint32_t SpritePhase::duration_max() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpritePhase.duration_max) - return _internal_duration_max(); -} -inline void SpritePhase::_internal_set_duration_max(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.duration_max_ = value; -} -inline void SpritePhase::set_duration_max(uint32_t value) { - _internal_set_duration_max(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpritePhase.duration_max) -} - -// ------------------------------------------------------------------- - -// SpriteAnimation - -// optional uint32 default_start_phase = 1; -inline bool SpriteAnimation::_internal_has_default_start_phase() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool SpriteAnimation::has_default_start_phase() const { - return _internal_has_default_start_phase(); -} -inline void SpriteAnimation::clear_default_start_phase() { - _impl_.default_start_phase_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t SpriteAnimation::_internal_default_start_phase() const { - return _impl_.default_start_phase_; -} -inline uint32_t SpriteAnimation::default_start_phase() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.default_start_phase) - return _internal_default_start_phase(); -} -inline void SpriteAnimation::_internal_set_default_start_phase(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.default_start_phase_ = value; -} -inline void SpriteAnimation::set_default_start_phase(uint32_t value) { - _internal_set_default_start_phase(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteAnimation.default_start_phase) -} - -// optional bool synchronized = 2; -inline bool SpriteAnimation::_internal_has_synchronized() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool SpriteAnimation::has_synchronized() const { - return _internal_has_synchronized(); -} -inline void SpriteAnimation::clear_synchronized() { - _impl_.synchronized_ = false; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline bool SpriteAnimation::_internal_synchronized() const { - return _impl_.synchronized_; -} -inline bool SpriteAnimation::synchronized() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.synchronized) - return _internal_synchronized(); -} -inline void SpriteAnimation::_internal_set_synchronized(bool value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.synchronized_ = value; -} -inline void SpriteAnimation::set_synchronized(bool value) { - _internal_set_synchronized(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteAnimation.synchronized) -} - -// optional bool random_start_phase = 3; -inline bool SpriteAnimation::_internal_has_random_start_phase() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool SpriteAnimation::has_random_start_phase() const { - return _internal_has_random_start_phase(); -} -inline void SpriteAnimation::clear_random_start_phase() { - _impl_.random_start_phase_ = false; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline bool SpriteAnimation::_internal_random_start_phase() const { - return _impl_.random_start_phase_; -} -inline bool SpriteAnimation::random_start_phase() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.random_start_phase) - return _internal_random_start_phase(); -} -inline void SpriteAnimation::_internal_set_random_start_phase(bool value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.random_start_phase_ = value; -} -inline void SpriteAnimation::set_random_start_phase(bool value) { - _internal_set_random_start_phase(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteAnimation.random_start_phase) -} - -// optional .Canary.protobuf.appearances.ANIMATION_LOOP_TYPE loop_type = 4; -inline bool SpriteAnimation::_internal_has_loop_type() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; - return value; -} -inline bool SpriteAnimation::has_loop_type() const { - return _internal_has_loop_type(); -} -inline void SpriteAnimation::clear_loop_type() { - _impl_.loop_type_ = -1; - _impl_._has_bits_[0] &= ~0x00000010u; -} -inline ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE SpriteAnimation::_internal_loop_type() const { - return static_cast< ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE >(_impl_.loop_type_); -} -inline ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE SpriteAnimation::loop_type() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.loop_type) - return _internal_loop_type(); -} -inline void SpriteAnimation::_internal_set_loop_type(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE value) { - assert(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE_IsValid(value)); - _impl_._has_bits_[0] |= 0x00000010u; - _impl_.loop_type_ = value; -} -inline void SpriteAnimation::set_loop_type(::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE value) { - _internal_set_loop_type(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteAnimation.loop_type) -} - -// optional uint32 loop_count = 5; -inline bool SpriteAnimation::_internal_has_loop_count() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool SpriteAnimation::has_loop_count() const { - return _internal_has_loop_count(); -} -inline void SpriteAnimation::clear_loop_count() { - _impl_.loop_count_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t SpriteAnimation::_internal_loop_count() const { - return _impl_.loop_count_; -} -inline uint32_t SpriteAnimation::loop_count() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.loop_count) - return _internal_loop_count(); -} -inline void SpriteAnimation::_internal_set_loop_count(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.loop_count_ = value; -} -inline void SpriteAnimation::set_loop_count(uint32_t value) { - _internal_set_loop_count(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteAnimation.loop_count) -} - -// repeated .Canary.protobuf.appearances.SpritePhase sprite_phase = 6; -inline int SpriteAnimation::_internal_sprite_phase_size() const { - return _impl_.sprite_phase_.size(); -} -inline int SpriteAnimation::sprite_phase_size() const { - return _internal_sprite_phase_size(); -} -inline void SpriteAnimation::clear_sprite_phase() { - _impl_.sprite_phase_.Clear(); -} -inline ::Canary::protobuf::appearances::SpritePhase* SpriteAnimation::mutable_sprite_phase(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.SpriteAnimation.sprite_phase) - return _impl_.sprite_phase_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::SpritePhase >* -SpriteAnimation::mutable_sprite_phase() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.SpriteAnimation.sprite_phase) - return &_impl_.sprite_phase_; -} -inline const ::Canary::protobuf::appearances::SpritePhase& SpriteAnimation::_internal_sprite_phase(int index) const { - return _impl_.sprite_phase_.Get(index); -} -inline const ::Canary::protobuf::appearances::SpritePhase& SpriteAnimation::sprite_phase(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteAnimation.sprite_phase) - return _internal_sprite_phase(index); -} -inline ::Canary::protobuf::appearances::SpritePhase* SpriteAnimation::_internal_add_sprite_phase() { - return _impl_.sprite_phase_.Add(); -} -inline ::Canary::protobuf::appearances::SpritePhase* SpriteAnimation::add_sprite_phase() { - ::Canary::protobuf::appearances::SpritePhase* _add = _internal_add_sprite_phase(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.SpriteAnimation.sprite_phase) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::SpritePhase >& -SpriteAnimation::sprite_phase() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.SpriteAnimation.sprite_phase) - return _impl_.sprite_phase_; -} - -// ------------------------------------------------------------------- - -// Box - -// optional uint32 x = 1; -inline bool Box::_internal_has_x() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool Box::has_x() const { - return _internal_has_x(); -} -inline void Box::clear_x() { - _impl_.x_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t Box::_internal_x() const { - return _impl_.x_; -} -inline uint32_t Box::x() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Box.x) - return _internal_x(); -} -inline void Box::_internal_set_x(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.x_ = value; -} -inline void Box::set_x(uint32_t value) { - _internal_set_x(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Box.x) -} - -// optional uint32 y = 2; -inline bool Box::_internal_has_y() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool Box::has_y() const { - return _internal_has_y(); -} -inline void Box::clear_y() { - _impl_.y_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t Box::_internal_y() const { - return _impl_.y_; -} -inline uint32_t Box::y() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Box.y) - return _internal_y(); -} -inline void Box::_internal_set_y(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.y_ = value; -} -inline void Box::set_y(uint32_t value) { - _internal_set_y(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Box.y) -} - -// optional uint32 width = 3; -inline bool Box::_internal_has_width() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool Box::has_width() const { - return _internal_has_width(); -} -inline void Box::clear_width() { - _impl_.width_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t Box::_internal_width() const { - return _impl_.width_; -} -inline uint32_t Box::width() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Box.width) - return _internal_width(); -} -inline void Box::_internal_set_width(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.width_ = value; -} -inline void Box::set_width(uint32_t value) { - _internal_set_width(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Box.width) -} - -// optional uint32 height = 4; -inline bool Box::_internal_has_height() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool Box::has_height() const { - return _internal_has_height(); -} -inline void Box::clear_height() { - _impl_.height_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t Box::_internal_height() const { - return _impl_.height_; -} -inline uint32_t Box::height() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Box.height) - return _internal_height(); -} -inline void Box::_internal_set_height(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.height_ = value; -} -inline void Box::set_height(uint32_t value) { - _internal_set_height(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Box.height) -} - -// ------------------------------------------------------------------- - -// SpriteInfo - -// optional uint32 pattern_width = 1; -inline bool SpriteInfo::_internal_has_pattern_width() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool SpriteInfo::has_pattern_width() const { - return _internal_has_pattern_width(); -} -inline void SpriteInfo::clear_pattern_width() { - _impl_.pattern_width_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t SpriteInfo::_internal_pattern_width() const { - return _impl_.pattern_width_; -} -inline uint32_t SpriteInfo::pattern_width() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.pattern_width) - return _internal_pattern_width(); -} -inline void SpriteInfo::_internal_set_pattern_width(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.pattern_width_ = value; -} -inline void SpriteInfo::set_pattern_width(uint32_t value) { - _internal_set_pattern_width(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.pattern_width) -} - -// optional uint32 pattern_height = 2; -inline bool SpriteInfo::_internal_has_pattern_height() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool SpriteInfo::has_pattern_height() const { - return _internal_has_pattern_height(); -} -inline void SpriteInfo::clear_pattern_height() { - _impl_.pattern_height_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t SpriteInfo::_internal_pattern_height() const { - return _impl_.pattern_height_; -} -inline uint32_t SpriteInfo::pattern_height() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.pattern_height) - return _internal_pattern_height(); -} -inline void SpriteInfo::_internal_set_pattern_height(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.pattern_height_ = value; -} -inline void SpriteInfo::set_pattern_height(uint32_t value) { - _internal_set_pattern_height(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.pattern_height) -} - -// optional uint32 pattern_depth = 3; -inline bool SpriteInfo::_internal_has_pattern_depth() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool SpriteInfo::has_pattern_depth() const { - return _internal_has_pattern_depth(); -} -inline void SpriteInfo::clear_pattern_depth() { - _impl_.pattern_depth_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t SpriteInfo::_internal_pattern_depth() const { - return _impl_.pattern_depth_; -} -inline uint32_t SpriteInfo::pattern_depth() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.pattern_depth) - return _internal_pattern_depth(); -} -inline void SpriteInfo::_internal_set_pattern_depth(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.pattern_depth_ = value; -} -inline void SpriteInfo::set_pattern_depth(uint32_t value) { - _internal_set_pattern_depth(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.pattern_depth) -} - -// optional uint32 layers = 4; -inline bool SpriteInfo::_internal_has_layers() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; - return value; -} -inline bool SpriteInfo::has_layers() const { - return _internal_has_layers(); -} -inline void SpriteInfo::clear_layers() { - _impl_.layers_ = 0u; - _impl_._has_bits_[0] &= ~0x00000010u; -} -inline uint32_t SpriteInfo::_internal_layers() const { - return _impl_.layers_; -} -inline uint32_t SpriteInfo::layers() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.layers) - return _internal_layers(); -} -inline void SpriteInfo::_internal_set_layers(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000010u; - _impl_.layers_ = value; -} -inline void SpriteInfo::set_layers(uint32_t value) { - _internal_set_layers(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.layers) -} - -// repeated uint32 sprite_id = 5; -inline int SpriteInfo::_internal_sprite_id_size() const { - return _impl_.sprite_id_.size(); -} -inline int SpriteInfo::sprite_id_size() const { - return _internal_sprite_id_size(); -} -inline void SpriteInfo::clear_sprite_id() { - _impl_.sprite_id_.Clear(); -} -inline uint32_t SpriteInfo::_internal_sprite_id(int index) const { - return _impl_.sprite_id_.Get(index); -} -inline uint32_t SpriteInfo::sprite_id(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.sprite_id) - return _internal_sprite_id(index); -} -inline void SpriteInfo::set_sprite_id(int index, uint32_t value) { - _impl_.sprite_id_.Set(index, value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.sprite_id) -} -inline void SpriteInfo::_internal_add_sprite_id(uint32_t value) { - _impl_.sprite_id_.Add(value); -} -inline void SpriteInfo::add_sprite_id(uint32_t value) { - _internal_add_sprite_id(value); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.SpriteInfo.sprite_id) -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >& -SpriteInfo::_internal_sprite_id() const { - return _impl_.sprite_id_; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >& -SpriteInfo::sprite_id() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.SpriteInfo.sprite_id) - return _internal_sprite_id(); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >* -SpriteInfo::_internal_mutable_sprite_id() { - return &_impl_.sprite_id_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >* -SpriteInfo::mutable_sprite_id() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.SpriteInfo.sprite_id) - return _internal_mutable_sprite_id(); -} - -// optional uint32 bounding_square = 7; -inline bool SpriteInfo::_internal_has_bounding_square() const { - bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; - return value; -} -inline bool SpriteInfo::has_bounding_square() const { - return _internal_has_bounding_square(); -} -inline void SpriteInfo::clear_bounding_square() { - _impl_.bounding_square_ = 0u; - _impl_._has_bits_[0] &= ~0x00000020u; -} -inline uint32_t SpriteInfo::_internal_bounding_square() const { - return _impl_.bounding_square_; -} -inline uint32_t SpriteInfo::bounding_square() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.bounding_square) - return _internal_bounding_square(); -} -inline void SpriteInfo::_internal_set_bounding_square(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000020u; - _impl_.bounding_square_ = value; -} -inline void SpriteInfo::set_bounding_square(uint32_t value) { - _internal_set_bounding_square(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.bounding_square) -} - -// optional .Canary.protobuf.appearances.SpriteAnimation animation = 6; -inline bool SpriteInfo::_internal_has_animation() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - PROTOBUF_ASSUME(!value || _impl_.animation_ != nullptr); - return value; -} -inline bool SpriteInfo::has_animation() const { - return _internal_has_animation(); -} -inline void SpriteInfo::clear_animation() { - if (_impl_.animation_ != nullptr) _impl_.animation_->Clear(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const ::Canary::protobuf::appearances::SpriteAnimation& SpriteInfo::_internal_animation() const { - const ::Canary::protobuf::appearances::SpriteAnimation* p = _impl_.animation_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_SpriteAnimation_default_instance_); -} -inline const ::Canary::protobuf::appearances::SpriteAnimation& SpriteInfo::animation() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.animation) - return _internal_animation(); -} -inline void SpriteInfo::unsafe_arena_set_allocated_animation( - ::Canary::protobuf::appearances::SpriteAnimation* animation) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.animation_); - } - _impl_.animation_ = animation; - if (animation) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.SpriteInfo.animation) -} -inline ::Canary::protobuf::appearances::SpriteAnimation* SpriteInfo::release_animation() { - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpriteAnimation* temp = _impl_.animation_; - _impl_.animation_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::SpriteAnimation* SpriteInfo::unsafe_arena_release_animation() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.SpriteInfo.animation) - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpriteAnimation* temp = _impl_.animation_; - _impl_.animation_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::SpriteAnimation* SpriteInfo::_internal_mutable_animation() { - _impl_._has_bits_[0] |= 0x00000001u; - if (_impl_.animation_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::SpriteAnimation>(GetArenaForAllocation()); - _impl_.animation_ = p; - } - return _impl_.animation_; -} -inline ::Canary::protobuf::appearances::SpriteAnimation* SpriteInfo::mutable_animation() { - ::Canary::protobuf::appearances::SpriteAnimation* _msg = _internal_mutable_animation(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.SpriteInfo.animation) - return _msg; -} -inline void SpriteInfo::set_allocated_animation(::Canary::protobuf::appearances::SpriteAnimation* animation) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.animation_; - } - if (animation) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(animation); - if (message_arena != submessage_arena) { - animation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, animation, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.animation_ = animation; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.SpriteInfo.animation) -} - -// optional bool is_opaque = 8; -inline bool SpriteInfo::_internal_has_is_opaque() const { - bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; - return value; -} -inline bool SpriteInfo::has_is_opaque() const { - return _internal_has_is_opaque(); -} -inline void SpriteInfo::clear_is_opaque() { - _impl_.is_opaque_ = false; - _impl_._has_bits_[0] &= ~0x00000040u; -} -inline bool SpriteInfo::_internal_is_opaque() const { - return _impl_.is_opaque_; -} -inline bool SpriteInfo::is_opaque() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.is_opaque) - return _internal_is_opaque(); -} -inline void SpriteInfo::_internal_set_is_opaque(bool value) { - _impl_._has_bits_[0] |= 0x00000040u; - _impl_.is_opaque_ = value; -} -inline void SpriteInfo::set_is_opaque(bool value) { - _internal_set_is_opaque(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpriteInfo.is_opaque) -} - -// repeated .Canary.protobuf.appearances.Box bounding_box_per_direction = 9; -inline int SpriteInfo::_internal_bounding_box_per_direction_size() const { - return _impl_.bounding_box_per_direction_.size(); -} -inline int SpriteInfo::bounding_box_per_direction_size() const { - return _internal_bounding_box_per_direction_size(); -} -inline void SpriteInfo::clear_bounding_box_per_direction() { - _impl_.bounding_box_per_direction_.Clear(); -} -inline ::Canary::protobuf::appearances::Box* SpriteInfo::mutable_bounding_box_per_direction(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.SpriteInfo.bounding_box_per_direction) - return _impl_.bounding_box_per_direction_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Box >* -SpriteInfo::mutable_bounding_box_per_direction() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.SpriteInfo.bounding_box_per_direction) - return &_impl_.bounding_box_per_direction_; -} -inline const ::Canary::protobuf::appearances::Box& SpriteInfo::_internal_bounding_box_per_direction(int index) const { - return _impl_.bounding_box_per_direction_.Get(index); -} -inline const ::Canary::protobuf::appearances::Box& SpriteInfo::bounding_box_per_direction(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpriteInfo.bounding_box_per_direction) - return _internal_bounding_box_per_direction(index); -} -inline ::Canary::protobuf::appearances::Box* SpriteInfo::_internal_add_bounding_box_per_direction() { - return _impl_.bounding_box_per_direction_.Add(); -} -inline ::Canary::protobuf::appearances::Box* SpriteInfo::add_bounding_box_per_direction() { - ::Canary::protobuf::appearances::Box* _add = _internal_add_bounding_box_per_direction(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.SpriteInfo.bounding_box_per_direction) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::Box >& -SpriteInfo::bounding_box_per_direction() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.SpriteInfo.bounding_box_per_direction) - return _impl_.bounding_box_per_direction_; -} - -// ------------------------------------------------------------------- - -// FrameGroup - -// optional .Canary.protobuf.appearances.FIXED_FRAME_GROUP fixed_frame_group = 1; -inline bool FrameGroup::_internal_has_fixed_frame_group() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool FrameGroup::has_fixed_frame_group() const { - return _internal_has_fixed_frame_group(); -} -inline void FrameGroup::clear_fixed_frame_group() { - _impl_.fixed_frame_group_ = 0; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline ::Canary::protobuf::appearances::FIXED_FRAME_GROUP FrameGroup::_internal_fixed_frame_group() const { - return static_cast< ::Canary::protobuf::appearances::FIXED_FRAME_GROUP >(_impl_.fixed_frame_group_); -} -inline ::Canary::protobuf::appearances::FIXED_FRAME_GROUP FrameGroup::fixed_frame_group() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.FrameGroup.fixed_frame_group) - return _internal_fixed_frame_group(); -} -inline void FrameGroup::_internal_set_fixed_frame_group(::Canary::protobuf::appearances::FIXED_FRAME_GROUP value) { - assert(::Canary::protobuf::appearances::FIXED_FRAME_GROUP_IsValid(value)); - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.fixed_frame_group_ = value; -} -inline void FrameGroup::set_fixed_frame_group(::Canary::protobuf::appearances::FIXED_FRAME_GROUP value) { - _internal_set_fixed_frame_group(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.FrameGroup.fixed_frame_group) -} - -// optional uint32 id = 2; -inline bool FrameGroup::_internal_has_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool FrameGroup::has_id() const { - return _internal_has_id(); -} -inline void FrameGroup::clear_id() { - _impl_.id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t FrameGroup::_internal_id() const { - return _impl_.id_; -} -inline uint32_t FrameGroup::id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.FrameGroup.id) - return _internal_id(); -} -inline void FrameGroup::_internal_set_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.id_ = value; -} -inline void FrameGroup::set_id(uint32_t value) { - _internal_set_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.FrameGroup.id) -} - -// optional .Canary.protobuf.appearances.SpriteInfo sprite_info = 3; -inline bool FrameGroup::_internal_has_sprite_info() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - PROTOBUF_ASSUME(!value || _impl_.sprite_info_ != nullptr); - return value; -} -inline bool FrameGroup::has_sprite_info() const { - return _internal_has_sprite_info(); -} -inline void FrameGroup::clear_sprite_info() { - if (_impl_.sprite_info_ != nullptr) _impl_.sprite_info_->Clear(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const ::Canary::protobuf::appearances::SpriteInfo& FrameGroup::_internal_sprite_info() const { - const ::Canary::protobuf::appearances::SpriteInfo* p = _impl_.sprite_info_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_SpriteInfo_default_instance_); -} -inline const ::Canary::protobuf::appearances::SpriteInfo& FrameGroup::sprite_info() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.FrameGroup.sprite_info) - return _internal_sprite_info(); -} -inline void FrameGroup::unsafe_arena_set_allocated_sprite_info( - ::Canary::protobuf::appearances::SpriteInfo* sprite_info) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.sprite_info_); - } - _impl_.sprite_info_ = sprite_info; - if (sprite_info) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.FrameGroup.sprite_info) -} -inline ::Canary::protobuf::appearances::SpriteInfo* FrameGroup::release_sprite_info() { - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpriteInfo* temp = _impl_.sprite_info_; - _impl_.sprite_info_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::SpriteInfo* FrameGroup::unsafe_arena_release_sprite_info() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.FrameGroup.sprite_info) - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::SpriteInfo* temp = _impl_.sprite_info_; - _impl_.sprite_info_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::SpriteInfo* FrameGroup::_internal_mutable_sprite_info() { - _impl_._has_bits_[0] |= 0x00000001u; - if (_impl_.sprite_info_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::SpriteInfo>(GetArenaForAllocation()); - _impl_.sprite_info_ = p; - } - return _impl_.sprite_info_; -} -inline ::Canary::protobuf::appearances::SpriteInfo* FrameGroup::mutable_sprite_info() { - ::Canary::protobuf::appearances::SpriteInfo* _msg = _internal_mutable_sprite_info(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.FrameGroup.sprite_info) - return _msg; -} -inline void FrameGroup::set_allocated_sprite_info(::Canary::protobuf::appearances::SpriteInfo* sprite_info) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.sprite_info_; - } - if (sprite_info) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(sprite_info); - if (message_arena != submessage_arena) { - sprite_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, sprite_info, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.sprite_info_ = sprite_info; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.FrameGroup.sprite_info) -} - -// ------------------------------------------------------------------- - -// Appearance - -// optional uint32 id = 1; -inline bool Appearance::_internal_has_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool Appearance::has_id() const { - return _internal_has_id(); -} -inline void Appearance::clear_id() { - _impl_.id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t Appearance::_internal_id() const { - return _impl_.id_; -} -inline uint32_t Appearance::id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearance.id) - return _internal_id(); -} -inline void Appearance::_internal_set_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.id_ = value; -} -inline void Appearance::set_id(uint32_t value) { - _internal_set_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Appearance.id) -} - -// repeated .Canary.protobuf.appearances.FrameGroup frame_group = 2; -inline int Appearance::_internal_frame_group_size() const { - return _impl_.frame_group_.size(); -} -inline int Appearance::frame_group_size() const { - return _internal_frame_group_size(); -} -inline void Appearance::clear_frame_group() { - _impl_.frame_group_.Clear(); -} -inline ::Canary::protobuf::appearances::FrameGroup* Appearance::mutable_frame_group(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearance.frame_group) - return _impl_.frame_group_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::FrameGroup >* -Appearance::mutable_frame_group() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.Appearance.frame_group) - return &_impl_.frame_group_; -} -inline const ::Canary::protobuf::appearances::FrameGroup& Appearance::_internal_frame_group(int index) const { - return _impl_.frame_group_.Get(index); -} -inline const ::Canary::protobuf::appearances::FrameGroup& Appearance::frame_group(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearance.frame_group) - return _internal_frame_group(index); -} -inline ::Canary::protobuf::appearances::FrameGroup* Appearance::_internal_add_frame_group() { - return _impl_.frame_group_.Add(); -} -inline ::Canary::protobuf::appearances::FrameGroup* Appearance::add_frame_group() { - ::Canary::protobuf::appearances::FrameGroup* _add = _internal_add_frame_group(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.Appearance.frame_group) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::FrameGroup >& -Appearance::frame_group() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.Appearance.frame_group) - return _impl_.frame_group_; -} - -// optional .Canary.protobuf.appearances.AppearanceFlags flags = 3; -inline bool Appearance::_internal_has_flags() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - PROTOBUF_ASSUME(!value || _impl_.flags_ != nullptr); - return value; -} -inline bool Appearance::has_flags() const { - return _internal_has_flags(); -} -inline void Appearance::clear_flags() { - if (_impl_.flags_ != nullptr) _impl_.flags_->Clear(); - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlags& Appearance::_internal_flags() const { - const ::Canary::protobuf::appearances::AppearanceFlags* p = _impl_.flags_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlags_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlags& Appearance::flags() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearance.flags) - return _internal_flags(); -} -inline void Appearance::unsafe_arena_set_allocated_flags( - ::Canary::protobuf::appearances::AppearanceFlags* flags) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.flags_); - } - _impl_.flags_ = flags; - if (flags) { - _impl_._has_bits_[0] |= 0x00000004u; - } else { - _impl_._has_bits_[0] &= ~0x00000004u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.Appearance.flags) -} -inline ::Canary::protobuf::appearances::AppearanceFlags* Appearance::release_flags() { - _impl_._has_bits_[0] &= ~0x00000004u; - ::Canary::protobuf::appearances::AppearanceFlags* temp = _impl_.flags_; - _impl_.flags_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlags* Appearance::unsafe_arena_release_flags() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.Appearance.flags) - _impl_._has_bits_[0] &= ~0x00000004u; - ::Canary::protobuf::appearances::AppearanceFlags* temp = _impl_.flags_; - _impl_.flags_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlags* Appearance::_internal_mutable_flags() { - _impl_._has_bits_[0] |= 0x00000004u; - if (_impl_.flags_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlags>(GetArenaForAllocation()); - _impl_.flags_ = p; - } - return _impl_.flags_; -} -inline ::Canary::protobuf::appearances::AppearanceFlags* Appearance::mutable_flags() { - ::Canary::protobuf::appearances::AppearanceFlags* _msg = _internal_mutable_flags(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearance.flags) - return _msg; -} -inline void Appearance::set_allocated_flags(::Canary::protobuf::appearances::AppearanceFlags* flags) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.flags_; - } - if (flags) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(flags); - if (message_arena != submessage_arena) { - flags = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, flags, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000004u; - } else { - _impl_._has_bits_[0] &= ~0x00000004u; - } - _impl_.flags_ = flags; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.Appearance.flags) -} - -// optional bytes name = 4; -inline bool Appearance::_internal_has_name() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool Appearance::has_name() const { - return _internal_has_name(); -} -inline void Appearance::clear_name() { - _impl_.name_.ClearToEmpty(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const std::string& Appearance::name() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearance.name) - return _internal_name(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void Appearance::set_name(ArgT0&& arg0, ArgT... args) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.name_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Appearance.name) -} -inline std::string* Appearance::mutable_name() { - std::string* _s = _internal_mutable_name(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearance.name) - return _s; -} -inline const std::string& Appearance::_internal_name() const { - return _impl_.name_.Get(); -} -inline void Appearance::_internal_set_name(const std::string& value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.name_.Set(value, GetArenaForAllocation()); -} -inline std::string* Appearance::_internal_mutable_name() { - _impl_._has_bits_[0] |= 0x00000001u; - return _impl_.name_.Mutable(GetArenaForAllocation()); -} -inline std::string* Appearance::release_name() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.Appearance.name) - if (!_internal_has_name()) { - return nullptr; - } - _impl_._has_bits_[0] &= ~0x00000001u; - auto* p = _impl_.name_.Release(); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.name_.IsDefault()) { - _impl_.name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - return p; -} -inline void Appearance::set_allocated_name(std::string* name) { - if (name != nullptr) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.name_.SetAllocated(name, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.name_.IsDefault()) { - _impl_.name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.Appearance.name) -} - -// optional bytes description = 5; -inline bool Appearance::_internal_has_description() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool Appearance::has_description() const { - return _internal_has_description(); -} -inline void Appearance::clear_description() { - _impl_.description_.ClearToEmpty(); - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline const std::string& Appearance::description() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.Appearance.description) - return _internal_description(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void Appearance::set_description(ArgT0&& arg0, ArgT... args) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.description_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.Appearance.description) -} -inline std::string* Appearance::mutable_description() { - std::string* _s = _internal_mutable_description(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.Appearance.description) - return _s; -} -inline const std::string& Appearance::_internal_description() const { - return _impl_.description_.Get(); -} -inline void Appearance::_internal_set_description(const std::string& value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.description_.Set(value, GetArenaForAllocation()); -} -inline std::string* Appearance::_internal_mutable_description() { - _impl_._has_bits_[0] |= 0x00000002u; - return _impl_.description_.Mutable(GetArenaForAllocation()); -} -inline std::string* Appearance::release_description() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.Appearance.description) - if (!_internal_has_description()) { - return nullptr; - } - _impl_._has_bits_[0] &= ~0x00000002u; - auto* p = _impl_.description_.Release(); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.description_.IsDefault()) { - _impl_.description_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - return p; -} -inline void Appearance::set_allocated_description(std::string* description) { - if (description != nullptr) { - _impl_._has_bits_[0] |= 0x00000002u; - } else { - _impl_._has_bits_[0] &= ~0x00000002u; - } - _impl_.description_.SetAllocated(description, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.description_.IsDefault()) { - _impl_.description_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.Appearance.description) -} - -// ------------------------------------------------------------------- - -// AppearanceFlags - -// optional .Canary.protobuf.appearances.AppearanceFlagBank bank = 1; -inline bool AppearanceFlags::_internal_has_bank() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - PROTOBUF_ASSUME(!value || _impl_.bank_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_bank() const { - return _internal_has_bank(); -} -inline void AppearanceFlags::clear_bank() { - if (_impl_.bank_ != nullptr) _impl_.bank_->Clear(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagBank& AppearanceFlags::_internal_bank() const { - const ::Canary::protobuf::appearances::AppearanceFlagBank* p = _impl_.bank_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagBank_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagBank& AppearanceFlags::bank() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.bank) - return _internal_bank(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_bank( - ::Canary::protobuf::appearances::AppearanceFlagBank* bank) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.bank_); - } - _impl_.bank_ = bank; - if (bank) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.bank) -} -inline ::Canary::protobuf::appearances::AppearanceFlagBank* AppearanceFlags::release_bank() { - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::AppearanceFlagBank* temp = _impl_.bank_; - _impl_.bank_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagBank* AppearanceFlags::unsafe_arena_release_bank() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.bank) - _impl_._has_bits_[0] &= ~0x00000001u; - ::Canary::protobuf::appearances::AppearanceFlagBank* temp = _impl_.bank_; - _impl_.bank_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagBank* AppearanceFlags::_internal_mutable_bank() { - _impl_._has_bits_[0] |= 0x00000001u; - if (_impl_.bank_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagBank>(GetArenaForAllocation()); - _impl_.bank_ = p; - } - return _impl_.bank_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagBank* AppearanceFlags::mutable_bank() { - ::Canary::protobuf::appearances::AppearanceFlagBank* _msg = _internal_mutable_bank(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.bank) - return _msg; -} -inline void AppearanceFlags::set_allocated_bank(::Canary::protobuf::appearances::AppearanceFlagBank* bank) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.bank_; - } - if (bank) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bank); - if (message_arena != submessage_arena) { - bank = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, bank, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.bank_ = bank; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.bank) -} - -// optional bool clip = 2; -inline bool AppearanceFlags::_internal_has_clip() const { - bool value = (_impl_._has_bits_[0] & 0x00008000u) != 0; - return value; -} -inline bool AppearanceFlags::has_clip() const { - return _internal_has_clip(); -} -inline void AppearanceFlags::clear_clip() { - _impl_.clip_ = false; - _impl_._has_bits_[0] &= ~0x00008000u; -} -inline bool AppearanceFlags::_internal_clip() const { - return _impl_.clip_; -} -inline bool AppearanceFlags::clip() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.clip) - return _internal_clip(); -} -inline void AppearanceFlags::_internal_set_clip(bool value) { - _impl_._has_bits_[0] |= 0x00008000u; - _impl_.clip_ = value; -} -inline void AppearanceFlags::set_clip(bool value) { - _internal_set_clip(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.clip) -} - -// optional bool bottom = 3; -inline bool AppearanceFlags::_internal_has_bottom() const { - bool value = (_impl_._has_bits_[0] & 0x00010000u) != 0; - return value; -} -inline bool AppearanceFlags::has_bottom() const { - return _internal_has_bottom(); -} -inline void AppearanceFlags::clear_bottom() { - _impl_.bottom_ = false; - _impl_._has_bits_[0] &= ~0x00010000u; -} -inline bool AppearanceFlags::_internal_bottom() const { - return _impl_.bottom_; -} -inline bool AppearanceFlags::bottom() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.bottom) - return _internal_bottom(); -} -inline void AppearanceFlags::_internal_set_bottom(bool value) { - _impl_._has_bits_[0] |= 0x00010000u; - _impl_.bottom_ = value; -} -inline void AppearanceFlags::set_bottom(bool value) { - _internal_set_bottom(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.bottom) -} - -// optional bool top = 4; -inline bool AppearanceFlags::_internal_has_top() const { - bool value = (_impl_._has_bits_[0] & 0x00020000u) != 0; - return value; -} -inline bool AppearanceFlags::has_top() const { - return _internal_has_top(); -} -inline void AppearanceFlags::clear_top() { - _impl_.top_ = false; - _impl_._has_bits_[0] &= ~0x00020000u; -} -inline bool AppearanceFlags::_internal_top() const { - return _impl_.top_; -} -inline bool AppearanceFlags::top() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.top) - return _internal_top(); -} -inline void AppearanceFlags::_internal_set_top(bool value) { - _impl_._has_bits_[0] |= 0x00020000u; - _impl_.top_ = value; -} -inline void AppearanceFlags::set_top(bool value) { - _internal_set_top(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.top) -} - -// optional bool container = 5; -inline bool AppearanceFlags::_internal_has_container() const { - bool value = (_impl_._has_bits_[0] & 0x00040000u) != 0; - return value; -} -inline bool AppearanceFlags::has_container() const { - return _internal_has_container(); -} -inline void AppearanceFlags::clear_container() { - _impl_.container_ = false; - _impl_._has_bits_[0] &= ~0x00040000u; -} -inline bool AppearanceFlags::_internal_container() const { - return _impl_.container_; -} -inline bool AppearanceFlags::container() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.container) - return _internal_container(); -} -inline void AppearanceFlags::_internal_set_container(bool value) { - _impl_._has_bits_[0] |= 0x00040000u; - _impl_.container_ = value; -} -inline void AppearanceFlags::set_container(bool value) { - _internal_set_container(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.container) -} - -// optional bool cumulative = 6; -inline bool AppearanceFlags::_internal_has_cumulative() const { - bool value = (_impl_._has_bits_[0] & 0x00080000u) != 0; - return value; -} -inline bool AppearanceFlags::has_cumulative() const { - return _internal_has_cumulative(); -} -inline void AppearanceFlags::clear_cumulative() { - _impl_.cumulative_ = false; - _impl_._has_bits_[0] &= ~0x00080000u; -} -inline bool AppearanceFlags::_internal_cumulative() const { - return _impl_.cumulative_; -} -inline bool AppearanceFlags::cumulative() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.cumulative) - return _internal_cumulative(); -} -inline void AppearanceFlags::_internal_set_cumulative(bool value) { - _impl_._has_bits_[0] |= 0x00080000u; - _impl_.cumulative_ = value; -} -inline void AppearanceFlags::set_cumulative(bool value) { - _internal_set_cumulative(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.cumulative) -} - -// optional bool usable = 7; -inline bool AppearanceFlags::_internal_has_usable() const { - bool value = (_impl_._has_bits_[0] & 0x00100000u) != 0; - return value; -} -inline bool AppearanceFlags::has_usable() const { - return _internal_has_usable(); -} -inline void AppearanceFlags::clear_usable() { - _impl_.usable_ = false; - _impl_._has_bits_[0] &= ~0x00100000u; -} -inline bool AppearanceFlags::_internal_usable() const { - return _impl_.usable_; -} -inline bool AppearanceFlags::usable() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.usable) - return _internal_usable(); -} -inline void AppearanceFlags::_internal_set_usable(bool value) { - _impl_._has_bits_[0] |= 0x00100000u; - _impl_.usable_ = value; -} -inline void AppearanceFlags::set_usable(bool value) { - _internal_set_usable(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.usable) -} - -// optional bool forceuse = 8; -inline bool AppearanceFlags::_internal_has_forceuse() const { - bool value = (_impl_._has_bits_[0] & 0x00200000u) != 0; - return value; -} -inline bool AppearanceFlags::has_forceuse() const { - return _internal_has_forceuse(); -} -inline void AppearanceFlags::clear_forceuse() { - _impl_.forceuse_ = false; - _impl_._has_bits_[0] &= ~0x00200000u; -} -inline bool AppearanceFlags::_internal_forceuse() const { - return _impl_.forceuse_; -} -inline bool AppearanceFlags::forceuse() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.forceuse) - return _internal_forceuse(); -} -inline void AppearanceFlags::_internal_set_forceuse(bool value) { - _impl_._has_bits_[0] |= 0x00200000u; - _impl_.forceuse_ = value; -} -inline void AppearanceFlags::set_forceuse(bool value) { - _internal_set_forceuse(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.forceuse) -} - -// optional bool multiuse = 9; -inline bool AppearanceFlags::_internal_has_multiuse() const { - bool value = (_impl_._has_bits_[0] & 0x00400000u) != 0; - return value; -} -inline bool AppearanceFlags::has_multiuse() const { - return _internal_has_multiuse(); -} -inline void AppearanceFlags::clear_multiuse() { - _impl_.multiuse_ = false; - _impl_._has_bits_[0] &= ~0x00400000u; -} -inline bool AppearanceFlags::_internal_multiuse() const { - return _impl_.multiuse_; -} -inline bool AppearanceFlags::multiuse() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.multiuse) - return _internal_multiuse(); -} -inline void AppearanceFlags::_internal_set_multiuse(bool value) { - _impl_._has_bits_[0] |= 0x00400000u; - _impl_.multiuse_ = value; -} -inline void AppearanceFlags::set_multiuse(bool value) { - _internal_set_multiuse(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.multiuse) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagWrite write = 10; -inline bool AppearanceFlags::_internal_has_write() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - PROTOBUF_ASSUME(!value || _impl_.write_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_write() const { - return _internal_has_write(); -} -inline void AppearanceFlags::clear_write() { - if (_impl_.write_ != nullptr) _impl_.write_->Clear(); - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagWrite& AppearanceFlags::_internal_write() const { - const ::Canary::protobuf::appearances::AppearanceFlagWrite* p = _impl_.write_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagWrite_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagWrite& AppearanceFlags::write() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.write) - return _internal_write(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_write( - ::Canary::protobuf::appearances::AppearanceFlagWrite* write) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.write_); - } - _impl_.write_ = write; - if (write) { - _impl_._has_bits_[0] |= 0x00000002u; - } else { - _impl_._has_bits_[0] &= ~0x00000002u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.write) -} -inline ::Canary::protobuf::appearances::AppearanceFlagWrite* AppearanceFlags::release_write() { - _impl_._has_bits_[0] &= ~0x00000002u; - ::Canary::protobuf::appearances::AppearanceFlagWrite* temp = _impl_.write_; - _impl_.write_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWrite* AppearanceFlags::unsafe_arena_release_write() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.write) - _impl_._has_bits_[0] &= ~0x00000002u; - ::Canary::protobuf::appearances::AppearanceFlagWrite* temp = _impl_.write_; - _impl_.write_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWrite* AppearanceFlags::_internal_mutable_write() { - _impl_._has_bits_[0] |= 0x00000002u; - if (_impl_.write_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagWrite>(GetArenaForAllocation()); - _impl_.write_ = p; - } - return _impl_.write_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWrite* AppearanceFlags::mutable_write() { - ::Canary::protobuf::appearances::AppearanceFlagWrite* _msg = _internal_mutable_write(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.write) - return _msg; -} -inline void AppearanceFlags::set_allocated_write(::Canary::protobuf::appearances::AppearanceFlagWrite* write) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.write_; - } - if (write) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(write); - if (message_arena != submessage_arena) { - write = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, write, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000002u; - } else { - _impl_._has_bits_[0] &= ~0x00000002u; - } - _impl_.write_ = write; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.write) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagWriteOnce write_once = 11; -inline bool AppearanceFlags::_internal_has_write_once() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - PROTOBUF_ASSUME(!value || _impl_.write_once_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_write_once() const { - return _internal_has_write_once(); -} -inline void AppearanceFlags::clear_write_once() { - if (_impl_.write_once_ != nullptr) _impl_.write_once_->Clear(); - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& AppearanceFlags::_internal_write_once() const { - const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* p = _impl_.write_once_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagWriteOnce_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagWriteOnce& AppearanceFlags::write_once() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.write_once) - return _internal_write_once(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_write_once( - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* write_once) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.write_once_); - } - _impl_.write_once_ = write_once; - if (write_once) { - _impl_._has_bits_[0] |= 0x00000004u; - } else { - _impl_._has_bits_[0] &= ~0x00000004u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.write_once) -} -inline ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* AppearanceFlags::release_write_once() { - _impl_._has_bits_[0] &= ~0x00000004u; - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* temp = _impl_.write_once_; - _impl_.write_once_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* AppearanceFlags::unsafe_arena_release_write_once() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.write_once) - _impl_._has_bits_[0] &= ~0x00000004u; - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* temp = _impl_.write_once_; - _impl_.write_once_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* AppearanceFlags::_internal_mutable_write_once() { - _impl_._has_bits_[0] |= 0x00000004u; - if (_impl_.write_once_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagWriteOnce>(GetArenaForAllocation()); - _impl_.write_once_ = p; - } - return _impl_.write_once_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* AppearanceFlags::mutable_write_once() { - ::Canary::protobuf::appearances::AppearanceFlagWriteOnce* _msg = _internal_mutable_write_once(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.write_once) - return _msg; -} -inline void AppearanceFlags::set_allocated_write_once(::Canary::protobuf::appearances::AppearanceFlagWriteOnce* write_once) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.write_once_; - } - if (write_once) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(write_once); - if (message_arena != submessage_arena) { - write_once = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, write_once, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000004u; - } else { - _impl_._has_bits_[0] &= ~0x00000004u; - } - _impl_.write_once_ = write_once; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.write_once) -} - -// optional bool liquidpool = 12; -inline bool AppearanceFlags::_internal_has_liquidpool() const { - bool value = (_impl_._has_bits_[0] & 0x00800000u) != 0; - return value; -} -inline bool AppearanceFlags::has_liquidpool() const { - return _internal_has_liquidpool(); -} -inline void AppearanceFlags::clear_liquidpool() { - _impl_.liquidpool_ = false; - _impl_._has_bits_[0] &= ~0x00800000u; -} -inline bool AppearanceFlags::_internal_liquidpool() const { - return _impl_.liquidpool_; -} -inline bool AppearanceFlags::liquidpool() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.liquidpool) - return _internal_liquidpool(); -} -inline void AppearanceFlags::_internal_set_liquidpool(bool value) { - _impl_._has_bits_[0] |= 0x00800000u; - _impl_.liquidpool_ = value; -} -inline void AppearanceFlags::set_liquidpool(bool value) { - _internal_set_liquidpool(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.liquidpool) -} - -// optional bool unpass = 13; -inline bool AppearanceFlags::_internal_has_unpass() const { - bool value = (_impl_._has_bits_[0] & 0x01000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_unpass() const { - return _internal_has_unpass(); -} -inline void AppearanceFlags::clear_unpass() { - _impl_.unpass_ = false; - _impl_._has_bits_[0] &= ~0x01000000u; -} -inline bool AppearanceFlags::_internal_unpass() const { - return _impl_.unpass_; -} -inline bool AppearanceFlags::unpass() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.unpass) - return _internal_unpass(); -} -inline void AppearanceFlags::_internal_set_unpass(bool value) { - _impl_._has_bits_[0] |= 0x01000000u; - _impl_.unpass_ = value; -} -inline void AppearanceFlags::set_unpass(bool value) { - _internal_set_unpass(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.unpass) -} - -// optional bool unmove = 14; -inline bool AppearanceFlags::_internal_has_unmove() const { - bool value = (_impl_._has_bits_[0] & 0x02000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_unmove() const { - return _internal_has_unmove(); -} -inline void AppearanceFlags::clear_unmove() { - _impl_.unmove_ = false; - _impl_._has_bits_[0] &= ~0x02000000u; -} -inline bool AppearanceFlags::_internal_unmove() const { - return _impl_.unmove_; -} -inline bool AppearanceFlags::unmove() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.unmove) - return _internal_unmove(); -} -inline void AppearanceFlags::_internal_set_unmove(bool value) { - _impl_._has_bits_[0] |= 0x02000000u; - _impl_.unmove_ = value; -} -inline void AppearanceFlags::set_unmove(bool value) { - _internal_set_unmove(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.unmove) -} - -// optional bool unsight = 15; -inline bool AppearanceFlags::_internal_has_unsight() const { - bool value = (_impl_._has_bits_[0] & 0x04000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_unsight() const { - return _internal_has_unsight(); -} -inline void AppearanceFlags::clear_unsight() { - _impl_.unsight_ = false; - _impl_._has_bits_[0] &= ~0x04000000u; -} -inline bool AppearanceFlags::_internal_unsight() const { - return _impl_.unsight_; -} -inline bool AppearanceFlags::unsight() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.unsight) - return _internal_unsight(); -} -inline void AppearanceFlags::_internal_set_unsight(bool value) { - _impl_._has_bits_[0] |= 0x04000000u; - _impl_.unsight_ = value; -} -inline void AppearanceFlags::set_unsight(bool value) { - _internal_set_unsight(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.unsight) -} - -// optional bool avoid = 16; -inline bool AppearanceFlags::_internal_has_avoid() const { - bool value = (_impl_._has_bits_[0] & 0x08000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_avoid() const { - return _internal_has_avoid(); -} -inline void AppearanceFlags::clear_avoid() { - _impl_.avoid_ = false; - _impl_._has_bits_[0] &= ~0x08000000u; -} -inline bool AppearanceFlags::_internal_avoid() const { - return _impl_.avoid_; -} -inline bool AppearanceFlags::avoid() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.avoid) - return _internal_avoid(); -} -inline void AppearanceFlags::_internal_set_avoid(bool value) { - _impl_._has_bits_[0] |= 0x08000000u; - _impl_.avoid_ = value; -} -inline void AppearanceFlags::set_avoid(bool value) { - _internal_set_avoid(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.avoid) -} - -// optional bool no_movement_animation = 17; -inline bool AppearanceFlags::_internal_has_no_movement_animation() const { - bool value = (_impl_._has_bits_[0] & 0x10000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_no_movement_animation() const { - return _internal_has_no_movement_animation(); -} -inline void AppearanceFlags::clear_no_movement_animation() { - _impl_.no_movement_animation_ = false; - _impl_._has_bits_[0] &= ~0x10000000u; -} -inline bool AppearanceFlags::_internal_no_movement_animation() const { - return _impl_.no_movement_animation_; -} -inline bool AppearanceFlags::no_movement_animation() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.no_movement_animation) - return _internal_no_movement_animation(); -} -inline void AppearanceFlags::_internal_set_no_movement_animation(bool value) { - _impl_._has_bits_[0] |= 0x10000000u; - _impl_.no_movement_animation_ = value; -} -inline void AppearanceFlags::set_no_movement_animation(bool value) { - _internal_set_no_movement_animation(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.no_movement_animation) -} - -// optional bool take = 18; -inline bool AppearanceFlags::_internal_has_take() const { - bool value = (_impl_._has_bits_[0] & 0x20000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_take() const { - return _internal_has_take(); -} -inline void AppearanceFlags::clear_take() { - _impl_.take_ = false; - _impl_._has_bits_[0] &= ~0x20000000u; -} -inline bool AppearanceFlags::_internal_take() const { - return _impl_.take_; -} -inline bool AppearanceFlags::take() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.take) - return _internal_take(); -} -inline void AppearanceFlags::_internal_set_take(bool value) { - _impl_._has_bits_[0] |= 0x20000000u; - _impl_.take_ = value; -} -inline void AppearanceFlags::set_take(bool value) { - _internal_set_take(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.take) -} - -// optional bool liquidcontainer = 19; -inline bool AppearanceFlags::_internal_has_liquidcontainer() const { - bool value = (_impl_._has_bits_[0] & 0x40000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_liquidcontainer() const { - return _internal_has_liquidcontainer(); -} -inline void AppearanceFlags::clear_liquidcontainer() { - _impl_.liquidcontainer_ = false; - _impl_._has_bits_[0] &= ~0x40000000u; -} -inline bool AppearanceFlags::_internal_liquidcontainer() const { - return _impl_.liquidcontainer_; -} -inline bool AppearanceFlags::liquidcontainer() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.liquidcontainer) - return _internal_liquidcontainer(); -} -inline void AppearanceFlags::_internal_set_liquidcontainer(bool value) { - _impl_._has_bits_[0] |= 0x40000000u; - _impl_.liquidcontainer_ = value; -} -inline void AppearanceFlags::set_liquidcontainer(bool value) { - _internal_set_liquidcontainer(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.liquidcontainer) -} - -// optional bool hang = 20; -inline bool AppearanceFlags::_internal_has_hang() const { - bool value = (_impl_._has_bits_[0] & 0x80000000u) != 0; - return value; -} -inline bool AppearanceFlags::has_hang() const { - return _internal_has_hang(); -} -inline void AppearanceFlags::clear_hang() { - _impl_.hang_ = false; - _impl_._has_bits_[0] &= ~0x80000000u; -} -inline bool AppearanceFlags::_internal_hang() const { - return _impl_.hang_; -} -inline bool AppearanceFlags::hang() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.hang) - return _internal_hang(); -} -inline void AppearanceFlags::_internal_set_hang(bool value) { - _impl_._has_bits_[0] |= 0x80000000u; - _impl_.hang_ = value; -} -inline void AppearanceFlags::set_hang(bool value) { - _internal_set_hang(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.hang) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagHook hook = 21; -inline bool AppearanceFlags::_internal_has_hook() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - PROTOBUF_ASSUME(!value || _impl_.hook_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_hook() const { - return _internal_has_hook(); -} -inline void AppearanceFlags::clear_hook() { - if (_impl_.hook_ != nullptr) _impl_.hook_->Clear(); - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagHook& AppearanceFlags::_internal_hook() const { - const ::Canary::protobuf::appearances::AppearanceFlagHook* p = _impl_.hook_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagHook_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagHook& AppearanceFlags::hook() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.hook) - return _internal_hook(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_hook( - ::Canary::protobuf::appearances::AppearanceFlagHook* hook) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.hook_); - } - _impl_.hook_ = hook; - if (hook) { - _impl_._has_bits_[0] |= 0x00000008u; - } else { - _impl_._has_bits_[0] &= ~0x00000008u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.hook) -} -inline ::Canary::protobuf::appearances::AppearanceFlagHook* AppearanceFlags::release_hook() { - _impl_._has_bits_[0] &= ~0x00000008u; - ::Canary::protobuf::appearances::AppearanceFlagHook* temp = _impl_.hook_; - _impl_.hook_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHook* AppearanceFlags::unsafe_arena_release_hook() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.hook) - _impl_._has_bits_[0] &= ~0x00000008u; - ::Canary::protobuf::appearances::AppearanceFlagHook* temp = _impl_.hook_; - _impl_.hook_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHook* AppearanceFlags::_internal_mutable_hook() { - _impl_._has_bits_[0] |= 0x00000008u; - if (_impl_.hook_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagHook>(GetArenaForAllocation()); - _impl_.hook_ = p; - } - return _impl_.hook_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHook* AppearanceFlags::mutable_hook() { - ::Canary::protobuf::appearances::AppearanceFlagHook* _msg = _internal_mutable_hook(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.hook) - return _msg; -} -inline void AppearanceFlags::set_allocated_hook(::Canary::protobuf::appearances::AppearanceFlagHook* hook) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.hook_; - } - if (hook) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(hook); - if (message_arena != submessage_arena) { - hook = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, hook, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000008u; - } else { - _impl_._has_bits_[0] &= ~0x00000008u; - } - _impl_.hook_ = hook; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.hook) -} - -// optional bool rotate = 22; -inline bool AppearanceFlags::_internal_has_rotate() const { - bool value = (_impl_._has_bits_[1] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlags::has_rotate() const { - return _internal_has_rotate(); -} -inline void AppearanceFlags::clear_rotate() { - _impl_.rotate_ = false; - _impl_._has_bits_[1] &= ~0x00000001u; -} -inline bool AppearanceFlags::_internal_rotate() const { - return _impl_.rotate_; -} -inline bool AppearanceFlags::rotate() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.rotate) - return _internal_rotate(); -} -inline void AppearanceFlags::_internal_set_rotate(bool value) { - _impl_._has_bits_[1] |= 0x00000001u; - _impl_.rotate_ = value; -} -inline void AppearanceFlags::set_rotate(bool value) { - _internal_set_rotate(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.rotate) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagLight light = 23; -inline bool AppearanceFlags::_internal_has_light() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; - PROTOBUF_ASSUME(!value || _impl_.light_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_light() const { - return _internal_has_light(); -} -inline void AppearanceFlags::clear_light() { - if (_impl_.light_ != nullptr) _impl_.light_->Clear(); - _impl_._has_bits_[0] &= ~0x00000010u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagLight& AppearanceFlags::_internal_light() const { - const ::Canary::protobuf::appearances::AppearanceFlagLight* p = _impl_.light_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagLight_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagLight& AppearanceFlags::light() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.light) - return _internal_light(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_light( - ::Canary::protobuf::appearances::AppearanceFlagLight* light) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.light_); - } - _impl_.light_ = light; - if (light) { - _impl_._has_bits_[0] |= 0x00000010u; - } else { - _impl_._has_bits_[0] &= ~0x00000010u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.light) -} -inline ::Canary::protobuf::appearances::AppearanceFlagLight* AppearanceFlags::release_light() { - _impl_._has_bits_[0] &= ~0x00000010u; - ::Canary::protobuf::appearances::AppearanceFlagLight* temp = _impl_.light_; - _impl_.light_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLight* AppearanceFlags::unsafe_arena_release_light() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.light) - _impl_._has_bits_[0] &= ~0x00000010u; - ::Canary::protobuf::appearances::AppearanceFlagLight* temp = _impl_.light_; - _impl_.light_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLight* AppearanceFlags::_internal_mutable_light() { - _impl_._has_bits_[0] |= 0x00000010u; - if (_impl_.light_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagLight>(GetArenaForAllocation()); - _impl_.light_ = p; - } - return _impl_.light_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLight* AppearanceFlags::mutable_light() { - ::Canary::protobuf::appearances::AppearanceFlagLight* _msg = _internal_mutable_light(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.light) - return _msg; -} -inline void AppearanceFlags::set_allocated_light(::Canary::protobuf::appearances::AppearanceFlagLight* light) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.light_; - } - if (light) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(light); - if (message_arena != submessage_arena) { - light = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, light, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000010u; - } else { - _impl_._has_bits_[0] &= ~0x00000010u; - } - _impl_.light_ = light; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.light) -} - -// optional bool dont_hide = 24; -inline bool AppearanceFlags::_internal_has_dont_hide() const { - bool value = (_impl_._has_bits_[1] & 0x00000002u) != 0; - return value; -} -inline bool AppearanceFlags::has_dont_hide() const { - return _internal_has_dont_hide(); -} -inline void AppearanceFlags::clear_dont_hide() { - _impl_.dont_hide_ = false; - _impl_._has_bits_[1] &= ~0x00000002u; -} -inline bool AppearanceFlags::_internal_dont_hide() const { - return _impl_.dont_hide_; -} -inline bool AppearanceFlags::dont_hide() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.dont_hide) - return _internal_dont_hide(); -} -inline void AppearanceFlags::_internal_set_dont_hide(bool value) { - _impl_._has_bits_[1] |= 0x00000002u; - _impl_.dont_hide_ = value; -} -inline void AppearanceFlags::set_dont_hide(bool value) { - _internal_set_dont_hide(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.dont_hide) -} - -// optional bool translucent = 25; -inline bool AppearanceFlags::_internal_has_translucent() const { - bool value = (_impl_._has_bits_[1] & 0x00000004u) != 0; - return value; -} -inline bool AppearanceFlags::has_translucent() const { - return _internal_has_translucent(); -} -inline void AppearanceFlags::clear_translucent() { - _impl_.translucent_ = false; - _impl_._has_bits_[1] &= ~0x00000004u; -} -inline bool AppearanceFlags::_internal_translucent() const { - return _impl_.translucent_; -} -inline bool AppearanceFlags::translucent() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.translucent) - return _internal_translucent(); -} -inline void AppearanceFlags::_internal_set_translucent(bool value) { - _impl_._has_bits_[1] |= 0x00000004u; - _impl_.translucent_ = value; -} -inline void AppearanceFlags::set_translucent(bool value) { - _internal_set_translucent(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.translucent) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagShift shift = 26; -inline bool AppearanceFlags::_internal_has_shift() const { - bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; - PROTOBUF_ASSUME(!value || _impl_.shift_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_shift() const { - return _internal_has_shift(); -} -inline void AppearanceFlags::clear_shift() { - if (_impl_.shift_ != nullptr) _impl_.shift_->Clear(); - _impl_._has_bits_[0] &= ~0x00000020u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagShift& AppearanceFlags::_internal_shift() const { - const ::Canary::protobuf::appearances::AppearanceFlagShift* p = _impl_.shift_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagShift_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagShift& AppearanceFlags::shift() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.shift) - return _internal_shift(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_shift( - ::Canary::protobuf::appearances::AppearanceFlagShift* shift) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.shift_); - } - _impl_.shift_ = shift; - if (shift) { - _impl_._has_bits_[0] |= 0x00000020u; - } else { - _impl_._has_bits_[0] &= ~0x00000020u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.shift) -} -inline ::Canary::protobuf::appearances::AppearanceFlagShift* AppearanceFlags::release_shift() { - _impl_._has_bits_[0] &= ~0x00000020u; - ::Canary::protobuf::appearances::AppearanceFlagShift* temp = _impl_.shift_; - _impl_.shift_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagShift* AppearanceFlags::unsafe_arena_release_shift() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.shift) - _impl_._has_bits_[0] &= ~0x00000020u; - ::Canary::protobuf::appearances::AppearanceFlagShift* temp = _impl_.shift_; - _impl_.shift_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagShift* AppearanceFlags::_internal_mutable_shift() { - _impl_._has_bits_[0] |= 0x00000020u; - if (_impl_.shift_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagShift>(GetArenaForAllocation()); - _impl_.shift_ = p; - } - return _impl_.shift_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagShift* AppearanceFlags::mutable_shift() { - ::Canary::protobuf::appearances::AppearanceFlagShift* _msg = _internal_mutable_shift(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.shift) - return _msg; -} -inline void AppearanceFlags::set_allocated_shift(::Canary::protobuf::appearances::AppearanceFlagShift* shift) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.shift_; - } - if (shift) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(shift); - if (message_arena != submessage_arena) { - shift = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, shift, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000020u; - } else { - _impl_._has_bits_[0] &= ~0x00000020u; - } - _impl_.shift_ = shift; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.shift) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagHeight height = 27; -inline bool AppearanceFlags::_internal_has_height() const { - bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; - PROTOBUF_ASSUME(!value || _impl_.height_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_height() const { - return _internal_has_height(); -} -inline void AppearanceFlags::clear_height() { - if (_impl_.height_ != nullptr) _impl_.height_->Clear(); - _impl_._has_bits_[0] &= ~0x00000040u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagHeight& AppearanceFlags::_internal_height() const { - const ::Canary::protobuf::appearances::AppearanceFlagHeight* p = _impl_.height_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagHeight_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagHeight& AppearanceFlags::height() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.height) - return _internal_height(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_height( - ::Canary::protobuf::appearances::AppearanceFlagHeight* height) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.height_); - } - _impl_.height_ = height; - if (height) { - _impl_._has_bits_[0] |= 0x00000040u; - } else { - _impl_._has_bits_[0] &= ~0x00000040u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.height) -} -inline ::Canary::protobuf::appearances::AppearanceFlagHeight* AppearanceFlags::release_height() { - _impl_._has_bits_[0] &= ~0x00000040u; - ::Canary::protobuf::appearances::AppearanceFlagHeight* temp = _impl_.height_; - _impl_.height_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHeight* AppearanceFlags::unsafe_arena_release_height() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.height) - _impl_._has_bits_[0] &= ~0x00000040u; - ::Canary::protobuf::appearances::AppearanceFlagHeight* temp = _impl_.height_; - _impl_.height_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHeight* AppearanceFlags::_internal_mutable_height() { - _impl_._has_bits_[0] |= 0x00000040u; - if (_impl_.height_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagHeight>(GetArenaForAllocation()); - _impl_.height_ = p; - } - return _impl_.height_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagHeight* AppearanceFlags::mutable_height() { - ::Canary::protobuf::appearances::AppearanceFlagHeight* _msg = _internal_mutable_height(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.height) - return _msg; -} -inline void AppearanceFlags::set_allocated_height(::Canary::protobuf::appearances::AppearanceFlagHeight* height) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.height_; - } - if (height) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(height); - if (message_arena != submessage_arena) { - height = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, height, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000040u; - } else { - _impl_._has_bits_[0] &= ~0x00000040u; - } - _impl_.height_ = height; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.height) -} - -// optional bool lying_object = 28; -inline bool AppearanceFlags::_internal_has_lying_object() const { - bool value = (_impl_._has_bits_[1] & 0x00000008u) != 0; - return value; -} -inline bool AppearanceFlags::has_lying_object() const { - return _internal_has_lying_object(); -} -inline void AppearanceFlags::clear_lying_object() { - _impl_.lying_object_ = false; - _impl_._has_bits_[1] &= ~0x00000008u; -} -inline bool AppearanceFlags::_internal_lying_object() const { - return _impl_.lying_object_; -} -inline bool AppearanceFlags::lying_object() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.lying_object) - return _internal_lying_object(); -} -inline void AppearanceFlags::_internal_set_lying_object(bool value) { - _impl_._has_bits_[1] |= 0x00000008u; - _impl_.lying_object_ = value; -} -inline void AppearanceFlags::set_lying_object(bool value) { - _internal_set_lying_object(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.lying_object) -} - -// optional bool animate_always = 29; -inline bool AppearanceFlags::_internal_has_animate_always() const { - bool value = (_impl_._has_bits_[1] & 0x00000010u) != 0; - return value; -} -inline bool AppearanceFlags::has_animate_always() const { - return _internal_has_animate_always(); -} -inline void AppearanceFlags::clear_animate_always() { - _impl_.animate_always_ = false; - _impl_._has_bits_[1] &= ~0x00000010u; -} -inline bool AppearanceFlags::_internal_animate_always() const { - return _impl_.animate_always_; -} -inline bool AppearanceFlags::animate_always() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.animate_always) - return _internal_animate_always(); -} -inline void AppearanceFlags::_internal_set_animate_always(bool value) { - _impl_._has_bits_[1] |= 0x00000010u; - _impl_.animate_always_ = value; -} -inline void AppearanceFlags::set_animate_always(bool value) { - _internal_set_animate_always(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.animate_always) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagAutomap automap = 30; -inline bool AppearanceFlags::_internal_has_automap() const { - bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0; - PROTOBUF_ASSUME(!value || _impl_.automap_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_automap() const { - return _internal_has_automap(); -} -inline void AppearanceFlags::clear_automap() { - if (_impl_.automap_ != nullptr) _impl_.automap_->Clear(); - _impl_._has_bits_[0] &= ~0x00000080u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagAutomap& AppearanceFlags::_internal_automap() const { - const ::Canary::protobuf::appearances::AppearanceFlagAutomap* p = _impl_.automap_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagAutomap_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagAutomap& AppearanceFlags::automap() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.automap) - return _internal_automap(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_automap( - ::Canary::protobuf::appearances::AppearanceFlagAutomap* automap) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.automap_); - } - _impl_.automap_ = automap; - if (automap) { - _impl_._has_bits_[0] |= 0x00000080u; - } else { - _impl_._has_bits_[0] &= ~0x00000080u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.automap) -} -inline ::Canary::protobuf::appearances::AppearanceFlagAutomap* AppearanceFlags::release_automap() { - _impl_._has_bits_[0] &= ~0x00000080u; - ::Canary::protobuf::appearances::AppearanceFlagAutomap* temp = _impl_.automap_; - _impl_.automap_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagAutomap* AppearanceFlags::unsafe_arena_release_automap() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.automap) - _impl_._has_bits_[0] &= ~0x00000080u; - ::Canary::protobuf::appearances::AppearanceFlagAutomap* temp = _impl_.automap_; - _impl_.automap_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagAutomap* AppearanceFlags::_internal_mutable_automap() { - _impl_._has_bits_[0] |= 0x00000080u; - if (_impl_.automap_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagAutomap>(GetArenaForAllocation()); - _impl_.automap_ = p; - } - return _impl_.automap_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagAutomap* AppearanceFlags::mutable_automap() { - ::Canary::protobuf::appearances::AppearanceFlagAutomap* _msg = _internal_mutable_automap(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.automap) - return _msg; -} -inline void AppearanceFlags::set_allocated_automap(::Canary::protobuf::appearances::AppearanceFlagAutomap* automap) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.automap_; - } - if (automap) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(automap); - if (message_arena != submessage_arena) { - automap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, automap, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000080u; - } else { - _impl_._has_bits_[0] &= ~0x00000080u; - } - _impl_.automap_ = automap; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.automap) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagLenshelp lenshelp = 31; -inline bool AppearanceFlags::_internal_has_lenshelp() const { - bool value = (_impl_._has_bits_[0] & 0x00000100u) != 0; - PROTOBUF_ASSUME(!value || _impl_.lenshelp_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_lenshelp() const { - return _internal_has_lenshelp(); -} -inline void AppearanceFlags::clear_lenshelp() { - if (_impl_.lenshelp_ != nullptr) _impl_.lenshelp_->Clear(); - _impl_._has_bits_[0] &= ~0x00000100u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& AppearanceFlags::_internal_lenshelp() const { - const ::Canary::protobuf::appearances::AppearanceFlagLenshelp* p = _impl_.lenshelp_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagLenshelp_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagLenshelp& AppearanceFlags::lenshelp() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.lenshelp) - return _internal_lenshelp(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_lenshelp( - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* lenshelp) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.lenshelp_); - } - _impl_.lenshelp_ = lenshelp; - if (lenshelp) { - _impl_._has_bits_[0] |= 0x00000100u; - } else { - _impl_._has_bits_[0] &= ~0x00000100u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.lenshelp) -} -inline ::Canary::protobuf::appearances::AppearanceFlagLenshelp* AppearanceFlags::release_lenshelp() { - _impl_._has_bits_[0] &= ~0x00000100u; - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* temp = _impl_.lenshelp_; - _impl_.lenshelp_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLenshelp* AppearanceFlags::unsafe_arena_release_lenshelp() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.lenshelp) - _impl_._has_bits_[0] &= ~0x00000100u; - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* temp = _impl_.lenshelp_; - _impl_.lenshelp_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLenshelp* AppearanceFlags::_internal_mutable_lenshelp() { - _impl_._has_bits_[0] |= 0x00000100u; - if (_impl_.lenshelp_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagLenshelp>(GetArenaForAllocation()); - _impl_.lenshelp_ = p; - } - return _impl_.lenshelp_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagLenshelp* AppearanceFlags::mutable_lenshelp() { - ::Canary::protobuf::appearances::AppearanceFlagLenshelp* _msg = _internal_mutable_lenshelp(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.lenshelp) - return _msg; -} -inline void AppearanceFlags::set_allocated_lenshelp(::Canary::protobuf::appearances::AppearanceFlagLenshelp* lenshelp) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.lenshelp_; - } - if (lenshelp) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(lenshelp); - if (message_arena != submessage_arena) { - lenshelp = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, lenshelp, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000100u; - } else { - _impl_._has_bits_[0] &= ~0x00000100u; - } - _impl_.lenshelp_ = lenshelp; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.lenshelp) -} - -// optional bool fullbank = 32; -inline bool AppearanceFlags::_internal_has_fullbank() const { - bool value = (_impl_._has_bits_[1] & 0x00000020u) != 0; - return value; -} -inline bool AppearanceFlags::has_fullbank() const { - return _internal_has_fullbank(); -} -inline void AppearanceFlags::clear_fullbank() { - _impl_.fullbank_ = false; - _impl_._has_bits_[1] &= ~0x00000020u; -} -inline bool AppearanceFlags::_internal_fullbank() const { - return _impl_.fullbank_; -} -inline bool AppearanceFlags::fullbank() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.fullbank) - return _internal_fullbank(); -} -inline void AppearanceFlags::_internal_set_fullbank(bool value) { - _impl_._has_bits_[1] |= 0x00000020u; - _impl_.fullbank_ = value; -} -inline void AppearanceFlags::set_fullbank(bool value) { - _internal_set_fullbank(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.fullbank) -} - -// optional bool ignore_look = 33; -inline bool AppearanceFlags::_internal_has_ignore_look() const { - bool value = (_impl_._has_bits_[1] & 0x00000040u) != 0; - return value; -} -inline bool AppearanceFlags::has_ignore_look() const { - return _internal_has_ignore_look(); -} -inline void AppearanceFlags::clear_ignore_look() { - _impl_.ignore_look_ = false; - _impl_._has_bits_[1] &= ~0x00000040u; -} -inline bool AppearanceFlags::_internal_ignore_look() const { - return _impl_.ignore_look_; -} -inline bool AppearanceFlags::ignore_look() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.ignore_look) - return _internal_ignore_look(); -} -inline void AppearanceFlags::_internal_set_ignore_look(bool value) { - _impl_._has_bits_[1] |= 0x00000040u; - _impl_.ignore_look_ = value; -} -inline void AppearanceFlags::set_ignore_look(bool value) { - _internal_set_ignore_look(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.ignore_look) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagClothes clothes = 34; -inline bool AppearanceFlags::_internal_has_clothes() const { - bool value = (_impl_._has_bits_[0] & 0x00000200u) != 0; - PROTOBUF_ASSUME(!value || _impl_.clothes_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_clothes() const { - return _internal_has_clothes(); -} -inline void AppearanceFlags::clear_clothes() { - if (_impl_.clothes_ != nullptr) _impl_.clothes_->Clear(); - _impl_._has_bits_[0] &= ~0x00000200u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagClothes& AppearanceFlags::_internal_clothes() const { - const ::Canary::protobuf::appearances::AppearanceFlagClothes* p = _impl_.clothes_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagClothes_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagClothes& AppearanceFlags::clothes() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.clothes) - return _internal_clothes(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_clothes( - ::Canary::protobuf::appearances::AppearanceFlagClothes* clothes) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.clothes_); - } - _impl_.clothes_ = clothes; - if (clothes) { - _impl_._has_bits_[0] |= 0x00000200u; - } else { - _impl_._has_bits_[0] &= ~0x00000200u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.clothes) -} -inline ::Canary::protobuf::appearances::AppearanceFlagClothes* AppearanceFlags::release_clothes() { - _impl_._has_bits_[0] &= ~0x00000200u; - ::Canary::protobuf::appearances::AppearanceFlagClothes* temp = _impl_.clothes_; - _impl_.clothes_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagClothes* AppearanceFlags::unsafe_arena_release_clothes() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.clothes) - _impl_._has_bits_[0] &= ~0x00000200u; - ::Canary::protobuf::appearances::AppearanceFlagClothes* temp = _impl_.clothes_; - _impl_.clothes_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagClothes* AppearanceFlags::_internal_mutable_clothes() { - _impl_._has_bits_[0] |= 0x00000200u; - if (_impl_.clothes_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagClothes>(GetArenaForAllocation()); - _impl_.clothes_ = p; - } - return _impl_.clothes_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagClothes* AppearanceFlags::mutable_clothes() { - ::Canary::protobuf::appearances::AppearanceFlagClothes* _msg = _internal_mutable_clothes(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.clothes) - return _msg; -} -inline void AppearanceFlags::set_allocated_clothes(::Canary::protobuf::appearances::AppearanceFlagClothes* clothes) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.clothes_; - } - if (clothes) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(clothes); - if (message_arena != submessage_arena) { - clothes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, clothes, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000200u; - } else { - _impl_._has_bits_[0] &= ~0x00000200u; - } - _impl_.clothes_ = clothes; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.clothes) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagDefaultAction default_action = 35; -inline bool AppearanceFlags::_internal_has_default_action() const { - bool value = (_impl_._has_bits_[0] & 0x00000400u) != 0; - PROTOBUF_ASSUME(!value || _impl_.default_action_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_default_action() const { - return _internal_has_default_action(); -} -inline void AppearanceFlags::clear_default_action() { - if (_impl_.default_action_ != nullptr) _impl_.default_action_->Clear(); - _impl_._has_bits_[0] &= ~0x00000400u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& AppearanceFlags::_internal_default_action() const { - const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* p = _impl_.default_action_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagDefaultAction_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagDefaultAction& AppearanceFlags::default_action() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.default_action) - return _internal_default_action(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_default_action( - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* default_action) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.default_action_); - } - _impl_.default_action_ = default_action; - if (default_action) { - _impl_._has_bits_[0] |= 0x00000400u; - } else { - _impl_._has_bits_[0] &= ~0x00000400u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.default_action) -} -inline ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* AppearanceFlags::release_default_action() { - _impl_._has_bits_[0] &= ~0x00000400u; - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* temp = _impl_.default_action_; - _impl_.default_action_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* AppearanceFlags::unsafe_arena_release_default_action() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.default_action) - _impl_._has_bits_[0] &= ~0x00000400u; - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* temp = _impl_.default_action_; - _impl_.default_action_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* AppearanceFlags::_internal_mutable_default_action() { - _impl_._has_bits_[0] |= 0x00000400u; - if (_impl_.default_action_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagDefaultAction>(GetArenaForAllocation()); - _impl_.default_action_ = p; - } - return _impl_.default_action_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* AppearanceFlags::mutable_default_action() { - ::Canary::protobuf::appearances::AppearanceFlagDefaultAction* _msg = _internal_mutable_default_action(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.default_action) - return _msg; -} -inline void AppearanceFlags::set_allocated_default_action(::Canary::protobuf::appearances::AppearanceFlagDefaultAction* default_action) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.default_action_; - } - if (default_action) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(default_action); - if (message_arena != submessage_arena) { - default_action = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, default_action, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000400u; - } else { - _impl_._has_bits_[0] &= ~0x00000400u; - } - _impl_.default_action_ = default_action; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.default_action) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagMarket market = 36; -inline bool AppearanceFlags::_internal_has_market() const { - bool value = (_impl_._has_bits_[0] & 0x00000800u) != 0; - PROTOBUF_ASSUME(!value || _impl_.market_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_market() const { - return _internal_has_market(); -} -inline void AppearanceFlags::clear_market() { - if (_impl_.market_ != nullptr) _impl_.market_->Clear(); - _impl_._has_bits_[0] &= ~0x00000800u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagMarket& AppearanceFlags::_internal_market() const { - const ::Canary::protobuf::appearances::AppearanceFlagMarket* p = _impl_.market_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagMarket_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagMarket& AppearanceFlags::market() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.market) - return _internal_market(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_market( - ::Canary::protobuf::appearances::AppearanceFlagMarket* market) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.market_); - } - _impl_.market_ = market; - if (market) { - _impl_._has_bits_[0] |= 0x00000800u; - } else { - _impl_._has_bits_[0] &= ~0x00000800u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.market) -} -inline ::Canary::protobuf::appearances::AppearanceFlagMarket* AppearanceFlags::release_market() { - _impl_._has_bits_[0] &= ~0x00000800u; - ::Canary::protobuf::appearances::AppearanceFlagMarket* temp = _impl_.market_; - _impl_.market_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagMarket* AppearanceFlags::unsafe_arena_release_market() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.market) - _impl_._has_bits_[0] &= ~0x00000800u; - ::Canary::protobuf::appearances::AppearanceFlagMarket* temp = _impl_.market_; - _impl_.market_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagMarket* AppearanceFlags::_internal_mutable_market() { - _impl_._has_bits_[0] |= 0x00000800u; - if (_impl_.market_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagMarket>(GetArenaForAllocation()); - _impl_.market_ = p; - } - return _impl_.market_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagMarket* AppearanceFlags::mutable_market() { - ::Canary::protobuf::appearances::AppearanceFlagMarket* _msg = _internal_mutable_market(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.market) - return _msg; -} -inline void AppearanceFlags::set_allocated_market(::Canary::protobuf::appearances::AppearanceFlagMarket* market) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.market_; - } - if (market) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(market); - if (message_arena != submessage_arena) { - market = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, market, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00000800u; - } else { - _impl_._has_bits_[0] &= ~0x00000800u; - } - _impl_.market_ = market; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.market) -} - -// optional bool wrap = 37; -inline bool AppearanceFlags::_internal_has_wrap() const { - bool value = (_impl_._has_bits_[1] & 0x00000080u) != 0; - return value; -} -inline bool AppearanceFlags::has_wrap() const { - return _internal_has_wrap(); -} -inline void AppearanceFlags::clear_wrap() { - _impl_.wrap_ = false; - _impl_._has_bits_[1] &= ~0x00000080u; -} -inline bool AppearanceFlags::_internal_wrap() const { - return _impl_.wrap_; -} -inline bool AppearanceFlags::wrap() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.wrap) - return _internal_wrap(); -} -inline void AppearanceFlags::_internal_set_wrap(bool value) { - _impl_._has_bits_[1] |= 0x00000080u; - _impl_.wrap_ = value; -} -inline void AppearanceFlags::set_wrap(bool value) { - _internal_set_wrap(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.wrap) -} - -// optional bool unwrap = 38; -inline bool AppearanceFlags::_internal_has_unwrap() const { - bool value = (_impl_._has_bits_[1] & 0x00000100u) != 0; - return value; -} -inline bool AppearanceFlags::has_unwrap() const { - return _internal_has_unwrap(); -} -inline void AppearanceFlags::clear_unwrap() { - _impl_.unwrap_ = false; - _impl_._has_bits_[1] &= ~0x00000100u; -} -inline bool AppearanceFlags::_internal_unwrap() const { - return _impl_.unwrap_; -} -inline bool AppearanceFlags::unwrap() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.unwrap) - return _internal_unwrap(); -} -inline void AppearanceFlags::_internal_set_unwrap(bool value) { - _impl_._has_bits_[1] |= 0x00000100u; - _impl_.unwrap_ = value; -} -inline void AppearanceFlags::set_unwrap(bool value) { - _internal_set_unwrap(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.unwrap) -} - -// optional bool topeffect = 39; -inline bool AppearanceFlags::_internal_has_topeffect() const { - bool value = (_impl_._has_bits_[1] & 0x00000200u) != 0; - return value; -} -inline bool AppearanceFlags::has_topeffect() const { - return _internal_has_topeffect(); -} -inline void AppearanceFlags::clear_topeffect() { - _impl_.topeffect_ = false; - _impl_._has_bits_[1] &= ~0x00000200u; -} -inline bool AppearanceFlags::_internal_topeffect() const { - return _impl_.topeffect_; -} -inline bool AppearanceFlags::topeffect() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.topeffect) - return _internal_topeffect(); -} -inline void AppearanceFlags::_internal_set_topeffect(bool value) { - _impl_._has_bits_[1] |= 0x00000200u; - _impl_.topeffect_ = value; -} -inline void AppearanceFlags::set_topeffect(bool value) { - _internal_set_topeffect(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.topeffect) -} - -// repeated .Canary.protobuf.appearances.AppearanceFlagNPC npcsaledata = 40; -inline int AppearanceFlags::_internal_npcsaledata_size() const { - return _impl_.npcsaledata_.size(); -} -inline int AppearanceFlags::npcsaledata_size() const { - return _internal_npcsaledata_size(); -} -inline void AppearanceFlags::clear_npcsaledata() { - _impl_.npcsaledata_.Clear(); -} -inline ::Canary::protobuf::appearances::AppearanceFlagNPC* AppearanceFlags::mutable_npcsaledata(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.npcsaledata) - return _impl_.npcsaledata_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::AppearanceFlagNPC >* -AppearanceFlags::mutable_npcsaledata() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.AppearanceFlags.npcsaledata) - return &_impl_.npcsaledata_; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagNPC& AppearanceFlags::_internal_npcsaledata(int index) const { - return _impl_.npcsaledata_.Get(index); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagNPC& AppearanceFlags::npcsaledata(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.npcsaledata) - return _internal_npcsaledata(index); -} -inline ::Canary::protobuf::appearances::AppearanceFlagNPC* AppearanceFlags::_internal_add_npcsaledata() { - return _impl_.npcsaledata_.Add(); -} -inline ::Canary::protobuf::appearances::AppearanceFlagNPC* AppearanceFlags::add_npcsaledata() { - ::Canary::protobuf::appearances::AppearanceFlagNPC* _add = _internal_add_npcsaledata(); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.AppearanceFlags.npcsaledata) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::appearances::AppearanceFlagNPC >& -AppearanceFlags::npcsaledata() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.AppearanceFlags.npcsaledata) - return _impl_.npcsaledata_; -} - -// optional .Canary.protobuf.appearances.AppearanceFlagChangedToExpire changedtoexpire = 41; -inline bool AppearanceFlags::_internal_has_changedtoexpire() const { - bool value = (_impl_._has_bits_[0] & 0x00001000u) != 0; - PROTOBUF_ASSUME(!value || _impl_.changedtoexpire_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_changedtoexpire() const { - return _internal_has_changedtoexpire(); -} -inline void AppearanceFlags::clear_changedtoexpire() { - if (_impl_.changedtoexpire_ != nullptr) _impl_.changedtoexpire_->Clear(); - _impl_._has_bits_[0] &= ~0x00001000u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& AppearanceFlags::_internal_changedtoexpire() const { - const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* p = _impl_.changedtoexpire_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagChangedToExpire_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire& AppearanceFlags::changedtoexpire() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.changedtoexpire) - return _internal_changedtoexpire(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_changedtoexpire( - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* changedtoexpire) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.changedtoexpire_); - } - _impl_.changedtoexpire_ = changedtoexpire; - if (changedtoexpire) { - _impl_._has_bits_[0] |= 0x00001000u; - } else { - _impl_._has_bits_[0] &= ~0x00001000u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.changedtoexpire) -} -inline ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* AppearanceFlags::release_changedtoexpire() { - _impl_._has_bits_[0] &= ~0x00001000u; - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* temp = _impl_.changedtoexpire_; - _impl_.changedtoexpire_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* AppearanceFlags::unsafe_arena_release_changedtoexpire() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.changedtoexpire) - _impl_._has_bits_[0] &= ~0x00001000u; - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* temp = _impl_.changedtoexpire_; - _impl_.changedtoexpire_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* AppearanceFlags::_internal_mutable_changedtoexpire() { - _impl_._has_bits_[0] |= 0x00001000u; - if (_impl_.changedtoexpire_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagChangedToExpire>(GetArenaForAllocation()); - _impl_.changedtoexpire_ = p; - } - return _impl_.changedtoexpire_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* AppearanceFlags::mutable_changedtoexpire() { - ::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* _msg = _internal_mutable_changedtoexpire(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.changedtoexpire) - return _msg; -} -inline void AppearanceFlags::set_allocated_changedtoexpire(::Canary::protobuf::appearances::AppearanceFlagChangedToExpire* changedtoexpire) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.changedtoexpire_; - } - if (changedtoexpire) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(changedtoexpire); - if (message_arena != submessage_arena) { - changedtoexpire = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, changedtoexpire, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00001000u; - } else { - _impl_._has_bits_[0] &= ~0x00001000u; - } - _impl_.changedtoexpire_ = changedtoexpire; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.changedtoexpire) -} - -// optional bool corpse = 42; -inline bool AppearanceFlags::_internal_has_corpse() const { - bool value = (_impl_._has_bits_[1] & 0x00000400u) != 0; - return value; -} -inline bool AppearanceFlags::has_corpse() const { - return _internal_has_corpse(); -} -inline void AppearanceFlags::clear_corpse() { - _impl_.corpse_ = false; - _impl_._has_bits_[1] &= ~0x00000400u; -} -inline bool AppearanceFlags::_internal_corpse() const { - return _impl_.corpse_; -} -inline bool AppearanceFlags::corpse() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.corpse) - return _internal_corpse(); -} -inline void AppearanceFlags::_internal_set_corpse(bool value) { - _impl_._has_bits_[1] |= 0x00000400u; - _impl_.corpse_ = value; -} -inline void AppearanceFlags::set_corpse(bool value) { - _internal_set_corpse(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.corpse) -} - -// optional bool player_corpse = 43; -inline bool AppearanceFlags::_internal_has_player_corpse() const { - bool value = (_impl_._has_bits_[1] & 0x00000800u) != 0; - return value; -} -inline bool AppearanceFlags::has_player_corpse() const { - return _internal_has_player_corpse(); -} -inline void AppearanceFlags::clear_player_corpse() { - _impl_.player_corpse_ = false; - _impl_._has_bits_[1] &= ~0x00000800u; -} -inline bool AppearanceFlags::_internal_player_corpse() const { - return _impl_.player_corpse_; -} -inline bool AppearanceFlags::player_corpse() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.player_corpse) - return _internal_player_corpse(); -} -inline void AppearanceFlags::_internal_set_player_corpse(bool value) { - _impl_._has_bits_[1] |= 0x00000800u; - _impl_.player_corpse_ = value; -} -inline void AppearanceFlags::set_player_corpse(bool value) { - _internal_set_player_corpse(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.player_corpse) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagCyclopedia cyclopediaitem = 44; -inline bool AppearanceFlags::_internal_has_cyclopediaitem() const { - bool value = (_impl_._has_bits_[0] & 0x00002000u) != 0; - PROTOBUF_ASSUME(!value || _impl_.cyclopediaitem_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_cyclopediaitem() const { - return _internal_has_cyclopediaitem(); -} -inline void AppearanceFlags::clear_cyclopediaitem() { - if (_impl_.cyclopediaitem_ != nullptr) _impl_.cyclopediaitem_->Clear(); - _impl_._has_bits_[0] &= ~0x00002000u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& AppearanceFlags::_internal_cyclopediaitem() const { - const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* p = _impl_.cyclopediaitem_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagCyclopedia_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagCyclopedia& AppearanceFlags::cyclopediaitem() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.cyclopediaitem) - return _internal_cyclopediaitem(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_cyclopediaitem( - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* cyclopediaitem) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.cyclopediaitem_); - } - _impl_.cyclopediaitem_ = cyclopediaitem; - if (cyclopediaitem) { - _impl_._has_bits_[0] |= 0x00002000u; - } else { - _impl_._has_bits_[0] &= ~0x00002000u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.cyclopediaitem) -} -inline ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* AppearanceFlags::release_cyclopediaitem() { - _impl_._has_bits_[0] &= ~0x00002000u; - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* temp = _impl_.cyclopediaitem_; - _impl_.cyclopediaitem_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* AppearanceFlags::unsafe_arena_release_cyclopediaitem() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.cyclopediaitem) - _impl_._has_bits_[0] &= ~0x00002000u; - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* temp = _impl_.cyclopediaitem_; - _impl_.cyclopediaitem_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* AppearanceFlags::_internal_mutable_cyclopediaitem() { - _impl_._has_bits_[0] |= 0x00002000u; - if (_impl_.cyclopediaitem_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagCyclopedia>(GetArenaForAllocation()); - _impl_.cyclopediaitem_ = p; - } - return _impl_.cyclopediaitem_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* AppearanceFlags::mutable_cyclopediaitem() { - ::Canary::protobuf::appearances::AppearanceFlagCyclopedia* _msg = _internal_mutable_cyclopediaitem(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.cyclopediaitem) - return _msg; -} -inline void AppearanceFlags::set_allocated_cyclopediaitem(::Canary::protobuf::appearances::AppearanceFlagCyclopedia* cyclopediaitem) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.cyclopediaitem_; - } - if (cyclopediaitem) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(cyclopediaitem); - if (message_arena != submessage_arena) { - cyclopediaitem = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, cyclopediaitem, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00002000u; - } else { - _impl_._has_bits_[0] &= ~0x00002000u; - } - _impl_.cyclopediaitem_ = cyclopediaitem; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.cyclopediaitem) -} - -// optional bool ammo = 45; -inline bool AppearanceFlags::_internal_has_ammo() const { - bool value = (_impl_._has_bits_[1] & 0x00001000u) != 0; - return value; -} -inline bool AppearanceFlags::has_ammo() const { - return _internal_has_ammo(); -} -inline void AppearanceFlags::clear_ammo() { - _impl_.ammo_ = false; - _impl_._has_bits_[1] &= ~0x00001000u; -} -inline bool AppearanceFlags::_internal_ammo() const { - return _impl_.ammo_; -} -inline bool AppearanceFlags::ammo() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.ammo) - return _internal_ammo(); -} -inline void AppearanceFlags::_internal_set_ammo(bool value) { - _impl_._has_bits_[1] |= 0x00001000u; - _impl_.ammo_ = value; -} -inline void AppearanceFlags::set_ammo(bool value) { - _internal_set_ammo(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.ammo) -} - -// optional bool show_off_socket = 46; -inline bool AppearanceFlags::_internal_has_show_off_socket() const { - bool value = (_impl_._has_bits_[1] & 0x00002000u) != 0; - return value; -} -inline bool AppearanceFlags::has_show_off_socket() const { - return _internal_has_show_off_socket(); -} -inline void AppearanceFlags::clear_show_off_socket() { - _impl_.show_off_socket_ = false; - _impl_._has_bits_[1] &= ~0x00002000u; -} -inline bool AppearanceFlags::_internal_show_off_socket() const { - return _impl_.show_off_socket_; -} -inline bool AppearanceFlags::show_off_socket() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.show_off_socket) - return _internal_show_off_socket(); -} -inline void AppearanceFlags::_internal_set_show_off_socket(bool value) { - _impl_._has_bits_[1] |= 0x00002000u; - _impl_.show_off_socket_ = value; -} -inline void AppearanceFlags::set_show_off_socket(bool value) { - _internal_set_show_off_socket(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.show_off_socket) -} - -// optional bool reportable = 47; -inline bool AppearanceFlags::_internal_has_reportable() const { - bool value = (_impl_._has_bits_[1] & 0x00004000u) != 0; - return value; -} -inline bool AppearanceFlags::has_reportable() const { - return _internal_has_reportable(); -} -inline void AppearanceFlags::clear_reportable() { - _impl_.reportable_ = false; - _impl_._has_bits_[1] &= ~0x00004000u; -} -inline bool AppearanceFlags::_internal_reportable() const { - return _impl_.reportable_; -} -inline bool AppearanceFlags::reportable() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.reportable) - return _internal_reportable(); -} -inline void AppearanceFlags::_internal_set_reportable(bool value) { - _impl_._has_bits_[1] |= 0x00004000u; - _impl_.reportable_ = value; -} -inline void AppearanceFlags::set_reportable(bool value) { - _internal_set_reportable(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.reportable) -} - -// optional .Canary.protobuf.appearances.AppearanceFlagUpgradeClassification upgradeclassification = 48; -inline bool AppearanceFlags::_internal_has_upgradeclassification() const { - bool value = (_impl_._has_bits_[0] & 0x00004000u) != 0; - PROTOBUF_ASSUME(!value || _impl_.upgradeclassification_ != nullptr); - return value; -} -inline bool AppearanceFlags::has_upgradeclassification() const { - return _internal_has_upgradeclassification(); -} -inline void AppearanceFlags::clear_upgradeclassification() { - if (_impl_.upgradeclassification_ != nullptr) _impl_.upgradeclassification_->Clear(); - _impl_._has_bits_[0] &= ~0x00004000u; -} -inline const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& AppearanceFlags::_internal_upgradeclassification() const { - const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* p = _impl_.upgradeclassification_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::appearances::_AppearanceFlagUpgradeClassification_default_instance_); -} -inline const ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification& AppearanceFlags::upgradeclassification() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.upgradeclassification) - return _internal_upgradeclassification(); -} -inline void AppearanceFlags::unsafe_arena_set_allocated_upgradeclassification( - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* upgradeclassification) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.upgradeclassification_); - } - _impl_.upgradeclassification_ = upgradeclassification; - if (upgradeclassification) { - _impl_._has_bits_[0] |= 0x00004000u; - } else { - _impl_._has_bits_[0] &= ~0x00004000u; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.appearances.AppearanceFlags.upgradeclassification) -} -inline ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* AppearanceFlags::release_upgradeclassification() { - _impl_._has_bits_[0] &= ~0x00004000u; - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* temp = _impl_.upgradeclassification_; - _impl_.upgradeclassification_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* AppearanceFlags::unsafe_arena_release_upgradeclassification() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlags.upgradeclassification) - _impl_._has_bits_[0] &= ~0x00004000u; - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* temp = _impl_.upgradeclassification_; - _impl_.upgradeclassification_ = nullptr; - return temp; -} -inline ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* AppearanceFlags::_internal_mutable_upgradeclassification() { - _impl_._has_bits_[0] |= 0x00004000u; - if (_impl_.upgradeclassification_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification>(GetArenaForAllocation()); - _impl_.upgradeclassification_ = p; - } - return _impl_.upgradeclassification_; -} -inline ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* AppearanceFlags::mutable_upgradeclassification() { - ::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* _msg = _internal_mutable_upgradeclassification(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlags.upgradeclassification) - return _msg; -} -inline void AppearanceFlags::set_allocated_upgradeclassification(::Canary::protobuf::appearances::AppearanceFlagUpgradeClassification* upgradeclassification) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.upgradeclassification_; - } - if (upgradeclassification) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(upgradeclassification); - if (message_arena != submessage_arena) { - upgradeclassification = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, upgradeclassification, submessage_arena); - } - _impl_._has_bits_[0] |= 0x00004000u; - } else { - _impl_._has_bits_[0] &= ~0x00004000u; - } - _impl_.upgradeclassification_ = upgradeclassification; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlags.upgradeclassification) -} - -// optional bool reverse_addons_east = 49; -inline bool AppearanceFlags::_internal_has_reverse_addons_east() const { - bool value = (_impl_._has_bits_[1] & 0x00008000u) != 0; - return value; -} -inline bool AppearanceFlags::has_reverse_addons_east() const { - return _internal_has_reverse_addons_east(); -} -inline void AppearanceFlags::clear_reverse_addons_east() { - _impl_.reverse_addons_east_ = false; - _impl_._has_bits_[1] &= ~0x00008000u; -} -inline bool AppearanceFlags::_internal_reverse_addons_east() const { - return _impl_.reverse_addons_east_; -} -inline bool AppearanceFlags::reverse_addons_east() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_east) - return _internal_reverse_addons_east(); -} -inline void AppearanceFlags::_internal_set_reverse_addons_east(bool value) { - _impl_._has_bits_[1] |= 0x00008000u; - _impl_.reverse_addons_east_ = value; -} -inline void AppearanceFlags::set_reverse_addons_east(bool value) { - _internal_set_reverse_addons_east(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_east) -} - -// optional bool reverse_addons_west = 50; -inline bool AppearanceFlags::_internal_has_reverse_addons_west() const { - bool value = (_impl_._has_bits_[1] & 0x00010000u) != 0; - return value; -} -inline bool AppearanceFlags::has_reverse_addons_west() const { - return _internal_has_reverse_addons_west(); -} -inline void AppearanceFlags::clear_reverse_addons_west() { - _impl_.reverse_addons_west_ = false; - _impl_._has_bits_[1] &= ~0x00010000u; -} -inline bool AppearanceFlags::_internal_reverse_addons_west() const { - return _impl_.reverse_addons_west_; -} -inline bool AppearanceFlags::reverse_addons_west() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_west) - return _internal_reverse_addons_west(); -} -inline void AppearanceFlags::_internal_set_reverse_addons_west(bool value) { - _impl_._has_bits_[1] |= 0x00010000u; - _impl_.reverse_addons_west_ = value; -} -inline void AppearanceFlags::set_reverse_addons_west(bool value) { - _internal_set_reverse_addons_west(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_west) -} - -// optional bool reverse_addons_south = 51; -inline bool AppearanceFlags::_internal_has_reverse_addons_south() const { - bool value = (_impl_._has_bits_[1] & 0x00020000u) != 0; - return value; -} -inline bool AppearanceFlags::has_reverse_addons_south() const { - return _internal_has_reverse_addons_south(); -} -inline void AppearanceFlags::clear_reverse_addons_south() { - _impl_.reverse_addons_south_ = false; - _impl_._has_bits_[1] &= ~0x00020000u; -} -inline bool AppearanceFlags::_internal_reverse_addons_south() const { - return _impl_.reverse_addons_south_; -} -inline bool AppearanceFlags::reverse_addons_south() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_south) - return _internal_reverse_addons_south(); -} -inline void AppearanceFlags::_internal_set_reverse_addons_south(bool value) { - _impl_._has_bits_[1] |= 0x00020000u; - _impl_.reverse_addons_south_ = value; -} -inline void AppearanceFlags::set_reverse_addons_south(bool value) { - _internal_set_reverse_addons_south(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_south) -} - -// optional bool reverse_addons_north = 52; -inline bool AppearanceFlags::_internal_has_reverse_addons_north() const { - bool value = (_impl_._has_bits_[1] & 0x00040000u) != 0; - return value; -} -inline bool AppearanceFlags::has_reverse_addons_north() const { - return _internal_has_reverse_addons_north(); -} -inline void AppearanceFlags::clear_reverse_addons_north() { - _impl_.reverse_addons_north_ = false; - _impl_._has_bits_[1] &= ~0x00040000u; -} -inline bool AppearanceFlags::_internal_reverse_addons_north() const { - return _impl_.reverse_addons_north_; -} -inline bool AppearanceFlags::reverse_addons_north() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_north) - return _internal_reverse_addons_north(); -} -inline void AppearanceFlags::_internal_set_reverse_addons_north(bool value) { - _impl_._has_bits_[1] |= 0x00040000u; - _impl_.reverse_addons_north_ = value; -} -inline void AppearanceFlags::set_reverse_addons_north(bool value) { - _internal_set_reverse_addons_north(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.reverse_addons_north) -} - -// optional bool wearout = 53; -inline bool AppearanceFlags::_internal_has_wearout() const { - bool value = (_impl_._has_bits_[1] & 0x00080000u) != 0; - return value; -} -inline bool AppearanceFlags::has_wearout() const { - return _internal_has_wearout(); -} -inline void AppearanceFlags::clear_wearout() { - _impl_.wearout_ = false; - _impl_._has_bits_[1] &= ~0x00080000u; -} -inline bool AppearanceFlags::_internal_wearout() const { - return _impl_.wearout_; -} -inline bool AppearanceFlags::wearout() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.wearout) - return _internal_wearout(); -} -inline void AppearanceFlags::_internal_set_wearout(bool value) { - _impl_._has_bits_[1] |= 0x00080000u; - _impl_.wearout_ = value; -} -inline void AppearanceFlags::set_wearout(bool value) { - _internal_set_wearout(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.wearout) -} - -// optional bool clockexpire = 54; -inline bool AppearanceFlags::_internal_has_clockexpire() const { - bool value = (_impl_._has_bits_[1] & 0x00100000u) != 0; - return value; -} -inline bool AppearanceFlags::has_clockexpire() const { - return _internal_has_clockexpire(); -} -inline void AppearanceFlags::clear_clockexpire() { - _impl_.clockexpire_ = false; - _impl_._has_bits_[1] &= ~0x00100000u; -} -inline bool AppearanceFlags::_internal_clockexpire() const { - return _impl_.clockexpire_; -} -inline bool AppearanceFlags::clockexpire() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.clockexpire) - return _internal_clockexpire(); -} -inline void AppearanceFlags::_internal_set_clockexpire(bool value) { - _impl_._has_bits_[1] |= 0x00100000u; - _impl_.clockexpire_ = value; -} -inline void AppearanceFlags::set_clockexpire(bool value) { - _internal_set_clockexpire(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.clockexpire) -} - -// optional bool expire = 55; -inline bool AppearanceFlags::_internal_has_expire() const { - bool value = (_impl_._has_bits_[1] & 0x00200000u) != 0; - return value; -} -inline bool AppearanceFlags::has_expire() const { - return _internal_has_expire(); -} -inline void AppearanceFlags::clear_expire() { - _impl_.expire_ = false; - _impl_._has_bits_[1] &= ~0x00200000u; -} -inline bool AppearanceFlags::_internal_expire() const { - return _impl_.expire_; -} -inline bool AppearanceFlags::expire() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.expire) - return _internal_expire(); -} -inline void AppearanceFlags::_internal_set_expire(bool value) { - _impl_._has_bits_[1] |= 0x00200000u; - _impl_.expire_ = value; -} -inline void AppearanceFlags::set_expire(bool value) { - _internal_set_expire(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.expire) -} - -// optional bool expirestop = 56; -inline bool AppearanceFlags::_internal_has_expirestop() const { - bool value = (_impl_._has_bits_[1] & 0x00400000u) != 0; - return value; -} -inline bool AppearanceFlags::has_expirestop() const { - return _internal_has_expirestop(); -} -inline void AppearanceFlags::clear_expirestop() { - _impl_.expirestop_ = false; - _impl_._has_bits_[1] &= ~0x00400000u; -} -inline bool AppearanceFlags::_internal_expirestop() const { - return _impl_.expirestop_; -} -inline bool AppearanceFlags::expirestop() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.expirestop) - return _internal_expirestop(); -} -inline void AppearanceFlags::_internal_set_expirestop(bool value) { - _impl_._has_bits_[1] |= 0x00400000u; - _impl_.expirestop_ = value; -} -inline void AppearanceFlags::set_expirestop(bool value) { - _internal_set_expirestop(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.expirestop) -} - -// optional bool wrapkit = 57; -inline bool AppearanceFlags::_internal_has_wrapkit() const { - bool value = (_impl_._has_bits_[1] & 0x00800000u) != 0; - return value; -} -inline bool AppearanceFlags::has_wrapkit() const { - return _internal_has_wrapkit(); -} -inline void AppearanceFlags::clear_wrapkit() { - _impl_.wrapkit_ = false; - _impl_._has_bits_[1] &= ~0x00800000u; -} -inline bool AppearanceFlags::_internal_wrapkit() const { - return _impl_.wrapkit_; -} -inline bool AppearanceFlags::wrapkit() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlags.wrapkit) - return _internal_wrapkit(); -} -inline void AppearanceFlags::_internal_set_wrapkit(bool value) { - _impl_._has_bits_[1] |= 0x00800000u; - _impl_.wrapkit_ = value; -} -inline void AppearanceFlags::set_wrapkit(bool value) { - _internal_set_wrapkit(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlags.wrapkit) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagUpgradeClassification - -// optional uint32 upgrade_classification = 1; -inline bool AppearanceFlagUpgradeClassification::_internal_has_upgrade_classification() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagUpgradeClassification::has_upgrade_classification() const { - return _internal_has_upgrade_classification(); -} -inline void AppearanceFlagUpgradeClassification::clear_upgrade_classification() { - _impl_.upgrade_classification_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagUpgradeClassification::_internal_upgrade_classification() const { - return _impl_.upgrade_classification_; -} -inline uint32_t AppearanceFlagUpgradeClassification::upgrade_classification() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification.upgrade_classification) - return _internal_upgrade_classification(); -} -inline void AppearanceFlagUpgradeClassification::_internal_set_upgrade_classification(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.upgrade_classification_ = value; -} -inline void AppearanceFlagUpgradeClassification::set_upgrade_classification(uint32_t value) { - _internal_set_upgrade_classification(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagUpgradeClassification.upgrade_classification) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagBank - -// optional uint32 waypoints = 1; -inline bool AppearanceFlagBank::_internal_has_waypoints() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagBank::has_waypoints() const { - return _internal_has_waypoints(); -} -inline void AppearanceFlagBank::clear_waypoints() { - _impl_.waypoints_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagBank::_internal_waypoints() const { - return _impl_.waypoints_; -} -inline uint32_t AppearanceFlagBank::waypoints() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagBank.waypoints) - return _internal_waypoints(); -} -inline void AppearanceFlagBank::_internal_set_waypoints(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.waypoints_ = value; -} -inline void AppearanceFlagBank::set_waypoints(uint32_t value) { - _internal_set_waypoints(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagBank.waypoints) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagWrite - -// optional uint32 max_text_length = 1; -inline bool AppearanceFlagWrite::_internal_has_max_text_length() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagWrite::has_max_text_length() const { - return _internal_has_max_text_length(); -} -inline void AppearanceFlagWrite::clear_max_text_length() { - _impl_.max_text_length_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagWrite::_internal_max_text_length() const { - return _impl_.max_text_length_; -} -inline uint32_t AppearanceFlagWrite::max_text_length() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagWrite.max_text_length) - return _internal_max_text_length(); -} -inline void AppearanceFlagWrite::_internal_set_max_text_length(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.max_text_length_ = value; -} -inline void AppearanceFlagWrite::set_max_text_length(uint32_t value) { - _internal_set_max_text_length(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagWrite.max_text_length) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagWriteOnce - -// optional uint32 max_text_length_once = 1; -inline bool AppearanceFlagWriteOnce::_internal_has_max_text_length_once() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagWriteOnce::has_max_text_length_once() const { - return _internal_has_max_text_length_once(); -} -inline void AppearanceFlagWriteOnce::clear_max_text_length_once() { - _impl_.max_text_length_once_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagWriteOnce::_internal_max_text_length_once() const { - return _impl_.max_text_length_once_; -} -inline uint32_t AppearanceFlagWriteOnce::max_text_length_once() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagWriteOnce.max_text_length_once) - return _internal_max_text_length_once(); -} -inline void AppearanceFlagWriteOnce::_internal_set_max_text_length_once(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.max_text_length_once_ = value; -} -inline void AppearanceFlagWriteOnce::set_max_text_length_once(uint32_t value) { - _internal_set_max_text_length_once(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagWriteOnce.max_text_length_once) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagLight - -// optional uint32 brightness = 1; -inline bool AppearanceFlagLight::_internal_has_brightness() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagLight::has_brightness() const { - return _internal_has_brightness(); -} -inline void AppearanceFlagLight::clear_brightness() { - _impl_.brightness_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagLight::_internal_brightness() const { - return _impl_.brightness_; -} -inline uint32_t AppearanceFlagLight::brightness() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagLight.brightness) - return _internal_brightness(); -} -inline void AppearanceFlagLight::_internal_set_brightness(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.brightness_ = value; -} -inline void AppearanceFlagLight::set_brightness(uint32_t value) { - _internal_set_brightness(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagLight.brightness) -} - -// optional uint32 color = 2; -inline bool AppearanceFlagLight::_internal_has_color() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool AppearanceFlagLight::has_color() const { - return _internal_has_color(); -} -inline void AppearanceFlagLight::clear_color() { - _impl_.color_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t AppearanceFlagLight::_internal_color() const { - return _impl_.color_; -} -inline uint32_t AppearanceFlagLight::color() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagLight.color) - return _internal_color(); -} -inline void AppearanceFlagLight::_internal_set_color(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.color_ = value; -} -inline void AppearanceFlagLight::set_color(uint32_t value) { - _internal_set_color(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagLight.color) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagHeight - -// optional uint32 elevation = 1; -inline bool AppearanceFlagHeight::_internal_has_elevation() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagHeight::has_elevation() const { - return _internal_has_elevation(); -} -inline void AppearanceFlagHeight::clear_elevation() { - _impl_.elevation_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagHeight::_internal_elevation() const { - return _impl_.elevation_; -} -inline uint32_t AppearanceFlagHeight::elevation() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagHeight.elevation) - return _internal_elevation(); -} -inline void AppearanceFlagHeight::_internal_set_elevation(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.elevation_ = value; -} -inline void AppearanceFlagHeight::set_elevation(uint32_t value) { - _internal_set_elevation(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagHeight.elevation) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagShift - -// optional uint32 x = 1; -inline bool AppearanceFlagShift::_internal_has_x() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagShift::has_x() const { - return _internal_has_x(); -} -inline void AppearanceFlagShift::clear_x() { - _impl_.x_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagShift::_internal_x() const { - return _impl_.x_; -} -inline uint32_t AppearanceFlagShift::x() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagShift.x) - return _internal_x(); -} -inline void AppearanceFlagShift::_internal_set_x(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.x_ = value; -} -inline void AppearanceFlagShift::set_x(uint32_t value) { - _internal_set_x(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagShift.x) -} - -// optional uint32 y = 2; -inline bool AppearanceFlagShift::_internal_has_y() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool AppearanceFlagShift::has_y() const { - return _internal_has_y(); -} -inline void AppearanceFlagShift::clear_y() { - _impl_.y_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t AppearanceFlagShift::_internal_y() const { - return _impl_.y_; -} -inline uint32_t AppearanceFlagShift::y() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagShift.y) - return _internal_y(); -} -inline void AppearanceFlagShift::_internal_set_y(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.y_ = value; -} -inline void AppearanceFlagShift::set_y(uint32_t value) { - _internal_set_y(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagShift.y) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagClothes - -// optional uint32 slot = 1; -inline bool AppearanceFlagClothes::_internal_has_slot() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagClothes::has_slot() const { - return _internal_has_slot(); -} -inline void AppearanceFlagClothes::clear_slot() { - _impl_.slot_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagClothes::_internal_slot() const { - return _impl_.slot_; -} -inline uint32_t AppearanceFlagClothes::slot() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagClothes.slot) - return _internal_slot(); -} -inline void AppearanceFlagClothes::_internal_set_slot(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.slot_ = value; -} -inline void AppearanceFlagClothes::set_slot(uint32_t value) { - _internal_set_slot(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagClothes.slot) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagDefaultAction - -// optional .Canary.protobuf.appearances.PLAYER_ACTION action = 1; -inline bool AppearanceFlagDefaultAction::_internal_has_action() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagDefaultAction::has_action() const { - return _internal_has_action(); -} -inline void AppearanceFlagDefaultAction::clear_action() { - _impl_.action_ = 0; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline ::Canary::protobuf::appearances::PLAYER_ACTION AppearanceFlagDefaultAction::_internal_action() const { - return static_cast< ::Canary::protobuf::appearances::PLAYER_ACTION >(_impl_.action_); -} -inline ::Canary::protobuf::appearances::PLAYER_ACTION AppearanceFlagDefaultAction::action() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagDefaultAction.action) - return _internal_action(); -} -inline void AppearanceFlagDefaultAction::_internal_set_action(::Canary::protobuf::appearances::PLAYER_ACTION value) { - assert(::Canary::protobuf::appearances::PLAYER_ACTION_IsValid(value)); - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.action_ = value; -} -inline void AppearanceFlagDefaultAction::set_action(::Canary::protobuf::appearances::PLAYER_ACTION value) { - _internal_set_action(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagDefaultAction.action) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagMarket - -// optional .Canary.protobuf.appearances.ITEM_CATEGORY category = 1; -inline bool AppearanceFlagMarket::_internal_has_category() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool AppearanceFlagMarket::has_category() const { - return _internal_has_category(); -} -inline void AppearanceFlagMarket::clear_category() { - _impl_.category_ = 1; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline ::Canary::protobuf::appearances::ITEM_CATEGORY AppearanceFlagMarket::_internal_category() const { - return static_cast< ::Canary::protobuf::appearances::ITEM_CATEGORY >(_impl_.category_); -} -inline ::Canary::protobuf::appearances::ITEM_CATEGORY AppearanceFlagMarket::category() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagMarket.category) - return _internal_category(); -} -inline void AppearanceFlagMarket::_internal_set_category(::Canary::protobuf::appearances::ITEM_CATEGORY value) { - assert(::Canary::protobuf::appearances::ITEM_CATEGORY_IsValid(value)); - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.category_ = value; -} -inline void AppearanceFlagMarket::set_category(::Canary::protobuf::appearances::ITEM_CATEGORY value) { - _internal_set_category(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagMarket.category) -} - -// optional uint32 trade_as_object_id = 2; -inline bool AppearanceFlagMarket::_internal_has_trade_as_object_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagMarket::has_trade_as_object_id() const { - return _internal_has_trade_as_object_id(); -} -inline void AppearanceFlagMarket::clear_trade_as_object_id() { - _impl_.trade_as_object_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagMarket::_internal_trade_as_object_id() const { - return _impl_.trade_as_object_id_; -} -inline uint32_t AppearanceFlagMarket::trade_as_object_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagMarket.trade_as_object_id) - return _internal_trade_as_object_id(); -} -inline void AppearanceFlagMarket::_internal_set_trade_as_object_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.trade_as_object_id_ = value; -} -inline void AppearanceFlagMarket::set_trade_as_object_id(uint32_t value) { - _internal_set_trade_as_object_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagMarket.trade_as_object_id) -} - -// optional uint32 show_as_object_id = 3; -inline bool AppearanceFlagMarket::_internal_has_show_as_object_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool AppearanceFlagMarket::has_show_as_object_id() const { - return _internal_has_show_as_object_id(); -} -inline void AppearanceFlagMarket::clear_show_as_object_id() { - _impl_.show_as_object_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t AppearanceFlagMarket::_internal_show_as_object_id() const { - return _impl_.show_as_object_id_; -} -inline uint32_t AppearanceFlagMarket::show_as_object_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagMarket.show_as_object_id) - return _internal_show_as_object_id(); -} -inline void AppearanceFlagMarket::_internal_set_show_as_object_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.show_as_object_id_ = value; -} -inline void AppearanceFlagMarket::set_show_as_object_id(uint32_t value) { - _internal_set_show_as_object_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagMarket.show_as_object_id) -} - -// repeated .Canary.protobuf.appearances.PLAYER_PROFESSION restrict_to_profession = 5; -inline int AppearanceFlagMarket::_internal_restrict_to_profession_size() const { - return _impl_.restrict_to_profession_.size(); -} -inline int AppearanceFlagMarket::restrict_to_profession_size() const { - return _internal_restrict_to_profession_size(); -} -inline void AppearanceFlagMarket::clear_restrict_to_profession() { - _impl_.restrict_to_profession_.Clear(); -} -inline ::Canary::protobuf::appearances::PLAYER_PROFESSION AppearanceFlagMarket::_internal_restrict_to_profession(int index) const { - return static_cast< ::Canary::protobuf::appearances::PLAYER_PROFESSION >(_impl_.restrict_to_profession_.Get(index)); -} -inline ::Canary::protobuf::appearances::PLAYER_PROFESSION AppearanceFlagMarket::restrict_to_profession(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagMarket.restrict_to_profession) - return _internal_restrict_to_profession(index); -} -inline void AppearanceFlagMarket::set_restrict_to_profession(int index, ::Canary::protobuf::appearances::PLAYER_PROFESSION value) { - assert(::Canary::protobuf::appearances::PLAYER_PROFESSION_IsValid(value)); - _impl_.restrict_to_profession_.Set(index, value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagMarket.restrict_to_profession) -} -inline void AppearanceFlagMarket::_internal_add_restrict_to_profession(::Canary::protobuf::appearances::PLAYER_PROFESSION value) { - assert(::Canary::protobuf::appearances::PLAYER_PROFESSION_IsValid(value)); - _impl_.restrict_to_profession_.Add(value); -} -inline void AppearanceFlagMarket::add_restrict_to_profession(::Canary::protobuf::appearances::PLAYER_PROFESSION value) { - _internal_add_restrict_to_profession(value); - // @@protoc_insertion_point(field_add:Canary.protobuf.appearances.AppearanceFlagMarket.restrict_to_profession) -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField& -AppearanceFlagMarket::restrict_to_profession() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.appearances.AppearanceFlagMarket.restrict_to_profession) - return _impl_.restrict_to_profession_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField* -AppearanceFlagMarket::_internal_mutable_restrict_to_profession() { - return &_impl_.restrict_to_profession_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField* -AppearanceFlagMarket::mutable_restrict_to_profession() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.appearances.AppearanceFlagMarket.restrict_to_profession) - return _internal_mutable_restrict_to_profession(); -} - -// optional uint32 minimum_level = 6; -inline bool AppearanceFlagMarket::_internal_has_minimum_level() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool AppearanceFlagMarket::has_minimum_level() const { - return _internal_has_minimum_level(); -} -inline void AppearanceFlagMarket::clear_minimum_level() { - _impl_.minimum_level_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t AppearanceFlagMarket::_internal_minimum_level() const { - return _impl_.minimum_level_; -} -inline uint32_t AppearanceFlagMarket::minimum_level() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagMarket.minimum_level) - return _internal_minimum_level(); -} -inline void AppearanceFlagMarket::_internal_set_minimum_level(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.minimum_level_ = value; -} -inline void AppearanceFlagMarket::set_minimum_level(uint32_t value) { - _internal_set_minimum_level(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagMarket.minimum_level) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagNPC - -// optional bytes name = 1; -inline bool AppearanceFlagNPC::_internal_has_name() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_name() const { - return _internal_has_name(); -} -inline void AppearanceFlagNPC::clear_name() { - _impl_.name_.ClearToEmpty(); - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline const std::string& AppearanceFlagNPC::name() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.name) - return _internal_name(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void AppearanceFlagNPC::set_name(ArgT0&& arg0, ArgT... args) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.name_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.name) -} -inline std::string* AppearanceFlagNPC::mutable_name() { - std::string* _s = _internal_mutable_name(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlagNPC.name) - return _s; -} -inline const std::string& AppearanceFlagNPC::_internal_name() const { - return _impl_.name_.Get(); -} -inline void AppearanceFlagNPC::_internal_set_name(const std::string& value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.name_.Set(value, GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::_internal_mutable_name() { - _impl_._has_bits_[0] |= 0x00000001u; - return _impl_.name_.Mutable(GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::release_name() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlagNPC.name) - if (!_internal_has_name()) { - return nullptr; - } - _impl_._has_bits_[0] &= ~0x00000001u; - auto* p = _impl_.name_.Release(); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.name_.IsDefault()) { - _impl_.name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - return p; -} -inline void AppearanceFlagNPC::set_allocated_name(std::string* name) { - if (name != nullptr) { - _impl_._has_bits_[0] |= 0x00000001u; - } else { - _impl_._has_bits_[0] &= ~0x00000001u; - } - _impl_.name_.SetAllocated(name, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.name_.IsDefault()) { - _impl_.name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlagNPC.name) -} - -// optional bytes location = 2; -inline bool AppearanceFlagNPC::_internal_has_location() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_location() const { - return _internal_has_location(); -} -inline void AppearanceFlagNPC::clear_location() { - _impl_.location_.ClearToEmpty(); - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline const std::string& AppearanceFlagNPC::location() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.location) - return _internal_location(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void AppearanceFlagNPC::set_location(ArgT0&& arg0, ArgT... args) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.location_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.location) -} -inline std::string* AppearanceFlagNPC::mutable_location() { - std::string* _s = _internal_mutable_location(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlagNPC.location) - return _s; -} -inline const std::string& AppearanceFlagNPC::_internal_location() const { - return _impl_.location_.Get(); -} -inline void AppearanceFlagNPC::_internal_set_location(const std::string& value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.location_.Set(value, GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::_internal_mutable_location() { - _impl_._has_bits_[0] |= 0x00000002u; - return _impl_.location_.Mutable(GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::release_location() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlagNPC.location) - if (!_internal_has_location()) { - return nullptr; - } - _impl_._has_bits_[0] &= ~0x00000002u; - auto* p = _impl_.location_.Release(); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.location_.IsDefault()) { - _impl_.location_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - return p; -} -inline void AppearanceFlagNPC::set_allocated_location(std::string* location) { - if (location != nullptr) { - _impl_._has_bits_[0] |= 0x00000002u; - } else { - _impl_._has_bits_[0] &= ~0x00000002u; - } - _impl_.location_.SetAllocated(location, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.location_.IsDefault()) { - _impl_.location_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlagNPC.location) -} - -// optional uint32 sale_price = 3; -inline bool AppearanceFlagNPC::_internal_has_sale_price() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_sale_price() const { - return _internal_has_sale_price(); -} -inline void AppearanceFlagNPC::clear_sale_price() { - _impl_.sale_price_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t AppearanceFlagNPC::_internal_sale_price() const { - return _impl_.sale_price_; -} -inline uint32_t AppearanceFlagNPC::sale_price() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.sale_price) - return _internal_sale_price(); -} -inline void AppearanceFlagNPC::_internal_set_sale_price(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.sale_price_ = value; -} -inline void AppearanceFlagNPC::set_sale_price(uint32_t value) { - _internal_set_sale_price(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.sale_price) -} - -// optional uint32 buy_price = 4; -inline bool AppearanceFlagNPC::_internal_has_buy_price() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_buy_price() const { - return _internal_has_buy_price(); -} -inline void AppearanceFlagNPC::clear_buy_price() { - _impl_.buy_price_ = 0u; - _impl_._has_bits_[0] &= ~0x00000010u; -} -inline uint32_t AppearanceFlagNPC::_internal_buy_price() const { - return _impl_.buy_price_; -} -inline uint32_t AppearanceFlagNPC::buy_price() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.buy_price) - return _internal_buy_price(); -} -inline void AppearanceFlagNPC::_internal_set_buy_price(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000010u; - _impl_.buy_price_ = value; -} -inline void AppearanceFlagNPC::set_buy_price(uint32_t value) { - _internal_set_buy_price(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.buy_price) -} - -// optional uint32 currency_object_type_id = 5; -inline bool AppearanceFlagNPC::_internal_has_currency_object_type_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_currency_object_type_id() const { - return _internal_has_currency_object_type_id(); -} -inline void AppearanceFlagNPC::clear_currency_object_type_id() { - _impl_.currency_object_type_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000020u; -} -inline uint32_t AppearanceFlagNPC::_internal_currency_object_type_id() const { - return _impl_.currency_object_type_id_; -} -inline uint32_t AppearanceFlagNPC::currency_object_type_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.currency_object_type_id) - return _internal_currency_object_type_id(); -} -inline void AppearanceFlagNPC::_internal_set_currency_object_type_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000020u; - _impl_.currency_object_type_id_ = value; -} -inline void AppearanceFlagNPC::set_currency_object_type_id(uint32_t value) { - _internal_set_currency_object_type_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.currency_object_type_id) -} - -// optional bytes currency_quest_flag_display_name = 6; -inline bool AppearanceFlagNPC::_internal_has_currency_quest_flag_display_name() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool AppearanceFlagNPC::has_currency_quest_flag_display_name() const { - return _internal_has_currency_quest_flag_display_name(); -} -inline void AppearanceFlagNPC::clear_currency_quest_flag_display_name() { - _impl_.currency_quest_flag_display_name_.ClearToEmpty(); - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline const std::string& AppearanceFlagNPC::currency_quest_flag_display_name() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagNPC.currency_quest_flag_display_name) - return _internal_currency_quest_flag_display_name(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void AppearanceFlagNPC::set_currency_quest_flag_display_name(ArgT0&& arg0, ArgT... args) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.currency_quest_flag_display_name_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagNPC.currency_quest_flag_display_name) -} -inline std::string* AppearanceFlagNPC::mutable_currency_quest_flag_display_name() { - std::string* _s = _internal_mutable_currency_quest_flag_display_name(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.appearances.AppearanceFlagNPC.currency_quest_flag_display_name) - return _s; -} -inline const std::string& AppearanceFlagNPC::_internal_currency_quest_flag_display_name() const { - return _impl_.currency_quest_flag_display_name_.Get(); -} -inline void AppearanceFlagNPC::_internal_set_currency_quest_flag_display_name(const std::string& value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.currency_quest_flag_display_name_.Set(value, GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::_internal_mutable_currency_quest_flag_display_name() { - _impl_._has_bits_[0] |= 0x00000004u; - return _impl_.currency_quest_flag_display_name_.Mutable(GetArenaForAllocation()); -} -inline std::string* AppearanceFlagNPC::release_currency_quest_flag_display_name() { - // @@protoc_insertion_point(field_release:Canary.protobuf.appearances.AppearanceFlagNPC.currency_quest_flag_display_name) - if (!_internal_has_currency_quest_flag_display_name()) { - return nullptr; - } - _impl_._has_bits_[0] &= ~0x00000004u; - auto* p = _impl_.currency_quest_flag_display_name_.Release(); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.currency_quest_flag_display_name_.IsDefault()) { - _impl_.currency_quest_flag_display_name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - return p; -} -inline void AppearanceFlagNPC::set_allocated_currency_quest_flag_display_name(std::string* currency_quest_flag_display_name) { - if (currency_quest_flag_display_name != nullptr) { - _impl_._has_bits_[0] |= 0x00000004u; - } else { - _impl_._has_bits_[0] &= ~0x00000004u; - } - _impl_.currency_quest_flag_display_name_.SetAllocated(currency_quest_flag_display_name, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.currency_quest_flag_display_name_.IsDefault()) { - _impl_.currency_quest_flag_display_name_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.appearances.AppearanceFlagNPC.currency_quest_flag_display_name) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagAutomap - -// optional uint32 color = 1; -inline bool AppearanceFlagAutomap::_internal_has_color() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagAutomap::has_color() const { - return _internal_has_color(); -} -inline void AppearanceFlagAutomap::clear_color() { - _impl_.color_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagAutomap::_internal_color() const { - return _impl_.color_; -} -inline uint32_t AppearanceFlagAutomap::color() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagAutomap.color) - return _internal_color(); -} -inline void AppearanceFlagAutomap::_internal_set_color(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.color_ = value; -} -inline void AppearanceFlagAutomap::set_color(uint32_t value) { - _internal_set_color(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagAutomap.color) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagHook - -// optional .Canary.protobuf.appearances.HOOK_TYPE direction = 1; -inline bool AppearanceFlagHook::_internal_has_direction() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagHook::has_direction() const { - return _internal_has_direction(); -} -inline void AppearanceFlagHook::clear_direction() { - _impl_.direction_ = 1; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline ::Canary::protobuf::appearances::HOOK_TYPE AppearanceFlagHook::_internal_direction() const { - return static_cast< ::Canary::protobuf::appearances::HOOK_TYPE >(_impl_.direction_); -} -inline ::Canary::protobuf::appearances::HOOK_TYPE AppearanceFlagHook::direction() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagHook.direction) - return _internal_direction(); -} -inline void AppearanceFlagHook::_internal_set_direction(::Canary::protobuf::appearances::HOOK_TYPE value) { - assert(::Canary::protobuf::appearances::HOOK_TYPE_IsValid(value)); - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.direction_ = value; -} -inline void AppearanceFlagHook::set_direction(::Canary::protobuf::appearances::HOOK_TYPE value) { - _internal_set_direction(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagHook.direction) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagLenshelp - -// optional uint32 id = 1; -inline bool AppearanceFlagLenshelp::_internal_has_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagLenshelp::has_id() const { - return _internal_has_id(); -} -inline void AppearanceFlagLenshelp::clear_id() { - _impl_.id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagLenshelp::_internal_id() const { - return _impl_.id_; -} -inline uint32_t AppearanceFlagLenshelp::id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagLenshelp.id) - return _internal_id(); -} -inline void AppearanceFlagLenshelp::_internal_set_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.id_ = value; -} -inline void AppearanceFlagLenshelp::set_id(uint32_t value) { - _internal_set_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagLenshelp.id) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagChangedToExpire - -// optional uint32 former_object_typeid = 1; -inline bool AppearanceFlagChangedToExpire::_internal_has_former_object_typeid() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagChangedToExpire::has_former_object_typeid() const { - return _internal_has_former_object_typeid(); -} -inline void AppearanceFlagChangedToExpire::clear_former_object_typeid() { - _impl_.former_object_typeid_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagChangedToExpire::_internal_former_object_typeid() const { - return _impl_.former_object_typeid_; -} -inline uint32_t AppearanceFlagChangedToExpire::former_object_typeid() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagChangedToExpire.former_object_typeid) - return _internal_former_object_typeid(); -} -inline void AppearanceFlagChangedToExpire::_internal_set_former_object_typeid(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.former_object_typeid_ = value; -} -inline void AppearanceFlagChangedToExpire::set_former_object_typeid(uint32_t value) { - _internal_set_former_object_typeid(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagChangedToExpire.former_object_typeid) -} - -// ------------------------------------------------------------------- - -// AppearanceFlagCyclopedia - -// optional uint32 cyclopedia_type = 1; -inline bool AppearanceFlagCyclopedia::_internal_has_cyclopedia_type() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool AppearanceFlagCyclopedia::has_cyclopedia_type() const { - return _internal_has_cyclopedia_type(); -} -inline void AppearanceFlagCyclopedia::clear_cyclopedia_type() { - _impl_.cyclopedia_type_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t AppearanceFlagCyclopedia::_internal_cyclopedia_type() const { - return _impl_.cyclopedia_type_; -} -inline uint32_t AppearanceFlagCyclopedia::cyclopedia_type() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.AppearanceFlagCyclopedia.cyclopedia_type) - return _internal_cyclopedia_type(); -} -inline void AppearanceFlagCyclopedia::_internal_set_cyclopedia_type(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.cyclopedia_type_ = value; -} -inline void AppearanceFlagCyclopedia::set_cyclopedia_type(uint32_t value) { - _internal_set_cyclopedia_type(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.AppearanceFlagCyclopedia.cyclopedia_type) -} - -// ------------------------------------------------------------------- - -// SpecialMeaningAppearanceIds - -// optional uint32 gold_coin_id = 1; -inline bool SpecialMeaningAppearanceIds::_internal_has_gold_coin_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_gold_coin_id() const { - return _internal_has_gold_coin_id(); -} -inline void SpecialMeaningAppearanceIds::clear_gold_coin_id() { - _impl_.gold_coin_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_gold_coin_id() const { - return _impl_.gold_coin_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::gold_coin_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.gold_coin_id) - return _internal_gold_coin_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_gold_coin_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.gold_coin_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_gold_coin_id(uint32_t value) { - _internal_set_gold_coin_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.gold_coin_id) -} - -// optional uint32 platinum_coin_id = 2; -inline bool SpecialMeaningAppearanceIds::_internal_has_platinum_coin_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_platinum_coin_id() const { - return _internal_has_platinum_coin_id(); -} -inline void SpecialMeaningAppearanceIds::clear_platinum_coin_id() { - _impl_.platinum_coin_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_platinum_coin_id() const { - return _impl_.platinum_coin_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::platinum_coin_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.platinum_coin_id) - return _internal_platinum_coin_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_platinum_coin_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.platinum_coin_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_platinum_coin_id(uint32_t value) { - _internal_set_platinum_coin_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.platinum_coin_id) -} - -// optional uint32 crystal_coin_id = 3; -inline bool SpecialMeaningAppearanceIds::_internal_has_crystal_coin_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_crystal_coin_id() const { - return _internal_has_crystal_coin_id(); -} -inline void SpecialMeaningAppearanceIds::clear_crystal_coin_id() { - _impl_.crystal_coin_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000004u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_crystal_coin_id() const { - return _impl_.crystal_coin_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::crystal_coin_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.crystal_coin_id) - return _internal_crystal_coin_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_crystal_coin_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000004u; - _impl_.crystal_coin_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_crystal_coin_id(uint32_t value) { - _internal_set_crystal_coin_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.crystal_coin_id) -} - -// optional uint32 tibia_coin_id = 4; -inline bool SpecialMeaningAppearanceIds::_internal_has_tibia_coin_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_tibia_coin_id() const { - return _internal_has_tibia_coin_id(); -} -inline void SpecialMeaningAppearanceIds::clear_tibia_coin_id() { - _impl_.tibia_coin_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000008u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_tibia_coin_id() const { - return _impl_.tibia_coin_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::tibia_coin_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.tibia_coin_id) - return _internal_tibia_coin_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_tibia_coin_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000008u; - _impl_.tibia_coin_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_tibia_coin_id(uint32_t value) { - _internal_set_tibia_coin_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.tibia_coin_id) -} - -// optional uint32 stamped_letter_id = 5; -inline bool SpecialMeaningAppearanceIds::_internal_has_stamped_letter_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_stamped_letter_id() const { - return _internal_has_stamped_letter_id(); -} -inline void SpecialMeaningAppearanceIds::clear_stamped_letter_id() { - _impl_.stamped_letter_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000010u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_stamped_letter_id() const { - return _impl_.stamped_letter_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::stamped_letter_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.stamped_letter_id) - return _internal_stamped_letter_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_stamped_letter_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000010u; - _impl_.stamped_letter_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_stamped_letter_id(uint32_t value) { - _internal_set_stamped_letter_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.stamped_letter_id) -} - -// optional uint32 supply_stash_id = 6; -inline bool SpecialMeaningAppearanceIds::_internal_has_supply_stash_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_supply_stash_id() const { - return _internal_has_supply_stash_id(); -} -inline void SpecialMeaningAppearanceIds::clear_supply_stash_id() { - _impl_.supply_stash_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000020u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_supply_stash_id() const { - return _impl_.supply_stash_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::supply_stash_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.supply_stash_id) - return _internal_supply_stash_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_supply_stash_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000020u; - _impl_.supply_stash_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_supply_stash_id(uint32_t value) { - _internal_set_supply_stash_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.supply_stash_id) -} - -// optional uint32 reward_chest_id = 7; -inline bool SpecialMeaningAppearanceIds::_internal_has_reward_chest_id() const { - bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; - return value; -} -inline bool SpecialMeaningAppearanceIds::has_reward_chest_id() const { - return _internal_has_reward_chest_id(); -} -inline void SpecialMeaningAppearanceIds::clear_reward_chest_id() { - _impl_.reward_chest_id_ = 0u; - _impl_._has_bits_[0] &= ~0x00000040u; -} -inline uint32_t SpecialMeaningAppearanceIds::_internal_reward_chest_id() const { - return _impl_.reward_chest_id_; -} -inline uint32_t SpecialMeaningAppearanceIds::reward_chest_id() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.reward_chest_id) - return _internal_reward_chest_id(); -} -inline void SpecialMeaningAppearanceIds::_internal_set_reward_chest_id(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000040u; - _impl_.reward_chest_id_ = value; -} -inline void SpecialMeaningAppearanceIds::set_reward_chest_id(uint32_t value) { - _internal_set_reward_chest_id(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.appearances.SpecialMeaningAppearanceIds.reward_chest_id) -} - -#ifdef __GNUC__ - #pragma GCC diagnostic pop -#endif // __GNUC__ -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - - -// @@protoc_insertion_point(namespace_scope) - -} // namespace appearances -} // namespace protobuf -} // namespace Canary - -PROTOBUF_NAMESPACE_OPEN - -template <> struct is_proto_enum< ::Canary::protobuf::appearances::PLAYER_ACTION> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::PLAYER_ACTION>() { - return ::Canary::protobuf::appearances::PLAYER_ACTION_descriptor(); -} -template <> struct is_proto_enum< ::Canary::protobuf::appearances::ITEM_CATEGORY> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::ITEM_CATEGORY>() { - return ::Canary::protobuf::appearances::ITEM_CATEGORY_descriptor(); -} -template <> struct is_proto_enum< ::Canary::protobuf::appearances::PLAYER_PROFESSION> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::PLAYER_PROFESSION>() { - return ::Canary::protobuf::appearances::PLAYER_PROFESSION_descriptor(); -} -template <> struct is_proto_enum< ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE>() { - return ::Canary::protobuf::appearances::ANIMATION_LOOP_TYPE_descriptor(); -} -template <> struct is_proto_enum< ::Canary::protobuf::appearances::HOOK_TYPE> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::HOOK_TYPE>() { - return ::Canary::protobuf::appearances::HOOK_TYPE_descriptor(); -} -template <> struct is_proto_enum< ::Canary::protobuf::appearances::FIXED_FRAME_GROUP> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Canary::protobuf::appearances::FIXED_FRAME_GROUP>() { - return ::Canary::protobuf::appearances::FIXED_FRAME_GROUP_descriptor(); -} - -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) - -#include -#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_appearances_2eproto diff --git a/src/protobuf/kv.pb.cc b/src/protobuf/kv.pb.cc deleted file mode 100644 index 74cbaece407..00000000000 --- a/src/protobuf/kv.pb.cc +++ /dev/null @@ -1,1247 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: kv.proto - -#include "kv.pb.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) -#include - -PROTOBUF_PRAGMA_INIT_SEG - -namespace _pb = ::PROTOBUF_NAMESPACE_ID; -namespace _pbi = _pb::internal; - -namespace Canary { -namespace protobuf { -namespace kv { -PROTOBUF_CONSTEXPR ValueWrapper::ValueWrapper( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.value_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_._oneof_case_)*/{}} {} -struct ValueWrapperDefaultTypeInternal { - PROTOBUF_CONSTEXPR ValueWrapperDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~ValueWrapperDefaultTypeInternal() {} - union { - ValueWrapper _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ValueWrapperDefaultTypeInternal _ValueWrapper_default_instance_; -PROTOBUF_CONSTEXPR ArrayType::ArrayType( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.values_)*/{} - , /*decltype(_impl_._cached_size_)*/{}} {} -struct ArrayTypeDefaultTypeInternal { - PROTOBUF_CONSTEXPR ArrayTypeDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~ArrayTypeDefaultTypeInternal() {} - union { - ArrayType _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ArrayTypeDefaultTypeInternal _ArrayType_default_instance_; -PROTOBUF_CONSTEXPR KeyValuePair::KeyValuePair( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} - , /*decltype(_impl_.value_)*/nullptr - , /*decltype(_impl_._cached_size_)*/{}} {} -struct KeyValuePairDefaultTypeInternal { - PROTOBUF_CONSTEXPR KeyValuePairDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~KeyValuePairDefaultTypeInternal() {} - union { - KeyValuePair _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 KeyValuePairDefaultTypeInternal _KeyValuePair_default_instance_; -PROTOBUF_CONSTEXPR MapType::MapType( - ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.items_)*/{} - , /*decltype(_impl_._cached_size_)*/{}} {} -struct MapTypeDefaultTypeInternal { - PROTOBUF_CONSTEXPR MapTypeDefaultTypeInternal() - : _instance(::_pbi::ConstantInitialized{}) {} - ~MapTypeDefaultTypeInternal() {} - union { - MapType _instance; - }; -}; -PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MapTypeDefaultTypeInternal _MapType_default_instance_; -} // namespace kv -} // namespace protobuf -} // namespace Canary -static ::_pb::Metadata file_level_metadata_kv_2eproto[4]; -static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_kv_2eproto = nullptr; -static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_kv_2eproto = nullptr; - -const uint32_t TableStruct_kv_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::ValueWrapper, _internal_metadata_), - ~0u, // no _extensions_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::ValueWrapper, _impl_._oneof_case_[0]), - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - ::_pbi::kInvalidFieldOffsetTag, - ::_pbi::kInvalidFieldOffsetTag, - ::_pbi::kInvalidFieldOffsetTag, - ::_pbi::kInvalidFieldOffsetTag, - ::_pbi::kInvalidFieldOffsetTag, - ::_pbi::kInvalidFieldOffsetTag, - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::ValueWrapper, _impl_.value_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::ArrayType, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::ArrayType, _impl_.values_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::KeyValuePair, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::KeyValuePair, _impl_.key_), - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::KeyValuePair, _impl_.value_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::MapType, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - ~0u, // no _inlined_string_donated_ - PROTOBUF_FIELD_OFFSET(::Canary::protobuf::kv::MapType, _impl_.items_), -}; -static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, -1, sizeof(::Canary::protobuf::kv::ValueWrapper)}, - { 13, -1, -1, sizeof(::Canary::protobuf::kv::ArrayType)}, - { 20, -1, -1, sizeof(::Canary::protobuf::kv::KeyValuePair)}, - { 28, -1, -1, sizeof(::Canary::protobuf::kv::MapType)}, -}; - -static const ::_pb::Message* const file_default_instances[] = { - &::Canary::protobuf::kv::_ValueWrapper_default_instance_._instance, - &::Canary::protobuf::kv::_ArrayType_default_instance_._instance, - &::Canary::protobuf::kv::_KeyValuePair_default_instance_._instance, - &::Canary::protobuf::kv::_MapType_default_instance_._instance, -}; - -const char descriptor_table_protodef_kv_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\010kv.proto\022\022Canary.protobuf.kv\"\327\001\n\014Value" - "Wrapper\022\023\n\tstr_value\030\001 \001(\tH\000\022\023\n\tint_valu" - "e\030\002 \001(\005H\000\022\026\n\014double_value\030\003 \001(\001H\000\0224\n\013arr" - "ay_value\030\004 \001(\0132\035.Canary.protobuf.kv.Arra" - "yTypeH\000\0220\n\tmap_value\030\005 \001(\0132\033.Canary.prot" - "obuf.kv.MapTypeH\000\022\024\n\nbool_value\030\006 \001(\010H\000B" - "\007\n\005value\"=\n\tArrayType\0220\n\006values\030\001 \003(\0132 ." - "Canary.protobuf.kv.ValueWrapper\"L\n\014KeyVa" - "luePair\022\013\n\003key\030\001 \001(\t\022/\n\005value\030\002 \001(\0132 .Ca" - "nary.protobuf.kv.ValueWrapper\":\n\007MapType" - "\022/\n\005items\030\001 \003(\0132 .Canary.protobuf.kv.Key" - "ValuePairb\006proto3" - ; -static ::_pbi::once_flag descriptor_table_kv_2eproto_once; -const ::_pbi::DescriptorTable descriptor_table_kv_2eproto = { - false, false, 457, descriptor_table_protodef_kv_2eproto, - "kv.proto", - &descriptor_table_kv_2eproto_once, nullptr, 0, 4, - schemas, file_default_instances, TableStruct_kv_2eproto::offsets, - file_level_metadata_kv_2eproto, file_level_enum_descriptors_kv_2eproto, - file_level_service_descriptors_kv_2eproto, -}; -PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_kv_2eproto_getter() { - return &descriptor_table_kv_2eproto; -} - -// Force running AddDescriptors() at dynamic initialization time. -PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_kv_2eproto(&descriptor_table_kv_2eproto); -namespace Canary { -namespace protobuf { -namespace kv { - -// =================================================================== - -class ValueWrapper::_Internal { - public: - static const ::Canary::protobuf::kv::ArrayType& array_value(const ValueWrapper* msg); - static const ::Canary::protobuf::kv::MapType& map_value(const ValueWrapper* msg); -}; - -const ::Canary::protobuf::kv::ArrayType& -ValueWrapper::_Internal::array_value(const ValueWrapper* msg) { - return *msg->_impl_.value_.array_value_; -} -const ::Canary::protobuf::kv::MapType& -ValueWrapper::_Internal::map_value(const ValueWrapper* msg) { - return *msg->_impl_.value_.map_value_; -} -void ValueWrapper::set_allocated_array_value(::Canary::protobuf::kv::ArrayType* array_value) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - clear_value(); - if (array_value) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(array_value); - if (message_arena != submessage_arena) { - array_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, array_value, submessage_arena); - } - set_has_array_value(); - _impl_.value_.array_value_ = array_value; - } - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.kv.ValueWrapper.array_value) -} -void ValueWrapper::set_allocated_map_value(::Canary::protobuf::kv::MapType* map_value) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - clear_value(); - if (map_value) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(map_value); - if (message_arena != submessage_arena) { - map_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, map_value, submessage_arena); - } - set_has_map_value(); - _impl_.value_.map_value_ = map_value; - } - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.kv.ValueWrapper.map_value) -} -ValueWrapper::ValueWrapper(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.kv.ValueWrapper) -} -ValueWrapper::ValueWrapper(const ValueWrapper& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - ValueWrapper* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_.value_){} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_._oneof_case_)*/{}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - clear_has_value(); - switch (from.value_case()) { - case kStrValue: { - _this->_internal_set_str_value(from._internal_str_value()); - break; - } - case kIntValue: { - _this->_internal_set_int_value(from._internal_int_value()); - break; - } - case kDoubleValue: { - _this->_internal_set_double_value(from._internal_double_value()); - break; - } - case kArrayValue: { - _this->_internal_mutable_array_value()->::Canary::protobuf::kv::ArrayType::MergeFrom( - from._internal_array_value()); - break; - } - case kMapValue: { - _this->_internal_mutable_map_value()->::Canary::protobuf::kv::MapType::MergeFrom( - from._internal_map_value()); - break; - } - case kBoolValue: { - _this->_internal_set_bool_value(from._internal_bool_value()); - break; - } - case VALUE_NOT_SET: { - break; - } - } - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.kv.ValueWrapper) -} - -inline void ValueWrapper::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_.value_){} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_._oneof_case_)*/{} - }; - clear_has_value(); -} - -ValueWrapper::~ValueWrapper() { - // @@protoc_insertion_point(destructor:Canary.protobuf.kv.ValueWrapper) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void ValueWrapper::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (has_value()) { - clear_value(); - } -} - -void ValueWrapper::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void ValueWrapper::clear_value() { -// @@protoc_insertion_point(one_of_clear_start:Canary.protobuf.kv.ValueWrapper) - switch (value_case()) { - case kStrValue: { - _impl_.value_.str_value_.Destroy(); - break; - } - case kIntValue: { - // No need to clear - break; - } - case kDoubleValue: { - // No need to clear - break; - } - case kArrayValue: { - if (GetArenaForAllocation() == nullptr) { - delete _impl_.value_.array_value_; - } - break; - } - case kMapValue: { - if (GetArenaForAllocation() == nullptr) { - delete _impl_.value_.map_value_; - } - break; - } - case kBoolValue: { - // No need to clear - break; - } - case VALUE_NOT_SET: { - break; - } - } - _impl_._oneof_case_[0] = VALUE_NOT_SET; -} - - -void ValueWrapper::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.kv.ValueWrapper) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - clear_value(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* ValueWrapper::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // string str_value = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - auto str = _internal_mutable_str_value(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - CHK_(::_pbi::VerifyUTF8(str, "Canary.protobuf.kv.ValueWrapper.str_value")); - } else - goto handle_unusual; - continue; - // int32 int_value = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { - _internal_set_int_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr)); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // double double_value = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 25)) { - _internal_set_double_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr)); - ptr += sizeof(double); - } else - goto handle_unusual; - continue; - // .Canary.protobuf.kv.ArrayType array_value = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { - ptr = ctx->ParseMessage(_internal_mutable_array_value(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // .Canary.protobuf.kv.MapType map_value = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { - ptr = ctx->ParseMessage(_internal_mutable_map_value(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // bool bool_value = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _internal_set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr)); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* ValueWrapper::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.kv.ValueWrapper) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // string str_value = 1; - if (_internal_has_str_value()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_str_value().data(), static_cast(this->_internal_str_value().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Canary.protobuf.kv.ValueWrapper.str_value"); - target = stream->WriteStringMaybeAliased( - 1, this->_internal_str_value(), target); - } - - // int32 int_value = 2; - if (_internal_has_int_value()) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_int_value(), target); - } - - // double double_value = 3; - if (_internal_has_double_value()) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_double_value(), target); - } - - // .Canary.protobuf.kv.ArrayType array_value = 4; - if (_internal_has_array_value()) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(4, _Internal::array_value(this), - _Internal::array_value(this).GetCachedSize(), target, stream); - } - - // .Canary.protobuf.kv.MapType map_value = 5; - if (_internal_has_map_value()) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(5, _Internal::map_value(this), - _Internal::map_value(this).GetCachedSize(), target, stream); - } - - // bool bool_value = 6; - if (_internal_has_bool_value()) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_bool_value(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.kv.ValueWrapper) - return target; -} - -size_t ValueWrapper::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.kv.ValueWrapper) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - switch (value_case()) { - // string str_value = 1; - case kStrValue: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_str_value()); - break; - } - // int32 int_value = 2; - case kIntValue: { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_int_value()); - break; - } - // double double_value = 3; - case kDoubleValue: { - total_size += 1 + 8; - break; - } - // .Canary.protobuf.kv.ArrayType array_value = 4; - case kArrayValue: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.value_.array_value_); - break; - } - // .Canary.protobuf.kv.MapType map_value = 5; - case kMapValue: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.value_.map_value_); - break; - } - // bool bool_value = 6; - case kBoolValue: { - total_size += 1 + 1; - break; - } - case VALUE_NOT_SET: { - break; - } - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ValueWrapper::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - ValueWrapper::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ValueWrapper::GetClassData() const { return &_class_data_; } - - -void ValueWrapper::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.kv.ValueWrapper) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - switch (from.value_case()) { - case kStrValue: { - _this->_internal_set_str_value(from._internal_str_value()); - break; - } - case kIntValue: { - _this->_internal_set_int_value(from._internal_int_value()); - break; - } - case kDoubleValue: { - _this->_internal_set_double_value(from._internal_double_value()); - break; - } - case kArrayValue: { - _this->_internal_mutable_array_value()->::Canary::protobuf::kv::ArrayType::MergeFrom( - from._internal_array_value()); - break; - } - case kMapValue: { - _this->_internal_mutable_map_value()->::Canary::protobuf::kv::MapType::MergeFrom( - from._internal_map_value()); - break; - } - case kBoolValue: { - _this->_internal_set_bool_value(from._internal_bool_value()); - break; - } - case VALUE_NOT_SET: { - break; - } - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void ValueWrapper::CopyFrom(const ValueWrapper& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.kv.ValueWrapper) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ValueWrapper::IsInitialized() const { - return true; -} - -void ValueWrapper::InternalSwap(ValueWrapper* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_.value_, other->_impl_.value_); - swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]); -} - -::PROTOBUF_NAMESPACE_ID::Metadata ValueWrapper::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_kv_2eproto_getter, &descriptor_table_kv_2eproto_once, - file_level_metadata_kv_2eproto[0]); -} - -// =================================================================== - -class ArrayType::_Internal { - public: -}; - -ArrayType::ArrayType(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.kv.ArrayType) -} -ArrayType::ArrayType(const ArrayType& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - ArrayType* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_.values_){from._impl_.values_} - , /*decltype(_impl_._cached_size_)*/{}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.kv.ArrayType) -} - -inline void ArrayType::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_.values_){arena} - , /*decltype(_impl_._cached_size_)*/{} - }; -} - -ArrayType::~ArrayType() { - // @@protoc_insertion_point(destructor:Canary.protobuf.kv.ArrayType) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void ArrayType::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.values_.~RepeatedPtrField(); -} - -void ArrayType::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void ArrayType::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.kv.ArrayType) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.values_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* ArrayType::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // repeated .Canary.protobuf.kv.ValueWrapper values = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_values(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* ArrayType::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.kv.ArrayType) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .Canary.protobuf.kv.ValueWrapper values = 1; - for (unsigned i = 0, - n = static_cast(this->_internal_values_size()); i < n; i++) { - const auto& repfield = this->_internal_values(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.kv.ArrayType) - return target; -} - -size_t ArrayType::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.kv.ArrayType) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.kv.ValueWrapper values = 1; - total_size += 1UL * this->_internal_values_size(); - for (const auto& msg : this->_impl_.values_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ArrayType::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - ArrayType::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ArrayType::GetClassData() const { return &_class_data_; } - - -void ArrayType::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.kv.ArrayType) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.values_.MergeFrom(from._impl_.values_); - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void ArrayType::CopyFrom(const ArrayType& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.kv.ArrayType) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ArrayType::IsInitialized() const { - return true; -} - -void ArrayType::InternalSwap(ArrayType* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - _impl_.values_.InternalSwap(&other->_impl_.values_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata ArrayType::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_kv_2eproto_getter, &descriptor_table_kv_2eproto_once, - file_level_metadata_kv_2eproto[1]); -} - -// =================================================================== - -class KeyValuePair::_Internal { - public: - static const ::Canary::protobuf::kv::ValueWrapper& value(const KeyValuePair* msg); -}; - -const ::Canary::protobuf::kv::ValueWrapper& -KeyValuePair::_Internal::value(const KeyValuePair* msg) { - return *msg->_impl_.value_; -} -KeyValuePair::KeyValuePair(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.kv.KeyValuePair) -} -KeyValuePair::KeyValuePair(const KeyValuePair& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - KeyValuePair* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_.key_){} - , decltype(_impl_.value_){nullptr} - , /*decltype(_impl_._cached_size_)*/{}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - _impl_.key_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.key_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_key().empty()) { - _this->_impl_.key_.Set(from._internal_key(), - _this->GetArenaForAllocation()); - } - if (from._internal_has_value()) { - _this->_impl_.value_ = new ::Canary::protobuf::kv::ValueWrapper(*from._impl_.value_); - } - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.kv.KeyValuePair) -} - -inline void KeyValuePair::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_.key_){} - , decltype(_impl_.value_){nullptr} - , /*decltype(_impl_._cached_size_)*/{} - }; - _impl_.key_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.key_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING -} - -KeyValuePair::~KeyValuePair() { - // @@protoc_insertion_point(destructor:Canary.protobuf.kv.KeyValuePair) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void KeyValuePair::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.key_.Destroy(); - if (this != internal_default_instance()) delete _impl_.value_; -} - -void KeyValuePair::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void KeyValuePair::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.kv.KeyValuePair) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.key_.ClearToEmpty(); - if (GetArenaForAllocation() == nullptr && _impl_.value_ != nullptr) { - delete _impl_.value_; - } - _impl_.value_ = nullptr; - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* KeyValuePair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // string key = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - auto str = _internal_mutable_key(); - ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - CHK_(::_pbi::VerifyUTF8(str, "Canary.protobuf.kv.KeyValuePair.key")); - } else - goto handle_unusual; - continue; - // .Canary.protobuf.kv.ValueWrapper value = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_value(), ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* KeyValuePair::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.kv.KeyValuePair) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // string key = 1; - if (!this->_internal_key().empty()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_key().data(), static_cast(this->_internal_key().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Canary.protobuf.kv.KeyValuePair.key"); - target = stream->WriteStringMaybeAliased( - 1, this->_internal_key(), target); - } - - // .Canary.protobuf.kv.ValueWrapper value = 2; - if (this->_internal_has_value()) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, _Internal::value(this), - _Internal::value(this).GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.kv.KeyValuePair) - return target; -} - -size_t KeyValuePair::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.kv.KeyValuePair) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string key = 1; - if (!this->_internal_key().empty()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_key()); - } - - // .Canary.protobuf.kv.ValueWrapper value = 2; - if (this->_internal_has_value()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.value_); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData KeyValuePair::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - KeyValuePair::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*KeyValuePair::GetClassData() const { return &_class_data_; } - - -void KeyValuePair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.kv.KeyValuePair) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - if (!from._internal_key().empty()) { - _this->_internal_set_key(from._internal_key()); - } - if (from._internal_has_value()) { - _this->_internal_mutable_value()->::Canary::protobuf::kv::ValueWrapper::MergeFrom( - from._internal_value()); - } - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void KeyValuePair::CopyFrom(const KeyValuePair& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.kv.KeyValuePair) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool KeyValuePair::IsInitialized() const { - return true; -} - -void KeyValuePair::InternalSwap(KeyValuePair* other) { - using std::swap; - auto* lhs_arena = GetArenaForAllocation(); - auto* rhs_arena = other->GetArenaForAllocation(); - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( - &_impl_.key_, lhs_arena, - &other->_impl_.key_, rhs_arena - ); - swap(_impl_.value_, other->_impl_.value_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata KeyValuePair::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_kv_2eproto_getter, &descriptor_table_kv_2eproto_once, - file_level_metadata_kv_2eproto[2]); -} - -// =================================================================== - -class MapType::_Internal { - public: -}; - -MapType::MapType(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned) - : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { - SharedCtor(arena, is_message_owned); - // @@protoc_insertion_point(arena_constructor:Canary.protobuf.kv.MapType) -} -MapType::MapType(const MapType& from) - : ::PROTOBUF_NAMESPACE_ID::Message() { - MapType* const _this = this; (void)_this; - new (&_impl_) Impl_{ - decltype(_impl_.items_){from._impl_.items_} - , /*decltype(_impl_._cached_size_)*/{}}; - - _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:Canary.protobuf.kv.MapType) -} - -inline void MapType::SharedCtor( - ::_pb::Arena* arena, bool is_message_owned) { - (void)arena; - (void)is_message_owned; - new (&_impl_) Impl_{ - decltype(_impl_.items_){arena} - , /*decltype(_impl_._cached_size_)*/{} - }; -} - -MapType::~MapType() { - // @@protoc_insertion_point(destructor:Canary.protobuf.kv.MapType) - if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { - (void)arena; - return; - } - SharedDtor(); -} - -inline void MapType::SharedDtor() { - GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - _impl_.items_.~RepeatedPtrField(); -} - -void MapType::SetCachedSize(int size) const { - _impl_._cached_size_.Set(size); -} - -void MapType::Clear() { -// @@protoc_insertion_point(message_clear_start:Canary.protobuf.kv.MapType) - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - _impl_.items_.Clear(); - _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); -} - -const char* MapType::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - while (!ctx->Done(&ptr)) { - uint32_t tag; - ptr = ::_pbi::ReadTag(ptr, &tag); - switch (tag >> 3) { - // repeated .Canary.protobuf.kv.KeyValuePair items = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_items(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else - goto handle_unusual; - continue; - default: - goto handle_unusual; - } // switch - handle_unusual: - if ((tag == 0) || ((tag & 7) == 4)) { - CHK_(ptr); - ctx->SetLastTag(tag); - goto message_done; - } - ptr = UnknownFieldParse( - tag, - _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), - ptr, ctx); - CHK_(ptr != nullptr); - } // while -message_done: - return ptr; -failure: - ptr = nullptr; - goto message_done; -#undef CHK_ -} - -uint8_t* MapType::_InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:Canary.protobuf.kv.MapType) - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .Canary.protobuf.kv.KeyValuePair items = 1; - for (unsigned i = 0, - n = static_cast(this->_internal_items_size()); i < n; i++) { - const auto& repfield = this->_internal_items(i); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:Canary.protobuf.kv.MapType) - return target; -} - -size_t MapType::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Canary.protobuf.kv.MapType) - size_t total_size = 0; - - uint32_t cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .Canary.protobuf.kv.KeyValuePair items = 1; - total_size += 1UL * this->_internal_items_size(); - for (const auto& msg : this->_impl_.items_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); -} - -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MapType::_class_data_ = { - ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, - MapType::MergeImpl -}; -const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MapType::GetClassData() const { return &_class_data_; } - - -void MapType::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { - auto* const _this = static_cast(&to_msg); - auto& from = static_cast(from_msg); - // @@protoc_insertion_point(class_specific_merge_from_start:Canary.protobuf.kv.MapType) - GOOGLE_DCHECK_NE(&from, _this); - uint32_t cached_has_bits = 0; - (void) cached_has_bits; - - _this->_impl_.items_.MergeFrom(from._impl_.items_); - _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); -} - -void MapType::CopyFrom(const MapType& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Canary.protobuf.kv.MapType) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool MapType::IsInitialized() const { - return true; -} - -void MapType::InternalSwap(MapType* other) { - using std::swap; - _internal_metadata_.InternalSwap(&other->_internal_metadata_); - _impl_.items_.InternalSwap(&other->_impl_.items_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata MapType::GetMetadata() const { - return ::_pbi::AssignDescriptors( - &descriptor_table_kv_2eproto_getter, &descriptor_table_kv_2eproto_once, - file_level_metadata_kv_2eproto[3]); -} - -// @@protoc_insertion_point(namespace_scope) -} // namespace kv -} // namespace protobuf -} // namespace Canary -PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::Canary::protobuf::kv::ValueWrapper* -Arena::CreateMaybeMessage< ::Canary::protobuf::kv::ValueWrapper >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::kv::ValueWrapper >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::kv::ArrayType* -Arena::CreateMaybeMessage< ::Canary::protobuf::kv::ArrayType >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::kv::ArrayType >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::kv::KeyValuePair* -Arena::CreateMaybeMessage< ::Canary::protobuf::kv::KeyValuePair >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::kv::KeyValuePair >(arena); -} -template<> PROTOBUF_NOINLINE ::Canary::protobuf::kv::MapType* -Arena::CreateMaybeMessage< ::Canary::protobuf::kv::MapType >(Arena* arena) { - return Arena::CreateMessageInternal< ::Canary::protobuf::kv::MapType >(arena); -} -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) -#include diff --git a/src/protobuf/kv.pb.h b/src/protobuf/kv.pb.h deleted file mode 100644 index c40c0a46502..00000000000 --- a/src/protobuf/kv.pb.h +++ /dev/null @@ -1,1441 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: kv.proto - -#ifndef GOOGLE_PROTOBUF_INCLUDED_kv_2eproto -#define GOOGLE_PROTOBUF_INCLUDED_kv_2eproto - -#include -#include - -#include -#if PROTOBUF_VERSION < 3021000 -#error This file was generated by a newer version of protoc which is -#error incompatible with your Protocol Buffer headers. Please update -#error your headers. -#endif -#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION -#error This file was generated by an older version of protoc which is -#error incompatible with your Protocol Buffer headers. Please -#error regenerate this file with a newer version of protoc. -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include // IWYU pragma: export -#include // IWYU pragma: export -#include -// @@protoc_insertion_point(includes) -#include -#define PROTOBUF_INTERNAL_EXPORT_kv_2eproto -PROTOBUF_NAMESPACE_OPEN -namespace internal { -class AnyMetadata; -} // namespace internal -PROTOBUF_NAMESPACE_CLOSE - -// Internal implementation detail -- do not use these members. -struct TableStruct_kv_2eproto { - static const uint32_t offsets[]; -}; -extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_kv_2eproto; -namespace Canary { -namespace protobuf { -namespace kv { -class ArrayType; -struct ArrayTypeDefaultTypeInternal; -extern ArrayTypeDefaultTypeInternal _ArrayType_default_instance_; -class KeyValuePair; -struct KeyValuePairDefaultTypeInternal; -extern KeyValuePairDefaultTypeInternal _KeyValuePair_default_instance_; -class MapType; -struct MapTypeDefaultTypeInternal; -extern MapTypeDefaultTypeInternal _MapType_default_instance_; -class ValueWrapper; -struct ValueWrapperDefaultTypeInternal; -extern ValueWrapperDefaultTypeInternal _ValueWrapper_default_instance_; -} // namespace kv -} // namespace protobuf -} // namespace Canary -PROTOBUF_NAMESPACE_OPEN -template<> ::Canary::protobuf::kv::ArrayType* Arena::CreateMaybeMessage<::Canary::protobuf::kv::ArrayType>(Arena*); -template<> ::Canary::protobuf::kv::KeyValuePair* Arena::CreateMaybeMessage<::Canary::protobuf::kv::KeyValuePair>(Arena*); -template<> ::Canary::protobuf::kv::MapType* Arena::CreateMaybeMessage<::Canary::protobuf::kv::MapType>(Arena*); -template<> ::Canary::protobuf::kv::ValueWrapper* Arena::CreateMaybeMessage<::Canary::protobuf::kv::ValueWrapper>(Arena*); -PROTOBUF_NAMESPACE_CLOSE -namespace Canary { -namespace protobuf { -namespace kv { - -// =================================================================== - -class ValueWrapper final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.kv.ValueWrapper) */ { - public: - inline ValueWrapper() : ValueWrapper(nullptr) {} - ~ValueWrapper() override; - explicit PROTOBUF_CONSTEXPR ValueWrapper(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - ValueWrapper(const ValueWrapper& from); - ValueWrapper(ValueWrapper&& from) noexcept - : ValueWrapper() { - *this = ::std::move(from); - } - - inline ValueWrapper& operator=(const ValueWrapper& from) { - CopyFrom(from); - return *this; - } - inline ValueWrapper& operator=(ValueWrapper&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const ValueWrapper& default_instance() { - return *internal_default_instance(); - } - enum ValueCase { - kStrValue = 1, - kIntValue = 2, - kDoubleValue = 3, - kArrayValue = 4, - kMapValue = 5, - kBoolValue = 6, - VALUE_NOT_SET = 0, - }; - - static inline const ValueWrapper* internal_default_instance() { - return reinterpret_cast( - &_ValueWrapper_default_instance_); - } - static constexpr int kIndexInFileMessages = - 0; - - friend void swap(ValueWrapper& a, ValueWrapper& b) { - a.Swap(&b); - } - inline void Swap(ValueWrapper* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(ValueWrapper* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - ValueWrapper* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const ValueWrapper& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const ValueWrapper& from) { - ValueWrapper::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(ValueWrapper* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.kv.ValueWrapper"; - } - protected: - explicit ValueWrapper(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kStrValueFieldNumber = 1, - kIntValueFieldNumber = 2, - kDoubleValueFieldNumber = 3, - kArrayValueFieldNumber = 4, - kMapValueFieldNumber = 5, - kBoolValueFieldNumber = 6, - }; - // string str_value = 1; - bool has_str_value() const; - private: - bool _internal_has_str_value() const; - public: - void clear_str_value(); - const std::string& str_value() const; - template - void set_str_value(ArgT0&& arg0, ArgT... args); - std::string* mutable_str_value(); - PROTOBUF_NODISCARD std::string* release_str_value(); - void set_allocated_str_value(std::string* str_value); - private: - const std::string& _internal_str_value() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_str_value(const std::string& value); - std::string* _internal_mutable_str_value(); - public: - - // int32 int_value = 2; - bool has_int_value() const; - private: - bool _internal_has_int_value() const; - public: - void clear_int_value(); - int32_t int_value() const; - void set_int_value(int32_t value); - private: - int32_t _internal_int_value() const; - void _internal_set_int_value(int32_t value); - public: - - // double double_value = 3; - bool has_double_value() const; - private: - bool _internal_has_double_value() const; - public: - void clear_double_value(); - double double_value() const; - void set_double_value(double value); - private: - double _internal_double_value() const; - void _internal_set_double_value(double value); - public: - - // .Canary.protobuf.kv.ArrayType array_value = 4; - bool has_array_value() const; - private: - bool _internal_has_array_value() const; - public: - void clear_array_value(); - const ::Canary::protobuf::kv::ArrayType& array_value() const; - PROTOBUF_NODISCARD ::Canary::protobuf::kv::ArrayType* release_array_value(); - ::Canary::protobuf::kv::ArrayType* mutable_array_value(); - void set_allocated_array_value(::Canary::protobuf::kv::ArrayType* array_value); - private: - const ::Canary::protobuf::kv::ArrayType& _internal_array_value() const; - ::Canary::protobuf::kv::ArrayType* _internal_mutable_array_value(); - public: - void unsafe_arena_set_allocated_array_value( - ::Canary::protobuf::kv::ArrayType* array_value); - ::Canary::protobuf::kv::ArrayType* unsafe_arena_release_array_value(); - - // .Canary.protobuf.kv.MapType map_value = 5; - bool has_map_value() const; - private: - bool _internal_has_map_value() const; - public: - void clear_map_value(); - const ::Canary::protobuf::kv::MapType& map_value() const; - PROTOBUF_NODISCARD ::Canary::protobuf::kv::MapType* release_map_value(); - ::Canary::protobuf::kv::MapType* mutable_map_value(); - void set_allocated_map_value(::Canary::protobuf::kv::MapType* map_value); - private: - const ::Canary::protobuf::kv::MapType& _internal_map_value() const; - ::Canary::protobuf::kv::MapType* _internal_mutable_map_value(); - public: - void unsafe_arena_set_allocated_map_value( - ::Canary::protobuf::kv::MapType* map_value); - ::Canary::protobuf::kv::MapType* unsafe_arena_release_map_value(); - - // bool bool_value = 6; - bool has_bool_value() const; - private: - bool _internal_has_bool_value() const; - public: - void clear_bool_value(); - bool bool_value() const; - void set_bool_value(bool value); - private: - bool _internal_bool_value() const; - void _internal_set_bool_value(bool value); - public: - - void clear_value(); - ValueCase value_case() const; - // @@protoc_insertion_point(class_scope:Canary.protobuf.kv.ValueWrapper) - private: - class _Internal; - void set_has_str_value(); - void set_has_int_value(); - void set_has_double_value(); - void set_has_array_value(); - void set_has_map_value(); - void set_has_bool_value(); - - inline bool has_value() const; - inline void clear_has_value(); - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - union ValueUnion { - constexpr ValueUnion() : _constinit_{} {} - ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr str_value_; - int32_t int_value_; - double double_value_; - ::Canary::protobuf::kv::ArrayType* array_value_; - ::Canary::protobuf::kv::MapType* map_value_; - bool bool_value_; - } value_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - uint32_t _oneof_case_[1]; - - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_kv_2eproto; -}; -// ------------------------------------------------------------------- - -class ArrayType final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.kv.ArrayType) */ { - public: - inline ArrayType() : ArrayType(nullptr) {} - ~ArrayType() override; - explicit PROTOBUF_CONSTEXPR ArrayType(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - ArrayType(const ArrayType& from); - ArrayType(ArrayType&& from) noexcept - : ArrayType() { - *this = ::std::move(from); - } - - inline ArrayType& operator=(const ArrayType& from) { - CopyFrom(from); - return *this; - } - inline ArrayType& operator=(ArrayType&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const ArrayType& default_instance() { - return *internal_default_instance(); - } - static inline const ArrayType* internal_default_instance() { - return reinterpret_cast( - &_ArrayType_default_instance_); - } - static constexpr int kIndexInFileMessages = - 1; - - friend void swap(ArrayType& a, ArrayType& b) { - a.Swap(&b); - } - inline void Swap(ArrayType* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(ArrayType* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - ArrayType* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const ArrayType& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const ArrayType& from) { - ArrayType::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(ArrayType* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.kv.ArrayType"; - } - protected: - explicit ArrayType(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kValuesFieldNumber = 1, - }; - // repeated .Canary.protobuf.kv.ValueWrapper values = 1; - int values_size() const; - private: - int _internal_values_size() const; - public: - void clear_values(); - ::Canary::protobuf::kv::ValueWrapper* mutable_values(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::ValueWrapper >* - mutable_values(); - private: - const ::Canary::protobuf::kv::ValueWrapper& _internal_values(int index) const; - ::Canary::protobuf::kv::ValueWrapper* _internal_add_values(); - public: - const ::Canary::protobuf::kv::ValueWrapper& values(int index) const; - ::Canary::protobuf::kv::ValueWrapper* add_values(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::ValueWrapper >& - values() const; - - // @@protoc_insertion_point(class_scope:Canary.protobuf.kv.ArrayType) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::ValueWrapper > values_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_kv_2eproto; -}; -// ------------------------------------------------------------------- - -class KeyValuePair final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.kv.KeyValuePair) */ { - public: - inline KeyValuePair() : KeyValuePair(nullptr) {} - ~KeyValuePair() override; - explicit PROTOBUF_CONSTEXPR KeyValuePair(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - KeyValuePair(const KeyValuePair& from); - KeyValuePair(KeyValuePair&& from) noexcept - : KeyValuePair() { - *this = ::std::move(from); - } - - inline KeyValuePair& operator=(const KeyValuePair& from) { - CopyFrom(from); - return *this; - } - inline KeyValuePair& operator=(KeyValuePair&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const KeyValuePair& default_instance() { - return *internal_default_instance(); - } - static inline const KeyValuePair* internal_default_instance() { - return reinterpret_cast( - &_KeyValuePair_default_instance_); - } - static constexpr int kIndexInFileMessages = - 2; - - friend void swap(KeyValuePair& a, KeyValuePair& b) { - a.Swap(&b); - } - inline void Swap(KeyValuePair* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(KeyValuePair* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - KeyValuePair* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const KeyValuePair& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const KeyValuePair& from) { - KeyValuePair::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(KeyValuePair* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.kv.KeyValuePair"; - } - protected: - explicit KeyValuePair(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kKeyFieldNumber = 1, - kValueFieldNumber = 2, - }; - // string key = 1; - void clear_key(); - const std::string& key() const; - template - void set_key(ArgT0&& arg0, ArgT... args); - std::string* mutable_key(); - PROTOBUF_NODISCARD std::string* release_key(); - void set_allocated_key(std::string* key); - private: - const std::string& _internal_key() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_key(const std::string& value); - std::string* _internal_mutable_key(); - public: - - // .Canary.protobuf.kv.ValueWrapper value = 2; - bool has_value() const; - private: - bool _internal_has_value() const; - public: - void clear_value(); - const ::Canary::protobuf::kv::ValueWrapper& value() const; - PROTOBUF_NODISCARD ::Canary::protobuf::kv::ValueWrapper* release_value(); - ::Canary::protobuf::kv::ValueWrapper* mutable_value(); - void set_allocated_value(::Canary::protobuf::kv::ValueWrapper* value); - private: - const ::Canary::protobuf::kv::ValueWrapper& _internal_value() const; - ::Canary::protobuf::kv::ValueWrapper* _internal_mutable_value(); - public: - void unsafe_arena_set_allocated_value( - ::Canary::protobuf::kv::ValueWrapper* value); - ::Canary::protobuf::kv::ValueWrapper* unsafe_arena_release_value(); - - // @@protoc_insertion_point(class_scope:Canary.protobuf.kv.KeyValuePair) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_; - ::Canary::protobuf::kv::ValueWrapper* value_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_kv_2eproto; -}; -// ------------------------------------------------------------------- - -class MapType final : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Canary.protobuf.kv.MapType) */ { - public: - inline MapType() : MapType(nullptr) {} - ~MapType() override; - explicit PROTOBUF_CONSTEXPR MapType(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); - - MapType(const MapType& from); - MapType(MapType&& from) noexcept - : MapType() { - *this = ::std::move(from); - } - - inline MapType& operator=(const MapType& from) { - CopyFrom(from); - return *this; - } - inline MapType& operator=(MapType&& from) noexcept { - if (this == &from) return *this; - if (GetOwningArena() == from.GetOwningArena() - #ifdef PROTOBUF_FORCE_COPY_IN_MOVE - && GetOwningArena() != nullptr - #endif // !PROTOBUF_FORCE_COPY_IN_MOVE - ) { - InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return default_instance().GetMetadata().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return default_instance().GetMetadata().reflection; - } - static const MapType& default_instance() { - return *internal_default_instance(); - } - static inline const MapType* internal_default_instance() { - return reinterpret_cast( - &_MapType_default_instance_); - } - static constexpr int kIndexInFileMessages = - 3; - - friend void swap(MapType& a, MapType& b) { - a.Swap(&b); - } - inline void Swap(MapType* other) { - if (other == this) return; - #ifdef PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() != nullptr && - GetOwningArena() == other->GetOwningArena()) { - #else // PROTOBUF_FORCE_COPY_IN_SWAP - if (GetOwningArena() == other->GetOwningArena()) { - #endif // !PROTOBUF_FORCE_COPY_IN_SWAP - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(MapType* other) { - if (other == this) return; - GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - MapType* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { - return CreateMaybeMessage(arena); - } - using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; - void CopyFrom(const MapType& from); - using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; - void MergeFrom( const MapType& from) { - MapType::MergeImpl(*this, from); - } - private: - static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); - public: - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - uint8_t* _InternalSerialize( - uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _impl_._cached_size_.Get(); } - - private: - void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); - void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(MapType* other); - - private: - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Canary.protobuf.kv.MapType"; - } - protected: - explicit MapType(::PROTOBUF_NAMESPACE_ID::Arena* arena, - bool is_message_owned = false); - public: - - static const ClassData _class_data_; - const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kItemsFieldNumber = 1, - }; - // repeated .Canary.protobuf.kv.KeyValuePair items = 1; - int items_size() const; - private: - int _internal_items_size() const; - public: - void clear_items(); - ::Canary::protobuf::kv::KeyValuePair* mutable_items(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::KeyValuePair >* - mutable_items(); - private: - const ::Canary::protobuf::kv::KeyValuePair& _internal_items(int index) const; - ::Canary::protobuf::kv::KeyValuePair* _internal_add_items(); - public: - const ::Canary::protobuf::kv::KeyValuePair& items(int index) const; - ::Canary::protobuf::kv::KeyValuePair* add_items(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::KeyValuePair >& - items() const; - - // @@protoc_insertion_point(class_scope:Canary.protobuf.kv.MapType) - private: - class _Internal; - - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::KeyValuePair > items_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - }; - union { Impl_ _impl_; }; - friend struct ::TableStruct_kv_2eproto; -}; -// =================================================================== - - -// =================================================================== - -#ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif // __GNUC__ -// ValueWrapper - -// string str_value = 1; -inline bool ValueWrapper::_internal_has_str_value() const { - return value_case() == kStrValue; -} -inline bool ValueWrapper::has_str_value() const { - return _internal_has_str_value(); -} -inline void ValueWrapper::set_has_str_value() { - _impl_._oneof_case_[0] = kStrValue; -} -inline void ValueWrapper::clear_str_value() { - if (_internal_has_str_value()) { - _impl_.value_.str_value_.Destroy(); - clear_has_value(); - } -} -inline const std::string& ValueWrapper::str_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.str_value) - return _internal_str_value(); -} -template -inline void ValueWrapper::set_str_value(ArgT0&& arg0, ArgT... args) { - if (!_internal_has_str_value()) { - clear_value(); - set_has_str_value(); - _impl_.value_.str_value_.InitDefault(); - } - _impl_.value_.str_value_.Set( static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.kv.ValueWrapper.str_value) -} -inline std::string* ValueWrapper::mutable_str_value() { - std::string* _s = _internal_mutable_str_value(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.ValueWrapper.str_value) - return _s; -} -inline const std::string& ValueWrapper::_internal_str_value() const { - if (_internal_has_str_value()) { - return _impl_.value_.str_value_.Get(); - } - return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); -} -inline void ValueWrapper::_internal_set_str_value(const std::string& value) { - if (!_internal_has_str_value()) { - clear_value(); - set_has_str_value(); - _impl_.value_.str_value_.InitDefault(); - } - _impl_.value_.str_value_.Set(value, GetArenaForAllocation()); -} -inline std::string* ValueWrapper::_internal_mutable_str_value() { - if (!_internal_has_str_value()) { - clear_value(); - set_has_str_value(); - _impl_.value_.str_value_.InitDefault(); - } - return _impl_.value_.str_value_.Mutable( GetArenaForAllocation()); -} -inline std::string* ValueWrapper::release_str_value() { - // @@protoc_insertion_point(field_release:Canary.protobuf.kv.ValueWrapper.str_value) - if (_internal_has_str_value()) { - clear_has_value(); - return _impl_.value_.str_value_.Release(); - } else { - return nullptr; - } -} -inline void ValueWrapper::set_allocated_str_value(std::string* str_value) { - if (has_value()) { - clear_value(); - } - if (str_value != nullptr) { - set_has_str_value(); - _impl_.value_.str_value_.InitAllocated(str_value, GetArenaForAllocation()); - } - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.kv.ValueWrapper.str_value) -} - -// int32 int_value = 2; -inline bool ValueWrapper::_internal_has_int_value() const { - return value_case() == kIntValue; -} -inline bool ValueWrapper::has_int_value() const { - return _internal_has_int_value(); -} -inline void ValueWrapper::set_has_int_value() { - _impl_._oneof_case_[0] = kIntValue; -} -inline void ValueWrapper::clear_int_value() { - if (_internal_has_int_value()) { - _impl_.value_.int_value_ = 0; - clear_has_value(); - } -} -inline int32_t ValueWrapper::_internal_int_value() const { - if (_internal_has_int_value()) { - return _impl_.value_.int_value_; - } - return 0; -} -inline void ValueWrapper::_internal_set_int_value(int32_t value) { - if (!_internal_has_int_value()) { - clear_value(); - set_has_int_value(); - } - _impl_.value_.int_value_ = value; -} -inline int32_t ValueWrapper::int_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.int_value) - return _internal_int_value(); -} -inline void ValueWrapper::set_int_value(int32_t value) { - _internal_set_int_value(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.kv.ValueWrapper.int_value) -} - -// double double_value = 3; -inline bool ValueWrapper::_internal_has_double_value() const { - return value_case() == kDoubleValue; -} -inline bool ValueWrapper::has_double_value() const { - return _internal_has_double_value(); -} -inline void ValueWrapper::set_has_double_value() { - _impl_._oneof_case_[0] = kDoubleValue; -} -inline void ValueWrapper::clear_double_value() { - if (_internal_has_double_value()) { - _impl_.value_.double_value_ = 0; - clear_has_value(); - } -} -inline double ValueWrapper::_internal_double_value() const { - if (_internal_has_double_value()) { - return _impl_.value_.double_value_; - } - return 0; -} -inline void ValueWrapper::_internal_set_double_value(double value) { - if (!_internal_has_double_value()) { - clear_value(); - set_has_double_value(); - } - _impl_.value_.double_value_ = value; -} -inline double ValueWrapper::double_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.double_value) - return _internal_double_value(); -} -inline void ValueWrapper::set_double_value(double value) { - _internal_set_double_value(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.kv.ValueWrapper.double_value) -} - -// .Canary.protobuf.kv.ArrayType array_value = 4; -inline bool ValueWrapper::_internal_has_array_value() const { - return value_case() == kArrayValue; -} -inline bool ValueWrapper::has_array_value() const { - return _internal_has_array_value(); -} -inline void ValueWrapper::set_has_array_value() { - _impl_._oneof_case_[0] = kArrayValue; -} -inline void ValueWrapper::clear_array_value() { - if (_internal_has_array_value()) { - if (GetArenaForAllocation() == nullptr) { - delete _impl_.value_.array_value_; - } - clear_has_value(); - } -} -inline ::Canary::protobuf::kv::ArrayType* ValueWrapper::release_array_value() { - // @@protoc_insertion_point(field_release:Canary.protobuf.kv.ValueWrapper.array_value) - if (_internal_has_array_value()) { - clear_has_value(); - ::Canary::protobuf::kv::ArrayType* temp = _impl_.value_.array_value_; - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - _impl_.value_.array_value_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline const ::Canary::protobuf::kv::ArrayType& ValueWrapper::_internal_array_value() const { - return _internal_has_array_value() - ? *_impl_.value_.array_value_ - : reinterpret_cast< ::Canary::protobuf::kv::ArrayType&>(::Canary::protobuf::kv::_ArrayType_default_instance_); -} -inline const ::Canary::protobuf::kv::ArrayType& ValueWrapper::array_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.array_value) - return _internal_array_value(); -} -inline ::Canary::protobuf::kv::ArrayType* ValueWrapper::unsafe_arena_release_array_value() { - // @@protoc_insertion_point(field_unsafe_arena_release:Canary.protobuf.kv.ValueWrapper.array_value) - if (_internal_has_array_value()) { - clear_has_value(); - ::Canary::protobuf::kv::ArrayType* temp = _impl_.value_.array_value_; - _impl_.value_.array_value_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline void ValueWrapper::unsafe_arena_set_allocated_array_value(::Canary::protobuf::kv::ArrayType* array_value) { - clear_value(); - if (array_value) { - set_has_array_value(); - _impl_.value_.array_value_ = array_value; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.kv.ValueWrapper.array_value) -} -inline ::Canary::protobuf::kv::ArrayType* ValueWrapper::_internal_mutable_array_value() { - if (!_internal_has_array_value()) { - clear_value(); - set_has_array_value(); - _impl_.value_.array_value_ = CreateMaybeMessage< ::Canary::protobuf::kv::ArrayType >(GetArenaForAllocation()); - } - return _impl_.value_.array_value_; -} -inline ::Canary::protobuf::kv::ArrayType* ValueWrapper::mutable_array_value() { - ::Canary::protobuf::kv::ArrayType* _msg = _internal_mutable_array_value(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.ValueWrapper.array_value) - return _msg; -} - -// .Canary.protobuf.kv.MapType map_value = 5; -inline bool ValueWrapper::_internal_has_map_value() const { - return value_case() == kMapValue; -} -inline bool ValueWrapper::has_map_value() const { - return _internal_has_map_value(); -} -inline void ValueWrapper::set_has_map_value() { - _impl_._oneof_case_[0] = kMapValue; -} -inline void ValueWrapper::clear_map_value() { - if (_internal_has_map_value()) { - if (GetArenaForAllocation() == nullptr) { - delete _impl_.value_.map_value_; - } - clear_has_value(); - } -} -inline ::Canary::protobuf::kv::MapType* ValueWrapper::release_map_value() { - // @@protoc_insertion_point(field_release:Canary.protobuf.kv.ValueWrapper.map_value) - if (_internal_has_map_value()) { - clear_has_value(); - ::Canary::protobuf::kv::MapType* temp = _impl_.value_.map_value_; - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - _impl_.value_.map_value_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline const ::Canary::protobuf::kv::MapType& ValueWrapper::_internal_map_value() const { - return _internal_has_map_value() - ? *_impl_.value_.map_value_ - : reinterpret_cast< ::Canary::protobuf::kv::MapType&>(::Canary::protobuf::kv::_MapType_default_instance_); -} -inline const ::Canary::protobuf::kv::MapType& ValueWrapper::map_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.map_value) - return _internal_map_value(); -} -inline ::Canary::protobuf::kv::MapType* ValueWrapper::unsafe_arena_release_map_value() { - // @@protoc_insertion_point(field_unsafe_arena_release:Canary.protobuf.kv.ValueWrapper.map_value) - if (_internal_has_map_value()) { - clear_has_value(); - ::Canary::protobuf::kv::MapType* temp = _impl_.value_.map_value_; - _impl_.value_.map_value_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline void ValueWrapper::unsafe_arena_set_allocated_map_value(::Canary::protobuf::kv::MapType* map_value) { - clear_value(); - if (map_value) { - set_has_map_value(); - _impl_.value_.map_value_ = map_value; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.kv.ValueWrapper.map_value) -} -inline ::Canary::protobuf::kv::MapType* ValueWrapper::_internal_mutable_map_value() { - if (!_internal_has_map_value()) { - clear_value(); - set_has_map_value(); - _impl_.value_.map_value_ = CreateMaybeMessage< ::Canary::protobuf::kv::MapType >(GetArenaForAllocation()); - } - return _impl_.value_.map_value_; -} -inline ::Canary::protobuf::kv::MapType* ValueWrapper::mutable_map_value() { - ::Canary::protobuf::kv::MapType* _msg = _internal_mutable_map_value(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.ValueWrapper.map_value) - return _msg; -} - -// bool bool_value = 6; -inline bool ValueWrapper::_internal_has_bool_value() const { - return value_case() == kBoolValue; -} -inline bool ValueWrapper::has_bool_value() const { - return _internal_has_bool_value(); -} -inline void ValueWrapper::set_has_bool_value() { - _impl_._oneof_case_[0] = kBoolValue; -} -inline void ValueWrapper::clear_bool_value() { - if (_internal_has_bool_value()) { - _impl_.value_.bool_value_ = false; - clear_has_value(); - } -} -inline bool ValueWrapper::_internal_bool_value() const { - if (_internal_has_bool_value()) { - return _impl_.value_.bool_value_; - } - return false; -} -inline void ValueWrapper::_internal_set_bool_value(bool value) { - if (!_internal_has_bool_value()) { - clear_value(); - set_has_bool_value(); - } - _impl_.value_.bool_value_ = value; -} -inline bool ValueWrapper::bool_value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ValueWrapper.bool_value) - return _internal_bool_value(); -} -inline void ValueWrapper::set_bool_value(bool value) { - _internal_set_bool_value(value); - // @@protoc_insertion_point(field_set:Canary.protobuf.kv.ValueWrapper.bool_value) -} - -inline bool ValueWrapper::has_value() const { - return value_case() != VALUE_NOT_SET; -} -inline void ValueWrapper::clear_has_value() { - _impl_._oneof_case_[0] = VALUE_NOT_SET; -} -inline ValueWrapper::ValueCase ValueWrapper::value_case() const { - return ValueWrapper::ValueCase(_impl_._oneof_case_[0]); -} -// ------------------------------------------------------------------- - -// ArrayType - -// repeated .Canary.protobuf.kv.ValueWrapper values = 1; -inline int ArrayType::_internal_values_size() const { - return _impl_.values_.size(); -} -inline int ArrayType::values_size() const { - return _internal_values_size(); -} -inline void ArrayType::clear_values() { - _impl_.values_.Clear(); -} -inline ::Canary::protobuf::kv::ValueWrapper* ArrayType::mutable_values(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.ArrayType.values) - return _impl_.values_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::ValueWrapper >* -ArrayType::mutable_values() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.kv.ArrayType.values) - return &_impl_.values_; -} -inline const ::Canary::protobuf::kv::ValueWrapper& ArrayType::_internal_values(int index) const { - return _impl_.values_.Get(index); -} -inline const ::Canary::protobuf::kv::ValueWrapper& ArrayType::values(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.ArrayType.values) - return _internal_values(index); -} -inline ::Canary::protobuf::kv::ValueWrapper* ArrayType::_internal_add_values() { - return _impl_.values_.Add(); -} -inline ::Canary::protobuf::kv::ValueWrapper* ArrayType::add_values() { - ::Canary::protobuf::kv::ValueWrapper* _add = _internal_add_values(); - // @@protoc_insertion_point(field_add:Canary.protobuf.kv.ArrayType.values) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::ValueWrapper >& -ArrayType::values() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.kv.ArrayType.values) - return _impl_.values_; -} - -// ------------------------------------------------------------------- - -// KeyValuePair - -// string key = 1; -inline void KeyValuePair::clear_key() { - _impl_.key_.ClearToEmpty(); -} -inline const std::string& KeyValuePair::key() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.KeyValuePair.key) - return _internal_key(); -} -template -inline PROTOBUF_ALWAYS_INLINE -void KeyValuePair::set_key(ArgT0&& arg0, ArgT... args) { - - _impl_.key_.Set(static_cast(arg0), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:Canary.protobuf.kv.KeyValuePair.key) -} -inline std::string* KeyValuePair::mutable_key() { - std::string* _s = _internal_mutable_key(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.KeyValuePair.key) - return _s; -} -inline const std::string& KeyValuePair::_internal_key() const { - return _impl_.key_.Get(); -} -inline void KeyValuePair::_internal_set_key(const std::string& value) { - - _impl_.key_.Set(value, GetArenaForAllocation()); -} -inline std::string* KeyValuePair::_internal_mutable_key() { - - return _impl_.key_.Mutable(GetArenaForAllocation()); -} -inline std::string* KeyValuePair::release_key() { - // @@protoc_insertion_point(field_release:Canary.protobuf.kv.KeyValuePair.key) - return _impl_.key_.Release(); -} -inline void KeyValuePair::set_allocated_key(std::string* key) { - if (key != nullptr) { - - } else { - - } - _impl_.key_.SetAllocated(key, GetArenaForAllocation()); -#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.key_.IsDefault()) { - _impl_.key_.Set("", GetArenaForAllocation()); - } -#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.kv.KeyValuePair.key) -} - -// .Canary.protobuf.kv.ValueWrapper value = 2; -inline bool KeyValuePair::_internal_has_value() const { - return this != internal_default_instance() && _impl_.value_ != nullptr; -} -inline bool KeyValuePair::has_value() const { - return _internal_has_value(); -} -inline void KeyValuePair::clear_value() { - if (GetArenaForAllocation() == nullptr && _impl_.value_ != nullptr) { - delete _impl_.value_; - } - _impl_.value_ = nullptr; -} -inline const ::Canary::protobuf::kv::ValueWrapper& KeyValuePair::_internal_value() const { - const ::Canary::protobuf::kv::ValueWrapper* p = _impl_.value_; - return p != nullptr ? *p : reinterpret_cast( - ::Canary::protobuf::kv::_ValueWrapper_default_instance_); -} -inline const ::Canary::protobuf::kv::ValueWrapper& KeyValuePair::value() const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.KeyValuePair.value) - return _internal_value(); -} -inline void KeyValuePair::unsafe_arena_set_allocated_value( - ::Canary::protobuf::kv::ValueWrapper* value) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.value_); - } - _impl_.value_ = value; - if (value) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Canary.protobuf.kv.KeyValuePair.value) -} -inline ::Canary::protobuf::kv::ValueWrapper* KeyValuePair::release_value() { - - ::Canary::protobuf::kv::ValueWrapper* temp = _impl_.value_; - _impl_.value_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::Canary::protobuf::kv::ValueWrapper* KeyValuePair::unsafe_arena_release_value() { - // @@protoc_insertion_point(field_release:Canary.protobuf.kv.KeyValuePair.value) - - ::Canary::protobuf::kv::ValueWrapper* temp = _impl_.value_; - _impl_.value_ = nullptr; - return temp; -} -inline ::Canary::protobuf::kv::ValueWrapper* KeyValuePair::_internal_mutable_value() { - - if (_impl_.value_ == nullptr) { - auto* p = CreateMaybeMessage<::Canary::protobuf::kv::ValueWrapper>(GetArenaForAllocation()); - _impl_.value_ = p; - } - return _impl_.value_; -} -inline ::Canary::protobuf::kv::ValueWrapper* KeyValuePair::mutable_value() { - ::Canary::protobuf::kv::ValueWrapper* _msg = _internal_mutable_value(); - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.KeyValuePair.value) - return _msg; -} -inline void KeyValuePair::set_allocated_value(::Canary::protobuf::kv::ValueWrapper* value) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete _impl_.value_; - } - if (value) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(value); - if (message_arena != submessage_arena) { - value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, value, submessage_arena); - } - - } else { - - } - _impl_.value_ = value; - // @@protoc_insertion_point(field_set_allocated:Canary.protobuf.kv.KeyValuePair.value) -} - -// ------------------------------------------------------------------- - -// MapType - -// repeated .Canary.protobuf.kv.KeyValuePair items = 1; -inline int MapType::_internal_items_size() const { - return _impl_.items_.size(); -} -inline int MapType::items_size() const { - return _internal_items_size(); -} -inline void MapType::clear_items() { - _impl_.items_.Clear(); -} -inline ::Canary::protobuf::kv::KeyValuePair* MapType::mutable_items(int index) { - // @@protoc_insertion_point(field_mutable:Canary.protobuf.kv.MapType.items) - return _impl_.items_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::KeyValuePair >* -MapType::mutable_items() { - // @@protoc_insertion_point(field_mutable_list:Canary.protobuf.kv.MapType.items) - return &_impl_.items_; -} -inline const ::Canary::protobuf::kv::KeyValuePair& MapType::_internal_items(int index) const { - return _impl_.items_.Get(index); -} -inline const ::Canary::protobuf::kv::KeyValuePair& MapType::items(int index) const { - // @@protoc_insertion_point(field_get:Canary.protobuf.kv.MapType.items) - return _internal_items(index); -} -inline ::Canary::protobuf::kv::KeyValuePair* MapType::_internal_add_items() { - return _impl_.items_.Add(); -} -inline ::Canary::protobuf::kv::KeyValuePair* MapType::add_items() { - ::Canary::protobuf::kv::KeyValuePair* _add = _internal_add_items(); - // @@protoc_insertion_point(field_add:Canary.protobuf.kv.MapType.items) - return _add; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Canary::protobuf::kv::KeyValuePair >& -MapType::items() const { - // @@protoc_insertion_point(field_list:Canary.protobuf.kv.MapType.items) - return _impl_.items_; -} - -#ifdef __GNUC__ - #pragma GCC diagnostic pop -#endif // __GNUC__ -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - - -// @@protoc_insertion_point(namespace_scope) - -} // namespace kv -} // namespace protobuf -} // namespace Canary - -// @@protoc_insertion_point(global_scope) - -#include -#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_kv_2eproto diff --git a/src/utils/tools.cpp b/src/utils/tools.cpp index 004bfdbc87a..0d8b39a485d 100644 --- a/src/utils/tools.cpp +++ b/src/utils/tools.cpp @@ -1077,6 +1077,47 @@ std::string getWeaponName(WeaponType_t weaponType) { } } +WeaponType_t getWeaponType(const std::string &name) { + static const std::unordered_map type_mapping = { + { "none", WeaponType_t::WEAPON_NONE }, + { "sword", WeaponType_t::WEAPON_SWORD }, + { "club", WeaponType_t::WEAPON_CLUB }, + { "axe", WeaponType_t::WEAPON_AXE }, + { "shield", WeaponType_t::WEAPON_SHIELD }, + { "distance", WeaponType_t::WEAPON_DISTANCE }, + { "wand", WeaponType_t::WEAPON_WAND }, + { "ammo", WeaponType_t::WEAPON_AMMO }, + { "missile", WeaponType_t::WEAPON_MISSILE } + }; + + auto it = type_mapping.find(name); + if (it != type_mapping.end()) { + return it->second; + } + + return WEAPON_NONE; +} + +MoveEvent_t getMoveEventType(const std::string &name) { + static const std::unordered_map move_event_type_mapping = { + { "stepin", MOVE_EVENT_STEP_IN }, + { "stepout", MOVE_EVENT_STEP_OUT }, + { "equip", MOVE_EVENT_EQUIP }, + { "deequip", MOVE_EVENT_DEEQUIP }, + { "additem", MOVE_EVENT_ADD_ITEM }, + { "removeitem", MOVE_EVENT_REMOVE_ITEM }, + { "additemitemtile", MOVE_EVENT_ADD_ITEM_ITEMTILE }, + { "removeitemitemtile", MOVE_EVENT_REMOVE_ITEM_ITEMTILE } + }; + + auto it = move_event_type_mapping.find(name); + if (it != move_event_type_mapping.end()) { + return it->second; + } + + return MOVE_EVENT_NONE; +} + std::string getCombatName(CombatType_t combatType) { auto combatName = combatTypeNames.find(combatType); if (combatName != combatTypeNames.end()) { @@ -1778,11 +1819,11 @@ std::string getVerbForPronoun(PlayerPronoun_t pronoun, bool pastTense) { return pastTense ? "was" : "is"; } -std::vector split(const std::string &str) { +std::vector split(const std::string &str, char delimiter /* = ','*/) { std::vector tokens; std::string token; std::istringstream tokenStream(str); - while (std::getline(tokenStream, token, ',')) { + while (std::getline(tokenStream, token, delimiter)) { auto trimedToken = token; trimString(trimedToken); tokens.push_back(trimedToken); diff --git a/src/utils/tools.hpp b/src/utils/tools.hpp index 5af2d9f282b..769fb5d68d3 100644 --- a/src/utils/tools.hpp +++ b/src/utils/tools.hpp @@ -108,6 +108,8 @@ std::string ucwords(std::string str); bool booleanString(const std::string &str); std::string getWeaponName(WeaponType_t weaponType); +WeaponType_t getWeaponType(const std::string &name); +MoveEvent_t getMoveEventType(const std::string &name); std::string getCombatName(CombatType_t combatType); CombatType_t getCombatTypeByName(const std::string &combatname); @@ -152,7 +154,7 @@ SpellGroup_t stringToSpellGroup(const std::string &value); uint8_t forgeBonus(int32_t number); std::string formatPrice(std::string price, bool space /* = false*/); -std::vector split(const std::string &str); +std::vector split(const std::string &str, char delimiter = ','); std::string getFormattedTimeRemaining(uint32_t time); unsigned int getNumberOfCores(); From 28463c125d53e87e5a53259513150a2606d52490 Mon Sep 17 00:00:00 2001 From: LeoTK <41605307+LeoTKBR@users.noreply.github.com> Date: Thu, 29 Feb 2024 12:34:38 -0300 Subject: [PATCH 09/11] fix: adjustments when purchasing household items (#1940) --- data/modules/scripts/gamestore/init.lua | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/data/modules/scripts/gamestore/init.lua b/data/modules/scripts/gamestore/init.lua index e12a96ffa7f..4fa9daea28b 100644 --- a/data/modules/scripts/gamestore/init.lua +++ b/data/modules/scripts/gamestore/init.lua @@ -1631,20 +1631,22 @@ function GameStore.processHouseRelatedPurchase(player, offer) local inbox = player:getStoreInbox() if inbox then for _, itemId in ipairs(itemIds) do - local decoKit = inbox:addItem(ITEM_DECORATION_KIT, 1) - if decoKit then - decoKit:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "You bought this item in the Store.\nUnwrap it in your own house to create a <" .. ItemType(itemId):getName() .. ">.") - decoKit:setCustomAttribute("unWrapId", itemId) - if isCaskItem(itemId) then - decoKit:setAttribute(ITEM_ATTRIBUTE_DATE, offer.count) - end + for i = 1, offer.count do + local decoKit = inbox:addItem(ITEM_DECORATION_KIT, 1) + if decoKit then + decoKit:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "You bought this item in the Store.\nUnwrap it in your own house to create a <" .. ItemType(itemId):getName() .. ">.") + decoKit:setCustomAttribute("unWrapId", itemId) + if isCaskItem(itemId) then + decoKit:setAttribute(ITEM_ATTRIBUTE_DATE, offer.count) + end - if offer.movable ~= true then - decoKit:setAttribute(ITEM_ATTRIBUTE_STORE, systemTime()) + if offer.movable ~= true then + decoKit:setAttribute(ITEM_ATTRIBUTE_STORE, systemTime()) + end end end + player:sendUpdateContainer(inbox) end - player:sendUpdateContainer(inbox) end end From d73f9f18d7606d83afbe1c8170f3005f6ccc3265 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 29 Feb 2024 12:35:03 -0300 Subject: [PATCH 10/11] refactor: cask and kegs to core (#2335) --- .../scripts/actions/other/cask_kegs.lua | 69 ----------------- .../scripts/actions/other/cask_kegs.lua | 76 ------------------- data/scripts/actions/items/cask_and_kegs.lua | 61 +++++++++++++++ 3 files changed, 61 insertions(+), 145 deletions(-) delete mode 100644 data-canary/scripts/actions/other/cask_kegs.lua delete mode 100644 data-otservbr-global/scripts/actions/other/cask_kegs.lua create mode 100644 data/scripts/actions/items/cask_and_kegs.lua diff --git a/data-canary/scripts/actions/other/cask_kegs.lua b/data-canary/scripts/actions/other/cask_kegs.lua deleted file mode 100644 index f437840e3fa..00000000000 --- a/data-canary/scripts/actions/other/cask_kegs.lua +++ /dev/null @@ -1,69 +0,0 @@ -local targetIdList = { - --health potions casks - [25879] = { itemId = 285, transform = 266 }, -- Health Potion -- - [25880] = { itemId = 283, transform = 236 }, -- Strong Health -- - [25881] = { itemId = 284, transform = 239 }, -- Great Health -- - [25882] = { itemId = 284, transform = 7643 }, -- Ultimate Health -- - [25883] = { itemId = 284, transform = 23375 }, -- Supreme Health -- - --mana potions casks - [25889] = { itemId = 285, transform = 268 }, -- Mana Potion -- - [25890] = { itemId = 283, transform = 237 }, -- Strong Mana -- - [25891] = { itemId = 284, transform = 238 }, -- Great Mana -- - [25892] = { itemId = 284, transform = 23373 }, -- Ultimate Mana -- - --spirit potions caks - [25899] = { itemId = 284, transform = 7642 }, -- Great Spirit -- - [25900] = { itemId = 284, transform = 23374 }, --Ultimate Spirit -- - - --health potions kegs - [25903] = { itemId = 285, transform = 266 }, -- Health Potion -- - [25904] = { itemId = 283, transform = 236 }, -- Strong Health -- - [25905] = { itemId = 284, transform = 239 }, -- Great Health -- - [25906] = { itemId = 284, transform = 7643 }, -- Ultimate Health -- - [25907] = { itemId = 284, transform = 23375 }, -- Supreme Health -- - - --mana potion kegs - [25908] = { itemId = 285, transform = 268 }, -- Mana Potion -- - [25909] = { itemId = 283, transform = 237 }, -- Strong Mana -- - [25910] = { itemId = 284, transform = 238 }, -- Great Mana -- - [25911] = { itemId = 284, transform = 23373 }, -- Ultimate Mana -- - - --spirit potions kegs - [25913] = { itemId = 284, transform = 7642 }, -- Great Spirit -- - [25914] = { itemId = 284, transform = 23374 }, --Ultimate Spirit -- -} - -local flasks = Action() - -function flasks.onUse(player, item, fromPosition, target, toPosition, isHotkey) - if not target or not target:getItem() then - return false - end - - local charges = target:getCharges() - local itemCount = item:getCount() - if itemCount > charges then - itemCount = charges - end - - local targetId = targetIdList[target:getId()] - if targetId and item:getId() == targetId.itemId and charges > 0 then - local potMath = item:getCount() - itemCount - local parent = item:getParent() - if not (parent:isContainer() and parent:addItem(item:getId(), potMath)) then - player:addItem(item:getId(), potMath, true) - end - - item:transform(targetId.transform, itemCount) - charges = charges - itemCount - target:transform(target:getId(), charges) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Remaining %s charges.", charges)) - if charges == 0 then - target:remove() - end - return true - end - return false -end - -flasks:id(283, 284, 285) -flasks:register() diff --git a/data-otservbr-global/scripts/actions/other/cask_kegs.lua b/data-otservbr-global/scripts/actions/other/cask_kegs.lua deleted file mode 100644 index 872d30d613c..00000000000 --- a/data-otservbr-global/scripts/actions/other/cask_kegs.lua +++ /dev/null @@ -1,76 +0,0 @@ -local targetIdList = { - --health potions casks - [25879] = { itemId = 285, transform = 266, house = true }, -- Health Potion -- - [25880] = { itemId = 283, transform = 236, house = true }, -- Strong Health -- - [25881] = { itemId = 284, transform = 239, house = true }, -- Great Health -- - [25882] = { itemId = 284, transform = 7643, house = true }, -- Ultimate Health -- - [25883] = { itemId = 284, transform = 23375, house = true }, -- Supreme Health -- - --mana potions casks - [25889] = { itemId = 285, transform = 268, house = true }, -- Mana Potion -- - [25890] = { itemId = 283, transform = 237, house = true }, -- Strong Mana -- - [25891] = { itemId = 284, transform = 238, house = true }, -- Great Mana -- - [25892] = { itemId = 284, transform = 23373, house = true }, -- Ultimate Mana -- - --spirit potions caks - [25899] = { itemId = 284, transform = 7642, house = true }, -- Great Spirit -- - [25900] = { itemId = 284, transform = 23374, house = true }, --Ultimate Spirit -- - - --health potions kegs - [25903] = { itemId = 285, transform = 266 }, -- Health Potion -- - [25904] = { itemId = 283, transform = 236 }, -- Strong Health -- - [25905] = { itemId = 284, transform = 239 }, -- Great Health -- - [25906] = { itemId = 284, transform = 7643 }, -- Ultimate Health -- - [25907] = { itemId = 284, transform = 23375 }, -- Supreme Health -- - - --mana potion kegs - [25908] = { itemId = 285, transform = 268 }, -- Mana Potion -- - [25909] = { itemId = 283, transform = 237 }, -- Strong Mana -- - [25910] = { itemId = 284, transform = 238 }, -- Great Mana -- - [25911] = { itemId = 284, transform = 23373 }, -- Ultimate Mana -- - - --spirit potions kegs - [25913] = { itemId = 284, transform = 7642 }, -- Great Spirit -- - [25914] = { itemId = 284, transform = 23374 }, --Ultimate Spirit -- -} - -local flasks = Action() - -function flasks.onUse(player, item, fromPosition, target, toPosition, isHotkey) - if not target then - return false - end - - local charges = target:getCharges() - local itemCount = item:getCount() - local recharged = itemCount - - if recharged > charges then - recharged = charges - end - - local targetId = targetIdList[target:getId()] - if targetId and targetId.itemId == item:getId() and charges > 0 then - -- Check is cask item is in house - if targetId.house and not player:getTile():getHouse() then - return false - end - - charges = charges - recharged - target:transform(target:getId(), charges) - if charges == 0 then - toPosition:sendMagicEffect(CONST_ME_POFF) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("No more charges left. Your keg has run dry.", charges)) - else - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Remaining %s charges.", charges)) - end - - player:addItem(targetId.transform, recharged) - if itemCount >= recharged then - item:transform(targetId.itemId, itemCount - recharged) - end - return true - end - return false -end - -flasks:id(283, 284, 285) -flasks:register() diff --git a/data/scripts/actions/items/cask_and_kegs.lua b/data/scripts/actions/items/cask_and_kegs.lua new file mode 100644 index 00000000000..1180257ed18 --- /dev/null +++ b/data/scripts/actions/items/cask_and_kegs.lua @@ -0,0 +1,61 @@ +local targetIdList = { + [25879] = { itemId = 285, transform = 266 }, + [25880] = { itemId = 283, transform = 236 }, + [25881] = { itemId = 284, transform = 239 }, + [25882] = { itemId = 284, transform = 7643 }, + [25883] = { itemId = 284, transform = 23375 }, + [25889] = { itemId = 285, transform = 268 }, + [25890] = { itemId = 283, transform = 237 }, + [25891] = { itemId = 284, transform = 238 }, + [25892] = { itemId = 284, transform = 23373 }, + [25899] = { itemId = 284, transform = 7642 }, + [25900] = { itemId = 284, transform = 23374 }, + [25903] = { itemId = 285, transform = 266 }, + [25904] = { itemId = 283, transform = 236 }, + [25905] = { itemId = 284, transform = 239 }, + [25906] = { itemId = 284, transform = 7643 }, + [25907] = { itemId = 284, transform = 23375 }, + [25908] = { itemId = 285, transform = 268 }, + [25909] = { itemId = 283, transform = 237 }, + [25910] = { itemId = 284, transform = 238 }, + [25911] = { itemId = 284, transform = 23373 }, + [25913] = { itemId = 284, transform = 7642 }, + [25914] = { itemId = 284, transform = 23374 }, +} + +local flasks = Action() + +function flasks.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if not target or not target:getItem() then + return false + end + + local charges = target:getCharges() + local itemCount = item:getCount() + if itemCount > charges then + itemCount = charges + end + + local targetId = targetIdList[target:getId()] + if targetId and item:getId() == targetId.itemId and charges > 0 then + local potMath = item:getCount() - itemCount + local parent = item:getParent() + if not (parent:isContainer() and parent:addItem(item:getId(), potMath)) then + player:addItem(item:getId(), potMath, true) + end + + item:transform(targetId.transform, itemCount) + charges = charges - itemCount + target:transform(target:getId(), charges) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Remaining %s charges.", charges)) + + if charges == 0 then + target:remove() + end + return true + end + return false +end + +flasks:id(283, 284, 285) +flasks:register() From 414ddc1133d9e339a576d1feff9a4e294c79fb6c Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 29 Feb 2024 12:51:48 -0300 Subject: [PATCH 11/11] refactor: scroll of ascencion and swimming to core (#2334) --- .../actions/other/scroll_of_ascension.lua | 17 ---------- data-canary/scripts/movements/swimming.lua | 33 ------------------- .../scroll_of_ascension.lua | 18 ---------- data/global.lua | 1 + .../actions/items/scroll_of_ascension.lua | 27 +++++++++++++++ .../scripts/movements}/swimming.lua | 18 ++++++---- 6 files changed, 39 insertions(+), 75 deletions(-) delete mode 100644 data-canary/scripts/actions/other/scroll_of_ascension.lua delete mode 100644 data-canary/scripts/movements/swimming.lua delete mode 100644 data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/scroll_of_ascension.lua create mode 100644 data/scripts/actions/items/scroll_of_ascension.lua rename {data-otservbr-global/scripts/movements/others => data/scripts/movements}/swimming.lua (70%) diff --git a/data-canary/scripts/actions/other/scroll_of_ascension.lua b/data-canary/scripts/actions/other/scroll_of_ascension.lua deleted file mode 100644 index 6a598484591..00000000000 --- a/data-canary/scripts/actions/other/scroll_of_ascension.lua +++ /dev/null @@ -1,17 +0,0 @@ -local scrollOfAscencion = Action() - -function scrollOfAscencion.onUse(player, item, fromPosition, target, toPosition, isHotkey) - if math.random(10) > 1 then - player:setMonsterOutfit("Demon", 30 * 10 * 1000) - else - player:setMonsterOutfit("Ferumbras", 30 * 10 * 1000) - end - item:transform(22772) - item:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - item:decay() - player:say("Magical sparks whirl around the scroll as you read it and then your appearance is changing.", TALKTYPE_MONSTER_SAY) - return true -end - -scrollOfAscencion:id(22771) -scrollOfAscencion:register() diff --git a/data-canary/scripts/movements/swimming.lua b/data-canary/scripts/movements/swimming.lua deleted file mode 100644 index 494a4433a21..00000000000 --- a/data-canary/scripts/movements/swimming.lua +++ /dev/null @@ -1,33 +0,0 @@ -local condition = Condition(CONDITION_OUTFIT) -condition:setOutfit({ lookType = 267 }) -condition:setTicks(-1) - -local swimming = MoveEvent() -swimming:type("stepin") - -function swimming.onStepIn(creature, item, position, fromPosition) - if not creature:isPlayer() then - return false - end - - creature:addCondition(condition) - return true -end - -swimming:id(629, 630, 631, 632, 633, 634, 4809, 4810, 4811, 4812, 4813, 4814) -swimming:register() - -local swimming = MoveEvent() -swimming:type("stepout") - -function swimming.onStepOut(creature, item, position, fromPosition) - if not creature:isPlayer() then - return false - end - - creature:removeCondition(CONDITION_OUTFIT) - return true -end - -swimming:id(629, 630, 631, 632, 633, 634, 4809, 4810, 4811, 4812, 4813, 4814) -swimming:register() diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/scroll_of_ascension.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/scroll_of_ascension.lua deleted file mode 100644 index 7eccfa18edb..00000000000 --- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/scroll_of_ascension.lua +++ /dev/null @@ -1,18 +0,0 @@ -local ferumbrasAscendantScroll = Action() -function ferumbrasAscendantScroll.onUse(player, item, fromPosition, target, toPosition, isHotkey) - local outfit = { lookType = 35 } - if item.itemid == 22771 then - doSetCreatureOutfit(player, outfit, 30 * 1000) - item:transform(22772) - item:decay() - player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Magical sparks whirl around the scroll as you read and then your appearance is changing.") - return true - elseif item.itemid == 22772 then - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You are tired of the last scroll reading, rest your eyes for a moment.") - end - return true -end - -ferumbrasAscendantScroll:id(22771, 22772) -ferumbrasAscendantScroll:register() diff --git a/data/global.lua b/data/global.lua index d545ced7dd7..9ea4fd128a9 100644 --- a/data/global.lua +++ b/data/global.lua @@ -77,6 +77,7 @@ SCARLETT_MAY_DIE = 0 ropeSpots = { 386, 421, 386, 7762, 12202, 12936, 14238, 17238, 23363, 21965, 21966, 21967, 21968 } specialRopeSpots = { 12935 } +swimmingTiles = { 629, 630, 631, 632, 633, 634, 4809, 4810, 4811, 4812, 4813, 4814 } -- Global tables for systems if not _G.GlobalBosses then diff --git a/data/scripts/actions/items/scroll_of_ascension.lua b/data/scripts/actions/items/scroll_of_ascension.lua new file mode 100644 index 00000000000..b763460c09b --- /dev/null +++ b/data/scripts/actions/items/scroll_of_ascension.lua @@ -0,0 +1,27 @@ +local scrollOfAscension = Action() + +function scrollOfAscension.onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:hasExhaustion("scroll-of-ascension") then + return true + end + + local playerTile = Tile(player:getPosition()) + if playerTile and playerTile:getGround() and table.contains(swimmingTiles, playerTile:getGround():getId()) then + player:say("The scroll could get wet, step out of the water first.", TALKTYPE_MONSTER_SAY) + return true + end + + if math.random(10) > 1 then + player:setMonsterOutfit("Demon", 30 * 10 * 1000) + else + player:setMonsterOutfit("Ferumbras", 30 * 10 * 1000) + end + + player:setExhaustion("scroll-of-ascension", 60 * 60) + player:say("Magical sparks whirl around the scroll as you read it and then your appearance is changing.", TALKTYPE_MONSTER_SAY) + player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) + return true +end + +scrollOfAscension:id(22771) +scrollOfAscension:register() diff --git a/data-otservbr-global/scripts/movements/others/swimming.lua b/data/scripts/movements/swimming.lua similarity index 70% rename from data-otservbr-global/scripts/movements/others/swimming.lua rename to data/scripts/movements/swimming.lua index eee6858a1ce..d34d5036510 100644 --- a/data-otservbr-global/scripts/movements/others/swimming.lua +++ b/data/scripts/movements/swimming.lua @@ -18,31 +18,35 @@ local conditions = { local swimming = MoveEvent() function swimming.onStepIn(creature, item, position, fromPosition) - if not creature:isPlayer() then + local player = creature:getPlayer() + if not player then return false end + for i = 1, #conditions do - creature:removeCondition(conditions[i]) + player:removeCondition(conditions[i]) end - creature:addCondition(condition) + + player:addCondition(condition) return true end swimming:type("stepin") -swimming:id(629, 630, 631, 632, 633, 634) +swimming:id(unpack(swimmingTiles)) swimming:register() swimming = MoveEvent() function swimming.onStepOut(creature, item, position, fromPosition) - if not creature:isPlayer() then + local player = creature:getPlayer() + if not player then return false end - creature:removeCondition(CONDITION_OUTFIT) + player:removeCondition(CONDITION_OUTFIT) return true end swimming:type("stepout") -swimming:id(629, 630, 631, 632, 633, 634) +swimming:id(unpack(swimmingTiles)) swimming:register()