Incrível!
Ao menos tem um usuário consciente que bota os créditos!
Nossa, muito bom
Ensinou muito sobre NPCs
Embora existam tutoriais sobre o mesmo assunto na seção de Desenvolvimenti
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

Incrível!
Ao menos tem um usuário consciente que bota os créditos!
Nossa, muito bom
Ensinou muito sobre NPCs
Embora existam tutoriais sobre o mesmo assunto na seção de Desenvolvimenti
info
Grupo: Lenda
Registrado: 10/10/05
Posts: 2.2k
Reputação: +63
Char no Tibia: Master Chequer

Movido para a seção Correta.
Atenciosamente, JV Chequer
info
Grupo: Visconde
Registrado: 21/05/07
Posts: 377
Reputação: 0
Char no Tibia: Sirke Amere *( AsTeRa )*

Muito bom o seu tuto...vou estar adcionando pra minha lista
Gostei muito disto...isso eh facil...MAS e para qem nao sabe??!??!
Parabens gostei ![]()
parabéns pelo tuto...
gostei bastante!!
NO MORE
ow o npc de barco ta com akele bug de tem que fala em 1 milesimo pra ele funciona e telporta se nao nao como almenta o tempo de fala???
info
Grupo: Artesão
Registrado: 21/02/07
Posts: 137
Reputação: +1
Char no Tibia: GOD Grimrath

Npc de barco to com algum errinho na infertace pq eu falo hi hi hi hi hi e ele n responde ai eu olho no ot fala q ta bom bug na infertafe say n sei oq vo copiar o erro pra k
attempt to call global 'isPremium' <a nil value>
Tb posso estar enganado mais acho q n é nem erro no npc e sim no global q deve tar faltando algum comando que aki no npc tenha hehe.
Brigado pela atenção.
info
Grupo: Campones
Registrado: 12/03/09
Posts: 42
Reputação: 0
Char no Tibia: casco chia

