Blazera 8.60
blazera.net
SOBRE O BLAZERA
Um fresh start em um servidor 8.6 clássico, com real map, focado na experiência raiz do Tibia. | Classic Real Map • Fresh Start • Client 8.6 • Old School Gameplay • Active Community
Inicia em:
--
Participar
Histórico de Curtidas
-
gabrielzika recebeu reputação de koyotestark em How to fix NPC msg sending to Default chat@henkas
replaces this
-
gabrielzika recebeu reputação de Doidodepeda em Slot System@Gabrielk
Action:
CreatureScript
-
gabrielzika recebeu reputação de amoxicilina em (Resolvido)NPC Que troca storage por itens@amoxicilina
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { item1 = 12400, item2 = 12400, item3 = 12400, item4 = 12400, count1 = 5, count2 = 5, count3 = 5, count4 = 10, level = 300, -- Level que precisara para viajar sto = 99952, -- Storage não mecher tempo = 172800, -- tempo que vai durar a storage quest = 444454, -- quest necessaria... } if msgcontains(msg, 'mission') then if (getPlayerStorageValue(cid, config.sto) <= os.time()) then if getPlayerStorageValue(cid, config.quest) >= 1 then if getPlayerItemCount(cid, config.item1) >= config.count1 and getPlayerItemCount(cid, config.item2) >= config.count2 and getPlayerItemCount(cid, config.item3) >= config.count3 and getPlayerItemCount(cid, config.item4) >= config.count4 then selfSay('Claro, você foi para a próxima missão. Boa sorte.', cid) setPlayerStorageValue(cid, config.sto, os.time()+config.tempo) doPlayerRemoveItem(cid, config.item1, config.count1) doPlayerRemoveItem(cid, config.item2, config.count2) doPlayerRemoveItem(cid, config.item3, config.count3) doPlayerRemoveItem(cid, config.item4, config.count4) else selfSay('Traga-me os 25 protective charm para poder treinar comigo por dois dias.', cid) end else selfSay("voce nao completou a quest do vilarejo dos orc ao south da cidade, complete-a e e mostre-me que voce e realmente um guerreiro promissor.", cid) end else selfSay('Você Ja fez essa missão!' , cid) return true end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
xml
<?xml version="1.0" encoding="UTF-8"?> <npc name="NomeDoNpc" script="NomeDoArquivo.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="589" head="20" body="100" legs="50" feet="99" corpse="2212"/>] <parameters> <parameter key="message_greet" value="Parabens, voce provou-me que e um guerreiro promissor. Se quiser continuar diga {mission}."/> </parameters> </npc>
-
gabrielzika recebeu reputação de Salazar Slytherin em Criação de Quest,Tile que mata o play se pisa nele@louco3626
vc criou o arquivo neste local?? data/movements/scripts
tem como enviar prints?
-
gabrielzika recebeu reputação de Salazar Slytherin em Criação de Quest,Tile que mata o play se pisa nele@louco3626
https://hastebin.com/gulokatovi.rb
-
gabrielzika recebeu reputação de Salazar Slytherin em Criação de Quest,Tile que mata o play se pisa nele@louco3626 Ve se é isso(não testei):
Em data/movements/scripts/ crie um arquivo chamado: tileEvent.lua
local config = { actions = {1200, 1300}, -- Certo, Errado tiles = {1200, 1300}, -- tile normal, tile diferente } function onStepIn(cid) if isPlayer(cid) and not isPlayerGhost(cid) then -- Certo local pos = getCreaturePosition(cid) if getTileInfo(pos).actionid == config.actions[1] then if getTileItemById(pos, config.tiles[1]).uid ~= 0 then doTransformItem(getTileItemById(pos, config.tiles[1]).uid, config.tiles[2]) end end end if isPlayer(cid) and not isPlayerGhost(cid) then -- Errado local valor = getCreatureHealth(cid) local pos = getCreaturePosition(cid) if getTileInfo(pos).actionid == config.actions[2] then if getTileItemById(pos, config.tiles[1]).uid ~= 0 or getTileItemById(pos, config.tiles[2]).uid ~= 0 then doCreatureAddHealth(cid, -valor) end end end return true end Tag:
<movevent type="StepIn" actionid="1200;1300" event="script" value="tileEvent.lua"/>
-
gabrielzika deu reputação a Gengo em Player Info OTPokemon[OTClient] Health Player Info OTPokemon
Eae galerinha do TibiaKing, hoje venho trazer mais uma contribuição para a comunidade, um módulo indêntico ao do OtPokemon.
Mesmo que seja simples a instalação, tem sempre aquele que não sabe onde deve colocar o módulo, peço então que tenha paciência quanto a esse simples tutorial, aos demais aqueles que já sabem, peço que ao menos leia a Observações do módulo.
1º Faça o download do módulo.
2º Extraia o módulo para a pasta do seu otClient em /modules ficando assim:
Feito o passo 1 e 2 creio que já estará funcionando, isto se você fez tudo certinho.
•Observações do módulo•
Demonstrativo do módulo no jogo.
-
gabrielzika recebeu reputação de Salazar Slytherin em Criação de Quest,Tile que mata o play se pisa nele@louco3626
local config = { actions = {10130, 10131}, -- Certo, Errado tiles = {407, 406}, -- tile normal, tile diferente } function onStepIn(cid) if isPlayer(cid) and not isPlayerGhost(cid) then -- Certo local pos = getCreaturePosition(cid) if getTileInfo(pos).actionid == config.actions[1] then if getTileItemById(pos, config.tiles[1]).uid ~= 0 then doTransformItem(getTileItemById(pos, config.tiles[1]).uid, config.tiles[2]) end end end if isPlayer(cid) and not isPlayerGhost(cid) then -- Errado local valor = getCreatureHealth(cid) local pos = getCreaturePosition(cid) if getTileInfo(pos).actionid == config.actions[2] then if getTileItemById(pos, config.tiles[1]).uid ~= 0 or getTileItemById(pos, config.tiles[2]).uid ~= 0 then doCreatureAddHealth(cid, -valor) end end end return true end
<movevent type="StepIn" actionid="10130;10131" event="script" value="tileEvent.lua"/>
Nos tiles que estão em azul ai na sua print, tu coloca a Action: 10130 e no Resto em volta tu poem 10131
-
gabrielzika recebeu reputação de Pifafa em (Resolvido)Script de Anuncio@Pifafa
Cria um arquivo chamado anuncio.lua em data/talkactions/scripts e cola isso dentro:
local config = { storage = 19400, -- storage em que será salvo o tempo cor = "green", -- de acordo com o constant.lua da lib tempo = 60, -- em segundos itemid = 2159, --item que sera removido price = 1, -- quantidade de item que sera removido level = 1000 -- level necessario para poder utilizar o comando. } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveItem(cid, config.itemid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*1)) doBroadcastMessage(""..getCreatureName(cid).." [ANUNCIO]: "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Vc Falo Com Sucesso " ..config.tempo.. " second(s) espere.") else doPlayerSendCancel(cid, "Você precisa " ..config.price.. " Scarab Coins para falar novamente no Anuncio.") return true end else doPlayerSendCancel(cid, "Você Falo no Anuncio " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds Espere.") return true end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end
Tag:
<talkaction words="/anuncio" event="script" value="anuncio.lua"/>
Crédito pelo script: Kaleudd
-
gabrielzika deu reputação a Snowsz em Creature Information OffsetFaz tempo que não posto nada, então deu vontade, tava brincando um pouco ai fiz esse sisteminha básico.
• Gifs
Nesse primeiro Gif, ao trocar a direção da Outfit, o nome e as barras de informações como Health, Mana, mudam de posição, isso é bom para ajustar as Outfits de acordo com o seu tamanho, como o Demon, ficar com as informações logo em cima da cabeça, ou Hydra, todos estão com o local padrão.
Aqui era como as informações ficavam com essa Outfit originalmente, no padrão de sempre dos clients.
Comparativo em imagem estática:
Tibia Outfit antes e depois:
Aqui estão algumas outfits que meu primo @Fae1z fez, apliquei o sistema de offset nelas, uma do Graves, uma do Ekko, ambos são personagens do game League of Legends, e uma baseada Uganda Knuckle:
Ekko antes:
Ekko depois:
Graves antes e depois:
Uganda Knuckle antes e depois:
Aqui eu estava brincando de por as informações da Outfit de anão de modo drogado kkk.
• Código
Em Creature.h modifique nesta linha:
void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
Ficando:
void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags)
Embaixo de:
std::string getName() { return m_name; } Adicione:
Point getInformationOffset() { return m_informationOffset; } void setInformationOffset(int x, int y) { m_informationOffset.x = x; m_informationOffset.y = y; }
Embaixo de:
Position m_oldPosition; Adicione:
Point m_informationOffset;
Agora, em Creature.cpp procure por:
void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
Ficando:
void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Sim, isso está repetido, é assim mesmo, o processo é necessário em Creature.h e Creature.cpp, nessa função a variável point tem seu tipo alterado de Const para normal.
Ainda em Creature.cpp procure por:
if(!useGray) fillColor = m_informationColor; Pule duas linhas e adicione:
point.x += m_informationOffset.x; point.y += m_informationOffset.y;
Agora, em Luafunctions.cpp procure por:
g_lua.bindClassMemberFunction<Creature>("jump", &Creature::jump); Embaixo adicione:
g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);
A parte da source é só isso.
Foi criada uma variável do tipo Point na classe Creature, que pode armazenar dois valores do tipo Int, sendo eles X & Y, assim detendo uma posição de offset, para ajustar a posição das informações(Health Bar, Mana Bar e Name) da criatura, essa variável é usada na função Creature::drawInformation, onde ocorre todo o desenho de informações das criaturas, lá o offset criado altera a posição de um Point usado como posição base das informações, alterando esse Point todo o resto segue aquela posição, você pode setar o offset diretamente na criatura, as funções podem ser usadas tanto na source usando C++ quanto nos scripts usando Lua, em Lua o uso das funções é o seguinte:
Essa função retorna uma tabela com X & Y, algo como "table = {x = 10, y = 20}", são as posições do offset.
Creature:getInformationOffset() Exemplo de uso:
local Offset = Creature:getInformationOffset() print(Offset.x) print(Offset.y) Isso vai printar no client_terminal do OTClient os valores de X & Y.
Enquanto esta altera as posições usando os valores X & Y.
Creature:setInformationOffset(x, y) Exemplo:
Creature:setInformationOffset(10, -5)
Essa configuração de offset vai aumentar X em 10 Pixels e diminuir Y em 5 Pixels, no meu primeiro gif, na direção Sul do Char, eu usei X diminuindo 13 Pixels e Y diminuindo 8 Pixels, algo como isso:
Creature:setInformationOffset(-13, -8)
Para tudo isso funcionar igual os gifs acima eu fiz um módulo especial, onde dependendo da Outfit e da direção que a criatura está olhando, ele vai alterar o offset de acordo.
Para criar o módulo, siga estes passos:
Na pasta do OTClient em modules/ crie uma pasta chamada game_creatureinformation, dentro crie um arquivo com o mesmo nome e a extensão .otmod, algo como "game_creatureinformation.otmod", o conteúdo do arquivo é este:
Module name: game_creatureinformation description: Changes the position of the informations point to correctly draw names and creature bars. author: Snowsz website: tibiaking.com autoload: true reloadable: true sandboxed: true version: 1.0 scripts: [ game_creatureinformation ] @onLoad: init() @onUnload: terminate()
Crie um arquivo com o mesmo nome e a extensão .lua, algo como "game_creatureinformation.lua", o conteúdo do arquivo é este:
--[[ Directions: North /\ East > South \/ West < Structure: [OutfitID] = { [Direction] = {x = OFFSETX, y = OFFSETY}, } ]] --Lista de offsets para cada Outfit. local OutfitOffsets = { [143] = { --Outfit do primeiro gif [North] = {x = -13, y = -8}, [East] = {x = -17, y = -8}, [South] = {x = -13, y = -8}, [West] = {x = -15, y = -8}, }, [160] = { --Outfit de anão com o nome full drogado. [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = -13, y = -80}, [West] = {x = 0, y = 0}, } } local function translateDir(dir) if dir == NorthEast or dir == SouthEast then return East elseif dir == NorthWest or dir == SouthWest then return West end return dir end local function getOutfitInformationOffset(outfit, dir) if OutfitOffsets[outfit] then return OutfitOffsets[outfit][translateDir(dir)] end return {x = 0, y = 0} end local function onCreatureAppear(creature) local Offset = getOutfitInformationOffset(creature:getOutfit().type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureDirectionChange(creature, oldDirection, newDirection) local Offset = getOutfitInformationOffset(creature:getOutfit().type, newDirection) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureOutfitChange(creature, newOutfit, oldOutfit) local Offset = getOutfitInformationOffset(newOutfit.type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end function init() connect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) connect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end function terminate() disconnect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) disconnect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end
A parte do módulo está finalizada, o que resta agora é configurar as Outfits na tabela com seus determinados Offsets, e não se preocupe, se a outfit não estiver configurada, ela vai seguir o padrão normal, o módulo só altera algo quando determinada Outfit está configurada.
Para configurar o módulo é simples, basta seguir o padrão:
[ID DA OUTFIT AQUI] = { [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = 0, y = 0}, [West] = {x = -0, y = 0}, }, Nos primeiros colchetes coloque o ID da sua Outfit para ter o offset modificado, os colchetes restantes são as direções, não é necessário mexer neles, dentro de cada índice da tabela tem os offsets X & Y, basta modificar o valor de acordo, sendo ele positivo ou negativo. NÃO SE ESQUEÇA DA VÍRGULA NO FINAL "},".
-
gabrielzika recebeu reputação de Theodorojose em isRiderOrFlyOrSurf In server@Theodorojose exato.
-
gabrielzika deu reputação a Kazuya9629 em Como Proteger Suas SpriteCreditos Object Build Por Ter criado Programa
ABRA PASTA Object Builder
Abaixe Notepad++
https://notepad-plus-plus.org/
MODIFIQUE A Dat e Spr Por Um Numero gigante Para Que object Build Bug E Aparessa Signitude 0 ASSIM ELES NAO CONSEGUIRAO Abrir com object Buid So Voce Porque so voce tem o codigo
Depois Que Salva O Arquivo Abra Object Build
Vai Em Arquivo e COPILAR COMO
PROCURE OQUE VOCE EDITOU
FINALIZER CONFIRMANDO PRONTO
-
gabrielzika recebeu reputação de Altairjr em (Resolvido)Mudar Elemento dá Wand por Itemsão realmente o mesmo id?
<wand id="12655" level="8" mana="10" min="700" max="850" type="holy" event="function" value="default"> e
<wand id="12665" range="8" lvl="8" mana="10" enabled="1" exhaustion="0" script="donatestaff.lua">
um tá 12655 e outro 12665 '-'
comenta os ids de todas as wands certinho aqui pra mim colocar só para algumas especificas usarem o !wand
e sobre cobrar, não está cobrando?? wtf kk tem o
doPlayerRemoveMoney(cid, config.price)
-
gabrielzika recebeu reputação de Altairjr em (Resolvido)Mudar Elemento dá Wand por Item@Altairjr espero que seja isso(não testei plx)
local combat_values = { ["none"] = -1, ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 1000000, delay = 0, wands = {12629, 12655, 12661, 12662, 12663, 12664, 12665}, msg = { help = "Use o comando exemplo: !wand holy Efeitos disponíveis: ice, fire, earth, energy, holy, death, e none para desabilitar. A troca para outro elemento custa 1kk.", invalid = "Por favor, digite um tipo valido.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } -- /////////////////////Requerimentos///////////////////-- local req_text = "You cannot use this command." -- Mensagem caso nao possua o item --/////////////////////////////////////////////////////-- function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT) local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT) if wand_left.uid > 0 or wand_right.uid > 0 then if isInArray(config.wands, wand_left.itemid) or isInArray(config.wands, wand_right.itemid) then if wand_left.uid > 0 and isInArray(config.wands, wand_left.itemid) and (param == "help" or param == "") then doShowTextDialog(cid, wand_left.itemid, string.format(config.msg.help, config.price)) return true elseif wand_right.uid > 0 and isInArray(config.wands, wand_right.itemid) and (param == "help" or param == "") then doShowTextDialog(cid, wand_right.itemid, string.format(config.msg.help, config.price)) return true end if not value then doPlayerSendCancel(cid, config.msg.invalid) return true end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getCreatureStorage(cid, config.time_storage) > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return true end doCreatureSetStorage(cid, config.storage, value) doCreatureSetStorage(cid, config.time_storage, os.time() + config.delay) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) else doPlayerSendCancel(cid, req_text) end else doPlayerSendCancel(cid, req_text) end return true end
-
gabrielzika recebeu reputação de Altairjr em (Resolvido)Mudar Elemento dá Wand por Item@Altairjr veja se funciona ai bro (não testei). Qualquer erro me manda aqui :d
local combat_values = { ["none"] = -1, ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 1000000, delay = 0, msg = { help = "Use o comando exemplo: !wand holy Efeitos disponíveis: ice, fire, earth, energy, holy, death, e none para desabilitar. A troca para outro elemento custa 1kk.", invalid = "Por favor, digite um tipo valido.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } -- /////////////////////Requerimentos///////////////////-- local req_text = "You cannot use this command." -- Mensagem caso nao possua o item --/////////////////////////////////////////////////////-- function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT) local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT) if wand_left.uid > 0 or wand_right.uid > 0 then if wand_left.uid > 0 and (param == "help" or param == "") then doShowTextDialog(cid, wand_left.itemid, string.format(config.msg.help, config.price)) return true elseif wand_right.uid > 0 and (param == "help" or param == "") then doShowTextDialog(cid, wand_right.itemid, string.format(config.msg.help, config.price)) return true end if not value then doPlayerSendCancel(cid, config.msg.invalid) return true end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getCreatureStorage(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return true end doCreatureSetStorage(cid, config.storage, value) doCreatureSetStorage(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) else doPlayerSendCancel(cid, req_text) end return true end
-
gabrielzika recebeu reputação de Altairjr em (Resolvido)Mudar Elemento dá Wand por Item@Altairjr me explica direito que te ajudo sim bro
-
gabrielzika recebeu reputação de thelifeofpbion em [Help Cliente OLD] Problema ao trocar Ip client 7.72@joaopedrodepaiva agora é só baixar, abrir pelo notepad++ e substituir o
11.111.111.11
pelo seu IP
obs: clique em substituir todos!
tibia.exe
-
gabrielzika recebeu reputação de KotZletY em Erro Script Evento Bag@Pokemon X Ice
Ve se é isso:
local item_id = {2160, 2159, 2158} -- joga os id dos itens aqui local pos = {x = 1052, y = 1049, z = 7} -- position cp de saffron local chance = 50 -- chance de ganhar function onUse(cid, itemId, itemEx) if getGlobalStorageValue(cid, 12389) == 1 then else doTeleportThing(cid, pos) doPlayerSendCancel(cid, "[Evento Bag] esta fechado") return true end local valor = math.random(1, 100) if chance >= valor then local w = math.random (1,#item_id) doPlayerAddItem(cid, item_id[w]) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"[Win-Bag-Event]\nPremio: ["..getItemNameById(item_id[w]).."].") doTeleportThing(cid, pos) else doTeleportThing(cid, pos) doCreatureSay(cid, 'Falhou Meu Guerreiro', TALKTYPE_ORANGE_1) return true end end
-
gabrielzika recebeu reputação de Thalles Vitor em Aparecer boost no nome do PokémonhideBoost = false não vai?
-
gabrielzika recebeu reputação de Emooooo em colocar exausted aqui !@Emooooo diz ai se é isso ?
function onUse(cid, item, fromPos, itemEx, toPos) local rock1pos = {x=195, y=118, z=9, stackpos=1} -- Posição da Pedra local getrock1 = getThingfromPos(rock1pos) local UniID = 3331 -- UniqueID que vai ser adicionado na alavanca local rockID = 8740 -- ID da pedra local sec = 30 -- qnt em segundos para a pedra aparecer e a alavanca voltar if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then doRemoveItem(getrock1.uid, 1) doTransformItem(item.uid, item.itemid+1) doSendMagicEffect(rock1pos, 2) addEvent( function() doCreateItem(rockID, 1, rock1pos) doTransformItem(item.uid, item.itemid-1) doSendMagicEffect(rock1pos, 13) end, sec * 1000) return true end return true end
-
gabrielzika recebeu reputação de Emooooo em colocar exausted aqui !@Emooooo veja se funciona ai bro
function onUse(cid, item, toPosition) local rock1pos = {x=195, y=118, z=9, stackpos=1} -- Posição da Pedra local getrock1 = getThingfromPos(rock1pos) local UniID = 3331 -- UniqueID que vai ser adicionado na alavanca local rockID = 8740 -- ID da pedra local sto = 19270 -- storage do exhaust local time = 20 -- tempo em minutos if exhaustion.get(cid, sto) then seconds = math.floor(exhaustion.get(cid, sto)) return doPlayerSendCancel(cid, "Você tem que esperar "..seconds.." segundos para usar isso novamente.") end if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then doRemoveItem(getrock1.uid, 1) doTransformItem(item.uid, item.itemid+1) doSendMagicEffect(rock1pos, 2) elseif item.uid == UniID and item.itemid == 1946 then doCreateItem(rockID, 1, rock1pos) doTransformItem(item.uid,item.itemid-1) doSendMagicEffect(rock1pos, 13) end exhaustion.set(cid, sto, 60 * time) return TRUE end
-
gabrielzika recebeu reputação de igor lindo em (Resolvido)ERRO NA HORA DE COMPRAR ITEM NO SHOP!@Wesley Alexandre2014 veja se o meu Shop funciona com Você!
shop.lua
function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from Shop.") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space on container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have a container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from Shop.") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end
xml
<globalevent name="shop" interval="30" script="shop.lua"/>
-
gabrielzika recebeu reputação de Christinacsa em Por mensagem em Green@Christinacsa
doBroadcastMessage("[Castle Of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está tentando dominar o castelo, preparem-se!", MESSAGE_INFO_DESCR)
-
gabrielzika recebeu reputação de DarkRed em (Resolvido)Fischer sem outfits@DarkRed manda o seu script de fishing...
-
gabrielzika recebeu reputação de xWhiteWolf em (Resolvido)[Dúvida] Skills trocadas@Brunds troca seu constant por este! obs é o seu com uma modificação , veja se funciona
NORTH = 0 EAST = 1 SOUTH = 2 WEST = 3 SOUTHWEST = 4 SOUTHEAST = 5 NORTHWEST = 6 NORTHEAST = 7 COMBAT_FORMULA_UNDEFINED = 0 COMBAT_FORMULA_LEVELMAGIC = 1 COMBAT_FORMULA_SKILL = 2 COMBAT_FORMULA_DAMAGE = 3 CONDITION_PARAM_OWNER = 1 CONDITION_PARAM_TICKS = 2 CONDITION_PARAM_OUTFIT = 3 CONDITION_PARAM_HEALTHGAIN = 4 CONDITION_PARAM_HEALTHTICKS = 5 CONDITION_PARAM_MANAGAIN = 6 CONDITION_PARAM_MANATICKS = 7 CONDITION_PARAM_DELAYED = 8 CONDITION_PARAM_SPEED = 9 CONDITION_PARAM_LIGHT_LEVEL = 10 CONDITION_PARAM_LIGHT_COLOR = 11 CONDITION_PARAM_SOULGAIN = 12 CONDITION_PARAM_SOULTICKS = 13 CONDITION_PARAM_MINVALUE = 14 CONDITION_PARAM_MAXVALUE = 15 CONDITION_PARAM_STARTVALUE = 16 CONDITION_PARAM_TICKINTERVAL = 17 CONDITION_PARAM_FORCEUPDATE = 18 CONDITION_PARAM_SKILL_MELEE = 19 CONDITION_PARAM_SKILL_FIST = 20 CONDITION_PARAM_SKILL_CLUB = 21 CONDITION_PARAM_SKILL_SWORD = 22 CONDITION_PARAM_SKILL_AXE = 23 CONDITION_PARAM_SKILL_DISTANCE = 24 CONDITION_PARAM_SKILL_SHIELD = 25 CONDITION_PARAM_SKILL_FISHING = 26 CONDITION_PARAM_STAT_MAXHEALTH = 27 CONDITION_PARAM_STAT_MAXMANA = 28 CONDITION_PARAM_STAT_SOUL = 29 CONDITION_PARAM_STAT_MAGICLEVEL = 30 CONDITION_PARAM_STAT_MAXHEALTHPERCENT = 31 CONDITION_PARAM_STAT_MAXMANAPERCENT = 32 CONDITION_PARAM_STAT_SOULPERCENT = 33 CONDITION_PARAM_STAT_MAGICLEVELPERCENT = 34 CONDITION_PARAM_SKILL_MELEEPERCENT = 35 CONDITION_PARAM_SKILL_FISTPERCENT = 36 CONDITION_PARAM_SKILL_CLUBPERCENT = 37 CONDITION_PARAM_SKILL_SWORDPERCENT = 38 CONDITION_PARAM_SKILL_AXEPERCENT = 39 CONDITION_PARAM_SKILL_DISTANCEPERCENT = 40 CONDITION_PARAM_SKILL_SHIELDPERCENT = 41 CONDITION_PARAM_SKILL_FISHINGPERCENT = 42 CONDITION_PARAM_PERIODICDAMAGE = 43 CONDITION_PARAM_BUFF = 44 CONDITION_PARAM_SUBID = 45 COMBAT_PARAM_TYPE = 1 COMBAT_PARAM_EFFECT = 2 COMBAT_PARAM_DISTANCEEFFECT = 3 COMBAT_PARAM_BLOCKSHIELD = 4 COMBAT_PARAM_BLOCKARMOR = 5 COMBAT_PARAM_TARGETCASTERORTOPMOST = 6 COMBAT_PARAM_CREATEITEM = 7 COMBAT_PARAM_AGGRESSIVE = 8 COMBAT_PARAM_DISPEL = 9 COMBAT_PARAM_USECHARGES = 10 COMBAT_PARAM_TARGETPLAYERSORSUMMONS = 11 COMBAT_PARAM_DIFFERENTAREADAMAGE = 12 COMBAT_PARAM_HITEFFECT = 13 COMBAT_PARAM_HITCOLOR = 14 CALLBACK_PARAM_LEVELMAGICVALUE = 1 CALLBACK_PARAM_SKILLVALUE = 2 CALLBACK_PARAM_TARGETTILE = 3 CALLBACK_PARAM_TARGETCREATURE = 4 COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 COMBAT_WINDDAMAGE = 4096 COMBAT_CHAKREDDAMAGE = 8192 COMBAT_POISONDAMAGE = 16384 CONDITION_NONE = 0 CONDITION_POISON = 1 CONDITION_FIRE = 2 CONDITION_ENERGY = 4 CONDITION_PHYSICAL = 8 CONDITION_HASTE = 16 CONDITION_PARALYZE = 32 CONDITION_OUTFIT = 64 CONDITION_INVISIBLE = 128 CONDITION_LIGHT = 256 CONDITION_MANASHIELD = 512 CONDITION_INFIGHT = 1024 CONDITION_DRUNK = 2048 CONDITION_EXHAUST = 4096 CONDITION_FOOD = 8192 CONDITION_REGENERATION = 8192 CONDITION_SOUL = 16384 CONDITION_DROWN = 32768 CONDITION_MUTED = 65536 CONDITION_ATTRIBUTES = 131072 CONDITION_FREEZING = 262144 CONDITION_DAZZLED = 524288 CONDITION_CURSED = 1048576 CONDITION_PACIFIED = 2097152 CONDITION_GAMEMASTER = 4194304 CONDITION_HUNTING = 8388608 CONDITION_EARTH = 16777216 CONDITION_WINDING = 33554432 EXHAUST_OTHER = 0 EXHAUST_COMBAT = 1 EXHAUST_HEALING = 2 EXHAUST_WEAPON = 3 MUTED_BUFFER = 0 MUTED_YELL = 1 MUTED_TRADE = 2 MUTED_TRADE_ROOK = 3 GAMEMASTER_INVISIBLE = 0 GAMEMASTER_IGNORE = 1 GAMEMASTER_TELEPORT = 2 CONST_SLOT_FIRST = 1 CONST_SLOT_HEAD = CONST_SLOT_FIRST CONST_SLOT_NECKLACE = 2 CONST_SLOT_BACKPACK = 3 CONST_SLOT_ARMOR = 4 CONST_SLOT_RIGHT = 5 CONST_SLOT_LEFT = 6 CONST_SLOT_LEGS = 7 CONST_SLOT_FEET = 8 CONST_SLOT_RING = 9 CONST_SLOT_AMMO = 10 CONST_SLOT_LAST = CONST_SLOT_AMMO CONST_ME_DRAWBLOOD = 0 CONST_ME_LOSEENERGY = 1 CONST_ME_POFF = 2 CONST_ME_BLOCKHIT = 3 CONST_ME_EXPLOSIONAREA = 4 CONST_ME_EXPLOSIONHIT = 5 CONST_ME_FIREAREA = 6 CONST_ME_YELLOW_RINGS = 7 CONST_ME_GREEN_RINGS = 8 CONST_ME_HITAREA = 9 CONST_ME_TELEPORT = 10 CONST_ME_ENERGYHIT = 11 CONST_ME_MAGIC_BLUE = 12 CONST_ME_MAGIC_RED = 13 CONST_ME_MAGIC_GREEN = 14 CONST_ME_HITBYFIRE = 15 CONST_ME_HITBYPOISON = 16 CONST_ME_MORTAREA = 17 CONST_ME_SOUND_GREEN = 18 CONST_ME_SOUND_RED = 19 CONST_ME_POISONAREA = 20 CONST_ME_SOUND_YELLOW = 21 CONST_ME_SOUND_PURPLE = 22 CONST_ME_SOUND_BLUE = 23 CONST_ME_SOUND_WHITE = 24 CONST_ME_BUBBLES = 25 CONST_ME_CRAPS = 26 CONST_ME_GIFT_WRAPS = 27 CONST_ME_FIREWORK_YELLOW = 28 CONST_ME_FIREWORK_RED = 29 CONST_ME_FIREWORK_BLUE = 30 CONST_ME_STUN = 31 CONST_ME_SLEEP = 32 CONST_ME_WATERCREATURE = 33 CONST_ME_GROUNDSHAKER = 34 CONST_ME_HEARTS = 35 CONST_ME_FIREATTACK = 36 CONST_ME_ENERGYAREA = 37 CONST_ME_SMALLCLOUDS = 38 CONST_ME_HOLYDAMAGE = 39 CONST_ME_BIGCLOUDS = 40 CONST_ME_ICEAREA = 41 CONST_ME_ICETORNADO = 42 CONST_ME_ICEATTACK = 43 CONST_ME_STONES = 44 CONST_ME_SMALLPLANTS = 45 CONST_ME_CARNIPHILA = 46 CONST_ME_PURPLEENERGY = 47 CONST_ME_YELLOWENERGY = 48 CONST_ME_HOLYAREA = 49 CONST_ME_BIGPLANTS = 50 CONST_ME_CAKE = 51 CONST_ME_GIANTICE = 52 CONST_ME_WATERSPLASH = 53 CONST_ME_PLANTATTACK = 54 CONST_ME_TUTORIALARROW = 55 CONST_ME_TUTORIALSQUARE = 56 CONST_ME_MIRRORHORIZONTAL = 57 CONST_ME_MIRRORVERTICAL = 58 CONST_ME_SKULLHORIZONTAL = 59 CONST_ME_SKULLVERTICAL = 60 CONST_ME_ASSASSIN = 61 CONST_ME_STEPSHORIZONTAL = 62 CONST_ME_BLOODYSTEPS = 63 CONST_ME_STEPSVERTICAL = 64 CONST_ME_YALAHARIGHOST = 65 CONST_ME_BATS = 66 CONST_ME_SMOKE = 67 CONST_ME_INSECTS = 68 CONST_ME_EFEITO69 = 69 CONST_ME_EFEITO70 = 70 CONST_ME_EFEITO71 = 71 CONST_ME_EFEITO72 = 72 CONST_ME_EFEITO73 = 73 CONST_ME_EFEITO74 = 74 CONST_ME_EFEITO75 = 75 CONST_ME_EFEITO76 = 76 CONST_ME_EFEITO77 = 77 CONST_ME_EFEITO78 = 78 CONST_ME_EFEITO79 = 79 CONST_ME_EFEITO80 = 80 CONST_ME_EFEITO81 = 81 CONST_ME_EFEITO82 = 82 CONST_ME_EFEITO83 = 83 CONST_ME_EFEITO84 = 84 CONST_ME_EFEITO85 = 85 CONST_ME_EFEITO86 = 86 CONST_ME_EFEITO87 = 87 CONST_ME_EFEITO88 = 88 CONST_ME_EFEITO89 = 89 CONST_ME_EFEITO90 = 90 CONST_ME_EFEITO91 = 91 CONST_ME_EFEITO92 = 92 CONST_ME_EFEITO93 = 93 CONST_ME_EFEITO94 = 94 CONST_ME_EFEITO95 = 95 CONST_ME_EFEITO96 = 96 CONST_ME_EFEITO97 = 97 CONST_ME_EFEITO98 = 98 CONST_ME_EFEITO99 = 99 CONST_ME_EFEITO100 = 100 CONST_ME_EFEITO101 = 101 CONST_ME_EFEITO102 = 102 CONST_ME_EFEITO103 = 103 CONST_ME_EFEITO104 = 104 CONST_ME_EFEITO105 = 105 CONST_ME_EFEITO106 = 106 CONST_ME_EFEITO107 = 107 CONST_ME_EFEITO108 = 108 CONST_ME_EFEITO109 = 109 CONST_ME_EFEITO110 = 110 CONST_ME_EFEITO111 = 111 CONST_ME_EFEITO112 = 112 CONST_ME_EFEITO113 = 113 CONST_ME_EFEITO114 = 114 CONST_ME_EFEITO115 = 115 CONST_ME_EFEITO116 = 116 CONST_ME_EFEITO117 = 117 CONST_ME_EFEITO118 = 118 CONST_ME_EFEITO119 = 119 CONST_ME_EFEITO120 = 120 CONST_ME_EFEITO121 = 121 CONST_ME_EFEITO122 = 122 CONST_ME_EFEITO123 = 123 CONST_ME_EFEITO124 = 124 CONST_ME_EFEITO125 = 125 CONST_ME_EFEITO126 = 126 CONST_ME_EFEITO127 = 127 CONST_ME_EFEITO128 = 128 CONST_ME_EFEITO129 = 129 CONST_ME_EFEITO130 = 130 CONST_ME_EFEITO131 = 131 CONST_ME_EFEITO132 = 132 CONST_ME_EFEITO133 = 133 CONST_ME_EFEITO134 = 134 CONST_ME_EFEITO135 = 135 CONST_ME_EFEITO136 = 136 CONST_ME_EFEITO137 = 137 CONST_ME_EFEITO138 = 138 CONST_ME_EFEITO139 = 139 CONST_ME_EFEITO140 = 140 CONST_ME_EFEITO141 = 141 CONST_ME_EFEITO142 = 142 CONST_ME_EFEITO143 = 143 CONST_ME_EFEITO144 = 144 CONST_ME_EFEITO145 = 145 CONST_ME_EFEITO146 = 146 CONST_ME_EFEITO147 = 147 CONST_ME_EFEITO148 = 148 CONST_ME_EFEITO149 = 149 CONST_ME_EFEITO150 = 150 CONST_ME_EFEITO151 = 151 CONST_ME_EFEITO152 = 152 CONST_ME_EFEITO153 = 153 CONST_ME_EFEITO154 = 154 CONST_ME_EFEITO155 = 155 CONST_ME_EFEITO156 = 156 CONST_ME_EFEITO157 = 157 CONST_ME_EFEITO158 = 158 CONST_ME_EFEITO159 = 159 CONST_ME_EFEITO160 = 160 CONST_ME_EFEITO161 = 161 CONST_ME_EFEITO162 = 162 CONST_ME_EFEITO163 = 163 CONST_ME_EFEITO164 = 164 CONST_ME_EFEITO165 = 165 CONST_ME_EFEITO166 = 166 CONST_ME_EFEITO167 = 167 CONST_ME_EFEITO168 = 168 CONST_ME_EFEITO169 = 169 CONST_ME_EFEITO170 = 170 CONST_ME_EFEITO171 = 171 CONST_ME_EFEITO172 = 172 CONST_ME_EFEITO173 = 173 CONST_ME_EFEITO174 = 174 CONST_ME_EFEITO175 = 175 CONST_ME_EFEITO176 = 176 CONST_ME_EFEITO177 = 177 CONST_ME_EFEITO178 = 178 CONST_ME_EFEITO179 = 179 CONST_ME_EFEITO180 = 180 CONST_ME_EFEITO181 = 181 CONST_ME_EFEITO182 = 182 CONST_ME_EFEITO183 = 183 CONST_ME_EFEITO184 = 184 CONST_ME_EFEITO185 = 185 CONST_ME_EFEITO186 = 186 CONST_ME_EFEITO187 = 187 CONST_ME_EFEITO188 = 188 CONST_ME_EFEITO189 = 189 CONST_ME_EFEITO190 = 190 CONST_ME_EFEITO191 = 191 CONST_ME_EFEITO192 = 192 CONST_ME_EFEITO193 = 193 CONST_ME_EFEITO194 = 194 CONST_ME_EFEITO195 = 195 CONST_ME_EFEITO196 = 196 CONST_ME_EFEITO197 = 197 CONST_ME_EFEITO198 = 198 CONST_ME_EFEITO199 = 199 CONST_ME_EFEITO200 = 200 CONST_ME_EFEITO201 = 201 CONST_ME_EFEITO202 = 202 CONST_ME_EFEITO203 = 203 CONST_ME_EFEITO204 = 204 CONST_ME_EFEITO205 = 205 CONST_ME_EFEITO206 = 206 CONST_ME_EFEITO207 = 207 CONST_ME_EFEITO208 = 208 CONST_ME_EFEITO209 = 209 CONST_ME_EFEITO210 = 210 CONST_ME_EFEITO211 = 211 CONST_ME_EFEITO212 = 212 CONST_ME_EFEITO213 = 213 CONST_ME_EFEITO214 = 214 CONST_ME_EFEITO215 = 215 CONST_ME_EFEITO216 = 216 CONST_ME_EFEITO217 = 217 CONST_ME_EFEITO218 = 218 CONST_ME_EFEITO219 = 219 CONST_ME_EFEITO220 = 220 CONST_ME_EFEITO221 = 221 CONST_ME_EFEITO222 = 222 CONST_ME_EFEITO223 = 223 CONST_ME_EFEITO224 = 224 CONST_ME_EFEITO225 = 225 CONST_ME_EFEITO226 = 226 CONST_ME_EFEITO227 = 227 CONST_ME_EFEITO228 = 228 CONST_ME_EFEITO229 = 229 CONST_ME_EFEITO230 = 230 CONST_ME_EFEITO231 = 231 CONST_ME_EFEITO232 = 232 CONST_ME_EFEITO233 = 233 CONST_ME_EFEITO234 = 234 CONST_ME_EFEITO235 = 235 CONST_ME_EFEITO236 = 236 CONST_ME_EFEITO237 = 237 CONST_ME_EFEITO238 = 238 CONST_ME_EFEITO239 = 239 CONST_ME_EFEITO240 = 240 CONST_ME_EFEITO241 = 241 CONST_ME_EFEITO242 = 242 CONST_ME_EFEITO243 = 243 CONST_ME_EFEITO244 = 244 CONST_ME_EFEITO245 = 245 CONST_ME_EFEITO246 = 246 CONST_ME_EFEITO247 = 247 CONST_ME_EFEITO248 = 248 CONST_ME_EFEITO249 = 249 CONST_ME_EFEITO250 = 250 CONST_ME_EFEITO251 = 251 CONST_ME_EFEITO252 = 252 CONST_ME_EFEITO253 = 253 CONST_ME_EFEITO254 = 254 CONST_ME_EFEITO255 = 255 CONST_ME_EFEITO256 = 256 CONST_ME_EFEITO257 = 257 CONST_ME_EFEITO258 = 258 CONST_ME_EFEITO259 = 259 CONST_ME_EFEITO260 = 260 CONST_ME_EFEITO261 = 261 CONST_ME_EFEITO262 = 262 CONST_ME_EFEITO263 = 263 CONST_ME_EFEITO264 = 264 CONST_ME_EFEITO265 = 265 CONST_ME_EFEITO266 = 266 CONST_ME_EFEITO267 = 267 CONST_ME_EFEITO268 = 268 CONST_ME_EFEITO269 = 269 CONST_ME_EFEITO270 = 270 CONST_ME_EFEITO271 = 271 CONST_ME_EFEITO272 = 272 CONST_ME_EFEITO273 = 273 CONST_ME_EFEITO274 = 274 CONST_ME_EFEITO275 = 275 CONST_ME_EFEITO276 = 276 CONST_ME_EFEITO277 = 277 CONST_ME_EFEITO278 = 278 CONST_ME_EFEITO279 = 279 CONST_ME_EFEITO280 = 280 CONST_ME_EFEITO281 = 281 CONST_ME_EFEITO282 = 282 CONST_ME_EFEITO283 = 283 CONST_ME_EFEITO284 = 284 CONST_ME_EFEITO285 = 285 CONST_ME_EFEITO286 = 286 CONST_ME_EFEITO287 = 287 CONST_ME_EFEITO288 = 288 CONST_ME_EFEITO289 = 289 CONST_ME_EFEITO290 = 290 CONST_ME_EFEITO291 = 291 CONST_ME_EFEITO292 = 292 CONST_ME_EFEITO293 = 293 CONST_ME_EFEITO294 = 294 CONST_ME_EFEITO295 = 295 CONST_ME_EFEITO296 = 296 CONST_ME_EFEITO297 = 297 CONST_ME_EFEITO298 = 298 CONST_ME_EFEITO299 = 299 CONST_ME_EFEITO300 = 300 CONST_ME_EFEITO301 = 301 CONST_ME_EFEITO302 = 302 CONST_ME_EFEITO303 = 303 CONST_ME_EFEITO304 = 304 CONST_ME_EFEITO305 = 305 CONST_ME_EFEITO306 = 306 CONST_ME_EFEITO307 = 307 CONST_ME_EFEITO308 = 308 CONST_ME_EFEITO309 = 309 CONST_ME_EFEITO310 = 310 CONST_ME_EFEITO311 = 311 CONST_ME_EFEITO312 = 312 CONST_ME_EFEITO313 = 313 CONST_ME_EFEITO314 = 314 CONST_ME_EFEITO315 = 315 CONST_ME_EFEITO316 = 316 CONST_ME_EFEITO317 = 317 CONST_ME_EFEITO318 = 318 CONST_ME_EFEITO319 = 319 CONST_ME_EFEITO320 = 320 CONST_ME_EFEITO321 = 321 CONST_ME_EFEITO322 = 322 CONST_ME_EFEITO323 = 323 CONST_ME_EFEITO324 = 324 CONST_ME_EFEITO325 = 325 CONST_ME_EFEITO326 = 326 CONST_ME_EFEITO327 = 327 CONST_ME_EFEITO328 = 328 CONST_ME_EFEITO329 = 329 CONST_ME_EFEITO330 = 330 CONST_ME_EFEITO331 = 331 CONST_ME_EFEITO332 = 332 CONST_ME_EFEITO333 = 333 CONST_ME_EFEITO334 = 334 CONST_ME_EFEITO335 = 335 CONST_ME_EFEITO336 = 336 CONST_ME_EFEITO337 = 337 CONST_ME_EFEITO338 = 338 CONST_ME_EFEITO339 = 339 CONST_ME_EFEITO340 = 340 CONST_ME_EFEITO341 = 341 CONST_ME_EFEITO342 = 342 CONST_ME_EFEITO343 = 343 CONST_ME_EFEITO344 = 344 CONST_ME_EFEITO345 = 345 CONST_ME_EFEITO346 = 346 CONST_ME_EFEITO347 = 347 CONST_ME_EFEITO348 = 348 CONST_ME_EFEITO349 = 349 CONST_ME_EFEITO350 = 350 CONST_ME_EFEITO351 = 351 CONST_ME_EFEITO352 = 352 CONST_ME_EFEITO353 = 353 CONST_ME_EFEITO354 = 354 CONST_ME_EFEITO355 = 355 CONST_ME_EFEITO356 = 356 CONST_ME_EFEITO357 = 357 CONST_ME_EFEITO358 = 358 CONST_ME_EFEITO359 = 359 CONST_ME_EFEITO360 = 360 CONST_ME_EFEITO361 = 361 CONST_ME_EFEITO362 = 362 CONST_ME_EFEITO363 = 363 CONST_ME_EFEITO364 = 364 CONST_ME_EFEITO365 = 365 CONST_ME_EFEITO366 = 366 CONST_ME_EFEITO367 = 367 CONST_ME_EFEITO368 = 368 CONST_ME_EFEITO369 = 369 CONST_ME_EFEITO370 = 370 CONST_ME_EFEITO371 = 371 CONST_ME_EFEITO372 = 372 CONST_ME_EFEITO373 = 373 CONST_ME_EFEITO374 = 374 CONST_ME_EFEITO375 = 375 CONST_ME_EFEITO376 = 376 CONST_ME_EFEITO377 = 377 CONST_ME_EFEITO378 = 378 CONST_ME_EFEITO379 = 379 CONST_ME_EFEITO380 = 380 CONST_ME_EFEITO381 = 381 CONST_ME_EFEITO382 = 382 CONST_ME_EFEITO383 = 383 CONST_ME_EFEITO384 = 384 CONST_ME_EFEITO385 = 385 CONST_ME_EFEITO386 = 386 CONST_ME_EFEITO387 = 387 CONST_ME_EFEITO388 = 388 CONST_ME_EFEITO389 = 389 CONST_ME_EFEITO390 = 390 CONST_ME_EFEITO391 = 391 CONST_ME_EFEITO392 = 392 CONST_ME_EFEITO393 = 393 CONST_ME_EFEITO394 = 394 CONST_ME_EFEITO395 = 395 CONST_ME_EFEITO396 = 396 CONST_ME_EFEITO397 = 397 CONST_ME_EFEITO398 = 398 CONST_ME_EFEITO399 = 399 CONST_ME_EFEITO400 = 400 CONST_ME_EFEITO401 = 401 CONST_ME_EFEITO402 = 402 CONST_ME_EFEITO403 = 403 CONST_ME_EFEITO404 = 404 CONST_ME_EFEITO405 = 405 CONST_ME_EFEITO406 = 406 CONST_ME_EFEITO407 = 407 CONST_ME_EFEITO408 = 408 CONST_ME_EFEITO409 = 409 CONST_ME_EFEITO410 = 410 CONST_ME_EFEITO411 = 411 CONST_ME_EFEITO412 = 412 CONST_ME_EFEITO413 = 413 CONST_ME_EFEITO415 = 415 CONST_ME_EFEITO416 = 416 CONST_ME_EFEITO417 = 417 CONST_ME_EFEITO418 = 418 CONST_ME_EFEITO419 = 419 CONST_ME_EFEITO420 = 420 CONST_ME_EFEITO421 = 421 CONST_ME_EFEITO422 = 422 CONST_ME_EFEITO423 = 423 CONST_ME_EFEITO424 = 424 CONST_ME_EFEITO425 = 425 CONST_ME_EFEITO426 = 426 CONST_ME_EFEITO427 = 427 CONST_ME_EFEITO428 = 428 CONST_ME_EFEITO429 = 429 CONST_ME_EFEITO430 = 430 CONST_ME_EFEITO431 = 431 CONST_ME_EFEITO432 = 432 CONST_ME_EFEITO433 = 433 CONST_ME_EFEITO434 = 434 CONST_ME_EFEITO435 = 435 CONST_ME_EFEITO436 = 436 CONST_ME_EFEITO437 = 437 CONST_ME_EFEITO438 = 438 CONST_ME_EFEITO439 = 439 CONST_ME_EFEITO440 = 440 CONST_ME_EFEITO441 = 441 CONST_ME_EFEITO442 = 442 CONST_ME_EFEITO443 = 443 CONST_ME_EFEITO444 = 444 CONST_ME_EFEITO445 = 445 CONST_ME_EFEITO446 = 446 CONST_ME_EFEITO447 = 447 CONST_ME_EFEITO448 = 448 CONST_ME_EFEITO449 = 449 CONST_ME_EFEITO450 = 450 CONST_ME_EFEITO451 = 451 CONST_ME_EFEITO452 = 452 CONST_ME_EFEITO453 = 453 CONST_ME_EFEITO454 = 454 CONST_ME_EFEITO455 = 455 CONST_ME_EFEITO456 = 456 CONST_ME_EFEITO457 = 457 CONST_ME_EFEITO458 = 458 CONST_ME_EFEITO459 = 459 CONST_ME_EFEITO460 = 460 CONST_ME_EFEITO461 = 461 CONST_ME_EFEITO462 = 462 CONST_ME_EFEITO463 = 463 CONST_ME_EFEITO464 = 464 CONST_ME_EFEITO465 = 465 CONST_ME_EFEITO466 = 466 CONST_ME_EFEITO467 = 467 CONST_ME_EFEITO468 = 468 CONST_ME_EFEITO469 = 469 CONST_ME_EFEITO470 = 470 CONST_ME_EFEITO471 = 471 CONST_ME_EFEITO472 = 472 CONST_ME_EFEITO473 = 473 CONST_ME_EFEITO474 = 474 CONST_ME_EFEITO475 = 475 CONST_ME_EFEITO476 = 476 CONST_ME_EFEITO477 = 477 CONST_ME_EFEITO478 = 478 CONST_ME_EFEITO479 = 479 CONST_ME_EFEITO480 = 480 CONST_ME_EFEITO481 = 481 CONST_ME_EFEITO482 = 482 CONST_ME_EFEITO483 = 483 CONST_ME_EFEITO484 = 484 CONST_ME_EFEITO485 = 485 CONST_ME_EFEITO486 = 486 CONST_ME_EFEITO487 = 487 CONST_ME_EFEITO488 = 488 CONST_ME_EFEITO489 = 489 CONST_ME_EFEITO490 = 490 CONST_ME_EFEITO491 = 491 CONST_ME_EFEITO492 = 492 CONST_ME_EFEITO493 = 493 CONST_ME_EFEITO494 = 494 CONST_ME_EFEITO495 = 495 CONST_ME_EFEITO496 = 496 CONST_ME_EFEITO497 = 497 CONST_ME_EFEITO498 = 498 CONST_ME_EFEITO499 = 499 CONST_ME_EFEITO500 = 500 CONST_ME_EFEITO501 = 501 CONST_ME_EFEITO502 = 502 CONST_ME_EFEITO503 = 503 CONST_ME_EFEITO504 = 504 CONST_ME_EFEITO505 = 505 CONST_ME_EFEITO506 = 506 CONST_ME_EFEITO507 = 507 CONST_ME_EFEITO508 = 508 CONST_ME_EFEITO509 = 509 CONST_ME_EFEITO510 = 510 CONST_ME_EFEITO511 = 511 CONST_ME_NONE = 1500 CONST_ME_LAST = CONST_ME_EFEITO511 CONST_ANI_SPEAR = 0 CONST_ANI_BOLT = 1 CONST_ANI_ARROW = 2 CONST_ANI_FIRE = 3 CONST_ANI_ENERGY = 4 CONST_ANI_POISONARROW = 5 CONST_ANI_BURSTARROW = 6 CONST_ANI_THROWINGSTAR = 7 CONST_ANI_THROWINGKNIFE = 8 CONST_ANI_SMALLSTONE = 9 CONST_ANI_DEATH = 10 CONST_ANI_LARGEROCK = 11 CONST_ANI_SNOWBALL = 12 CONST_ANI_POWERBOLT = 13 CONST_ANI_POISON = 14 CONST_ANI_INFERNALBOLT = 15 CONST_ANI_HUNTINGSPEAR = 16 CONST_ANI_ENCHANTEDSPEAR = 17 CONST_ANI_REDSTAR = 18 CONST_ANI_GREENSTAR = 19 CONST_ANI_ROYALSPEAR = 20 CONST_ANI_SNIPERARROW = 21 CONST_ANI_ONYXARROW = 22 CONST_ANI_PIERCINGBOLT = 23 CONST_ANI_WHIRLWINDSWORD = 24 CONST_ANI_WHIRLWINDAXE = 25 CONST_ANI_WHIRLWINDCLUB = 26 CONST_ANI_ETHEREALSPEAR = 27 CONST_ANI_ICE = 28 CONST_ANI_EARTH = 29 CONST_ANI_HOLY = 30 CONST_ANI_SUDDENDEATH = 31 CONST_ANI_FLASHARROW = 32 CONST_ANI_FLAMMINGARROW = 33 CONST_ANI_SHIVERARROW = 34 CONST_ANI_ENERGYBALL = 35 CONST_ANI_SMALLICE = 36 CONST_ANI_SMALLHOLY = 37 CONST_ANI_SMALLEARTH = 38 CONST_ANI_EARTHARROW = 39 CONST_ANI_EXPLOSION = 40 CONST_ANI_CAKE = 41 CONST_ANI_EFEITO42 = 42 CONST_ANI_EFEITO43 = 43 CONST_ANI_EFEITO44 = 44 CONST_ANI_EFEITO45 = 45 CONST_ANI_EFEITO46 = 46 CONST_ANI_EFEITO47 = 47 CONST_ANI_EFEITO48 = 48 CONST_ANI_EFEITO49 = 49 CONST_ANI_EFEITO50 = 50 CONST_ANI_EFEITO51 = 51 CONST_ANI_EFEITO52 = 52 CONST_ANI_EFEITO53 = 53 CONST_ANI_EFEITO54 = 54 CONST_ANI_EFEITO55 = 55 CONST_ANI_EFEITO56 = 56 CONST_ANI_EFEITO57 = 57 CONST_ANI_EFEITO58 = 58 CONST_ANI_EFEITO59 = 59 CONST_ANI_EFEITO60 = 60 CONST_ANI_EFEITO61 = 61 CONST_ANI_EFEITO62 = 62 CONST_ANI_EFEITO63 = 63 CONST_ANI_EFEITO64 = 64 CONST_ANI_EFEITO65 = 65 CONST_ANI_EFEITO66 = 66 CONST_ANI_EFEITO67 = 67 CONST_ANI_EFEITO68 = 68 CONST_ANI_EFEITO69 = 69 CONST_ANI_EFEITO70 = 70 CONST_ANI_EFEITO71 = 71 CONST_ANI_EFEITO72 = 72 CONST_ANI_EFEITO73 = 73 CONST_ANI_EFEITO74 = 74 CONST_ANI_EFEITO75 = 75 CONST_ANI_EFEITO76 = 76 CONST_ANI_EFEITO77 = 77 CONST_ANI_EFEITO78 = 78 CONST_ANI_EFEITO79 = 79 CONST_ANI_EFEITO80 = 80 CONST_ANI_EFEITO81 = 81 CONST_ANI_EFEITO82 = 82 CONST_ANI_EFEITO83 = 83 CONST_ANI_EFEITO84 = 84 CONST_ANI_EFEITO85 = 85 CONST_ANI_EFEITO86 = 86 CONST_ANI_EFEITO87 = 87 CONST_ANI_EFEITO88 = 88 CONST_ANI_EFEITO89 = 89 CONST_ANI_EFEITO90 = 90 CONST_ANI_EFEITO91 = 91 CONST_ANI_EFEITO92 = 92 CONST_ANI_EFEITO93 = 93 CONST_ANI_EFEITO94 = 94 CONST_ANI_EFEITO95 = 95 CONST_ANI_EFEITO96 = 96 CONST_ANI_EFEITO97 = 97 CONST_ANI_EFEITO98 = 98 CONST_ANI_EFEITO99 = 99 CONST_ANI_EFEITO100 = 100 CONST_ANI_EFEITO101 = 101 CONST_ANI_EFEITO102 = 102 CONST_ANI_EFEITO103 = 103 CONST_ANI_EFEITO104 = 104 CONST_ANI_EFEITO105 = 105 CONST_ANI_EFEITO106 = 106 CONST_ANI_EFEITO107 = 107 CONST_ANI_EFEITO108 = 108 CONST_ANI_EFEITO109 = 109 CONST_ANI_EFEITO110 = 110 CONST_ANI_EFEITO111 = 111 CONST_ANI_EFEITO112 = 112 CONST_ANI_EFEITO113 = 113 CONST_ANI_EFEITO114 = 114 CONST_ANI_EFEITO115 = 115 CONST_ANI_EFEITO116 = 116 CONST_ANI_EFEITO117 = 117 CONST_ANI_EFEITO118 = 118 CONST_ANI_EFEITO119 = 119 CONST_ANI_EFEITO120 = 120 CONST_ANI_EFEITO121 = 121 CONST_ANI_EFEITO122 = 122 CONST_ANI_EFEITO123 = 123 CONST_ANI_EFEITO124 = 124 CONST_ANI_EFEITO125 = 125 CONST_ANI_EFEITO126 = 126 CONST_ANI_EFEITO127 = 127 CONST_ANI_EFEITO128 = 128 CONST_ANI_EFEITO129 = 129 CONST_ANI_EFEITO130 = 130 CONST_ANI_EFEITO131 = 131 CONST_ANI_EFEITO132 = 132 CONST_ANI_EFEITO133 = 133 CONST_ANI_EFEITO134 = 134 CONST_ANI_EFEITO135 = 135 CONST_ANI_EFEITO136 = 136 CONST_ANI_EFEITO137 = 137 CONST_ANI_EFEITO138 = 138 CONST_ANI_EFEITO139 = 139 CONST_ANI_EFEITO140 = 140 CONST_ANI_EFEITO141 = 141 CONST_ANI_EFEITO142 = 142 CONST_ANI_EFEITO143 = 143 CONST_ANI_EFEITO144 = 144 CONST_ANI_EFEITO145 = 145 CONST_ANI_EFEITO146 = 146 CONST_ANI_EFEITO147 = 147 CONST_ANI_EFEITO148 = 148 CONST_ANI_EFEITO149 = 149 CONST_ANI_EFEITO150 = 150 CONST_ANI_EFEITO151 = 151 CONST_ANI_SEMFIM = 65534 CONST_ANI_WEAPONTYPE = 254 CONST_ANI_NONE = 65534 CONST_ANI_LAST = CONST_ANI_SEMFIM TALKTYPE_FIRST = 1 TALKTYPE_SAY = TALKTYPE_FIRST TALKTYPE_WHISPER = 2 TALKTYPE_YELL = 3 TALKTYPE_PRIVATE_PN = 4 TALKTYPE_PRIVATE_NP = 5 TALKTYPE_PRIVATE = 6 TALKTYPE_CHANNEL_Y = 7 TALKTYPE_CHANNEL_W = 8 TALKTYPE_RVR_CHANNEL = 9 TALKTYPE_RVR_ANSWER = 10 TALKTYPE_RVR_CONTINUE = 11 TALKTYPE_BROADCAST = 12 TALKTYPE_CHANNEL_RN = 13 TALKTYPE_PRIVATE_RED = 14 TALKTYPE_CHANNEL_O = 15 TALKTYPE_CHANNEL_RA = 17 TALKTYPE_MONSTER = 19 TALKTYPE_MONSTER_YELL = 20 TALKTYPE_LAST = TALKTYPE_MONSTER_YELL TALKTYPE_TYPES = { ["say"] = TALKTYPE_SAY, ["whisper"] = TALKTYPE_WHISPER, ["yell"] = TALKTYPE_YELL, ["private-playernpc"] = TALKTYPE_PRIVATE_PN, ["private-npcplayer"] = TALKTYPE_PRIVATE_NP, ["private"] = TALKTYPE_PRIVATE, ["channel-yellow"] = TALKTYPE_CHANNEL_Y, ["channel-white"] = TALKTYPE_CHANNEL_W, ["rvr-channel"] = TALKTYPE_RVR_CHANNEL, ["rvr-answer"] = TALKTYPE_RVR_ANSWER, ["rvr-continue"] = TALKTYPE_RVR_CONTINUE, ["broadcast"] = TALKTYPE_BROADCAST, ["channel-red"] = TALKTYPE_CHANNEL_RN, ["channel-orange"] = TALKTYPE_CHANNEL_O, ["channel-redanonymous"] = TALKTYPE_CHANNEL_RA, ["monster"] = TALKTYPE_MONSTER, ["monster-yell"] = TALKTYPE_MONSTER_YELL } MESSAGE_FIRST = 18 MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST MESSAGE_EVENT_ORANGE = 19 MESSAGE_STATUS_CONSOLE_ORANGE = 20 MESSAGE_STATUS_WARNING = 21 MESSAGE_EVENT_ADVANCE = 22 MESSAGE_EVENT_DEFAULT = 23 MESSAGE_STATUS_DEFAULT = 24 MESSAGE_INFO_DESCR = 25 MESSAGE_STATUS_SMALL = 26 MESSAGE_STATUS_CONSOLE_BLUE = 27 MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_TYPES = { ["advance"] = MESSAGE_EVENT_ADVANCE, ["event"] = MESSAGE_EVENT_DEFAULT, ["white"] = MESSAGE_EVENT_DEFAULT, ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE, ["info"] = MESSAGE_INFO_DESCR, ["green"] = MESSAGE_INFO_DESCR, ["small"] = MESSAGE_STATUS_SMALL, ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE, ["red"] = MESSAGE_STATUS_CONSOLE_RED, ["warning"] = MESSAGE_STATUS_WARNING, ["status"] = MESSAGE_STATUS_DEFAULT } COLOR_BLACK = 0 COLOR_BLUE = 5 COLOR_GREEN = 18 COLOR_TEAL = 35 COLOR_LIGHTGREEN = 66 COLOR_DARKBROWN = 78 COLOR_LIGHTBLUE = 89 COLOR_DARKPURPLE = 112 COLOR_BROWN = 120 COLOR_GREY = 129 COLOR_DARKRED = 144 COLOR_DARKPINK = 152 COLOR_PURPLE = 154 COLOR_DARKORANGE = 156 COLOR_RED = 180 COLOR_PINK = 190 COLOR_ORANGE = 192 COLOR_DARKYELLOW = 205 COLOR_YELLOW = 210 COLOR_WHITE = 215 COLOR_NONE = 255 MAPMARK_TICK = 0 MAPMARK_QUESTION = 1 MAPMARK_EXCLAMATION = 2 MAPMARK_STAR = 3 MAPMARK_CROSS = 4 MAPMARK_TEMPLE = 5 MAPMARK_KISS = 6 MAPMARK_SHOVEL = 7 MAPMARK_SWORD = 8 MAPMARK_FLAG = 9 MAPMARK_LOCK = 10 MAPMARK_BAG = 11 MAPMARK_SKULL = 12 MAPMARK_DOLLAR = 13 MAPMARK_REDNORTH = 14 MAPMARK_REDSOUTH = 15 MAPMARK_REDEAST = 16 MAPMARK_REDWEST = 17 MAPMARK_GREENNORTH = 18 MAPMARK_GREENSOUTH = 19 ITEM_TYPE_DEPOT = 1 ITEM_TYPE_MAILBOX = 2 ITEM_TYPE_TRASHHOLDER = 3 ITEM_TYPE_CONTAINER = 4 ITEM_TYPE_DOOR = 5 ITEM_TYPE_MAGICFIELD = 6 ITEM_TYPE_TELEPORT = 7 ITEM_TYPE_BED = 8 ITEM_TYPE_LEVELDOOR = 9 CONST_PROP_BLOCKSOLID = 0 CONST_PROP_HASHEIGHT = 1 CONST_PROP_BLOCKPROJECTILE = 2 CONST_PROP_BLOCKPATHFIND = 3 CONST_PROP_ISVERTICAL = 4 CONST_PROP_ISHORIZONTAL = 5 CONST_PROP_MOVEABLE = 6 CONST_PROP_BLOCKINGANDNOTMOVEABLE = 7 CONST_PROP_SUPPORTHANGABLE = 8 MANAGER_NONE = 0 MANAGER_NEW = 1 MANAGER_ACCOUNT = 2 MANAGER_NAMELOCK = 3 PLAYERSEX_FEMALE = 0 PLAYERSEX_MALE = 1 PLAYERSEX_GAMEMASTER = 2 PLAYERLOSS_EXPERIENCE = 0 PLAYERLOSS_MANA = 1 PLAYERLOSS_SKILLS = 2 PLAYERLOSS_CONTAINERS = 3 PLAYERLOSS_ITEMS = 4 STATSCHANGE_HEALTHGAIN = 0 STATSCHANGE_HEALTHLOSS = 1 STATSCHANGE_MANAGAIN = 2 STATSCHANGE_MANALOSS = 3 SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8 SKILL_NAMES = { [SKILL_FIST] = "fist fighting", [SKILL_CLUB] = "club fighting", [SKILL_SWORD] = "sword fighting", [SKILL_AXE] = "axe fighting", [SKILL_DISTANCE] = "distance fighting", [SKILL_SHIELD] = "shielding", [SKILL_FISHING] = "fishing", [SKILL__LEVEL] = "level", [SKILL__MAGLEVEL] = "magic" } SKILL_IDS = { ["fist"] = SKILL_FIST, ["club"] = SKILL_CLUB, ["sword"] = SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["dist"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD, ["shield"] = SKILL_SHIELD, ["fishing"] = SKILL_FISHING, ["fish"] = SKILL_FISHING, ["level"] = SKILL__LEVEL, ["magic"] = SKILL__MAGLEVEL } GUILDLEVEL_MEMBER = 1 GUILDLEVEL_VICE = 2 GUILDLEVEL_LEADER = 3 SKULL_NONE = 0 SKULL_YELLOW = 1 SKULL_GREEN = 2 SKULL_WHITE = 3 SKULL_RED = 4 SKULL_BLACK = 5 SKULL_LAST = SKULL_BLACK SHIELD_NONE = 0 SHIELD_WHITEYELLOW = 1 SHIELD_WHITEBLUE = 2 SHIELD_BLUE = 3 SHIELD_YELLOW = 4 SHIELD_BLUE_SHAREDEXP = 5 SHIELD_YELLOW_SHAREDEXP = 6 SHIELD_BLUE_NOSHAREDEXP_BLINK = 7 SHIELD_YELLOW_NOSHAREDEXP_BLINK = 8 SHIELD_BLUE_NOSHAREDEXP = 9 SHIELD_YELLOW_NOSHAREDEXP = 10 SHIELD_LAST = SHIELD_YELLOW_NOSHAREDEXP WORLDTYPE_NO_PVP = 1 WORLDTYPE_PVP = 2 WORLDTYPE_PVP_ENFORCED = 3 DATABASE_ENGINE_NONE = 0 DATABASE_ENGINE_MYSQL = 1 DATABASE_ENGINE_SQLITE = 2 DATABASE_ENGINE_POSTGRESQL = 3 DATABASE_ENGINE_ODBC = 4 GAMESTATE_STARTUP = 1 GAMESTATE_INIT = 2 GAMESTATE_NORMAL = 3 GAMESTATE_MAINTAIN = 4 GAMESTATE_CLOSED = 5 GAMESTATE_CLOSING = 6 GAMESTATE_SHUTDOWN = 7 RELOAD_ACTIONS = 1 RELOAD_CHAT = 2 RELOAD_CONFIG = 3 RELOAD_CREATUREEVENTS = 4 RELOAD_GAMESERVERS = 5 RELOAD_GLOBALEVENTS = 6 RELOAD_GROUPS = 7 RELOAD_HIGHSCORES = 8 RELOAD_HOUSEPRICES = 9 RELOAD_ITEMS = 10 RELOAD_MONSTERS = 11 RELOAD_MOVEEVENTS = 12 RELOAD_NPCS = 13 RELOAD_OUTFITS = 14 RELOAD_QUESTS = 15 RELOAD_RAIDS = 16 RELOAD_SPELLS = 17 RELOAD_STAGES = 18 RELOAD_TALKACTIONS = 19 RELOAD_VOCATIONS = 20 RELOAD_WEAPONS = 21 RELOAD_MODS = 22 RELOAD_ALL = 23 BAN_NONE = 0 BAN_IP = 1 BAN_PLAYER = 2 BAN_ACCOUNT = 3 BAN_NOTATION = 4 BAN_STATEMENT = 5 PLAYERBAN_NONE = 0 PLAYERBAN_REPORT = 1 PLAYERBAN_LOCK = 2 PLAYERBAN_BANISHMENT = 3 CHANNEL_GUILD = 0 CHANNEL_PARTY = 1 CHANNEL_RVR = 3 CHANNEL_HELP = 9 CHANNEL_DEFAULT = 0xFFFE CHANNEL_PRIVATE = 0xFFFF STACKPOS_GROUND = 0 STACKPOS_TOP_CREATURE = 253 STACKPOS_TOP_FIELD = 254 STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255 WEAPON_NONE = 0 WEAPON_SWORD = 1 WEAPON_CLUB = 2 WEAPON_AXE = 3 WEAPON_SHIELD = 4 WEAPON_DIST = 5 WEAPON_WAND = 6 WEAPON_AMMO = 7 WEAPON_FIST = 8 ACTION_NOTATION = 0 ACTION_NAMEREPORT = 1 ACTION_BANISHMENT = 2 ACTION_BANREPORT = 3 ACTION_BANFINAL = 4 ACTION_BANREPORTFINAL = 5 ACTION_STATEMENT = 6 ACTION_DELETION = 7 ACTION_NAMELOCK = 8 ACTION_BANLOCK = 9 ACTION_BANLOCKFINAL = 10 ACTION_PLACEHOLDER = 11 ITEM_GOLD_COIN = 2148 ITEM_PLATINUM_COIN = 2152 ITEM_CRYSTAL_COIN = 2160 ITEM_FISH = 2667 ITEM_WORM = 3976 ITEM_MECHANICAL_FISH = 10224 ITEM_NAIL = 8309 ITEM_MECHANICAL_FISHING_ROD = 10223 ITEM_GREEN_PERCH = 7159 ITEM_RAINBOW_TROUT = 7158 ITEM_NORTHERN_PIKE = 2669 ITEM_PARCEL = 2595 ITEM_LABEL = 2599 ITEM_GLOWING_SWITCH = 11060 RETURNVALUE_DONTSHOWMESSAGE = 0 RETURNVALUE_NOERROR = 1 RETURNVALUE_NOTPOSSIBLE = 2 RETURNVALUE_NOTENOUGHROOM = 3 RETURNVALUE_PLAYERISPZLOCKED = 4 RETURNVALUE_PLAYERISNOTINVITED = 5 RETURNVALUE_CANNOTTHROW = 6 RETURNVALUE_THEREISNOWAY = 7 RETURNVALUE_DESTINATIONOUTOFREACH = 8 RETURNVALUE_CREATUREBLOCK = 9 RETURNVALUE_NOTMOVEABLE = 10 RETURNVALUE_DROPTWOHANDEDITEM = 11 RETURNVALUE_BOTHHANDSNEEDTOBEFREE = 12 RETURNVALUE_CANONLYUSEONEWEAPON = 13 RETURNVALUE_NEEDEXCHANGE = 14 RETURNVALUE_CANNOTBEDRESSED = 15 RETURNVALUE_PUTTHISOBJECTINYOURHAND = 16 RETURNVALUE_PUTTHISOBJECTINBOTHHANDS = 17 RETURNVALUE_TOOFARAWAY = 18 RETURNVALUE_FIRSTGODOWNSTAIRS = 19 RETURNVALUE_FIRSTGOUPSTAIRS = 20 RETURNVALUE_CONTAINERNOTENOUGHROOM = 21 RETURNVALUE_NOTENOUGHCAPACITY = 22 RETURNVALUE_CANNOTPICKUP = 23 RETURNVALUE_THISISIMPOSSIBLE = 24 RETURNVALUE_DEPOTISFULL = 25 RETURNVALUE_CREATUREDOESNOTEXIST = 26 RETURNVALUE_CANNOTUSETHISOBJECT = 27 RETURNVALUE_PLAYERWITHTHISNAMEISNOTONLINE = 28 RETURNVALUE_NOTREQUIREDLEVELTOUSERUNE = 29 RETURNVALUE_YOUAREALREADYTRADING = 30 RETURNVALUE_THISPLAYERISALREADYTRADING = 31 RETURNVALUE_YOUMAYNOTLOGOUTDURINGAFIGHT = 32 RETURNVALUE_DIRECTPLAYERSHOOT = 33 RETURNVALUE_NOTENOUGHLEVEL = 34 RETURNVALUE_NOTENOUGHMAGICLEVEL = 35 RETURNVALUE_NOTENOUGHMANA = 36 RETURNVALUE_NOTENOUGHSOUL = 37 RETURNVALUE_YOUAREEXHAUSTED = 38 RETURNVALUE_PLAYERISNOTREACHABLE = 39 RETURNVALUE_CANONLYUSETHISRUNEONCREATURES = 40 RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE = 41 RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER = 42 RETURNVALUE_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE = 43 RETURNVALUE_YOUMAYNOTATTACKAPERSONWHILEINPROTECTIONZONE = 44 RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE = 45 RETURNVALUE_YOUCANONLYUSEITONCREATURES = 46 RETURNVALUE_CREATUREISNOTREACHABLE = 47 RETURNVALUE_TURNSECUREMODETOATTACKUNMARKEDPLAYERS = 48 RETURNVALUE_YOUNEEDPREMIUMACCOUNT = 49 RETURNVALUE_YOUNEEDTOLEARNTHISSPELL = 50 RETURNVALUE_YOURVOCATIONCANNOTUSETHISSPELL = 51 RETURNVALUE_YOUNEEDAWEAPONTOUSETHISSPELL = 52 RETURNVALUE_PLAYERISPZLOCKEDLEAVEPVPZONE = 53 RETURNVALUE_PLAYERISPZLOCKEDENTERPVPZONE = 54 RETURNVALUE_ACTIONNOTPERMITTEDINANOPVPZONE = 55 RETURNVALUE_YOUCANNOTLOGOUTHERE = 56 RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL = 57 RETURNVALUE_CANNOTCONJUREITEMHERE = 58 RETURNVALUE_YOUNEEDTOSPLITYOURSPEARS = 59 RETURNVALUE_NAMEISTOOAMBIGUOUS = 60 RETURNVALUE_CANONLYUSEONESHIELD = 61 RETURNVALUE_YOUARENOTTHEOWNER = 62 RETURNVALUE_YOUMAYNOTCASTAREAONBLACKSKULL = 63 RETURNVALUE_TILEISFULL = 64 CONTAINER_POSITION = 0xFFFF EMPTY_STORAGE = -1 EMPTY_RESULT = -1 ITEMCOUNT_MAX = 100 AUTOID_PLAYERS = 0x10000000 AUTOID_MONSTERS = 0x40000000 AUTOID_NPCS = 0x80000000 PLAYERFLAG_CANNOTUSECOMBAT = 0 PLAYERFLAG_CANNOTATTACKPLAYER = 1 PLAYERFLAG_CANNOTATTACKMONSTER = 2 PLAYERFLAG_CANNOTBEATTACKED = 3 PLAYERFLAG_CANCONVINCEALL = 4 PLAYERFLAG_CANSUMMONALL = 5 PLAYERFLAG_CANILLUSIONALL = 6 PLAYERFLAG_CANSENSEINVISIBILITY = 7 PLAYERFLAG_IGNOREDBYMONSTERS = 8 PLAYERFLAG_NOTGAININFIGHT = 9 PLAYERFLAG_HASINFINITEMANA = 10 PLAYERFLAG_HASINFINITESOUL = 11 PLAYERFLAG_HASNOEXHAUSTION = 12 PLAYERFLAG_CANNOTUSESPELLS = 13 PLAYERFLAG_CANNOTPICKUPITEM = 14 PLAYERFLAG_CANALWAYSLOGIN = 15 PLAYERFLAG_CANBROADCAST = 16 PLAYERFLAG_CANEDITHOUSES = 17 PLAYERFLAG_CANNOTBEBANNED = 18 PLAYERFLAG_CANNOTBEPUSHED = 19 PLAYERFLAG_HASINFINITECAPACITY = 20 PLAYERFLAG_CANPUSHALLCREATURES = 21 PLAYERFLAG_CANTALKREDPRIVATE = 22 PLAYERFLAG_CANTALKREDCHANNEL = 23 PLAYERFLAG_TALKORANGEHELPCHANNEL = 24 PLAYERFLAG_NOTGAINEXPERIENCE = 25 PLAYERFLAG_NOTGAINMANA = 26 PLAYERFLAG_NOTGAINHEALTH = 27 PLAYERFLAG_NOTGAINSKILL = 28 PLAYERFLAG_SETMAXSPEED = 29 PLAYERFLAG_SPECIALVIP = 30 PLAYERFLAG_NOTGENERATELOOT = 31 PLAYERFLAG_CANTALKREDCHANNELANONYMOUS = 32 PLAYERFLAG_IGNOREPROTECTIONZONE = 33 PLAYERFLAG_IGNORESPELLCHECK = 34 PLAYERFLAG_IGNOREWEAPONCHECK = 35 PLAYERFLAG_CANNOTBEMUTED = 36 PLAYERFLAG_ISALWAYSPREMIUM = 37 PLAYERFLAG_CANANSWERRULEVIOLATIONS = 38 PLAYERFLAG_39 = 39 -- ignore PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION = 40 PLAYERFLAG_HASINFINITESTAMINA = 41 PLAYERFLAG_CANNOTMOVEITEMS = 42 PLAYERFLAG_CANNOTMOVECREATURES = 43 PLAYERFLAG_CANREPORTBUGS = 44 PLAYERFLAG_45 = 45 -- ignore PLAYERFLAG_CANNOTBESEEN = 46 PLAYERCUSTOMFLAG_ALLOWIDLE = 0 PLAYERCUSTOMFLAG_CANSEEPOSITION = 1 PLAYERCUSTOMFLAG_CANSEEITEMDETAILS = 2 PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS = 3 PLAYERCUSTOMFLAG_NOTSEARCHABLE = 4 PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES = 5 PLAYERCUSTOMFLAG_CANTHROWANYWHERE = 6 PLAYERCUSTOMFLAG_CANPUSHALLITEMS = 7 PLAYERCUSTOMFLAG_CANMOVEANYWHERE = 8 PLAYERCUSTOMFLAG_CANMOVEFROMFAR = 9 PLAYERCUSTOMFLAG_CANLOGINMULTIPLECHARACTERS = 10 PLAYERCUSTOMFLAG_HASFULLLIGHT = 11 PLAYERCUSTOMFLAG_CANLOGOUTANYTIME = 12 PLAYERCUSTOMFLAG_HIDELEVEL = 13 PLAYERCUSTOMFLAG_ISPROTECTED = 14 PLAYERCUSTOMFLAG_ISIMMUNE = 15 PLAYERCUSTOMFLAG_NOTGAINSKULL = 16 PLAYERCUSTOMFLAG_NOTGAINUNJUSTIFIED = 17 PLAYERCUSTOMFLAG_HIDELEVEL = 18 PLAYERCUSTOMFLAG_IGNOREPACIFICATION = 19 PLAYERCUSTOMFLAG_CANSTAIRHOP = 20 PLAYERCUSTOMFLAG_CANTURNHOP = 21 PLAYERCUSTOMFLAG_IGNOREHOUSERENT = 22 PLAYERCUSTOMFLAG_CANWEARALLADDONS = 23 maleOutfits = {128, 129, 130, 131, 132, 133, 134, 143, 144, 145, 146, 151, 152, 153, 154, 251, 268, 273, 278, 289, 325, 328, 335} femaleOutfits = {136, 137, 138, 139, 140, 141, 142, 147, 148, 149, 150, 155, 156, 157, 158, 252, 269, 270, 279, 288, 324, 329, 336} doors = {[1209] = 1211, [1210] = 1211, [1212] = 1214, [1213] = 1214, [1219] = 1220, [1221] = 1222, [1231] = 1233, [1232] = 1233, [1234] = 1236, [1235] = 1236, [1237] = 1238, [1239] = 1240, [1249] = 1251, [1250] = 1251, [1252] = 1254, [1253] = 1254, [1539] = 1540, [1541] = 1542, [3535] = 3537, [3536] = 3537, [3538] = 3539, [3544] = 3546, [3545] = 3546, [3547] = 3548, [4913] = 4915, [4914] = 4915, [4916] = 4918, [4917] = 4918, [5082] = 5083, [5084] = 5085, [5098] = 5100, [5099] = 5100, [5101] = 5102, [5107] = 5109, [5108] = 5109, [5110] = 5111, [5116] = 5118, [5117] = 5118, [5119] = 5120, [5125] = 5127, [5126] = 5127, [5128] = 5129, [5134] = 5136, [5135] = 5136, [5137] = 5139, [5138] = 5139, [5140] = 5142, [5141] = 5142, [5143] = 5145, [5144] = 5145, [5278] = 5280, [5279] = 5280, [5281] = 5283, [5282] = 5283, [5284] = 5285, [5286] = 5287, [5515] = 5516, [5517] = 5518, [5732] = 5734, [5733] = 5734, [5735] = 5737, [5736] = 5737, [6192] = 6194, [6193] = 6194, [6195] = 6197, [6196] = 6197, [6198] = 6199, [6200] = 6201, [6249] = 6251, [6250] = 6251, [6252] = 6254, [6253] = 6254, [6255] = 6256, [6257] = 6258, [6795] = 6796, [6797] = 6798, [6799] = 6800, [6801] = 6802, [6891] = 6893, [6892] = 6893, [6894] = 6895, [6900] = 6902, [6901] = 6902, [6903] = 6904, [7033] = 7035, [7034] = 7035, [7036] = 7037, [7042] = 7044, [7043] = 7044, [7045] = 7046, [7054] = 7055, [7056] = 7057, [8541] = 8543, [8542] = 8543, [8544] = 8546, [8545] = 8546, [8547] = 8548, [8549] = 8550, [9165] = 9167, [9166] = 9167, [9168] = 9170, [9169] = 9170, [9171] = 9172, [9173] = 9174, [9267] = 9269, [9268] = 9269, [9270] = 9272, [9271] = 9272, [9273] = 9274, [9275] = 9276, [10276] = 10277, [10274] = 10275, [10268] = 10270, [10269] = 10270, [10271] = 10273, [10272] = 10273, [10471] = 10472, [10480] = 10481, [10477] = 10479, [10478] = 10479, [10468] = 10470, [10469] = 10470, [10774] = 10776, [10775] = 10776, [10779] = 10780, [10781] = 10782, [10783] = 10785, [10784] = 10785, [10788] = 10789, [10790] = 10791} closingDoors = {1224, 1226, 1228, 1230, 1242, 1244, 1246, 1248, 1256, 1258, 1260, 1262, 3541, 3543, 3550, 3552, 5104, 5106, 5113, 5115, 5122, 5124, 5131, 5133, 5289, 5291, 5293, 5295, 6203, 6205, 6207, 6209, 6260, 6262, 6264, 6266, 6897, 6899, 6906, 6908, 7039, 7041, 7048, 7050, 8552, 8554, 8556, 8558, 9176, 9178, 9180, 9182, 9278, 9280, 9282, 9284, 10279, 10281, 10283, 10285, 10474, 10476, 10483, 10485, 10780, 10782, 10789, 10791} verticalOpenDoors = {1211, 1220, 1224, 1228, 1233, 1238, 1242, 1246, 1251, 1256, 1260, 1540, 3546, 3548, 3550, 3552, 4915, 5083, 5109, 5111, 5113, 5115, 5127, 5129, 5131, 5133, 5142, 5145, 5283, 5285, 5289, 5293, 5516, 5737, 5749, 6194, 6199, 6203, 6207, 6251, 6256, 6260, 6264, 6798, 6802, 6902, 6904, 6906, 6908, 7044, 7046, 7048, 7050, 7055, 8543, 8548, 8552, 8556, 9167, 9172, 9269, 9274, 9278, 9282, 10270, 10275, 10279, 10283, 10479, 10481, 10483, 10485, 10789, 10791} horizontalOpenDoors = {1214, 1222, 1226, 1230, 1236, 1240, 1244, 1248, 1254, 1258, 1262, 1542, 3537, 3539, 3541, 3543, 4918, 5085, 5100, 5102, 5104, 5106, 5118, 5120, 5122, 5124, 5136, 5139, 5280, 5287, 5291, 5295, 5518, 5734, 5746, 6197, 6201, 6205, 6209, 6254, 6258, 6262, 6266, 6796, 6800, 6893, 6895, 6897, 6899, 7035, 7037, 7039, 7041, 7057, 8546, 8550, 8554, 8558, 9170, 9174, 9272, 9276, 9280, 9284, 10273, 10277, 10281, 10285, 10470, 10472, 10474, 10476, 10780, 10782} specialDoors = {1223, 1225, 1241, 1243, 1255, 1257, 3542, 3551, 5105, 5114, 5123, 5132, 5288, 5290, 5745, 5748, 6202, 6204, 6259, 6261, 6898, 6907, 7040, 7049, 8551, 8553, 9175, 9177, 9277, 9279, 10278, 10280, 10475, 10484, 10781, 10790} keys = {2086, 2087, 2088, 2089, 2090, 2091, 2092, 10032, 10091} enchantableGems = {2147, 2146, 2149, 2150} enchantableItems = {2383, 7383, 7384, 7406, 7402, 2429, 2430, 7389, 7380, 2454, 2423, 2445, 7415, 7392, 2391, 2544, 8905} enchantingAltars = { {7504, 7505, 7506, 7507}, {7508, 7509, 7510, 7511}, {7516, 7517, 7518, 7519}, {7512, 7513, 7514, 7515} } enchantedGems = {7760, 7759, 7761, 7762} enchantedItems = { [2383] = {7744, 7763, 7854, 7869}, [7383] = {7745, 7764, 7855, 7870}, [7384] = {7746, 7765, 7856, 7871}, [7406] = {7747, 7766, 7857, 7872}, [7402] = {7748, 7767, 7858, 7873}, [2429] = {7749, 7768, 7859, 7874}, [2430] = {7750, 7769, 7860, 7875}, [7389] = {7751, 7770, 7861, 7876}, [7380] = {7752, 7771, 7862, 7877}, [2454] = {7753, 7772, 7863, 7878}, [2423] = {7754, 7773, 7864, 7879}, [2445] = {7755, 7774, 7865, 7880}, [7415] = {7756, 7775, 7866, 7881}, [7392] = {7757, 7776, 7867, 7882}, [2391] = {7758, 7777, 7868, 7883}, [2544] = {7840, 7839, 7850, 7838}, [8905] = {8906, 8907, 8909, 8908} }