Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda com script premium


Ir para solução Resolvido por Wakon,

Posts Recomendados

Bom dia pessoa,

 

estou com um script de !buypremium para mapa 8.6 global. Esse script tem o comando de adquirir premium time com money do próprio otserv.

Gostaria de mudar isso, para adquirir premium através de um click em um item e descontar esse item, ou então igual ao addonDoll

você pode até utilizar o comando, mas se tiver com o item ele descontará o item e não money em gold coins.

 

Por favor, preciso de ajuda. Já fiz varios testes e não consigo, pois não entendo muito de script.

 

Agradeço desde já.

 

local config = {
days = 30,
cost = 1000000,
maxDays = 360
}
 
function onSay(cid, words, param, channel)
if(getPlayerPremiumDays(cid) > config.maxDays) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You can not buy more than " .. config.days + config.maxDays .. " days of Premium Account.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
 
if(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then
doPlayerSendCancel(cid, "You don't have enough money, " .. config.days .. " days premium account costs " .. config.cost .. " gold coins.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
 
doPlayerAddPremiumDays(cid, config.days)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have bought " .. config.days .. " days of premium account.")
return TRUE
end
 

buypremium.lua

Link para o post
Compartilhar em outros sites

Você irá ter que apagar essa talkaction e adicionar uma action.

local config = {
 days = 30,
 cost = 1000000,
 maxDays = 360
}
 
function onUse(cid, item, fromPosition)
 if(getPlayerPremiumDays(cid) > config.maxDays) then
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You can not buy more than " .. config.days + config.maxDays .. " days of Premium Account.")
  doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
  return TRUE
 end
 
 if(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then
  doPlayerSendCancel(cid, "You don't have enough money, " .. config.days .. " days premium account costs " .. config.cost .. " gold coins.")
  doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
  return TRUE
 end
 
 if (doPlayerRemoveItem(cid, item.itemid)) then
  doPlayerAddPremiumDays(cid, config.days)
  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have bought " .. config.days .. " days of premium account.")
  return TRUE
 end
end
Editado por Kimoszin (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

esse script ira funcionar com item, mas aquele cost la em cima de gold coin esse:

local config = {
days = 30,
cost = 1000000,
maxDays = 360

 

ainda precisa permanecer?

e se eu colocar em action que é função de item, preciso determinar um item pra ele, onde que eu coloco esse item, la em action mesmo? Exemplo:

 

<action itemid="11098" event="script" value="itempremium.lua"/>

 

esse numero 11098 é um item, pra ele funcionar preciso colocar como esse?

 

Obrigado desde já.

Editado por acesso123 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Boa noite, queria pedir ajuda novamente por favor.

 

Tirei do talkaction e adicionei uma action e coloquei esse script em action.

Criei uma pasta em acition e adicionei um item para esse script que esta a baixo.

 

local config = {

days = 30,
cost = 1000000,
maxDays = 360
}
 
function onUse(cid, item, fromPosition)
if(getPlayerPremiumDays(cid) > config.maxDays) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You can not buy more than " .. config.days + config.maxDays .. " days of Premium Account.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
 
if(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then
doPlayerSendCancel(cid, "You don't have enough money, " .. config.days .. " days premium account costs " .. config.cost .. " gold coins.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
 
if (doPlayerRemoveItem(cid, item.itemid)) then
doPlayerAddPremiumDays(cid, config.days)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have bought " .. config.days .. " days of premium account.")
return TRUE
end
end

 

 

esse script ta pra descontar dinheiro, eu so queria que removesse o item do inventario do player ao ser usado.

 

Tentei usar  o item, e descontou apenas o dinheiro, não deu premium ao dar "use" no item e também não sumiu o item.

 

Podem me ajudar por favor.

 

Obrigado.

Editado por acesso123 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
local config = {
days = 30,
maxDays = 360,
removeItem = true -- Remover ao usar. [ True para remover / False para não remover!]
}
 
function onUse(cid, item, fromPosition)
if(getPlayerPremiumDays(cid) > config.maxDays) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You can not buy more than " .. config.days + config.maxDays .. " days of Premium Account.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return TRUE
end
 
if config.removeItem then
        doRemoveItem(item.uid)
    end
    doPlayerAddPremiumDays(cid, config.days)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You won " .. config.days .. " days of premium account.")
    doSendMagicEffect(getPlayerPosition(cid), 12)
    return true
end
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por amoxicilina
      Olá Kings, venho aqui trazer uma TalkAction pra você comprar premium account, sei que pode ser algo meio inútil por existir a store.
      Então vamos script:
       
       
    • Por Drafenous
      Eeeeelaiá... aqui estou eu mais uma vez com problemas :/
      O bug atual é o seguinte, eu não encontrei nada relacionado a isto aqui no forum...
       
      No meu servidor tem o npc The Drahix King, a função dele é vender promotion.
      Porém, ele vende promotion para player que não são premium.
       
      O servidor é 8.6, usa o tfs 0.3.6... Eu gostaria de saber como fazer para ele vender promotion somente para players premium.
       
      O problema que isto está causando, é que o player compra a promotion e não fica promotion, e então, acha que está bugado, sendo que quando isso ocorre, ele tem que comprar a premium, deslogar, eu tenho que ir no banco de dados, remover a promotion, e ele comprar a promotion novamente.
       
      Segue então o script do npc de premium:
      <?xml version="1.0" encoding="UTF-8"?> <npc name="The Drahix King" script="promotion.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="332" head="20" body="39" legs="45" feet="7" addons="0"/> </npc> local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 1, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new()) Quem ajudar eu dou rep+
    • Por Digoshow
      Olha aqui mais um problema sem pe e sem cabeça, vou adicionar uma tabela na minha DB para completa a instalacao do meu vip system mock, so que fala que ja existe uma tabela com o nome vipe_time, so que na minha DB ela nao existe, alguem consegue me ajduar, sem ter que troca de DB ou algo que eu tenha que comecar novamente do 0?
      Imagem do erro que da qnd eu tento instalar a tabela:
       

       
       
      Obrigado REP+ para quem tentar ajudar !
    • Por Douglas Camargo
      Estou com um problema, criei um item que ao clicado ele da 30 dias de vip, porém essa vip não aparece no Character Select e nem conta para os vip's viajarem de barco , porque diz que eles não são Premium Account !
       
      Como faço para a vip contar para Premium Account ?
       
      Segue erro no Character select que continua free account. 
       

       
       
    • Por lordmentos
      Olá galera, não sei se essa é a área correta para pedidos - caso não for, me desculpem- enfim, queria saber se alguém tem um script  pra 8.6 que quando o player alcançasse determinado level ele pudesse ganhar 7 dias de p.a, para dar um incentivo.
      Exemplo:
      Você atingiu o level 100, parabéns. Como Bônus receba 7 dias de premmy account.
      (Se for possível, tem como colocar a p.a somente no char, ou obrigatoriamente deve ir para conta?)
      Desde já lhes agradeço ^^'
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo