Ir para conteúdo

Npc Que Vende Casa!


fabriciot

Posts Recomendados

Iae galera, eu "projetei" um NPC que vende casas... tipo, como eu n entendo muito, mas vou postar os codigos...

-----------------------------

**Sujiro ke faça isso com o server OFF**

Lá vai:

Primeiro:Voce vai no arkivo de houses do Data! (É o XML ki mostra as coordenadas das casas!!)ai depois vc pega um casa qualquer e bota uma coordenada (por exemplo: uma aonde vc irá botar o NPC)depois vc vai na pasta: data/npc/scripts e da CONTROL+C CONTROL+V em qualquer script e renomeie por: house_seller. Delete tudo oque está lá dentro e bote isto:

 

focus = 0talk_start = 0target = 0following = falseattacking = falsefunction onThingMove(creature, thing, oldpos, oldstackpos)endfunction onCreatureAppear(creature)endfunction onCreatureDisappear(cid, pos) if focus == cid then        selfSay('Good bye then.')        focus = 0        talk_start = 0 endendfunction onCreatureTurn(creature)endfunction msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msg) msg = string.lower(msg) if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 3 then  selfSay('Hello, ' .. creatureGetName(cid) .. '! Do you want to buy a house for 50000gps??')  focus = cid  talk_start = os.clock() elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 3 then  selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') elseif msgcontains(msg, 'no') and focus == cid then  selfSay('Ok.')  talk_start = os.clock()       elseif msgcontains(msg, 'yes') and focus == cid then  if play(cid, 50000)  selfSay('/owner '.. creatureGetName(cid) ..' ')  talk_start = os.clock() elseif string.find(msg, '(%a*)bye(%a*)') and focus == cid and getDistanceToCreature(cid) < 3 then  selfSay('Good bye, ' .. creatureGetName(cid) .. '!')  focus = 0  talk_start = 0 endendfunction onCreatureChangeOutfit(creature)endfunction onThink() if (os.clock() - talk_start) > 30 then  if focus > 0 then   selfSay('Next Please...')  end   focus = 0 endend

 

------------------------------------

Eu tentei testar... mas deu bug!! Keria saber se tem como fazer issu msm?!?!!?!?!

Minha Ideia: fazer um NPC para kada casa, e botar esses NPC em um quadrado ke seja da kasa!! Ai se o kara comprar.. o NPC da /owner!!! Keria saber tbm o codigo de fazer tipow o NPC pesquisar para ver se essa casa jah tem dono...

-----------------------------------

Créditos: Fabricio

Dou suporte via MSn: fabricio_grunge@hotmail.com

Link para o comentário
Compartilhar em outros sites

fabriciot

o q vc tentou testar mas retornou bug??

sobre essa ultima parte ai sua...

sim tem, mais vc teria que criar uma função na source onde ele pegava o square da porta da house e verificava se tinha dono, se não tivesse retornava uma coisa se tivesse retornava outra.

belo code

Kyo ~*

Link para o comentário
Compartilhar em outros sites

Vlw ;D Mas tipo, n deu debug de sair do jogo... deu isso:

a janela do OTserver (parecida c/ a do promont) começou a aparecer um monte de coisa escrita sem parar... alguma coisa NIAL.... algo parecido, mas quando fui ao NPC n deu DEBUG, eu falei HI e ele n respondeu... =/

------------------------------

Só keria saber se tem como ajeitar isso, se alguem puder testar a jeitar isso pra mim, ficarei grato! ;D

------------------------------

CREDITOS: FABRICIO

Dou suporte via MSN:fabricio_grunge@hotmail.com

Link para o comentário
Compartilhar em outros sites

olha galera eu axo q descobri o bug pq vcs n olham o arkivo do npc?? eu axo q é esse bug aki:

elseif msgcontains(msg, 'yes') and focus == cid then

if play(cid, 50000)

selfSay('/owner '.. creatureGetName(cid) ..' ')

