Npc Que Vende Casa!

fabriciot
em NPCs, monsters e raids
  • 1
  • 2

fabriciot

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/12/05Posts: 5

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

honux

Serviços Prestados ao XTibia.com
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/07/05Posts: 71

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 ~*

<div align='center'>

Não me mandem mensagens NEM ADICIONEM NO MSN!

NÃO MEXO MAIS COM OTSERVER!

</div>

fabriciot

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/12/05Posts: 5

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

Tuco

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/10/05Posts: 17

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

QUOTE

Assinatura removida por estar fora das regras.

Xedegux.

fabriciot

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/12/05Posts: 5

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

fabriciot

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/12/05Posts: 5

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

robson_dex

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/10/05Posts: 5

Legal esse fiko melhor vo testa + tipo axo q tem um jeito pra vender house sem ter q teleport o npc vo tenta descobri

Happy Teddy Bear

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 31/12/05Posts: 13

o npc teria q ter a funçao de verificar se tem dono a casa...

desse jeito alguem pode roubar casas =/



-----------------------------------------------------
O_o'

Drosax

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/01/06Posts: 2

 

(;: 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:

Rotciv

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 14/10/05Posts: 423Char no Tibia: Rotciv

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!

Acessando apenas para criticar (positivamente).

E-mail: rotciv@xtibia.com

KryppT

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/01/06Posts: 3

AFF KRA MUITO ENROLADO ='(

Rurigan

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/05Posts: 2

grande coisa

tem q por um emcada casa

ai o otro xega e compra sua casa e roba seus items

Addict

Ex-Diretor de Equipe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 12/10/05Posts: 568Gênero: MasculinoChar no Tibia: Homao Dapoha

Gostei, porem como o rotciv falou existem muitos bugs ainda.

ZkRyXTIBIA

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/06Posts: 22

Num sabia que iso existia

ratofarrapo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/03/06Posts: 17

nossa, a idéia realmente é muito boa, mas muito complicada.

por enquanto ta mais fácil fazer via gm =P

/owner nick :grin:

:)

até...

Obrigado,

Rato Farrapo

  • 1
  • 2