Ir para conteúdo
  • 0

Preciso Orientaçao


ivanhardjr

Pergunta

Pessoal to aprendendo agora, as coisas mais basicas da linguagem lua, mais eu nao tenho ngm que me ensine ai fica muito dificil pra mim, bom vamos la !

 

Eu peguei um sistema feito, pois ainda nao aprendi a criar do 0, apenas sei modificalo as vezes, porem esse eu n to conseguindo, alguem pode me fazer um script como esse? e porfavor me ensinar como fazer e onde usar tais açoes como: else - return then - return true - end

 

Porfavor gente, quero muito aprender, me dedico mais eu n entendo muito, se alguem se disponibilizar, entrar em contato comigo e tals, Obrigado !

 

 

 

function onSay(cid, words, param)
if(words == "!buyvip") then
 
doPlayerRemoveItem(cid,6527,30)
 
local days = 30
 
local daysvalue = days * 24 * 60 * 60
 
local storageplayer = getPlayerStorageValue(cid, 13540)
 
local timenow = os.time()  
 
 
if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then
 
time = timenow + daysvalue
 
else  
 
time = storageplayer + daysvalue
 
end
 
 
if string.find(tostring(getCreatureName(cid)),"[Vip]") then  
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")  
 
setPlayerStorageValue(cid, 13540, time)  
 
local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))  
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")  
 
else  
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")  
 
setPlayerStorageValue(cid, 13540, time)  
 
local name = getCreatureName(cid)  
 
db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")  
 
doRemoveCreature(cid)  
 
end  
 
else  
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de 30 Multi Coins para colocar vip.")  
 
end 
 

 

 

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

8 respostass a esta questão

Posts Recomendados

  • 0

@, Porfavor preciso dos 2, aprender em primeiro lugar, odeio ter que vir pedir ajuda sobre isso, e tambem do sistema feito, que ai eu ja vejo onde que eu tava errando, obrigado !

Link para o comentário
Compartilhar em outros sites

  • 0

Então da uma olhada no link que mandei acima, quanto a seu sistema. É vip ou premium account? qual sistema vip ta usando? e qual a base do seu servidor/versão?

Entao, esse sistema de Vip eu nao faço ideia, pq meio que eu peguei um pouco de cada, mais é VIP EX: (ele troca certo item por uma storage usando o comando !buyvip apenas isso) Servidor 8.60, ja a base do server é uma que o SubWat Postou, Refugia2012, porem ja mudei e retirei os bugs, só falta isso do vip :/

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

  • 0

Vou explicar passo a passo pra você algumas questões do script.

 

 

--- script

 

function onSay(cid, words, param)

if(words == "!buyvip") then

 

doPlayerRemoveItem(cid,6527,30) -- sugiro antes de remover um item, saber se o player tem o item ou a quantidade de itens necessário. if not (getPlayerItem (cid, itemid, quantidade)) then return true, doPlayerSendCancel (cid, "você não tem o item.") end

 

 

local days = 30

 

local daysvalue = days * 24 * 60 * 60

 

local storageplayer = getPlayerStorageValue(cid, 13540)

 

local timenow = os.time()

 

 

if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then --você já declarou na variável acima "storageplayer", não é necessário repetir aqui.

 

time = timenow + daysvalue

 

else

 

time = storageplayer + daysvalue

 

end

 

 

if string.find(tostring(getCreatureName(cid)),"[Vip]") then

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

 

setPlayerStorageValue(cid, 13540, time)

 

local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")

 

else

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

 

setPlayerStorageValue(cid, 13540, time)

 

local name = getCreatureName(cid)

 

db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")--essa query tem ser executada depois do player ser removido.

 

doRemoveCreature(cid)

 

end

 

else

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de 30 Multi Coins para colocar vip.")

 

end

Link para o comentário
Compartilhar em outros sites

  • 0

Eu ja resolvi de outra maneira, mais obrigado de verdade aprendi mais um pouco ^^, poderia me ajudar agora, sobre uma spell?

 

 

Vou explicar passo a passo pra você algumas questões do script.


--- script

function onSay(cid, words, param)
if(words == "!buyvip") then

doPlayerRemoveItem(cid,6527,30) -- sugiro antes de remover um item, saber se o player tem o item ou a quantidade de itens necessário. if not (getPlayerItem (cid, itemid, quantidade)) then return true, doPlayerSendCancel (cid, "você não tem o item.") end


local days = 30

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13540)

local timenow = os.time()


if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then --você já declarou na variável acima "storageplayer", não é necessário repetir aqui.

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end


if string.find(tostring(getCreatureName(cid)),"[Vip]") then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

setPlayerStorageValue(cid, 13540, time)

local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

setPlayerStorageValue(cid, 13540, time)

local name = getCreatureName(cid)

db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")--essa query tem ser executada depois do player ser removido.

doRemoveCreature(cid)

end

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de 30 Multi Coins para colocar vip.")

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Se você quer mesmo aprender, então começa aprendendo lógica de programação, identação, etc.

 

Eu sugiro que você faça o seguinte:

Crie um script.

Tente torná -lo menor e mais prático.

Faça-o simples, configurável, adaptável e portavel.

Revise-o.

Teste o script tentando encontrar falhas.

Finalize ele tornando-o o mais inteligível possível.

 

Veja um exemplo usando seu script.

 

--script

function onSay(cid, words, param)

local days = 30

local daysvalue = days * 24 * 60 * 60

local item, quantidade = 6527,30

local storageplayer = getPlayerStorageValue(cid, 13540)

local timenow = os.time()

local time = storageplayer < timenow and timenow+daysvalue or storageplayer+daysvalue

 

if (getplayeritemCount(cid, item) < quantidade) then

return true, doPlayerSendCancel (cid,"tu nao teins os itens")

elseif not(string.find(tostring(getCreatureName(cid)),"[Vip]")) then

return true, doPlayerSendCancel (cid,"tu naos eis vip")

else

doPlayerRemoveItem (cid, item, quantidade)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

setPlayerStorageValue(cid, 13540, time)

doRemoveCreature (cid)

db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..getCreatureName (cid).."' WHERE `id` = "..getPlayerGUID(cid)..";")

end

return true

end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...