Ir para conteúdo
  • Cadastre-se

Wise

Membro
  • Total de itens

    1090
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Tudo que Wise postou

  1. Sim, exatamente. Zombie storage seria quando ele estivesse na condição, já human storage, a que ele retorna ao "controle" do outfit do personagem. Foi apenas uma descrição, relaxa, as funções não se alteraram e tudo coincide com os seus códigos ;]
  2. Acredito que seria: function getNots(cid) local accountId = getAccountNumberByPlayerName(cid) local nots = db.storeQuery("SELECT `qntnot` FROM `accounts` WHERE `id` = " .. accountId) if (nots == nil or nots < 0) then nots = 0 end return nots end
  3. Eis a questão, meu caro @Orochi Elf. Acredito que isso pode variar.
  4. 0100001101101111011001000110010101110011001000000110010001100101011101100110010101101100011011110111000001100101011001000010000001100010011110010010000001010011011101010110100101100011011010010110010001100101 Eu observei que muitos desconhecem a New Library v. 1.2, feita por (um grande amigo e programador/scripter) xWhiteWolf. Então resolvi fazer o uso de algumas de suas funções para tentar expandir o reconhecimento da existência delas, que podem ser muito úteis em diversas situações. Bom, "loop effect" é uma função com uma condição de teste verdadeira que nunca termina (loop) sobre um
  5. zombielever.lua (data/actions/scripts): local t = { item = {2173, 1}, -- {itemID, quantidade) stor = {12128, 12129} -- {zombie storage, human storage} } function onUse(cid, item, fromPos, toPos) if getPlayerStorageValue(cid, t.stor[1]) > 0 or getPlayerStorageValue(cid, t.stor[2]) > 0 then doPlayerAddItem(cid, t.item[1], t.item[2]) setPlayerStorageValue(cid, t.stor[1], -1) setPlayerStorageValue(cid, t.stor[2], -1) doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMag
  6. Contribuir é dar auxílio, ajuda..correto? Então pense, tudo o que você fizer com o intuito de compartilhar seu conhecimento com as outras pessoas do fórum, você vai estar contribuindo. Eu não sou nenhum "Lord" da programação, não. Sou um eterno aprendiz. Como o ditado já diz, "a prática leva a perfeição". Mas o que antecede a prática? O estudo das ações, não? Por isso, foque nesse devasto conteúdo de programação que está disponível tanto no fórum, quanto na internet, e estude..estude e estude. Você vai se aperfeiçoando com o tempo, conforme o seu tempo. @Thayam / @Beeny As
  7. Não ataca? Poste o código da spell, se possível. E que distro você usa? Qual versão?
  8. Muito obrigado, Daniel. Fico lisonjeado em ler isso. Obrigado, meu caro.
  9. Porquê a compilação não deu certo? Qual(is) o(s) erro(s)? Se você estiver utilizando o Dev-C++, verifique se fez as atualizações disponíveis para ele, há uma possibilidade desse ser o problema (se não houver bugs na source).
  10. Use uma munição que contenha esse efeito de shoot type (CONST_ANI_SHIVERARROW). Se você no caso não tiver o item com esse efeito, basta adicionar então em items.xml, como os membros disseram. Exemplo do uso no infernal bolt: <item id="6529" article="an" name="infernal bolt" plural="infernal bolts"> <attribute key="weight" value="90" /> <attribute key="slotType" value="ammo" /> <attribute key="attack" value="43" /> <attribute key="maxHitChance" value="90" /> <attribute key="weaponType" value="ammunition" /> <attribute key="ammoT
  11. Valeu, amigo. @macenamt2 As linguagens usadas no Open Tibia são basicamente Lua, C, C++, Sql, XML. Aqui no fórum, há áreas em que você pode aprender sobre scripting e programação Open Tibia com vários tutoriais. Dê uma olhada nelas (e qualquer dúvida que tiver, crie um tópico na área referente ao suporte em questão): Tutoriais de Scripting Tutoriais de Programação
  12. Não foi minha intenção prejudicar ninguém com a imagem, amigo. Clique em Ignorar assinaturas de Suicide, em um X logo abaixo, do lado direito.
  13. Olá, caros tibianos. Como vão? Bom, hoje eu inicio o meu estágio no TibiaKing e antes de falar um pouco sobre mim, quero deixar bem claro que enquanto eu pertencer a essa comunidade, me esforçarei ao máximo para contribuir com o conteúdo do fórum. Fazendo parte da equipe ou não, sempre vou ajudar com o que eu puder. Primeiramente, o meu nome é Renan e eu tenho 17 anos. Estudo algumas linguagens de programação e conto com um grande apoio do meu caro amigo xWhiteWolf, sempre que preciso. Eu pretendo me tornar um programador; e com todo o conhecimento que eu obter nessa minha jornada, tenho co
  14. Um detalhe ou outro ficou um tanto quanto confuso, então me avise se eu não entendi muito bem o que você quis dizer. Se por exemplo, todos os rings habilitassem determinada spell, então você poderia fazer uma checagem do slot antes do callback da mesma: if getPlayerSlotItem(cid, CONST_SLOT_RING).uid < 1 then doPlayerSendCancel(cid, "You can't cast the spell without using a ring.") return false end Se forem spells pra itens distintos, você pode fazer o uso de storages. Criando movements com callback de onEquip e onDeEquip que atribuam ao player um valor dessas storages (qu
  15. Disponha.. Sim, mas acredito que não vai solucionar. Pelo que observei no script, estando em fly/ride/surf, o summon (pokemon) é removido. Então continuaria deslogando. De qualquer forma, seria: function onLogout(cid) if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, 'You cannot logout with your pokemon outside the pokeball.') return false end return true end
  16. Adicione os creature events, é o que determinará um player como sendo um "zombie". Já a outra parte, você decide como vai querer que o player retorne a forma "humana". Daí fica a seu critério se será por uma action (item/alavanca) ou por um movement (portal/tile); basta adicionar o script referente a sua escolha.
  17. Com base nos códigos do membro, a alavanca ficaria: zombielever.lua function onUse(cid, item, frompos, item2, topos) local stor = {12128, 12129} -- {storage zombie, storage humana} if getPlayerStorageValue(cid, stor[1]) > 0 or getPlayerStorageValue(cid, stor[2]) > 0 then setPlayerStorageValue(cid, stor[1], -1) setPlayerStorageValue(cid, stor[2], -1) doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(fromPos, CONST_ME_TELEPORT) else doPlayerSendCancel(cid,
  18. donateaccess.lua (data/talkactions/scripts): function onSay(cid, words, param, channel) local stor = 12345 -- storage local p = string.explode(param, ",") local pid, ts, tn = getPlayerByNameWildcard(p[1]), tostring(p[1]), tonumber(p[2]) if (param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Enter the name of the player and the number of days you want to give access to it. Thus: /donate Player, 30') end if (not ts or not tn or p[3]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Inval
  19. Embora não saibamos qual distro você usa e que versão é a dele, deve funcionar sim. Caso acuse alguma função como nula, poste uma screenshot aqui. A adição dos scripts é simples (códigos do Adriano SwaTT): zombieplayer.lua (data/creaturescripts/scripts): local morto = {lookType = 48} -- lookType local cemitery = {x=177, y=168, z=7} -- Coordenada do Cemitério local stor = {12128, 12129} -- {Storage Salva que é Fantasma, Storage de Controle} local condition_outfit = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition_outfit, CONDITION_PARAM_OUTFIT, true) setCondit
  20. As storages estão de acordo com o seu sistema, a checagem delas corretas. Estranho. Que tal fazer com que os players só possam fazer logout se estiverem com a pokeball fora do slot da mesma? (Imagino que eles não possam retirar a pokeball enquanto estão em surf/ride/fly) Assim resolveria esse problema.. Pelo que vi em alguns servidores de pokemon tibia, o slot da pokeball é o que seria o slot da boots. Então: pokelogout.lua function onLogout(cid) if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid ~= 0 then doPlayerSendCancel(cid, 'You need to remove your pokeball from the slot
  21. @narazaky Amigo, eu não preciso que me explique o que eu já sei. Se você colocou pra retornar true antes do fim do callback, então de que adiantou fazer a checagem? Não vou ficar dando aulinha. Se está tão certo dessa sua "lógica", pega e testa você mesmo. Quem sabe tirando a prova, não aprende melhor com seus erros.
  22. Se eu estou incluso nesses "outros", preste bem atenção. Não é porquê eu não te respondi mais que eu desisti de te ajudar ou que eu não sei como te ajudar, tenho compromissos e não sou obrigado a ficar atrás de você. Se quer que alguém faça algo pra você, então ao menos tenha mais respeito. O script do membro estava correto.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo