LorD Sybian 1 Postado Maio 17, 2009 Share Postado Maio 17, 2009 Aew galera vomos lá esté e o NPC Roy ele recarrega a bota para você... Créditos : 60% Meus por retirar uns 5 bugs...40% para a pessoa que fez... Vomos lá... vá em data/npc/script e crie um arquivo xml. com o nome roy depois apague tudo que estiver nele e coloque isso : <npc name="Roy" script="data/npc/scripts/shoes.lua" autowalk="25" floorchange="0" access="5" level="1" maglevel="1"><health now="150" max="150"/> <look type="151" head="114" body="1" legs="1" feet="76" addons="1" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. i am specialised in boots" /> </parameters> </npc> ~~ Salve e fexe o arquivo ~~ Parte 2 Abra a pasta data/npc/script Copie um arquivo abra ele, selecione tudo e cole isso lá dentro: local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start 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 -- OTServ event handling functions end function creatureSayCallback(cid, type, msg) -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. if(npcHandler.focus ~= cid) then return false end if msgcontains(msg, 'specialised') or msgcontains(msg, 'boot') then selfSay('Yes, my fathers was a great one blacksmith, it was a wise person , but when he decided to teach me he dies and i just learn about the lovely boots. So, did you bring me some boots? which one?') elseif msgcontains(msg, 'worn soft boots') or msgcontains(msg, 'worn soft boot') then selfSay('Did u like that i fix ur worn soft boots? it will cost 100 platinum coins') talk_state = 1 elseif msgcontains(msg, 'yes') and talk_state == 1 then if getPlayerItemCount(cid,6530) >= 1 and getPlayerItemCount(cid,2152) >= 100 then if doPlayerTakeItem(cid,6530,1) and doPlayerTakeItem(cid,2152,100) == 0 then selfSay('Here you are.') doPlayerAddItem(cid,2358,1) end else selfSay('Sorry, you don\'t have the item.') end elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 5) then selfSay('Ok then.') talk_state = 0 end -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Depois coloque o nome dele de shoes , e pronto seu npc que regarrega boots está pronto !!! Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/ Compartilhar em outros sites More sharing options...
satan666 12 Postado Maio 20, 2009 Share Postado Maio 20, 2009 bem que poderia por pra recarregar tb a fire boots. Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-740934 Compartilhar em outros sites More sharing options...
drhaynjf 0 Postado Julho 20, 2009 Share Postado Julho 20, 2009 bom cara eu não sei pq mas no meu ot 8.40 eu coloquei ele e tudo falo ( hi) com ele, ele me responde mas depois ele não responde mas nada que eu falo , sera que vc pode me ajuda ? Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-765351 Compartilhar em outros sites More sharing options...
joaohd 200 Postado Julho 20, 2009 Share Postado Julho 20, 2009 (editado) aki também n funcionou (TFS 0.3.4) mas eu peguei o script e mexi nele agora funciona vê aí: 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 shopModule = ShopModule:new() npcHandler:addModule(shopModule) function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'worn soft boots') or msgcontains(msg, 'recharge') or msgcontains(msg, 'soft boots') then selfSay('Yes, my fathers was a great one blacksmith, it was a wise person , but when he decided to teach me he dies and i just learn about the lovely boots. So, did you bring me some boots? which one?', cid) talk_state = 1 elseif msgcontains(msg, 'yes') and talk_state == 1 then if getPlayerItemCount(cid,6530) >=1 and getPlayertemCount(cid,2160) >= 1 then if doPlayerRemoveMoney(cid,10000) and doPlayerTakeItem(cid,6530,1) then selfSay('Here you are.', cid) doPlayerAddItem(cid,2358,1) end else selfSay('Sorry, you don\'t have the item.', cid) talk_state = 0 end elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 5) then selfSay('Ok then.', cid) talk_state = 0 end --Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) usa o mesmo xml do esk~ e a recarga custa 10k nem vo por creditos pq n fui eu quem fiz, só arrumei pra funcionar em 8.4 e 8.42 edited: trokei o doPlayerTakeItem(cid,2160,1) por doPlayerRemoveMoney(cid,10000) Editado Julho 20, 2009 por apocarai Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-765440 Compartilhar em outros sites More sharing options...
satan666 12 Postado Julho 20, 2009 Share Postado Julho 20, 2009 erros dos dois scripts. esk~ e apocarai. esk~ getPlayerItemCount(cid,2152) >= 1 apocarai getPlayerItemCount(cid,2160) >= 1 se voces poem pra ele verificar id de moedas e a pessoa nao ter o id de tal moedas vai dar erro. 2152 = platinum coin se nao tiver platinum o npc nao fala (por erro no script) 2160 = se nao tiver da o mesmo erro do script do "esk~" (suspeito). Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-765481 Compartilhar em outros sites More sharing options...
joaohd 200 Postado Julho 20, 2009 Share Postado Julho 20, 2009 Não da erro proprieamente dito. ele fala "Sorry, you don't have the item" e o "suspeito" que vc colocou depois do meu nome ali é porque ta suspeito de ter copiado o script?? se for, eu copiei sim, porém alterei as falas e os talk_state porque em ot 8.4 e 8.42 vc falava hi ele falava "i've been specting you" e n falava mais nada. e eu coloquei embaixo da minha resposta que eu n ia colocar creditos pq n fui eu quem fiz, só alterei. vlws Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-765486 Compartilhar em outros sites More sharing options...
satan666 12 Postado Julho 20, 2009 Share Postado Julho 20, 2009 (editado) o erro esta aqui no elseif. o certo seria usar if e nao elseif elseif msgcontains(msg, 'yes') and talk_state == 1 thenif getPlayerItemCount(cid,6530) >= 1 and getPlayerItemCount(cid,2152) >= 100 then if doPlayerTakeItem(cid,6530,1) and doPlayerTakeItem(cid,2152,100) == 0 then selfSay('Here you are.') doPlayerAddItem(cid,2358,1) end else selfSay('Sorry, you don\'t have the item.') end Editado Julho 20, 2009 por Marcryzius Link para o comentário https://xtibia.com/forum/topic/113226-npc-npc-roy-recarrega-soft-boots/#findComment-765558 Compartilhar em outros sites More sharing options...
Posts Recomendados