vip by talkaction

iqueob
Por iqueob
em Scripts
  • 1
  • 2

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

olá Xtibianos, possuo um STYLLER 8.6 versao 0.7.5 e este sistema de vip por Item:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

local config={

removeOnUse = "yes" -- remover quando usar ("yes" or "no")

}

 

local days = 5 -- dias que serão adicionados

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13001)

local timenow = os.time()

 

if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.Para acessar a NOVA area vip, suba o segundo andar do templo.")

setPlayerStorageValue(cid, 13001, time)

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

doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))

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

if (config.removeOnUse == "yes") then

doRemoveItem(item.uid, 1)

end

 

return TRUE

end

Bom, eu queria algum jeito que so os jogadores que ja possuem a storage id "7777" (storage da quest que ganha o item do script acima) possam usar uma talkaction e renovar sua vip.

 

desde já, Obrigado.

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

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

 

 

 

local days = 10

local price = 50000

local storage = 7777

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13001)

local timenow = os.time()

 

function onSay(cid, words, param)

if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end

if(words == "!buyvip") then

if not doPlayerRemoveMoney(cid, price) then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")

doPlayerAddItem(cid,2148,50000)

return true

end

if getPlayerStorageValue(cid, storage) ~= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa completar a quest para renovar sua vip.") return true

end

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

setPlayerStorageValue(cid, 13001, time)

end

return true

end

 

 

 

Agora adicione essa tag em talkactions.xml

<talkaction log="no" words="!buyvip" event="script" value="newstor.lua"/>


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

testei, aconteceu o seguinte, no char do god, removeu a grana mas mandou a mensagem "22:47 Você precisa completar a quest para renovar sua vip." e nao adicionou os dias de vip. Com um player que nao tinha a quest, aconteceu da mesma maneira que com o god, retirou o dinheiro, nao adicionou vip days e mensagem:"Você precisa completar a quest para renovar sua vip.". Com o player que ja tinha a quest, o dinheiro foi retirado e a vip normalmente adicionada.

obrigado.

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Me passe o script da quest, o action. pf


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

action da quest vip:

function onUse(cid, item, frompos, item2, topos)

if item.uid == 7007 then

if item.itemid == 1946 then

 

player1pos = {x=1265, y=1033, z=5, stackpos=253}

player1 = getThingfromPos(player1pos)

 

player2pos = {x=1264, y=1033, z=5, stackpos=253}

player2 = getThingfromPos(player2pos)

 

player3pos = {x=1263, y=1033, z=5, stackpos=253}

player3 = getThingfromPos(player3pos)

 

player4pos = {x=1262, y=1033, z=5, stackpos=253}

player4 = getThingfromPos(player4pos)

 

 

if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then

 

player1level = getPlayerLevel(player1.uid)

player2level = getPlayerLevel(player2.uid)

player3level = getPlayerLevel(player3.uid)

player4level = getPlayerLevel(player4.uid)

 

questlevel = 200

 

if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then

 

handmaiden1pos = {x=1267, y=1031, z=6}

demon2pos = {x=1266, y=1031, z=6}

demon3pos = {x=1265, y=1031, z=6}

demon4pos = {x=1264, y=1031, z=6}

demon5pos = {x=1263, y=1031, z=6}

demon6pos = {x=1262, y=1031, z=6}

handmaiden7pos = {x=1261, y=1031, z=6}

punish8pos = {x=1260, y=1032, z=6}

dracola9pos = {x=1260, y=1033, z=6}

punish10pos = {x=1260, y=1034, z=6}

handmaiden11pos = {x=1261, y=1035, z=6}

demon12pos = {x=1262, y=1035, z=6}

demon13pos = {x=1263, y=1035, z=6}

demon14pos = {x=1264, y=1035, z=6}

demon15pos = {x=1265, y=1035, z=6}

demon16pos = {x=1266, y=1035, z=6}

handmaiden17pos = {x=1267, y=1035, z=6}

orshabaal18pos = {x=1266, y=1033, z=6}

orshabaal19pos = {x=1267, y=1033, z=6}