talk_start = os.clock()

ali em if play

é if pay -.- pelomenos eu axo

Link para o comentário
Compartilhar em outros sites

hohooho, pode crer... eu escrevi errado!!! mas n eh issu n... eh outyra coisa!! kem puder testar para mim... e me ensinar a fazer o NPC "pesquisar" para ver se essa casa jah tem dono... fikarei mUUito grato!!

----------------------------------

Dou suporte via MSN:fabricio_grunge@hotmail.com

Link para o comentário
Compartilhar em outros sites

Aee gente, fiz um bem melhor!!!

>>Primeiro: Voce cria um NPC (em XML), renomeie para: House Seller e depois entre e bote isso lah dentro:

 

<?xml version="1.0"?><npc name="House Seller" script="data/npc/scripts/house.lua" access="3" lookdir="1">	<health now="1" max="1"/>	<look type="57" head="20" body="30" legs="40" feet="50" corpse="3128"/></npc>

 

Isso eh soh para n dar bug msm.. =PpP (OBS: ele vai fikar com o outifit do Guild Master)

>>Segundo: Voce vai em data/npc/scripts da CONTROL + C CONTROL + V em qualquer script e renomeie para: house

depois disso entre, delete tudo e bote isto:

 

focus = 0talk_start = 0target = 0following = falseattacking = falsefunction onThingMove(creature, thing, oldpos, oldstackpos)endfunction onCreatureAppear(creature)endfunction onCreatureDisappear(cid, pos) if focus == cid then        selfSay('Good bye then.')        focus = 0        talk_start = 0 endendfunction onCreatureTurn(creature)endfunction msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msg) msg = string.lower(msg) if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 3 then  selfSay('Hello, ' .. creatureGetName(cid) .. '! Tel me the name of the house: bamboo camp I; II; III; IV; V; VI')  focus = cid  talk_start = os.clock() elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 3 then  selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') elseif msgcontains(msg, 'no') and focus == cid then  selfSay('Ok.')  talk_start = os.clock()       elseif msgcontains(msg, 'bamboo camp I') and focus == cid then  if pay(cid, 50000)  selfSay('/send House Seller 181 101 7')   selfSay('/owner ' .. creatureGetName(cid) .. ' ')  selfSay('/send House Seller 154 35 7')  selfSay('Now, you have a house!! Please logout and login!  talk_start = os.clock() elseif string.find(msg, '(%a*)bye(%a*)') and focus == cid and getDistanceToCreature(cid) < 3 then  selfSay('Good bye, ' .. creatureGetName(cid) .. '!')  focus = 0  talk_start = 0 endendfunction onCreatureChangeOutfit(creature)endfunction onThink() if (os.clock() - talk_start) > 30 then  if focus > 0 then   selfSay('Next Please...')  end   focus = 0 endend

 

------------------------

OBS: Como eu estava com preguiça... soh botei 1 casa (a bamboo camp I)!!! Ou seja.. vcs teram ke editar do jeito que vcs kiserem!!!

------------------------

DETALHE:Essas cordenadas para onde ele vai se teleportar eh no MEU MAP, o Undread!!!

CREDITOS: FABRICIO

**Dou suporte via MSN: fabricio_grunge@hotmail.com

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

 

(;: n sei mta coisa de programaçao n mas se vc cria 1 variavel pra cada casa e bota 1 pra casas vendidas(quando o kara compra vc bota 1) e 0 pra casas n vendidas podi funfa neh :ohmy:

Link para o comentário
Compartilhar em outros sites

hmmm...com issu um top lvl pode comprar + que 1 casa...

o cara vende 20 e-plate compra todas as casas do OT LOL...

sem contar com o que o HTB falou..que da pra roubar casas..

mas msm assim..parabens pelo esforço! qdn o NPC estiver melhorado...vou usá-lo! parabéns!

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...
×
×
  • Criar Novo...