Postado Novembro 8, 2011 13 anos Oláa Todos! Vamos tentar fazer esse script juntos? Primeiramente para ser um bom programador é necessario que você tenha uma organização e trate bem as idéias que irão surgir no script. Com isso sempre faça um exemplo pratico e simples de como o script irá se comportar. Informações Queria um npc que vendesse promotion (no caso 9,10,11,12) em troca de um item (ID = 9971). Obs: Foi o pedido do mebro do fórum e resolvi fazer como se fosse uma 'liçãozinha'. Lógica do script Primeiramente o player deverá ser premmium account ? Qual o level necessario? O player já possui essa promotion? O player possui a promotion anterior (5,6,7,8) para ir para essa? O player possui o item desejado? Se o player for premmium account... Se o player possuir o level necessario... Se o player possuir a promotion anterior e assim não possui essa nova... Se o player possuir o item desejado... remover o item desejado... mudar a vocação do player... Construindo o script Sabemos que para criarmos um npc necessitamos de 2 arquivos. Um se encontra na pasta data/npcs e o outro na pasta data/npcs/script. e [LUA]. [u][b]Scripts[/b][/u] [u][size=2][b]data/npc/NpcName.xml[/b][/size][/u] [spoiler][code]<?xml version="1.0" encoding="UTF-8"?> <npc name="NpcName" script="data/npc/scripts/NpcName.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="96" head="0" body="0" legs="0" feet="0" addons="0"/> </npc>[/code] [/spoiler] A partir desse script ao sumonar o npc ou coloca-lo no mapa, você fará com que ele carregue o script principal, com a sua função. ( NpcName.lua ) [size=2][u][b]data/npc/NpcName.lua[/b][/u][/size] [spoiler][code]local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 npcPromotion(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (isPremium(cid)) then if (getPlayerLevel(cid) >= 100) then if (getPlayerVocation(cid) >= 5 and getPlayerVocation(cid) <=8) then if doRemoveItem(cid, 9971, 1) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) doPlayerSendTextMessage(cid, 20, "Voce é um ".. getPlayerVocationName(cid) .."!") else doPlayerSendTextMessage(cid, 20, "Voce nao possui o item desejado!") end else doPlayerSendTextMessage(cid, 20, "Voce não possui a promotion anterior ou já esta promovido.") end else doPlayerSendTextMessage(cid, 20, "Voce nao possui level para ser promovido.") end else doPlayerSendTextMessage(cid, 20, "Voce nao possui premmium account.") end end local node1 = keywordHandler:addKeyword({'high promotion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promotion you if you give me a '.. getItemName(9971) ..'. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, npcPromotion, {}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new())[/code] [/spoiler] [center]é isso aí, espero que tenha entendido.[/center] [center][size=5]Qualquer dúvida é só postar![/size][/center] [i]Atenciosamente,[/i] [i]Aluccard.[/i] Editado Novembro 8, 2011 13 anos por Aluccard (veja o histórico de edições) The life is hard: No projects for a while.
Postado Novembro 8, 2011 13 anos Cara Vlw msm..dei REP+ SE AJUDEI REP+ , NÃO CUSTA NADA. <a href="http://central.evenhost.net/aff.php?aff=020"><img src="http://i.imm.io/uRti.png" width="500" height="82" border="0"></a>
Postado Novembro 8, 2011 13 anos Ou vc sabe se esse script vai funcionar certinho no TFS 0.4 REV 3884?? SE AJUDEI REP+ , NÃO CUSTA NADA. <a href="http://central.evenhost.net/aff.php?aff=020"><img src="http://i.imm.io/uRti.png" width="500" height="82" border="0"></a>
Postado Novembro 8, 2011 13 anos Administrador Fabiano, leia as regras do fórum, não é permitido realizar posts duplos, fica aqui um aviso, dá próxima você poderá ser punido. Esse script funciona no TFS 0.4! TibiaKing Team- KingTópicos www.tibiaking.com
Postado Novembro 9, 2011 13 anos Cara aqui quando eu vou sumonar ele da um error no .exe Assim : [Error - Npc interface] data/npc/scripts/Promoteon.lua Description: (luaHetThing) Thing not found [Error - Npc interface] data/npc/scripts/Promoteon.lua Description: data/lib/050-function.lua:232: attempt to index a boolean value [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Promoteon. lua Ve Se conseguem ver ai oque é o problema..
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.