Ir para conteúdo

Wise

Membro
  • Registro em

  • Última visita

Tudo que Wise postou

  1. Refiz: Action script: function onUse(cid) stor = 7500 -- vip storage ccoins = 1000 -- amount of crystal coins if getPlayerStorageValue(cid, stor) < 1 then setPlayerStorageValue(cid, stor, 1) doPlayerAddItem(cid, 2160, ccoins) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Agora você tem acesso a VIP 1.') else doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você ja fez essa quest.') end return true end Movement script: function onStepIn(cid, item, pos, fromPos) stor = 7500 -- vip storage if getPlayerStorageValue(cid, stor) < 1 then doTeleportThing(cid, fromPos) doSendMagicEffect(fromPos, CONST_ME_POFF) doPlayerSendCancel(cid, 'Você não é VIP 1, faça a quest VIP Acess ao lado dos Teleports.') end doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) return true end Basta adicionar o actionid ou uniqueid (qualquer que seja o que você estipulou na tag em movements.xml) ao tile.
  2. Você está certo, é mais simples e correto assim ;] @Thiago Virtuoso local generator = { ["Castle Generator I"] = {brother = "Castle Generator II"}, ["Castle Generator II"] = {brother = "Castle Generator I"} } local generatorArea = { fromPos = {x = 1130, y = 1751, z = 7}, toPos = {x = 1134, y = 1813, z = 7} } local pos = { {x= 1050, y= 1813, z= 7}, {x= 1050, y= 1812, z= 7}, {x= 1050, y= 1811, z= 7}, {x= 1050, y= 1810, z= 7}, {x= 1050, y= 1809, z= 7}, {x= 1047, y= 1809, z= 7}, {x= 1048, y= 1809, z= 7}, {x= 1047, y= 1809, z= 7}, {x= 1050, y= 1752, z= 7}, {x= 1050, y= 1753, z= 7}, {x= 1050, y= 1754, z= 7}, {x= 1050, y= 1755, z= 7}, {x= 1047, y= 1755, z= 7}, {x= 1048, y= 1755, z= 7}, {x= 1049, y= 1755, z= 7}, {x= 1050, y= 1755, z= 7} } function onDeath(cid) if generator[getCreatureName(cid)] then firstm = generator[getCreatureName(cid)] secondm = getCreatureByName(firstm.brother) if isMonster(secondm) then if isInRange(getCreaturePosition(secondm), generatorArea.fromPos, generatorArea.toPos) then return true end else items = {9533, 9485} -- items list to remove for p = 1, #pos do for i = 1, #items do item = getTileItemById(pos[p], items[i]) if item.uid > 0 then doRemoveItem(item.uid) end end end doBroadcastMessage('Os geradores primários foram destruídos, acesso aos geradores reservas liberado!') end end return true end Altere a tag do creature event para death e adicione a seguinte tag ao(s) arquivo(s) XML do(s) monster(s) que for(em) executar esse script ao morrer(em) (o(s) monster(s) configurado(s) na tabela), com o nome estipulado ao creature event na tag (creaturescripts.xml) do mesmo: <script> <event name="EventName"/> </script>
  3. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Infraestrutura OTServ → Tutoriais e Dicas de Infraestrutura" Para: "OTServ → Suporte OTServ → Suporte de Infraestrutura"
  4. Amigo, o título do seu tópico estava inadequado, sem oferecer nenhuma ideia do que ele se trata, dificulta o trabalho de outros membros à te ajudarem. Além de que a área também era a incorreta. Na próxima vez, crie um tópico com um título que descreva o assunto dele e não se esqueça de verificar qual a seção mais adequada para postá-lo, basta ler as descrições das seções. •2.3 - Use títulos e ícones adequados: Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Servidores Derivados" Para: "OTServ → Suporte OTServ → Suporte de Infraestrutura"
  5. Erro de atenção, já corrigi, teste.
  6. Tente: local generator = { ["Castle Generator I"] = {brother = "Castle Generator II"}, ["Castle Generator II"] = {brother = "Castle Generator I"} } local generatorArea = { fromPos = {x = 1130, y = 1751, z = 7}, toPos = {x = 1134, y = 1813, z = 7} } local pos = { {x= 1050, y= 1813, z= 7}, {x= 1050, y= 1812, z= 7}, {x= 1050, y= 1811, z= 7}, {x= 1050, y= 1810, z= 7}, {x= 1050, y= 1809, z= 7}, {x= 1047, y= 1809, z= 7}, {x= 1048, y= 1809, z= 7}, {x= 1047, y= 1809, z= 7}, {x= 1050, y= 1752, z= 7}, {x= 1050, y= 1753, z= 7}, {x= 1050, y= 1754, z= 7}, {x= 1050, y= 1755, z= 7}, {x= 1047, y= 1755, z= 7}, {x= 1048, y= 1755, z= 7}, {x= 1049, y= 1755, z= 7}, {x= 1050, y= 1755, z= 7} } function onKill(cid, target, lastHit) if generator[getCreatureName(target)] then firstm = generator[getCreatureName(target)] secondm = getCreatureByName(firstm.brother) if isMonster(secondm) then if isInRange(getCreaturePosition(secondm), generatorArea.fromPos, generatorArea.toPos) then return true end else items = {9533, 9485} -- items list to remove for p = 1, #pos do for i = 1, #items do item = getTileItemById(pos[p], items[i]) if item.uid > 0 then doRemoveItem(item.uid) end end end doBroadcastMessage('Os geradores primários foram destruídos, acesso aos geradores reservas liberado!') end end return true end
  7. Não foi nada, amigo. Disponha haha ;]
  8. @Samukinha Amigo, você não informou o seu motivo sobre ter criado o tópico. O título também estava inadequado, sem oferecer nenhuma ideia do que ele se trata, isso dificulta o trabalho de outros membros à te ajudarem. Além de que a área também era a incorreta. Da próxima vez, crie um tópico com um título que descreva o assunto dele e, se possível, informe cada detalhe do motivo de você tê-lo criado. E não se esqueça de verificar qual a seção mais adequada para postá-lo, basta ler as descrições das seções. •2.3 - Use títulos e ícones adequados: Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Downloads → OTServs 8.6x" Para: "OTServ → Suporte OTServ → Suporte de Scripts"
  9. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    @imarlonjr O que você perguntou não convém com o assunto do tópico, aqui se trata de um pedido de um NPC. Crie um tópico para a sua própria dúvida, amigo.
  10. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de Infraestrutura"
  11. Wise postou uma resposta no tópico em Mapping Show Off
    Um trabalho admirável, como sempre. Viajei na imagem. Galera, saca só as texturas..
  12. @avalax São spells, faça normalmente. Crie os arquivos Lua (adicionado os scripts a eles) em data\spells\scripts e estipule as tags em spells.xml (data\spells). @Storm Night A propósito, os códigos do membro atenderam a seu pedido? Se sim, por favor clique no botão para que automaticamente o post dele fique destacado como sendo a mesma e o tópico fique com o prefixo "Resolvido" no início do título.
  13. Está certo, fui eu quem confundi. Você quer que eles não "emperrem". Tente: local holes = {468, 481, 483, 7932} local holeId = {294, 369, 370, 383, 392, 408, 409, 427, 428, 430, 462, 469, 470, 482, 484, 485, 489, 924, 3135, 3136} function onUse(cid, item, fromPosition, itemEx, toPosition) -- Shovel if isInArray(holes, itemEx.itemid) == true then doTransformItem(itemEx.uid, itemEx.itemid + 1) doDecayItem(itemEx.uid) return false -- Rope elseif toPosition.x == CONTAINER_POSITION or toPosition.x == 0 and toPosition.y == 0 and toPosition.z == 0 then return false end local groundTile = getThingfromPos(toPosition) if groundTile.itemid == 384 or groundTile.itemid == 418 or groundTile.itemid == 8278 then doTeleportThing(cid, {x = toPosition.x, y = toPosition.y + 1, z = toPosition.z - 1}, false) elseif isInArray(holeId, itemEx.itemid) == true then local hole = getThingfromPos({x = toPosition.x, y = toPosition.y, z = toPosition.z + 1, stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE}) if hole.itemid > 0 then doTeleportThing(hole.uid, {x = toPosition.x, y = toPosition.y + 1, z = toPosition.z}, false) else doPlayerSendCancel(cid, "Sorry, not possible.") end return false -- Pick elseif (itemEx.uid <= 65535 or itemEx.actionid > 0) and (itemEx.itemid == 354 or itemEx.itemid == 355 or itemEx.itemid == 9024 or itemEx.itemid == 9025) then doTransformItem(itemEx.uid, 392) doDecayItem(itemEx.uid) return true elseif itemEx.uid == 60001 then doTeleportThing(cid, {x=329, y=772, z=10}) doSendMagicEffect({x=329, y=772, z=10},10) return true -- Machete elseif itemEx.itemid == 2782 then doTransformItem(itemEx.uid, 2781) doDecayItem(itemEx.uid) return true elseif itemEx.itemid == 1499 then doRemoveItem(itemEx.uid) return true -- Scythe elseif itemEx.itemid == 2739 then doTransformItem(itemEx.uid, 2737) doCreateItem(2694, 1, toPosition) doDecayItem(itemEx.uid) return true end return destroyItem(cid, itemEx, toPosition) end
  14. Amigo, isso não convém com o assunto do seu tópico em questão. Se quiser fazer outro pedido, crie outro tópico com as informações específicas do mesmo.
  15. Certo. Estranho que o item esteja prevenindo o drop sem a tag e sem creature event. Já que você quer adicionar essa mesma função à outro item, tente adicionando a tag de preventDrop com value 1 junto às tags do item desejado em items.xml: <attribute key="preventDrop" value="1" /> Se não obtiver sucesso, avise e informe o ID/slot que ele ocupa, que eu faço um creature event para o seu item em questão.
  16. Se não há a tag que previne o drop de items, então provavelmente ele tem um creature event em função disso. Procure os creature events death e preparedeath nas tags em creaturescripts.xml (data\creaturescripts), em seguida veja os arquivos e confira se algum deles possui o uso do amulet of loss (e informe aqui).
  17. Os erros indicam que o arquivo ou diretório do mesmo não existem e ele não pôde ser carregado/aberto. Enfim, provavelmente o nome do arquivo na tag ou o nome no arquivo Lua, estão incompatíveis. Iguale-os, fim.
  18. Na verdade, não existe. O callback é onLogout (ou seja, acontece ao executar log out/deslogar/se retirar de um character), por ter retornado false ao callback na estrutura de controle, o creatureid não consegue deslogar. E a propósito, não registra creature event, adicione apenas a tag do mesmo.
  19. Poste o script do arquivo PointsSystem.lua localizado em data/creaturescripts/scripts
  20. function onLogin(cid) OfflineTraining_initialize(cid) if(OfflineTraining_isTraining(cid)) then OfflineTraining_turnOffTraining(cid) OfflineTraining_addTrainedSkills(cid, math.min(OfflineTraining_getTime(cid), OfflineTraining_getOfflineTime(cid))) OfflineTraining_setTime(cid, math.abs(OfflineTraining_getTime(cid) - OfflineTraining_getOfflineTime(cid))) OfflineTraining_onEndTraining(cid) local left = ((OfflineTraining_getTime(cid) / 60) * 60 * 60) left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)} doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Voce ainda tem '.. left.hour ..'h and '..left.minutes..'min de Treinamento.') else local lefts = ((OfflineTraining_getTime(cid) / 60) * 60 * 60) OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) + OfflineTraining_getOfflineTime(cid)) lefts = {hour = math.floor(lefts/3600), minutes = math.ceil((lefts % 3600)/60)} doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Voce tem '.. lefts.hour ..'h and '..lefts.minutes..'min de Treinamento.') end return true end
  21. Amigo, storage é o armazenamento de um valor feito em um banco/base de dados ou em uniqueids.
  22. Não entendi seu pedido, explique melhor.
  23. Não é esse o action script dos items que você citou (10511, 10513, 10515). Procure pelos IDs deles em seu actions.xml e vai saber a partir da tag, qual o diretório do arquivo correto. Depois, informe os códigos aqui.
  24. Tente: removefrags.lua (data\talkactions\scripts): function onSay(cid) price = 500 -- crystal coins time = 5 -- seconds to logout if getPlayerFrags(cid) > 0 then if not getCreatureCondition(cid, CONDITION_INFIGHT) or not isPlayerPzLocked(cid) then if doPlayerRemoveMoney(cid, price * 10000) then doCreatureSetNoMove(cid, true) db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = ".. getPlayerGUID(cid) ..")") doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) addEvent(doRemoveCreature, time * 1000, cid, true) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You will be logged out within '..time..' seconds to complete the removal of your frags.') else doPlayerSendCancel(cid, 'You need '..price..' crystal coins to remove your frags.') end else doPlayerSendCancel(cid, 'You can\'t remove your frags when you\'re in battle or in fight.') end else doPlayerSendCancel(cid, 'You don\'t have any frag.') end return true end Tag - talkactions.xml (data\talkactions): <talkaction words="!removefrags" event="script" value="removefrags.lua"/> removefrags.lua (data\actions\scripts): function onUse(cid, item, fromPos, toPos) time = 5 -- seconds to logout if getPlayerFrags(cid) > 0 then if not getCreatureCondition(cid, CONDITION_INFIGHT) or not isPlayerPzLocked(cid) then doCreatureSetNoMove(cid, true) db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = ".. getPlayerGUID(cid) ..")") doSendMagicEffect(toPos, CONST_ME_STUN) addEvent(doRemoveCreature, time * 1000, cid, true) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You will be logged out within '..time..' seconds to complete the removal of your frags.') doRemoveItem(item.uid) else doPlayerSendCancel(cid, 'You can\'t remove your frags when you\'re in battle or in fight.') end else doPlayerSendCancel(cid, 'You don\'t have any frag.') end return true end Tag - actions.xml (data\actions): <action itemid="ITEMID" script="removefrags.lua"/> PS: Já que há uma modificação nos dados (via database) do player, ele precisa fazer logout para atualizar. Então fiz pra que ele precise estar sem battle/pz locked para usar a talkaction/item, além de que ficará imóvel até ser "removido" do jogo.
  25. As variáveis representam, respectivamente: tempo de duração do red skull, tempo de duração do black skull, e (se não me engano) o tempo limite dos frags/kills (dia/semana/mês), ambos em segundos.

Informação Importante

Confirmação de Termo