Exclusivo para XTibia
favor não postar em outro forum
Tive algumas barreiras.
Alguns outfits eu não tenho no meu Evolutions
data\npc\Stan.xml
local focus = 0
local talk_start = 0
local talk_state = 0
local target = 0
local following = false
local 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 (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. creatureGetName(cid) .. '! I sell masquerade costumes.')
focus = cid
talk_start = os.clock()
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')
elseif focus == cid then
talk_start = os.clock()
if msgcontains(msg, 'deluxe costume') then
selfSay('Do you want to buy deluxe costume for 1500 gps?')
talk_state = 1
elseif msgcontains(msg, 'uncommon costume') then
selfSay('Do you want to buy uncommon costume for 1000 gps?')
talk_state = 2
elseif msgcontains(msg, 'common costume') then
selfSay('Do you want to buy common costume for 500 gps?')
talk_state = 3
elseif msg == 'costume' or msg == 'costumes' then
selfSay('I sell Deluxe Costume (1500gps), Uncommon Costume (1000 gps) and Commom Costume (500 gps)')
selfSay('I sell also Party Hats (600gps) and Party Trumpets (80 gps)')
talk_start = os.clock()
elseif msgcontains(msg, 'party hat') then
selfSay('Do you want to buy party hat for 600 gps?')
talk_state = 4
elseif msgcontains(msg, 'party trumpet') then
selfSay('Do you want to buy party trumpet for 80 gps?')
talk_state = 5
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
talk_state = 0
elseif msgcontains(msg, 'yes') and talk_state == 1 then
if doPlayerRemoveMoney(cid,1500) == TRUE then
bag = doPlayerAddItem(cid, 1997, 1)
doSetItemActionId(bag,3001)
talk_state = 0
talk_start = os.clock()
else
selfSay('Sorry, you don\'t have money.')
end
talk_state = 0
elseif msgcontains(msg, 'yes') and talk_state == 2 then
if doPlayerRemoveMoney(cid,1000) == TRUE then
bag = doPlayerAddItem(cid, 1996, 1)
doSetItemActionId(bag,3002)
talk_start = os.clock()
else
selfSay('Sorry, you don\'t have money.')
end
talk_state = 0
elseif msgcontains(msg, 'yes') and talk_state == 3 then
if doPlayerRemoveMoney(cid,500) == TRUE then
bag = doPlayerAddItem(cid, 1994, 1)
doSetItemActionId(bag,3003)
talk_start = os.clock()
else
selfSay('Sorry, you don\'t have money.')
end
talk_state = 0
elseif msgcontains(msg, 'yes') and talk_state == 4 then
buy(cid,6578,1,600)
talk_start = os.clock()
talk_state = 0
elseif msgcontains(msg, 'yes') and talk_state == 5 then
buy(cid,6572,1,80)
talk_start = os.clock()
talk_state = 0
end
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
doNpcSetCreatureFocus(focus)
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
end
Agora vem a AÇÂO de clicar na bag
data\actions\actions.xml
-- Bag de Carnaval - by Conde Sapo
function onUse(cid, item, frompos)
if frompos.x == 65535 then
-- tah na BP
if item.actionid == 3001 then
-- Deluxe
rand = math.random(1,5)
if rand == 1 then
outfit = {lookType = 220} -- Serpent Spawn
elseif rand == 2 then
outfit = {lookType = 201} -- Demon
elseif rand == 3 then
outfit = {lookType = 244} -- Juggernaut
elseif rand == 4 then
outfit = {lookType = 55} -- Behemoth
elseif rand == 5 then
outfit = {lookType = 91} -- Rahemos (Abrigado Claudioo pelo número do LookType)
end
elseif item.actionid == 3002 then
-- UnCommon
rand = math.random(1,5)
if rand == 1 then
outfit = {lookType = 47} -- Quara Hydromancer
elseif rand == 2 then
outfit = {lookType = 237} -- Diabolic Imp
elseif rand == 3 then
outfit = {lookType = 78} -- Banshee
elseif rand == 4 then
outfit = {lookType = 257} -- Frost Giant (Abrigado Claudioo pelo número do LookType)
elseif rand == 5 then
outfit = {lookType = 99} -- Lich
end
elseif item.actionid == 3003 then
-- Common
rand = math.random(1,5)
if rand == 1 then
outfit = {lookType = 7} -- Orc Warrior
elseif rand == 2 then
outfit = {lookType = 96} -- Pirate Cutthroat
elseif rand == 3 then
outfit = {lookType = 214} -- Dworc Voodoomaster
elseif rand == 4 then
outfit = {lookType = 70} -- Dwarf Guard
elseif rand == 5 then
outfit = {lookType = 23} -- Minotaur Mage
end
end
if doPlayerRemoveItem(cid,item.itemid,1) == TRUE then
doPlayerSay(cid,"I\'m bad!",16)
end
doSetCreatureOutfit(cid, outfit, 600000 )
doSendMagicEffect(frompos,12)
else
doPlayerSendCancel(cid,"Carry with you first!")
end
return 1
end
Agradecimentos
outfit = {lookType = 91} -- Rahemos
outfit = {lookType = 257} -- Frost Giant
Claudioo
pelos códigos dos LookType
Divirtam-se com as fantasias de Carnaval
:XTibia_smile: