Ir para conteúdo

Featured Replies

Postado

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 por Aluccard (veja o histórico de edições)

The life is hard: No projects for a while.

 

adfly.350x19.1.png

  • Respostas 7
  • Visualizações 3.7k
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • 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

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo