Ir para conteúdo

Vip System By Account V1.0


Kydrai

Posts Recomendados

@Alfs

 

Action (Door)

 

Coloque actionid 15001 na door onde somente os vips poderão passar. Use a porta gate of expertise (id: 1227)

 

actions.xml:

<action actionid="15001" script="vipdoor.lua"/>

 

vipdoor.lua:

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isVip(cid) == FALSE then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players vip podem passar.")
else
	doTransformItem(item.uid, item.itemid + 1)
	doTeleportThing(cid, toPosition)
end
return TRUE
end

Link para o comentário
Compartilhar em outros sites

amigo eu uso mysql teria como ajuda?

 

como q faço pra cria essa etapa do seu tutorial

 

 

installVip() -> Cria a coluna no banco de dados para usar o sistema de vip (testei somente em sqlite, mas acredito que funcione em mysql)

 

 

abraço!

Link para o comentário
Compartilhar em outros sites

@francklerp

Você pode usar o exemplo da talkaction para instalar ou executar o comando no mysql:

ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;

Pra executar o comando é só entrar na sua db e clicar em SQL, cola o comando e executa.

Link para o comentário
Compartilhar em outros sites

@deletera

Não é por storage, se for colocar no Gesior teria que acessar a tabela viptime em accounts.

Não sei como é o Gesior, então não posso ajudar com isso.

Link para o comentário
Compartilhar em outros sites

esse erro aki em casa

 

[23/07/2010 16:57:30] Lua Script Error: [CreatureScript Interface] 
[23/07/2010 16:57:30] data/creaturescripts/scripts/viplogin.lua:onLogin

[23/07/2010 16:57:31] data/creaturescripts/scripts/viplogin.lua:2: attempt to call global 'getVipTime' (a nil value)
[23/07/2010 16:57:31] stack traceback:
[23/07/2010 16:57:31] 	data/creaturescripts/scripts/viplogin.lua:2: in function <data/creaturescripts/scripts/viplogin.lua:1>

Editado por DevilMoon
Link para o comentário
Compartilhar em outros sites

@DevilMoon

Ta falando que a função não existe.

Você precisa colocar o vipAccount.lua na pasta data/lib.

Em alguns OTs ainda precisa abrir o arquivo data/lib/data.lua e colocar:

dofile(getDataDir() .. "lib/vipAccount.lua")

Link para o comentário
Compartilhar em outros sites

Já isso acontece porque você não instalou a tabela do db.

 

Você pode usar o exemplo da talkaction para instalar (/installvip) ou executar o comando sql no seu db:

ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;

 

Vou atualizar o tópico e colocar os possíveis erros que os usuários estão perguntado.

EDIT: Vou editar depois porque ja ta no limite de caracteres.

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

@dulpforever

Acabei de testar e funciona normalmente.

Tem certeza que colocou o script de login corretamente?

Tenta usar o script dessa forma abaixo, assim ele irá mostrar o tempo caso a vip não tenha acabado.

function onLogin(cid)
if getVipTime(cid) > 0  and isVip(cid) == FALSE then
	local townid = 1
	doPlayerSetTown(cid, townid)
	local templePos = getTownTemplePosition(getPlayerTown(cid))
	doTeleportThing(cid, templePos, false)
	setVipTime(cid, 0)
	doTeleportPlayers(cid, templePos)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!")
else
	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

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...