Muito bom o sistema ....mas tpw o Table eh pra add no database?(to por fora de Script =D)
Grato a Atenção
Por Lukeskywalker, 27 de mar. de 2009 em Actions e Talkactions
info
Grupo: Visconde
Registrado: 08/01/09
Posts: 331
Reputação: 0
Char no Tibia: Orcshaball

Muito bom o sistema ....mas tpw o Table eh pra add no database?(to por fora de Script =D)
Grato a Atenção
Editado Março 27 por Nosctradamus
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

Na database.
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

lol velho, era melhor ter usado global storage value...
tipo:
global storage value base = 56874
account_vip_storage_value = acc_id+global storage value base
melhor do que alterar a tabela de account, pode dar bug em alguns sites, mal feitos talvez
info
Grupo: Visconde
Registrado: 08/01/09
Posts: 331
Reputação: 0
Char no Tibia: Orcshaball

@LukeSkywalker
Thanks.
vo add no meu projeto !!
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

lol velho, era melhor ter usado global storage value...tipo:
global storage value base = 56874
account_vip_storage_value = acc_id+global storage value base
melhor do que alterar a tabela de account, pode dar bug em alguns sites, mal feitos talvez
Eu acho que não daria nenhum problema em adicionar uma coluna por que no site é escolhido as colunas que iram ser usadas não a tabela intera então eu descarto o problema com sites.
info
Grupo: Campones
Registrado: 02/07/07
Posts: 70
Reputação: 0
Char no Tibia: Peppenzily

Cara funcionou mesmo valeuu aew cara mais tem um pequeno problema =/.
Quando vai checar o vip:
16:05 /checkvip GOD Jhon
16:05 O player GOD Jhon não é vip.
Erro TFS:
[12/04/2009 16:05:14] Error during getDataInt(vip).
Fica dando esse outro erro quando adiciono vip:
16:06 /addvip GOD Jhon
16:06 Foi adicionado a vip ao player GOD Jhon.
Erro TFS:
[12/04/2009 16:06:55] Error during getDataInt(vip).
[12/04/2009 16:06:55] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: near "LIMIT": syntax error (UPDATE "accounts" SET "vip" = '1' WHERE "accounts"."id" = 2 LIMIT 1;)
Não sei por que... e meu ot e de acc manager.
Editado Abril 12 por Jhon Herbert
info
Grupo: Conde
Registrado: 18/12/05
Posts: 912
Reputação: +86
Gênero: Masculino
Char no Tibia: Kohzete

Uia boa ideia...
Porém o povo brasileiro é meio preguiçoso e acho que não irá rolar =/
Porém e um sistema mais seguro e pode ser adquirido pelo site por um codigo php simples
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

Cara funcionou mesmo valeuu aew cara mais tem um pequeno problema =/.
Quando vai checar o vip:
16:05 /checkvip GOD Jhon
16:05 O player GOD Jhon não é vip.
Erro TFS:
[12/04/2009 16:05:14] Error during getDataInt(vip).
Fica dando esse outro erro quando adiciono vip:
16:06 /addvip GOD Jhon
16:06 Foi adicionado a vip ao player GOD Jhon.
Erro TFS:
[12/04/2009 16:06:55] Error during getDataInt(vip).
[12/04/2009 16:06:55] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: near "LIMIT": syntax error (UPDATE "accounts" SET "vip" = '1' WHERE "accounts"."id" = 2 LIMIT 1;)
Não sei por que... e meu ot e de acc manager.
tenta tirar o "LIMIT 1" tipo eu so testei em MySql então não sei se funciona em SQLITE
Bom eu vo dar uma revisada no script, estou pensando em postar o outro que eu fiz que é melhor você adiciona a vip por quantidade de dias e ela remove sosinha ainda estou testando aquele script.
Editado Abril 20 por Lukeskywalker
info
Grupo: Barão
Registrado: 07/03/08
Posts: 231
Reputação: +17
Gênero: Masculino

Muito bom,parabéns cara!
Eu usei no meu ot,ta todo mundo gostando.
É rápido e prático.
Parabéns!
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

Pessoal dei uma revisada no script podem testar caso achar algum erro pode postar o erro aqui que eu irei arrumar.
info
Grupo: Campones
Registrado: 23/07/06
Posts: 20
Reputação: 0
Char no Tibia: Eckous