orshabaal20pos = {x=1268, y=1033, z=6}

 

doSummonCreature("The Handmaiden", handmaiden1pos)

doSummonCreature("The Handmaiden", handmaiden11pos)

doSummonCreature("The Handmaiden", handmaiden17pos)

doSummonCreature("The Handmaiden", handmaiden7pos)

doSummonCreature("Orshabaal", orshabaal18pos)

doSummonCreature("Orshabaal", orshabaal19pos)

doSummonCreature("Orshabaal", orshabaal20pos)

doSummonCreature("Dracola", dracola9pos)

doSummonCreature("Mr. Punish", punish8pos)

doSummonCreature("Mr. Punish", punish10pos)

doSummonCreature("Hellhound", demon2pos)

doSummonCreature("Hellhound", demon3pos)

doSummonCreature("Hellhound", demon5pos)

doSummonCreature("Hellhound", demon4pos)

doSummonCreature("Hellhound", demon6pos)

doSummonCreature("Hellhound", demon12pos)

doSummonCreature("Hellhound", demon13pos)

doSummonCreature("Hellhound", demon14pos)

doSummonCreature("Hellhound", demon15pos)

doSummonCreature("Hellhound", demon16pos)

 

 

 

nplayer1pos = {x=1265, y=1033, z=6}

nplayer2pos = {x=1264, y=1033, z=6}

nplayer3pos = {x=1263, y=1033, z=6}

nplayer4pos = {x=1262, y=1033, z=6}

 

doSendMagicEffect(player1pos,2)

doSendMagicEffect(player2pos,2)

doSendMagicEffect(player3pos,2)

doSendMagicEffect(player4pos,2)

 

doTeleportThing(player1.uid,nplayer1pos)

doTeleportThing(player2.uid,nplayer2pos)

doTeleportThing(player3.uid,nplayer3pos)

doTeleportThing(player4.uid,nplayer4pos)

 

doSendMagicEffect(nplayer1pos,10)

doSendMagicEffect(nplayer2pos,10)

doSendMagicEffect(nplayer3pos,10)

doSendMagicEffect(nplayer4pos,10)

 

doTransformItem(item.uid,1945)

 

else

doPlayerSendCancel(cid,"All players must have level 200 to enter.")

end

else

doPlayerSendCancel(cid,"You need 4 players in your team.")

end

end

if item.itemid == 1945 then

 

starting={x=1252, y=1023, z=6, stackpos=253}

checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}

ending={x=1281, y=1041, z=6, stackpos=253}

players=0

totalmonsters=0

monster = {}

repeat

creature= getThingfromPos(checking)

if creature.itemid > 0 then

if getPlayerAccess(creature.uid) == 0 then

players=players+1

end

if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then

totalmonsters=totalmonsters+1

monster[totalmonsters]=creature.uid

end

end

checking.x=checking.x+1

if checking.x>ending.x then

checking.x=starting.x

checking.y=checking.y+1

end

until checking.y>ending.y

if players==0 then

trash= {x=233, y=125, z=10}

current=0

repeat

current=current+1

doTeleportThing(monster[current],trash)

until current>=totalmonsters

doTransformItem(item.uid,1946)

end

 

 

end

end

if item.uid == 7770 then

queststatus = getPlayerStorageValue(cid,7777)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a Ticket Vip.")

doPlayerAddItem(cid,5785,1)

