Ir para conteúdo

Premium Específico!


Roksas

Posts Recomendados

Premium Específico!

 

Iaae galera, como vão? Hoje vim trazer para vocês o meu "Premium Específico", oque ele faz?

 

O Premium Específico, te permite usar o famoso comando:

/buypremium

 

Só que comprando quantos days você quiser, não é obrigatório os 30, usando o comando:

 

/buypremium nome, days

 

No lugar do nome você pode por o seu nome, ou de um amigo, podendo dar de presente para ele os days :)

 

Vamos lá?

 

Vá em data/talkactions/scripts, crie um arquivo chamado premium.lua e cole isso dentro:

 

 

local config = {
money = 10000, -- Price per day bought
}

function onSay(cid, words, param)

if(words == "/buypremium") then  
local t = string.explode(param, ",")  
local player = getPlayerByNameWildcard(t[1])

if(not player)then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.")
end

if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true
end

if not tonumber(t[2]) then  
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true
end  

if doPlayerRemoveMoney(cid, tonumber(t[2])*config.money) then
doPlayerAddPremiumDays(player, tonumber(t[2]))
doPlayerSendTextMessage(player, 22, ""..getCreatureName(cid).." added "..t[2].." days of Premium Account, removed "..tonumber(t[2]*config.money).."gps.")
else
doPlayerSendTextMessage(cid, 22, "You need "..tonumber(t[2]*config.money).."gps to buy "..t[2].." days of Premium Account!")
end
return true
end
end

 

 

Só arrumar quanto custa cada day nessa linha:

money = 10000

 

Agora no arquivo talkactions.xml adicione essa tag:

 

<talkaction words="/buypremium" event="script" value="premium.lua"/>

 

Prontinho galera, espero que se divirtam :)

 

 

2vwi8gh.jpg

 

/buypremium [ADM] Roksas, 30

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

geralmente vejo seus scripts e a maioria não são bem feitos (estruturamente falando) em lua, mas esse ficou legal cara..

parabens..

 

ta certinha a estrutura do script, nada no lugar errado ^^

 

só uma dica, esse if (if(words == "/buypremium") then) é desnecessario, pois você tem que adicionar no talkactions.xml e ele só irá funcionar caso digite isso, ou seja, nao precisa verificar no script ^^

 

vou dar rep+ pq a ideia foi legalzinha, simples de ser feito porem muito util

 

PS: eu te critico pra vc melhorar, se todo mundo sempre falar que seus scripts são excelentes, você vai sempre continuar fazendo errado.. recebendo dicas, talvez, faça que quando você for fazer algo parecido dinovo, saia menos erros e com qualidade superior

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

/\ ele ta seguindo a ideia loka do sky soh pode..

 

sem fla q isso..

if(param == '') then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true
end

 

geralemente vem antes ate do string.explode neh.. ;/

Link para o comentário
Compartilhar em outros sites

Obrigado Draky, estou procurando sim sempre melhorar, aprendendo a lógica do return, usando funções novas, espero obter resultados, rsrs.

 

 

@Slicer, nunca tentei antes da varíavel do string.explode, mas do jeito que fiz funcionou, por isso acabei nem tentando de outras formas :)

 

Caso eu tenha melhores ideias, procurarei melhorar o código!

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

Sky, eu uso para ver aquelas informações do CONDITIONS.LUA, DATABASE.LUA da pasta LIB, para mim é um simples atalho.

 

Mas passei a "identar" com o Notepad++

Link para o comentário
Compartilhar em outros sites

otscript owna mano... negocio eh fazer a indentaçao 'na mao' ms..

 

@rok

o negocio eh q... n adianta de nd tu por aquela verificaçao depois do explode u,U pq se o param for igual a '' o explode vai retornar uma tabela vazia, se n me engano... essa verificaçao eh feita antes para n usar o explode atoa... ;p

mas concerteza n vai da nenhum problema por depois, mas por depois e n por da na ms...

Link para o comentário
Compartilhar em outros sites

Slicer, é verdade, nao tinha reparado nisso kkk

 

ee Skymagnum, o que tem contra o otscript live? o debugger dele quebra um puta galho, fora que ja tem a maioria das funções com parametros adicionados, assim se vc só lembrar parte do nome ja da pra achar a funçao.

a identação dele até zoa um pouco, mas não é grande coisa, só zoa se você misturar espaços com tab

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...