ow o npc de barco ta com akele bug de tem que fala em 1 milesimo pra ele funciona e telporta se nao nao como almenta o tempo de fala???
TIPOW KRA O Q VC PODE FAZER EH PEGAR UM NPC QUE JA EXISTE E IR NO SCRIPT DELE A TIPOW SUBSTITUIR AS FALAS E AS AÇÕES QUE O NPC IRÁ EXECUTAR ^^
info
Grupo: Campones
Registrado: 17/09/06
Posts: 21
Reputação: +1
Fazendo NPCS
-Mudando Falas
-Vender Runas
-Vender Items
-Comprar Items
-**NPC DE BARCO**
Nós vamos começar este Tutorial com um Script basico de NPC.
Na maioria dos servers há um npc chamado Mad.Eu vou mostrar agora seu script e os vários jeitos de modifica-lo.
Se você for até : data/npc/scripts/loot.lua vc terá isso :
MUDANDO AS FALAS
Onde fala "hi" é oq o player terá q falar para o NPC responder.Eu sugiro nao mudar isto
Onde diz :
Depois de selfSay(' Você pode mudar oque vc deseja q o npc responda ao player.TENHA CERTEZA QUE VC NAO ESQUECEU DE COLOCAR
depois de selfSay.Para acabar ..Sempre quando vc tem apostrofes ( ' ) na sua sentença vc sempre adiciona "\" depois disto.
Exemplo:
Ficará assim:
Agora como você ja aprendeu isso, nós iremos avançar um pouco.
NPC COMPRANDO ITEMS
Agora aqui um exemplo de como vender um item:
Depois onde diz :
Vc põe oque o player tem q dizer para vender determinado item, como em cima, onde tem [iTEM HERE] vc poderia por Mpa, Crusader Helmet, Boh , etc...
Onde diz :
O 3229 é o ID do Item q vc vai vender .
Mude isto para o item q vc deseja vender.
O numero 1 eu aconselho nao mexer..Pois ira causar confusão na hora de vender ,por exemplo: O Player fala Sell Boh, e só tem 1 boh, o NPC quer 2, ou outro numero q vc colocar ai.
E o numero 3000 é a quantidade de gold q o item custará, 3000=3k, 10000=10k e por ai vai..
Próximo tópico :
VENDENDO RUNES
Agora é um pouco mais dificil mexer com este script.
Agora irei pegar outro npc, o Dark Rodo, em alguns servers pode variar para Malak.
Em data/npcs/scripts/rune.lua obterá isso:
talk_start = 0 target = 0 following = false attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I sell hmms (40gps), uhs (40gps), gfbs (60gps), explosions (60gps), sds (90gps) and blank runes (5gps). You can also buy more runes, just say "10 uh" or "100 sd".') focus = cid talk_start = os.clock() elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') elseif msgcontains(msg, '100 hmm') and focus == cid then buy(cid,3136,100,800) talk_start = os.clock() elseif msgcontains(msg, '10 hmm') and focus == cid then buy(cid,3136,10,80) talk_start = os.clock() elseif msgcontains(msg, 'hmm') and focus == cid then buy(cid,3136,5,40) talk_start = os.clock() elseif msgcontains(msg, '100 uh') and focus == cid then buy(cid,3098,100,4000) talk_start = os.clock() elseif msgcontains(msg, '10 uh') and focus == cid then buy(cid,3098,10,400) talk_start = os.clock() elseif msgcontains(msg, 'uh') and focus == cid then buy(cid,3098,1,40) talk_start = os.clock() elseif msgcontains(msg, '100 gfb') and focus == cid then buy(cid,3129,100,2000) talk_start = os.clock() elseif msgcontains(msg, '10 gfb') and focus == cid then buy(cid,3129,10,200) talk_start = os.clock() elseif msgcontains(msg, 'gfb') and focus == cid then buy(cid,3129,3,60) talk_start = os.clock() elseif msgcontains(msg, '100 explosion') and focus == cid then buy(cid,3138,100,2000) talk_start = os.clock() elseif msgcontains(msg, '10 explosion') and focus == cid then buy(cid,3138,10,200) talk_start = os.clock() elseif msgcontains(msg, 'explosion') and focus == cid then buy(cid,3138,3,60) talk_start = os.clock() elseif msgcontains(msg, '100 sd') and focus == cid then buy(cid,3093,100,9000) talk_start = os.clock() elseif msgcontains(msg, '10 sd') and focus == cid then buy(cid,3093,10,900) talk_start = os.clock() elseif msgcontains(msg, 'sd') and focus == cid then buy(cid,3093,1,90) talk_start = os.clock() elseif msgcontains(msg, 'restoration') and focus == cid then buy(cid,3095,1,100) talk_start = os.clock() elseif msgcontains(msg, 'blank') and focus == cid then buy(cid,3085,1,5) talk_start = os.clock() elseif string.find(msg, '(%a*)bye(%a*)') and focus == cid and getDistanceToCreature(cid) < 4 then selfSay('Good bye, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Next Please...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good bye then.') focus = 0 end end endAgora onde tem isso:
Onde diz "hmm" é oq o player tem q dizer para compra uma hmm
Agora onde diz :
O numero 3136 obviamente é o ID da HMM,o numero 5 é o numero de cargas por runa e o 40 é o preço q ira custar cada.
Agora :
Se o Player dizer 100 hmm , o NPC venderá uma runa com 100 cargas, como se pode ver no numero 100 >>
Se dizer 10, comprará uma runa de 10 cargas.
e quantos mais ele quiser..
Agora avançamos mais um pouquinho
Vendendo Items
Se você quer um NPC pra vender items, é bem parecido com o de Runas..
Acompanhe:
Eu irei mostrar tudo que vc tem q fazer para arruma-lo :
1. Mude :
Para o ID do item
2. O numero "5" que equivalia para o numero de cargas mude para a quantidade do item q será vendida, eu sugiro 1.
3. E por ultimo mude o numero "40" para quanto ira custar cada item.
finalmente...
NPC DO BARCO !!!!
No padrão o NPC do boat é o Fargum... mas É so procurar os scripts do barcom em data/npc/scripts/boat.lua..
Esse é o script q vc verá :
_______________________________________
Aki é onde vai para diferentes cidades..
Como mandar o player para diferentes cidades ?
Onde diz:
Mude as coordenadas (122 119 7) pras cordenadas de onde vc ker q o npc mande o player e PRONTO ! Fácil não?
Como mudar oque o NPC diz ?
Aki nada muuuuito importante, mas vc pode mudar
Mude onde esta escrito (Let\'s go! ) para oque vc ker q ele diga.
Como mudar o preço das passagens ?
É só mudar o numero 50 para o preço da nova passagem.
Espero ter ajudado eu sei q fico meio grandinho , mais eu kis faze completo, eu nunca escrevo aki mais vo começa a escreve de agora em diante =))
Obrigado pela atençao e postem suas opiniões por favor =)
Credits: Saporaf (OTFANS) --> Fez o tutorial.
Renanzinhoou --> Traduzi 100% do tutorial para o XTIBIA e adicionei scripts que faltavam e algumas perguntas úteis.
Thanks
CYA