NPC QUE VENDE MOUSTROS (7.6) BY DIEGO

Ver el tema anterior Ver el tema siguiente Ir abajo

NPC QUE VENDE MOUSTROS (7.6) BY DIEGO

Mensaje por gmdiego5 el Dom Mar 09, 2008 6:52 am

Jaja, weno, este fue un NPC que habia hecho para un OT 7.6, aunque creo que no hace falta modificarlo demasiado para que funcione sin bugs en versiones posteriores... ahi va:

data/npc/Dios.xml
Código:
<?xml version="1.0"?>
<npc name="Dios" script="data/npc/scripts/dios.lua" access="3">
<look type="128" head="4" body="114" legs="132" feet="115"/>
</npc>


data/npc/scripts/dios.lua
Código:
focus = 0
talk_start = 0
target = 0
following = false
attacking = false
cname = ''

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Adios.')
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)
cname = creatureGetName(cid)
msg = string.lower(msg)

if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then
selfSay('Hola ' .. creatureGetName(cid) .. '! Vendo dragones (100gp), heros (200gp), hydras (300gp) y demons (500gp) y orshabaals (1k).')
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Lo siento, ' .. creatureGetName(cid) .. '! Te hablare en un momento.')

elseif focus == cid then
talk_start = os.clock()

if msgcontains(msg, 'dragon') then
level = getPlayerLevel(cname)

if level >= 15 then
if pay(cid,100) then
selfSay('/m dragon')
selfSay('Ahi tienes.')
else
selfSay('Lo siento, tu no tienes suficiente dinero.')
end
else
selfSay('Perdon, necesitas ser level 15 para que te de un dragon.')
talk_state = 0
end
elseif msgcontains(msg, 'hero') then
level = getPlayerLevel(cname)

if level >= 20 then
if pay(cid,200) then
selfSay('/m hero')
selfSay('Ahi tienes.')
else
selfSay('Lo siento, tu no tienes suficiente dinero.')
end
else
selfSay('Perdon, necesitas ser level 20 para que te de un hero.')
talk_state = 0
end
elseif msgcontains(msg, 'hydra') then
level = getPlayerLevel(cname)

if level >= 30 then
if pay(cid,300) then
selfSay('/m hydra')
selfSay('Ahi tienes.')
else
selfSay('Lo siento, tu no tienes suficiente dinero.')
end
else
selfSay('Perdon, necesitas ser level 30 para que te de un hydra.')
talk_state = 0
end
elseif msgcontains(msg, 'demon') then
level = getPlayerLevel(cname)

if level >= 40 then
if pay(cid,500) then
selfSay('/m demon')
selfSay('Ahi tienes.')
else
selfSay('Lo siento, tu no tienes suficiente dinero.')
end
else
selfSay('Perdon, necesitas ser level 40 para que te de un demon.')
talk_state = 0
end
elseif msgcontains(msg, 'orshabaal') then
level = getPlayerLevel(cname)

if level >= 50 then
if pay(cid,1000) then
selfSay('/m orshabaal')
selfSay('Ahi tienes.')
else
selfSay('Lo siento, tu no tienes suficiente dinero.')
end
else
selfSay('Perdon, necesitas ser level 50 para que te de un orshabaal.')
talk_state = 0
end

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Adios, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Siguiente por favor...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Adios.')
focus = 0
end
end
end



muy probable es que tengan problemas con las funciones que devuelven el lvl y por ahi los nmbres... no testee mi script en la 8.0... pero en la 7.6 andaba de maravilla ^^

salu2 ^^

BY:DIEGO
avatar
gmdiego5
Posteador
Posteador

Masculino
Cantidad de envíos : 107
Edad : 23
Localización : Ciber
Humor : Muy happy :)
Fecha de inscripción : 09/03/2008

Ver perfil de usuario http://diegorap4.spaces.live.com/default.aspx?mkt=es-MX&partner=

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.