Ir para conteúdo
  • 0

[Pedido] Comando !buypremium


gahgah

Pergunta

Ola XTibia, gostaria de um script de !buypremium que cobrasse em moeda VIP, porem com um grande diferencial, o player escolhe quantos dias colocar, ex:

 

!buypremium 1 - 1 dia

 

!buypremium 5 - 5 dias

 

!buypremium 10 - 10 dias

 

E por ai vai, quantos dias ele escolher, e é claro, cada dia é 1 moeda VIP, e 1 mes cobro 20 moedas VIP. Se tiver como fazer em NPC eu tambem agradeço, axo mais detalhado, enfim, peso ajuda para os dois, talkaction e 1 npc, vo guardar as duas opçoes, aguardo.

 

Como sempre +REP para quem ajudar.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

 

if(param == "vip10") then

if getPlayerItemCount(cid, 9971) >= 5 then

doPlayerAddPremiumDays(cid, 10)

doPlayerRemoveItem(cid, 9971, 5)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 10 dias de vip com sucesso.")

return TRUE

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")

return TRUE

end

end

 

 

Aonde está

 

if(param == "vip10") then

Mude para qualquer número ou frase exemplo:

if(param == "vip1") then

 

Aonde está:

doPlayerAddPremiumDays(cid, 10)

Coloque a quantidade de dias de Premium que o player comprará. Se lá em cima estiver vip10 ele comprará 10 dias, se tiver vip1 ele comprará 1 dia.

 

Aonde está:

 

doPlayerRemoveItem(cid, 9971, 5)

Em 9971 coloque o ID da sua moeda vip e aonde está 5 coloque a quantidade que será removida.

Link para o comentário
Compartilhar em outros sites

  • 0

intendi, para comprar a quantidade de dias q ele quer ele vai ter q falar !buypremium varias veses ate atingir a quantidade exata que o player qr de vip, ex: 1 dia = remover 1 moeda vip, ai para ele comprar 1 mes com 20 moedas vip, eu poderia fazer outro comando, unico para ele comprar 30 dias e remover apenas 20 moedas.

 

agora daria para fazer compra de premium por NPC? dialogar com ele, ae teria q confirmar se ele realmente qr gastar as moedas vip com a premium, etc, provavelmente daria menos erros, ja que metade do server usa de todos os tipos de artificios para tentar se dar bem, capaz de usarem o comando e falar q compro dias errado so pra repor moedas, é complicado.

 

aguardo & agradeço a ajuda, so estou esperando mesmo se é possivel criar npc e embutir tudo no script do npc, abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Mano, eu tava tentando aqui e nao dava certo, pedi uma mao pro Slicer e ele arrumou o que faltava, portando agradeça á ele ^^

 

 

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

local msg = string.lower(msg)

 

if msgcontains(msg, 'offer') then

selfSay('Vendo PA.', cid)

elseif msgcontains(msg, 'pa') then

selfSay('Mesmo?', cid)

talkState[talkUser] = 1

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then

selfSay('Diga quantos dias você deseja comprar.', cid)

talkState[talkUser] = 2

elseif tonumber(msg) and (tonumber(msg) <= 0 or tonumber(msg) > 90) and talkState[talkUser] == 2 then

selfSay("Eu so posso vender entre: 1 e 90 dias de premium!", cid)

elseif tonumber(msg) and (tonumber(msg) > 0 and tonumber(msg) <= 90) and talkState[talkUser] == 2 then

dias = tonumber(msg)

selfSay("Deseja mesmo comprar "..dias.." de premium?", cid)

talkState[talkUser] = 3

-- Confirmação da Compra

 

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 3 then

if(doPlayerRemoveItem(cid, 2160, dias) == true) then -- ID e quantidade

selfSay('Thanks!', cid)

doPlayerAddPremiumDays(cid, dias)

talkState[talkUser] = 0

else

selfSay('Voce nao tem diamonds.', cid)

talkState[talkUser] = 0

end

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Mano, eu tava tentando aqui e nao dava certo, pedi uma mao pro Slicer e ele arrumou o que faltava, portando agradeça á ele ^^

 

 

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

local msg = string.lower(msg)

 

if msgcontains(msg, 'offer') then

selfSay('Vendo PA.', cid)

elseif msgcontains(msg, 'pa') then

selfSay('Mesmo?', cid)

talkState[talkUser] = 1

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then

selfSay('Diga quantos dias você deseja comprar.', cid)

talkState[talkUser] = 2

elseif tonumber(msg) and (tonumber(msg) <= 0 or tonumber(msg) > 90) and talkState[talkUser] == 2 then

selfSay("Eu so posso vender entre: 1 e 90 dias de premium!", cid)

elseif tonumber(msg) and (tonumber(msg) > 0 and tonumber(msg) <= 90) and talkState[talkUser] == 2 then

dias = tonumber(msg)

selfSay("Deseja mesmo comprar "..dias.." de premium?", cid)

talkState[talkUser] = 3

-- Confirmação da Compra

 

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 3 then

if(doPlayerRemoveItem(cid, 2160, dias) == true) then -- ID e quantidade

selfSay('Thanks!', cid)

doPlayerAddPremiumDays(cid, dias)

talkState[talkUser] = 0

else

selfSay('Voce nao tem diamonds.', cid)

talkState[talkUser] = 0

end

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

 

Script esta perfeito, add a premium, qts dias o player quer, e tirando a moeda vip, 1 dia de premium = 1 moeda vip. Meu servidor 1 mes de vip (30 dias) sai por apenas 20 moedas vip, tem como agora por a fala de opçao para comprar 1 mes de vip por 20 moeda vip? o npc ja vende quantos dias o player preferir, so falta agora mesmo ele ter a opçao de vender 1 mes inteiro e cobrar 20 moedas vip, ex:

 

player: 30 dias

npc: quer comprar 30 dias de vip premium por 20 moedas vip?

player: yes

 

outro exemplo de dias:

 

npc: vendo 1 a 15 dias de premium, cada dia e 1 moeda vip, tambem vendo 1 mes por 20 moedas vip, fale quantos dias deseja comprar

player: 1 mes

npc: deseja comprar 1 mes de premium por 20 moedas vip?

player: yes

 

ae no caso se o player quiser comprar 3 meses por exemplo, ae o npc vai cobrar 60 moedas vip. (20 moedas cada mes)

 

resumindo e finalizando, o scrpt esta funcional e perfeito, apenas gostaria que o modificasse para limite maximo de dias 15, o player vai escolher quantos dias quiser ate 15 dias, cobrando 1 moeda por dia, e a segunda opçao é apenas para meses, 1 mes sera cobrado 20 moedas.

 

aguardo.

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...