setPlayerStorageValue(cid,7777,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

end

if item.uid == 7772 then

queststatus = getPlayerStorageValue(cid,7778)

if queststatus ~= 1 then

doPlayerSendTextMessage(cid,22,"You have found a signet ring.")

doPlayerAddItem(cid,7697,1)

setPlayerStorageValue(cid,7778,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

end

if item.uid == 7773 then

queststatus = getPlayerStorageValue(cid,7779)

if queststatus ~= 1 then

doPlayerSendTextMessage(cid,22,"You have found a Boots Vip.")

doPlayerAddItem(cid,2358,1)

setPlayerStorageValue(cid,7779,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

end

return 1

end

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Ok certo. o talkaction deu ?


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

o talkaction funcinou so para quem ja possuia a quest vip, quem nao tem, se tentar, vai perder o dinheiro e nao vai ganhar vip.

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

OK, irei arrumar Isso.

Você tem alguma preferencia? Quer que ganhe mais doque 10 dias vip? Quer que tire a opção de dinheiro?Quer que mude algo?


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

nao nao, basicamente eu sei editar isso tudo, mexi justamente na parte do dinheiro e da quantidade de dias de vip. coloquei 5kk e 15 respectivamente...

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Substitua o talkaction por esse, arrumei uns bugs, depois é só editar conforme quiser

 

 

local days = 10

local price = 50000

local storage = 7777

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13001)

local timenow = os.time()

 

function onSay(cid, words, param)

if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end

if(words == "!buyvip") then

if not doPlayerRemoveMoney(cid, price) then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")

doPlayerAddItem(cid,2148,50000)

return true

end

if getPlayerStorageValue(cid, storage) ~= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa completar a quest para renovar sua vip.") return true

end

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

setPlayerStorageValue(cid, 13001, time)

end

return true

end

 

 

Boa sorte!


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

Agora deu esse erro:

[04/02/2013 14:04:20] [Error - TalkAction Interface]

[04/02/2013 14:04:20] data/talkactions/scripts/systemvip2.lua:onSay

[04/02/2013 14:04:20] Description:

[04/02/2013 14:04:20] data/talkactions/scripts/systemvip2.lua:12: attempt to perform arithmetic on upvalue 'storageplayer' (a boolean value)

[04/02/2013 14:04:20] stack traceback:

[04/02/2013 14:04:20] data/talkactions/scripts/systemvip2.lua:12: in function <data/talkactions/scripts/systemvip2.lua:8>

Artigo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/07/12Posts: 69Char no Tibia: ADM Aritgo
function onSay(cid, words, param)
local days = 10
local price = 50000
local storage = 7777
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13001)
local timenow = os.time()
if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
if(words == "!buyvip") then
if not doPlayerRemoveMoney(cid, price) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")
doPlayerAddItem(cid,2148,50000)
return true
end
if getPlayerStorageValue(cid, storage) ~= 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa completar a quest para renovar sua vip.") return true
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13001, time)
end
return true
end

<<Sings Feitas , By : Me>>

Anyur | Overpower | Tonynh | Anyur |

 

untitl31.png

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Artigo...? What?

 

@topic

 

Cara, me passa o arquivo system2.lua da pasta talkactions/scripts


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

iqueob

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/09Posts: 13Char no Tibia: Piolho Vuador

deu o mesmo erro inicial, se o player nao fez a quest, remove a grana e nao add vip!

 

script systemvip2:

function onSay(cid, words, param)

local days = 10

local price = 5000000

local storage = 7777

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13001)

local timenow = os.time()

if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end

if(words == "!viphog") then

if not doPlayerRemoveMoney(cid, price) then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")

doPlayerAddItem(cid,2148,50000)

return true

end

if getPlayerStorageValue(cid, storage) ~= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa completar a quest para renovar sua vip.") return true

end

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

setPlayerStorageValue(cid, 13001, time)

end

return true

end

 

talkactions.xml:

<talkaction log="no" words="!viphog" event="script" value="systemvip2.lua"/>

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Ok, tenta assim. substitui por esse:

 

 

function onSay(cid, words, param)

local days = 10

local price = 5000000

local stor1 = 7777

local daysvalue = days * 24 * 60 * 60

local storplayer = getPlayerStorageValue(cid, 13001)

local timenow = os.time()

if getPlayerStorageValue(cid, 13001) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storplayer + daysvalue

end

if(words == "!viphog") then

if not doPlayerRemoveMoney(cid, price) then

doPlayerAddItem(cid,2148,price)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")

return true

end

if getPlayerStorageValue(cid, stor1) ~= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa completar a quest para renovar sua vip.") return true

end

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

setPlayerStorageValue(cid, 13001, time)

end

return true

end

 


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

  • 1
  • 2