Ir para conteúdo
  • 0

PEDIDO .:: Script ::.


texz

Pergunta


Olá !




Eu preciso de um script que funcione da seguinte maneira ..




o player use o comando /tutor



e ELE GANHE ACESO O CARGO TUTOR POR UM DIA ..




E que não possa usar o comando novamente...





Explicação >



Eu editei os GROUP no xml do server.. e editei algumas talkactions .. Fzendo com que o player que seja tutor na verdade é o VIP DONATE do meu server.. que com isso ele pode usar um comando.



<group id="2" name="Donate VIP" access="1"/>

(!tp donate) e pode ter acesso a area vip.




Obrigado.



Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Bom eu fiz o seguinte. Entrei no char.. fiz o comando reloguei..

 

e desloguei e deixer o server online por 2 horas com o player OFF

 

 

Coloquei no script 1 hora só

local Tempo = 1

e quando voltei a entrar não tinha funcionado ! =s

 

eu ainda usava o comando

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

  • 0

Maenilse, o problema do seu código é que você não manda o GUID direto pra atualizar no banco de dados quando o jogador está offline. Consertei aqui e adicionei um onLogin pro caso de o servidor cair (se não o cara ia ficar VIP pra sempre).

 

Código do/a Maenilse consertado:

 

 

local storage = 920304 -- storage que ficara armazenado que o player usou o comando
local mensJapegou = "Voce ja pegou seu Tutor por um dia!" -- mensagem de quando ele ja pegou!
local mensPass = "Parabens, agora voce se tornou tutor por um dia!" -- mensagem de parabens
local backGroup = 1 -- Group ID que ira ficar depois de 1 dia
local Tempo = 24


function onSay(cid, words, param, channel)
	if getPlayerStorageValue(cid, storage) ~= -1 then
		doPlayerSendCancel(cid, mensJapegou)
		doSendMagicEffect(getCreaturePosition(cid), 2)
		return TRUE
	end
	setPlayerGroupId(cid, 2)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, mensPass)
	doSendMagicEffect(getCreaturePosition(cid), 28)
	setPlayerStorageValue(cid, storage, os.time() + Tempo * 3600)
	addEvent(removeTutor, Tempo * 60 * 60 * 1000, getPlayerGUID(cid), cid)
	return TRUE
end


function removeTutor(guid, cid)
if isCreature(cid) then doRemoveCreature(cid) end
    db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)    
    return TRUE
end

 

 

 

E aí você registra no creaturescripts.xml essa tag aqui:

<event type="login" name="noVIP" event="script" value="novip.lua"/>

E salva esse código na pasta creaturescripts/scripts como novip.lua

 

 

function removeTutor(guid, cid)
        if isCreature(cid) then doRemoveCreature(cid) end
	db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)	
	return TRUE
end

function onLogin(cid)
	if getPlayerStorageValue(cid, 920304) >= os.time() and getPlayerGroupId(cid) == 2 then
		doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!')
		mayNotMove(cid, true)
		addEvent(removeTutor, 2000, getPlayerGUID(cid), cid)
	end
	return true
end

 

 

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

  • 0

Maenilse, o problema do seu código é que você não manda o GUID direto pra atualizar no banco de dados quando o jogador está offline. Consertei aqui e adicionei um onLogin pro caso de o servidor cair (se não o cara ia ficar VIP pra sempre).

 

Código do/a Maenilse consertado:

 

 

local storage = 920304 -- storage que ficara armazenado que o player usou o comando
local mensJapegou = "Voce ja pegou seu Tutor por um dia!" -- mensagem de quando ele ja pegou!
local mensPass = "Parabens, agora voce se tornou tutor por um dia!" -- mensagem de parabens
local backGroup = 1 -- Group ID que ira ficar depois de 1 dia
local Tempo = 24


function onSay(cid, words, param, channel)
	if getPlayerStorageValue(cid, storage) ~= -1 then
		doPlayerSendCancel(cid, mensJapegou)
		doSendMagicEffect(getCreaturePosition(cid), 2)
		return TRUE
	end
	setPlayerGroupId(cid, 2)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, mensPass)
	doSendMagicEffect(getCreaturePosition(cid), 28)
	setPlayerStorageValue(cid, storage, os.time() + Tempo * 3600)
	addEvent(removeTutor, Tempo * 60 * 60 * 1000, getPlayerGUID(cid), cid)
	return TRUE
end


function removeTutor(guid, cid)
if isCreature(cid) then doRemoveCreature(cid) end
    db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)    
    return TRUE
end

 

 

 

E aí você registra no creaturescripts.xml essa tag aqui:

<event type="login" name="noVIP" event="script" value="novip.lua"/>

E salva esse código na pasta creaturescripts/scripts como novip.lua

 

 

function removeTutor(guid, cid)
        if isCreature(cid) then doRemoveCreature(cid) end
	db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)	
	return TRUE
end

function onLogin(cid)
	if getPlayerStorageValue(cid, 920304) >= os.time() and getPlayerGroupId(cid) == 2 then
		doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!')
		mayNotMove(cid, true)
		addEvent(removeTutor, 2000, getPlayerGUID(cid), cid)
	end
	return true
end

 

 

 

Agora então esta tudo ok ?

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, tem razão. Corrigi aqui, testa aí:

function removeTutor(guid, cid)
        if isCreature(cid) then doRemoveCreature(cid) end
	db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)	
	return TRUE
end

function onLogin(cid)
	if getPlayerStorageValue(cid, 920304) < os.time() and getPlayerGroupId(cid) == 2 then
		doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!')
		mayNotMove(cid, true)
		addEvent(removeTutor, 2000, getPlayerGUID(cid), cid)
	end
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

No script inicial tem

local Tempo = 24

Isso é em horas. Pra fazer em minutos divide por 60. Por exemplo, quero 1min então faço:

local Tempo = 1/60
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...