Postado Fevereiro 28, 2016 9 anos 6 minutos atrás, Wakon disse: Tente usar esse XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Tobi" script="data/npc/scripts/AkatsukiSystem.lua" walkinterval="2000" speed="0" floorchange="0"> <health now="100" max="100"/> <look type="489" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Huum, entao voce quer se tornar um membro da {akatsuki}?"/> <parameter key="message_farewell" value="Ate mais!" /> <parameter key="message_walkaway" value="Ate mais!" /> </parameters> </npc> Crio o NPC Mas deu +1 erro kkk esse akie [28/02/2016 01:08:51] [Error - Npc interface] [28/02/2016 01:08:51] data/npc/scripts/AkatsukiSystem.lua:onCreatureSay [28/02/2016 01:08:51] Description: [28/02/2016 01:08:51] data/npc/scripts/AkatsukiSystem.lua:80: attempt to index local 'voc' (a nil value) [28/02/2016 01:08:51] stack traceback: [28/02/2016 01:08:51] data/npc/scripts/AkatsukiSystem.lua:80: in function 'callback' [28/02/2016 01:08:51] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay' [28/02/2016 01:08:51] data/npc/scripts/AkatsukiSystem.lua:11: in function <data/npc/scripts/AkatsukiSystem.lua:11> [28/02/2016 01:08:51] data/npc/scripts/AkatsukiSystem.lua:11: in function <data/npc/scripts/AkatsukiSystem.lua:11> Esse e meu Akatsukisystem -- Script Akatsuki System Advance 1.0 -- -- By RigBy -- -- tibiaking.com -- 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 local level = 1 -- Level preciso pra entra para akatsuki local itemid = 5943 -- id do coração local quantidade = 6 -- quantos hearts e preciso local bonushp = 300000 -- quanto de bonus de life vai ganha local bonusmp = 30000 -- quanto de bonus de mana vai ganha local experience = 20 -- Experience rates no caso 2x a experiencia do seu servidor. local config = { --[Vocation] = ( Nova Vocation, New Outfit ) [11] = { 12, 537}, [23] = { 24, 556}, [32] = { 33, 542}, [41] = { 42, 540}, [59] = { 60, 518}, [77] = { 78, 541}, [97] = { 98, 543}, [115] = { 116, 557}, [134] = { 135, 547}, [176] = { 177, 558}, [195] = { 196, 553}, [207] = { 208, 555}, [214] = { 215, 559}, [227] = { 228, 552}, [303] = { 304, 550}, [306] = { 307, 549}, [403] = { 404, 554}, [504] = { 505, 560}, [520] = { 521, 537}, [527] = { 528, 561}, [534] = { 535, 537}, [541] = { 541, 533}, [627] = { 628, 531}, [632] = { 633, 546}, } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'akatsuki') then if getPlayerVocation(cid) ~= config then if getPlayerStorageValue(cid, 89745) == -1 then if getPlayerLevel(cid) >= level then selfSay('Kkkk. Para ser da Membro da Akatsuki, você terá que matar alguns Shinobi, até mesmo seus amigos. Tem certeza que quer ser da Akatsuki ?', cid) talkState[talkUser] = 1 else selfSay('Você nem sabe o nível que é pra entrar na akatsuki, suma da minha frente seu idiota.', cid) end else selfSay('Você já faz parte da Akatsuki!', cid) end else selfSay('Não preciso de você agora!', cid) end end if talkState[talkUser] == 1 and msgcontains(msg, 'yes') then selfSay('KKkkkkkkkkkkkk, acha que é tão simples ? Para ser da Akatsuki você terá que me trazer '..quantidade..' {coraçao} para provar que merece ser da Akatsuki.', cid) talkState[talkUser] = 2 end if talkState[talkUser] == 2 and msgcontains(msg, 'coraçao') then if getPlayerItemCount(cid, 5943) >= 6 then local voc = config[getPlayerVocation(cid)] doPlayerSetVocation(cid, voc[1]) local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonushp) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonusmp) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerRemoveItem(cid, 5943, 6) doCreatureAddMana(cid, getCreatureMaxMana(cid)) setPlayerStorageValue(cid,89745,6) doPlayerSetExperienceRate(cid, experience) selfSay('Parabéns agora você faz parte da Akatsuki.', cid) talkState[talkUser] = 0 else selfSay('Não adianta me enganar, você não tem '..quantidade..' corações, vai atrás, e só volte com eles.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Fevereiro 28, 2016 9 anos por zPerseu (veja o histórico de edições)
Postado Fevereiro 28, 2016 9 anos Tente trocar o LUA por esse: Spoiler -- Script Akatsuki System Advance 1.0 -- -- By RigBy -- -- tibiaking.com -- 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 local level = 1 -- Level preciso pra entra para akatsuki local itemid = 5943 -- id do coração local quantidade = 6 -- quantos hearts e preciso local bonushp = 300000 -- quanto de bonus de life vai ganha local bonusmp = 30000 -- quanto de bonus de mana vai ganha local experience = 20 -- Experience rates no caso 2x a experiencia do seu servidor. local config = { --[Vocation] = ( Nova Vocation, New Outfit ) [1] = {5, 549}, [13] = {14, 550}, [25] = {26, 555}, [34] = {35, 551}, [50] = {51, 563}, [70] = {71, 556}, } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'akatsuki') then if getPlayerVocation(cid) ~= config then if getPlayerStorageValue(cid, 89745) == -1 then if getPlayerLevel(cid) >= level then selfSay('Kkkk. Para ser da Membro da Akatsuki, você terá que matar alguns Shinobi, até mesmo seus amigos. Tem certeza que quer ser da Akatsuki ?', cid) talkState[talkUser] = 1 else selfSay('Você nem sabe o nível que é pra entrar na akatsuki, suma da minha frente seu idiota.', cid) end else selfSay('Você já faz parte da Akatsuki!', cid) end else selfSay('Não preciso de você agora!', cid) end end if talkState[talkUser] == 1 and msgcontains(msg, 'yes') then selfSay('KKkkkkkkkkkkkk, acha que é tão simples ? Para ser da Akatsuki você terá que me trazer '..quantidade..' {coraçao} para provar que merece ser da Akatsuki.', cid) talkState[talkUser] = 2 end local voc = config[getPlayerVocation(cid)] if talkState[talkUser] == 2 and msgcontains(msg, 'coraçao') then if voc then if getPlayerItemCount(cid, 5943) >= 6 then doPlayerSetVocation(cid, voc[1]) local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonushp) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonusmp) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerRemoveItem(cid, 5943, 6) doCreatureAddMana(cid, getCreatureMaxMana(cid)) setPlayerStorageValue(cid,89745,6) doPlayerSetExperienceRate(cid, experience) selfSay('Parabéns agora você faz parte da Akatsuki.', cid) talkState[talkUser] = 0 else selfSay('Não adianta me enganar, você não tem '..quantidade..' corações, vai atrás, e só volte com eles.', cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) ➥ Regras | Seções OTServ | Seções BOT
Postado Fevereiro 28, 2016 9 anos 18 minutos atrás, Wakon disse: Tente trocar o LUA por esse: Ocultar conteúdo -- Script Akatsuki System Advance 1.0 -- -- By RigBy -- -- tibiaking.com -- 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 local level = 1 -- Level preciso pra entra para akatsuki local itemid = 5943 -- id do coração local quantidade = 6 -- quantos hearts e preciso local bonushp = 300000 -- quanto de bonus de life vai ganha local bonusmp = 30000 -- quanto de bonus de mana vai ganha local experience = 20 -- Experience rates no caso 2x a experiencia do seu servidor. local config = { --[Vocation] = ( Nova Vocation, New Outfit ) [1] = {5, 549}, [13] = {14, 550}, [25] = {26, 555}, [34] = {35, 551}, [50] = {51, 563}, [70] = {71, 556}, } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'akatsuki') then if getPlayerVocation(cid) ~= config then if getPlayerStorageValue(cid, 89745) == -1 then if getPlayerLevel(cid) >= level then selfSay('Kkkk. Para ser da Membro da Akatsuki, você terá que matar alguns Shinobi, até mesmo seus amigos. Tem certeza que quer ser da Akatsuki ?', cid) talkState[talkUser] = 1 else selfSay('Você nem sabe o nível que é pra entrar na akatsuki, suma da minha frente seu idiota.', cid) end else selfSay('Você já faz parte da Akatsuki!', cid) end else selfSay('Não preciso de você agora!', cid) end end if talkState[talkUser] == 1 and msgcontains(msg, 'yes') then selfSay('KKkkkkkkkkkkkk, acha que é tão simples ? Para ser da Akatsuki você terá que me trazer '..quantidade..' {coraçao} para provar que merece ser da Akatsuki.', cid) talkState[talkUser] = 2 end local voc = config[getPlayerVocation(cid)] if talkState[talkUser] == 2 and msgcontains(msg, 'coraçao') then if voc then if getPlayerItemCount(cid, 5943) >= 6 then doPlayerSetVocation(cid, voc[1]) local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonushp) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonusmp) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerRemoveItem(cid, 5943, 6) doCreatureAddMana(cid, getCreatureMaxMana(cid)) setPlayerStorageValue(cid,89745,6) doPlayerSetExperienceRate(cid, experience) selfSay('Parabéns agora você faz parte da Akatsuki.', cid) talkState[talkUser] = 0 else selfSay('Não adianta me enganar, você não tem '..quantidade..' corações, vai atrás, e só volte com eles.', cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) agora nao consigo virar akatsuki de uma olha fazendo favor... esse e meu id do naruto oque eu quero por [1] = { 1, 2, 66, 208}, [2] = { 50, 3, 91, 208}, [3] = { 75, 4, 18, 208}, [4] = { 100, 5, 31, 208}, [5] = { 125, 6, 92, 208}, [6] = { 150, 7, 40, 208}, [7] = { 175, 8, 305, 208}, [8] = { 200, 9, 320, 208}, [9] = { 225, 10, 179, 208}, [10] = { 250, 11, 397, 208}, [11] = { 275, 12, 124, 208}, e esse e o da akatsuki tem algo de errado? --[Vocation] = ( Nova Vocation, New Outfit ) [1] = {5, 549}, [13] = {14, 550}, [25] = {26, 555}, [34] = {35, 551}, [50] = {51, 563}, [70] = {71, 556}, eu tenho que colocar todas as do naruto tipo [1] = {2, 537}, [2] = {3, 537}, [3] = {4, 537}, [4] = {5, 537}, [5] = {6, 537}, [6] = {7, 537}, [7] = {8, 537}, [8] = {9, 537}, [9] = {10, 537}, [10] = {11, 537}, [11] = {12, 537}, tem que fazer isso com tds as vocs? ou eu posso colocar [11] = {12, 537}, Ultima Transformaçao do Naruto ou eu tenho que colocar tudo?do exemplo acima? Malz por encher seu saco
Postado Fevereiro 28, 2016 9 anos Funciona conforme está explicado no script: [1] = {5, 549}, [13] = {14, 550}, [25] = {26, 555}, [34] = {35, 551}, [50] = {51, 563}, [70] = {71, 556}, } Vermelho - Vocação do personagem. Azul - Vocação para qual irá se transformar. Verde - Novo outfit do personagem. ➥ Regras | Seções OTServ | Seções BOT
Postado Fevereiro 28, 2016 9 anos Mano, primeiro de tudo: --[Vocation] = ( Nova Vocation, New Outfit ) [1] = {5, 549}, [1] = { 1, 2, 66, 208}, Será que tem algo errado ? xD depois de [1] que é a vocação que pode ser promovida a akatsuki, note que {1, 1} tem 1 virgula que separá cada função uma é para a nova vocação e outra é para a Outfit, quando você colocou { 1, 2, 66, 208}, tem mais de 1 virgula, e o script entendeu como mais de uma função, mais de uma função que ele foi feita para realizar! Vou explicar de uma forma engraçada! A função é {1, 225} que é > {vocação nova, Outfit} o script foi feita nessa base, e quando você colocou { 1, 2, 66, 208}, O script falou, " Pera ae, isso ae ta errado, tem mais de uma função na promoção da account! Vou notificar ele na distro que ta errada! " O certo é [1] = { 1, 208}, que é {vocação nova, Outfit} Não sei se vai entender o que estou querendo dizer! E respondendo outra pergunta sua: [1] = { 5, 549}, -- Naruto 100% [13] = { 14, 550}, -- Sasuke 100% [25] = { 26, 555}, -- Rock Lee 100% [34] = { 35, 551}, -- Sakura 100% [50] = { 51, 563}, -- Gaara 100% [70] = { 71, 556}, -- Neji 100% [90] = { 91, 558}, -- Kiba 100% [110] = { 111, 579}, -- Shikamaru 100% [130] = { 131, 560}, -- Hinata 100% [150] = { 151, 557}, -- Tenten 100% [170] = { 171, 570}, -- Itachi 100% [190] = { 191, 553}, -- Killer Bee 100% [200] = { 201, 578}, -- Kakashi 100% [210] = { 211, 565}, -- Temari 100% [220] = { 221, 571}, -- Obito 100% [235] = { 236, 554}, -- Minato 100% [500] = { 501, 574}, -- Kisame 100% [520] = { 521, 586}, -- Raikage 100% [550] = { 551, 572}, -- Hidan 100% [580] = { 581, 573}, -- Kakuzo 100% [600] = { 601, 582}, -- Madara 100% [620] = { 621, 561}, -- Yamato 100% Esses -- Yamato 100% só coloquei para que eu possa saber qual personagem é, e se a transformação para akatsuki está correta! E mais uma coisa: Criar um char qualquer, e tenta usar esse sistema, tem coisas que é bom testa como player normal! xD Você tem o comando /newtype pode usar todas outfit de akatsuki, para quer quer virar akatsuki ? KK brincks! Mais tem coisas que só funciona como player normal! Editado Fevereiro 28, 2016 9 anos por KotZletY (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.