Ir para conteúdo

[correção]npc De Premmy!


ropeetz

Posts Recomendados

Bom eu vim aki no xTibia..(exlusivamente) uma correção do npc de premmy do Zorzin 1.1

Tipo ele tinha um bug que vc flava 0 days na hra de compra P.Acc

-- Npc by Zorzin =)
-- Bug corrigido by ropeetz
-- Por Favor não tire esses creditos =)
local focus = 0
local talk_start = 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)

 -- greeting phrase
if string.find(msg, '(%a*)hi(%a*)') and focus == 0 and string.len(msg) == 2 and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. creatureGetName(cid) .. '! I sell premium account.')
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, 'prem') or msgcontains(msg, 'premium') or msgcontains(msg, 'account') then
selfSay('I sell days of premium acount. Just say how many days would you like to buy.') 

elseif msgcontains(msg, 'day') or msgcontains(msg, 'days') then	
count = getCountNumber(msg)
premPrice = getPremiumPrice() * count   
if count == 1 then
xx = 'day'
else
xx = 'days'
end
if count > 0 then
selfSay('Do you want to buy '.. count ..' '.. xx ..' of premium account for '.. premPrice/1000 ..'k?') 
talk_state = 843
else
selfSay('Sorry but you cannot buy'.. count ..' '.. xx ..' of premium account.')
end


elseif talk_state == 843 then
 if msgcontains(msg, 'yes') then
  if doPlayerRemoveMoney(cid,premPrice) == 1 then
selfSay('Here you are.') 
	buyPrem(cid,count)
else
selfSay('Sorry, you dont have enough money.')
end
 elseif msgcontains(msg, 'no') then
 selfSay('Ok. Maybe another time.') 
 end

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


function onCreatureChangeOutfit(creature)

end


function onThink()

if focus > 0 then 
x, y, z = creatureGetPosition(focus)
myx, myy, myz = selfGetPosition()
	if ((myy-y==0) and (myx-x<=0 and myx-x>=-4)) then
		selfTurn(1)
	end 
	if ((myy-y==0) and (myx-x>=0 and myx-x<=4)) then
		selfTurn(3)
	end
	if ((myx-x==0) and (myy-y<=0 and myy-y>=-4)) then
		selfTurn(2)
	end
	if ((myx-x==0) and (myy-y>=0 and myy-y<=4)) then
		selfTurn(0)
	end
	if ((myy-y==-2) and (myx-x>=-1 and myx-x<=1)) then
		selfTurn(2)
	end
	if ((myy-y==2) and (myx-x>=-1 and myx-x<=1)) then
		selfTurn(0)
	end
	if ((myx-x==2) and (myy-y>=-1 and myy-y<=1)) then
		selfTurn(3)
	end
	if ((myx-x==-2) and (myy-y>=-1 and myy-y<=1)) then
		selfTurn(1)
	end
	if ((myy-y==-3) and (myx-x>=-2 and myx-x<=2)) then
		selfTurn(2)
	end
	if ((myy-y==3) and (myx-x>=-2 and myx-x<=2)) then
		selfTurn(0)
	end
	if ((myx-x==3) and (myy-y>=-2 and myy-y<=2)) then
		selfTurn(3)
	end
	if ((myx-x==-3) and (myy-y>=-2 and myy-y<=2)) then
		selfTurn(1)
	end
	if ((myy-y==-4) and (myx-x>=-3 and myx-x<=3)) then
		selfTurn(2)
	end
	if ((myy-y==4) and (myx-x>=-3 and myx-x<=3)) then
		selfTurn(0)
	end
	if ((myx-x==4) and (myy-y>=-3 and myy-y<=3)) then
		selfTurn(3)
	end
	if ((myx-x==-4) and (myy-y>=-3 and myy-y<=3)) then
		selfTurn(1)
	end
end

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

Thx!

Espero que ajude o povo que usa oZorzin

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...