n é so muda aqui ? ;x
addVipDays(cid, days)
por....
doPlayerAddItem(cid, xxxx, 1)
xxxx id do item e o 1 é a quantidade.. ai tu muda a fala ;x
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

n é so muda aqui ? ;x
addVipDays(cid, days)
por....
doPlayerAddItem(cid, xxxx, 1)
xxxx id do item e o 1 é a quantidade.. ai tu muda a fala ;x
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

Eu quero que REMOVA um item do player por dias vip...
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

cara ta afim por faze action n ? o cara da use em x item e add vip ?
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

Quero algo mais prático, e aí vou fazer por quantidade por exemplo !Buy1premiumday 1 dia !Buy10premiumday 10 dias e assim vai...
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

cara n so nenhum scripter mais fiz por action q tu quizer, n tenhu certeza q vai funciona né mais bora tenta ?
data/action/script/xxx.lua
function onUse(cid, item, frompos, item2, topos) doPlayerAddPremiumDays(cid, 30) doSendMagicEffect(getThingPos(cid), 29) sendMsgToPlayer(cid, 20, "Parabéns, você ganhou 30 dia de PREMIUM!") return true end
Editado Fevereiro 16 por StyloMaldoso
tenta
function onSay(cid, words, param, channel)
if words == "!buyvip" then
local item == 2806
local days = 30
if doRemoveItem(item.uid,1) then
addVipDays(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.")
end
elseif words == "/vipdays" then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end
Editado Fevereiro 16 por Mattziin
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

Cara eu já disse que quero que o player remova "x" item por "x" dias vip da talkations que eu postei! Eu fiz o tópico poque quero que ela fique como estou falando não estou pedindo nenhuma actions.
tenta
function onSay(cid, words, param, channel)
if words == "!buyvip" then
local item == 2806
local days = 30
if doRemoveItem(item.uid,1) then
addVipDays(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.")
end
elseif words == "/vipdays" then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end
Muito obrigado! REP+ podem mover
@mattzin
eu testei e deu isso aki:
[16/02/2013 22:20:09] [Error - TalkAction Interface] [16/02/2013 22:20:09] data/talkactions/scripts/vipaccplayer.lua:onSay [16/02/2013 22:20:09] Description: [16/02/2013 22:20:09] data/talkactions/scripts/vipaccplayer.lua:14: attempt to call global 'getVipDate' (a nil value) [16/02/2013 22:20:09] stack traceback: [16/02/2013 22:20:09] data/talkactions/scripts/vipaccplayer.lua:14: in function <data/talkactions/scripts/vipaccplayer.lua:2> [16/02/2013 22:20:17] [Error - TalkAction Interface] [16/02/2013 22:20:17] data/talkactions/scripts/vipaccplayer.lua:onSay [16/02/2013 22:20:17] Description: [16/02/2013 22:20:17] data/talkactions/scripts/vipaccplayer.lua:6: attempt to index local 'item' (a number value) [16/02/2013 22:20:17] stack traceback: [16/02/2013 22:20:17] data/talkactions/scripts/vipaccplayer.lua:6: in function <data/talkactions/scripts/vipaccplayer.lua:2>
Tenta
function onSay(cid, words, param, channel)
if words == "!buyvip" then
local days = 30
if itemEx.itemid == 2806 then
addVipDays(cid, days)
doRemoveItem(itemEx.uid,1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.")
end
elseif words == "/vipdays" then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end
Editado Fevereiro 16 por Mattziin
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

Deu n "/
[16/02/2013 22:30:16] [Error - TalkAction Interface] [16/02/2013 22:30:16] data/talkactions/scripts/vipaccplayer.lua:onSay [16/02/2013 22:30:16] Description: [16/02/2013 22:30:16] data/talkactions/scripts/vipaccplayer.lua:14: attempt to call global 'getVipDate' (a nil value) [16/02/2013 22:30:16] stack traceback: [16/02/2013 22:30:16] data/talkactions/scripts/vipaccplayer.lua:14: in function <data/talkactions/scripts/vipaccplayer.lua:2> [16/02/2013 22:30:25] [Error - TalkAction Interface] [16/02/2013 22:30:25] data/talkactions/scripts/vipaccplayer.lua:onSay [16/02/2013 22:30:25] Description: [16/02/2013 22:30:25] data/talkactions/scripts/vipaccplayer.lua:5: attempt to index global 'itemEx' (a nil value) [16/02/2013 22:30:25] stack traceback: [16/02/2013 22:30:25] data/talkactions/scripts/vipaccplayer.lua:5: in function <data/talkactions/scripts/vipaccplayer.lua:2>
vc ja adicionou as tables na database ?
ALTER TABLE `accounts` ADD `vipdays` int(11) NOT NULL DEFAULT 0;
?
e ja adicionou Isso na lib ?
--- Vip functions by Kekox
function getPlayerVipDays(cid)
local Info = db.getResult("SELECT `vipdays` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
local days= Info:getDataInt("vipdays")
Info:free()
return days
end
return LUA_ERROR
end
function doAddVipDays(cid, days)
db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` + " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
function doRemoveVipDays(cid, days)
db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` - " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
?
Editado Fevereiro 16 por Mattziin
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

Não sei se o server do slicer já vem porque eu não adicionei "/ pode me explicar como adiciona estes aí?
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0

onde fica o "phpmyadmin." eu não entendi ![]()
Edit: eu arrumei umas tag's e ele gastou o item e falou que ganhou os dias vip mas deu esse erro:
[17/02/2013 11:13:38] [Error - TalkAction Interface] [17/02/2013 11:13:38] data/talkactions/scripts/vipaccplayer.lua:onSay [17/02/2013 11:13:38] Description: [17/02/2013 11:13:38] (luaDoRemoveItem) Item not found [17/02/2013 11:16:09] Error during getDataInt(viptime). [17/02/2013 11:16:09] Error during getDataInt(viptime). [17/02/2013 11:16:09] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: viptime (UPDATE "accounts" SET "viptime" = 1363702569 WHERE "id" = 5;) [17/02/2013 11:16:09] Error during getDataInt(viptime). [17/02/2013 11:16:57] Error during getDataInt(viptime). [17/02/2013 11:16:57] Error during getDataInt(viptime).
E falou que adicionou mas não ta vip! eu coloquei pra só vip usar fly e mesmo comprando não da
@Edit:
11:19 Você adicionou 30 dia(s) de vip, agora você possui 0 dia(s) de vip.
11:19 Você possui 0 dia(s) de vip.
Ta dando esse erro...
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

mano pra q usar VIPsistem? n faz muito sentido para serv pokemon ;/
tenta usar esse..
--id, qntdade
local item = {1111, 1}
function onSay(cid, words, param)
if not tonumber(param) or tonumber(param) < 1 or tonumber(param) > 30 then
return doPlayerSendTextMessage(cid, 27, "Wrong params! say ".. words .." [days]\n[days] have to be a number between 1 and 30!")
end
local days = tonumber(param)
local cost = item[2]*days
if getPlayerItemCount(cid, item[1]) >= cost then
doPlayerAddPremiumDays(cid, days)
doPlayerRemoveItem(cid, item[1], cost)
doPlayerSendTextMessage(cid, 27, "Congradulations, now you have ".. days .." days of premium!")
else
doPlayerSendTextMessage(cid, 27, "You need atleast ".. cost .." ".. getItemNameById(item[1]) .." to buy this much of days of premium!")
end
return true
end
dai para usar tens q dizer qnts dias queres... tpw... /premium 30 -/premium eh soh um exemplo, podes por qlqr word neh...-
ps: a qntdade de itens q vai ser tirada do player vai ser a qntdade q tu por na variavel item * qnts dias o cara escolheu...
e dai nos scripts para checar se o player tem premium eh soh usar..
if not isPremium(cid) then return doPlayerSendTextMessage(cid, 27, "You don't are premium!") end
@PEDIDO
sei la quem moveu esse topico mas na proxima, ESPERE O DONO DO TOPICO FLAR Q FOI SANADA!!!
Editado Fevereiro 17 por Slicer
info
Grupo: Campones
Registrado: 04/01/13
Posts: 35
Reputação: 0
Queria que alguém me ajudasse, neste script que achei no fórum diz que o player troca MONEY por DIAS VIP. Queria saber se tem como trocar o MONEY por um Certo item que poderei colocar a quantidade (removeitem)
o script:
function onSay(cid, words, param, channel)
if words == "!buyvip" then
local price = 1000000
local days = 30
if doPlayerRemoveMoney(cid, price) then
addVipDays(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip, agora você possui "..getVipDays(cid).." dia(s) de vip.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..price.." para adicionar "..days.." dia(s) de vip.")
end
elseif words == "/vipdays" then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end