muito bom
mais fica dando erros
explo:esse é quando vo fala o nome pra ver se tem vip "/checkvip ****
[21/04/2009 01:59:46] Lua Script Error: [TalkAction Interface] [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:onSay [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:14: attempt to call global 'isVipByName' (a nil value) [21/04/2009 01:59:46] stack traceback: [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:14: in function <data/talkactions/scripts/vip.lua:1>
E esse é quando passa pela pos:
[21/04/2009 01:58:36] Lua Script Error: [MoveEvents Interface] [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:onStepIn [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:2: attempt to call global 'isVip' (a nil value) [21/04/2009 01:58:36] stack traceback: [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:2: in function <data/movements/scripts/Viptile.lua:1>
vlw
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker

muito bommais fica dando erros
explo:esse é quando vo fala o nome pra ver se tem vip "/checkvip ****
[21/04/2009 01:59:46] Lua Script Error: [TalkAction Interface] [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:onSay [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:14: attempt to call global 'isVipByName' (a nil value) [21/04/2009 01:59:46] stack traceback: [21/04/2009 01:59:46] data/talkactions/scripts/vip.lua:14: in function <data/talkactions/scripts/vip.lua:1>
E esse é quando passa pela pos:
[21/04/2009 01:58:36] Lua Script Error: [MoveEvents Interface] [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:onStepIn [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:2: attempt to call global 'isVip' (a nil value) [21/04/2009 01:58:36] stack traceback: [21/04/2009 01:58:36] data/movements/scripts/Viptile.lua:2: in function <data/movements/scripts/Viptile.lua:1>
vlw
Qual a versão de otserver que tu usa?
tu adiciono as funções no local correto?
info
Grupo: Campones
Registrado: 22/04/08
Posts: 1
Reputação: 0

ACTION F*** VLW MSM!!
Estava prokurando hoje exatamente isso.
info
Grupo: Campones
Registrado: 25/04/09
Posts: 9
Reputação: 0

Nossa esse script está muito bom eu testei aqui e funciona perfeitamente, e sobre essa possivel melhora no script que tu comento vai lançar mesmo?
info
Grupo: Cavaleiro
Registrado: 30/06/08
Posts: 173
Reputação: +31
Char no Tibia: Lady Stars Walker
Bom vamos começa primeiro adicionando a tabela para indicar se o player é vip ou não.
Va em seu MySQL e use este query.
Agora vamos colocar a talkaction para poder colocar a vip e retirar a vip dos players.
Va em Talkactions.xml e adicione.
Agora crie um script chamado vip.lua na pasta scripts da pasta Talkactions e coloque este codigo abaixo.
function onSay(cid, words, param) local Data = string.explode(param, ",") if Data then local Target = db.getResult("SELECT `name` FROM `players` WHERE `name` = ".. db.escapeString(Data[1]) ..";") if Data then if (Target:getID() ~= -1) then if (words:sub(2, 2) == "a") then db.executeQuery("UPDATE `accounts` SET `vip` = 1 WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi adicionado a vip ao player ".. Data[1] ..".") elseif (words:sub(2, 2) == "r") then db.executeQuery("UPDATE `accounts` SET `vip` = 0 WHERE `accounts`.`id` = ".. getAccountIdByName(Data[1]) ..";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foi removida a vip do player ".. Data[1] ..".") elseif (words:sub(2, 2) == "c") then if (isVipByName(Data[1]) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." é vip.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player ".. Data[1] .." não é vip.") end end else doPlayerSendCancel(cid, "Este player ".. Data[1] .." não existe.") end end else doPlayerSendCancel(cid, "Insira um nome.") end return TRUE endAgora que você ja tem o sistema de adicionar vip e retirar a vip do player vamos fazer duas funções que verifique se o player é vip ou não em actions.
Primeiro va em "Data/Lib/Function.lua" e adicione a seguinte função abaixo.
function isVip(cid) local Query = db.getResult("SELECT `vip` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") local vip = Query:getDataInt("vip") return (isPlayer(cid) == TRUE and (vip == 1)) and TRUE or FALSE end function isVipByName(cid) local Query = db.getResult("SELECT `vip` FROM `accounts` WHERE `accounts`.`id` = ".. getAccountIdByName(cid) ..";") local vip = Query:getDataInt("vip") return vip endAgora vou dar um exemplo de uma action de tile que verifica se o player é vip ou não para passar por ele.
Va em Movements.xml e adicione.
Agora iremos cria uma action que no tile que tiver o actionID 1000 tera que ser player vip para passar por ele.
Agora crie um scripts chamado Viptile.lua na pasta scripts
OBS: Este sistema serve tambem para players offline como online pois é direto por SQL
Espero que tenham gostado pois tive um bom trabalho para cria este script e decidi disponibiliza a vocês! que tem servidor com sistema de vip.
Por favor não tirem os creditos deste script!!!!!!!!!!
EDIT
Uma coisa pretendo melhorar este sistema para ele remover a vip automatico numa certa quantidade de dias configuravel!
Exemplos de como adicionar vip e remover e verificar se o player é vip.
Exemplo como adicionar vip
/addvip Luke sky walker
Exemplo como remover vip
/remvip Luke sky walker
Exemplo como verificar se o player é vip
/checkvip Luke sky walker
Vip.rar
Editado Maio 7 por Lukeskywalker