Ir para conteúdo
  • 0

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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689509
Compartilhar em outros sites

  • 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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689504
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?

Link para o comentário
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689508
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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689540
Compartilhar em outros sites

  • 0

Tópico Movido
Este tópico foi movido de "OTServScriptingSuporte Scripting"
para "OTServScriptingSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".

 

 

Link para o comentário
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689550
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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689583
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
https://xtibia.com/forum/topic/240110-preciso-orienta%C3%A7ao/#findComment-1689591
Compartilhar em outros sites

×
×
  • Criar Novo...