[Talkations] Editar um script

Kagefighter
em Scripts
  • 1
  • 2

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

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

StyloMaldoso

a good son makes the house...;p
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 25/01/12Posts: 1593

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

Project Pokémon Mysterion OpenSoures 2016.

Em breve, mais informações!

 

23vfcht.png

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

Eu quero que REMOVA um item do player por dias vip...

StyloMaldoso

a good son makes the house...;p
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 25/01/12Posts: 1593

cara ta afim por faze action n ? o cara da use em x item e add vip ?

Project Pokémon Mysterion OpenSoures 2016.

Em breve, mais informações!

 

23vfcht.png

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

Quero algo mais prático, e aí vou fazer por quantidade por exemplo !Buy1premiumday 1 dia !Buy10premiumday 10 dias e assim vai...

StyloMaldoso

a good son makes the house...;p
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 25/01/12Posts: 1593

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

Project Pokémon Mysterion OpenSoures 2016.

Em breve, mais informações!

 

23vfcht.png

Mattziin

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/11/11Posts: 115

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

 

 

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

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>

Mattziin

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/11/11Posts: 115

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

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

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>

Mattziin

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/11/11Posts: 115

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

 

?

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

Não sei se o server do slicer já vem porque eu não adicionei "/ pode me explicar como adiciona estes aí?

Kagefighter

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 35

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...

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gê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!!!

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

  • 1
  • 2