Ir para conteúdo

Promote/premium System Completo


noobinhu

Posts Recomendados

Esse sistema, simplesmente, quando um player perder a premium account, porém ele ja tinha comprado a promotion, ele não precisa comprar mais... após renovar sua premium, ele ganha promotion :]

 

 

Crie um arquivo promotion.lua em data/npc/scripts contendo:

 

local focus = 0

local talk_start = 0

local target = 0

local days = 0

 

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 premiums and promotions.')

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, 'promotion') or msgcontains(msg, 'promote') then

if getPlayerVocation(cid) > 4 then

selfSay('Sorry, you are already promoted.')

talk_state = 0

elseif getPlayerLevel(cid) < 20 then

selfSay('Sorry, you need level 20 to buy promotion.')

talk_state = 0

elseif not getPlayerPremium(cid) then

selfSay('Sorry, you must be premium to buy promotion.')

talk_state = 0

else

selfSay('Do you want to buy promotion for 20000 gold coins?')

talk_state = 1

end

 

elseif msgcontains(msg, 'premium') or msgcontains(msg, 'premmy') then

selfSay('Do you want to buy 7 days of premium for 7000 gold coins?')

talk_state = 2

 

elseif talk_state == 1 then

if msgcontains(msg, 'yes') then

if pay(cid,20000) then

setPlayerStorageValue(cid,25000,1)

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

selfSay('You are now promoted!')

else

selfSay('Sorry, you do not have enough money.')

end

end

talk_state = 0

 

elseif talk_state == 2 then

if msgcontains(msg, 'yes') then

if pay(cid,7000) then

doPlayerAddPremiumDays(cid, 7)

selfSay('You have 7 days of premium more!')

if getPlayerStorageValue(cid,25000) == 1 then

selfSay('You have received your promotion back!')

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

end

else

selfSay('Sorry, you do not have enough money.')

end

end

 

talk_state = 0

 

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()

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

 

 

Após isto, crie o NPC chamado Johnny.xml em data/npcs contendo:

 

<?xml version="1.0"?>

 

<npc name="Johnny" script="data/npc/scripts/promotion.lua" access="3" lookdir="2">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="133" head="114" body="119" legs="132" feet="114"/>

</npc>

 

 

Reinicie seu servidor, sumone o NPC Johnny e teste... :D

 

 

//Yunie~

Editado por noobinhu
Link para o comentário
Compartilhar em outros sites

Tem promote e premium sim...

 

Mas 90% dos servers, principalmente os que não são com distros próprios talz, se compra sua promotion tal... tudo certo, dai quando acaba sua premium, e você renova, sua promotion não volta como no global, então a função desse script é isso, além de vender promote e premium...

 

Ele devolve sua promotion ao renovar a premium :}

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...