Ir para conteúdo
  • Cadastre-se

(Resolvido)Pedido EXIT SIMPLES


Ir para solução Resolvido por wandersonnc,

Posts Recomendados

Oi este meu primeiro pedido , simples gostaria apenas de um script que deslg o player apos X tempo em uma tile , n precisa rsponder n precisa fazer nada apenas kick ele apos x tempo com batle ou sem SIMPLES obg aguardo Respostas

Link para o post
Compartilhar em outros sites

idletile.lua (data/creaturescripts/scripts):

function onThink(cid, interval)
    local kicktime = 10
    local tileactionid = 54321
    local idletime = getPlayerIdleTime(cid) + interval
    
    if getTileThingByPos(getCreaturePosition(cid)).actionid == tileactionid then
        if getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) then return true end
        doPlayerSetIdleTime(cid, idletime)
        if idletime > kicktime * 60 * 1000 then
            doRemoveCreature(cid)
        end
    end

    return true
end




Tag - creaturescripts.xml (data/creaturescripts):

<event type="think" name="IdleTile" event="script" value="idletile.lua"/>



Registre o creature event em login.lua (data/creaturescripts/scripts):

registerCreatureEvent(cid, "IdleTile")


Adicione o action ID (declarado na variável local tileactionid do script, que como exemplo foi 54321) ao tile que você deseja.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

desde ja vou dar o rep+ pela tentativa , porem vou testar e dou a resposta obg. =D


idletile.lua (data/creaturescripts/scripts):

function onThink(cid, interval)
    local kicktime = 10
    local tileactionid = 54321
    local idletime = getPlayerIdleTime(cid) + interval
    
    if getTileThingByPos(getCreaturePosition(cid)).actionid == tileactionid then
        if getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) then return true end
        doPlayerSetIdleTime(cid, idletime)
        if idletime > kicktime * 60 * 1000 then
            doRemoveCreature(cid)
        end
    end

    return true
end



Tag - creaturescripts.xml (data/creaturescripts):

<event type="think" name="IdleTile" event="script" value="idletile.lua"/>


Registre o creature event em login.lua (data/creaturescripts/scripts):

registerCreatureEvent(cid, "IdleTile")

Adicione o action ID (declarado na variável local tileactionid do script, que como exemplo foi 54321) ao tile que você deseja.

CARA OTIMO SCRIPT MAIS N FUNFO , PRECISO APENAS DE UM SCRIPT Q AO PISAR EM X TILE ESTANDO LA COM BATLE OU N APOS 1 MIN E KIKADO SO ISSO , TENTEI ESTE E N DEU CERTO , TEM Q KIKAR ELE MESMO Q ESTEJA COM BATLE

Editado por wandersonnc (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

movement

kick_time = 60 -- tempo que precisa ficar no tile para ser deslogado


function kick_time_by_pos(cid, ml, kicktime, postile)
	if not isCreature(cid) then return true end
	if ml == kicktime then
		return doRemoveCreature(cid)
	end
	if getThingPos(cid).x ~= postile.x or getThingPos(cid).y ~= postile.y or getThingPos(cid).z ~= postile.z then
		return true
	end
	addEvent(kick_time_by_pos, 1, cid, ml+1, kicktime, postile)
end

function function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	return kick_time_by_pos(cid, 0, kick_time * 10000, position)
end
<movevent type="StepIn" actionid="" event="script" value=".lua"/>

whatsapp-4in.png (18) 98134-9991

 

icon-skype.png [email protected]

 

Link para o post
Compartilhar em outros sites

 

movement

kick_time = 60 -- tempo que precisa ficar no tile para ser deslogado


function kick_time_by_pos(cid, ml, kicktime, postile)
	if not isCreature(cid) then return true end
	if ml == kicktime then
		return doRemoveCreature(cid)
	end
	if getThingPos(cid).x ~= postile.x or getThingPos(cid).y ~= postile.y or getThingPos(cid).z ~= postile.z then
		return true
	end
	addEvent(kick_time_by_pos, 1, cid, ml+1, kicktime, postile)
end

function function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
	return kick_time_by_pos(cid, 0, kick_time * 10000, position)
end
<movevent type="StepIn" actionid="" event="script" value=".lua"/>

Me explica um pouco a mais do script tipo onde fica o id q vou por na tile , e este 60 representa 1 min ?

Link para o post
Compartilhar em outros sites
function onThink(cid, interval)

local kicktime = 10

local tileactionid = 54321

local idletime = getPlayerIdleTime(cid) + interval

Fez tudo correto? O kicktime é em minutos, então no caso, você teria de esperar os 10 minutos no tile com o action ID 54321 para ser "kickado".

 

 

Me explica um pouco a mais do script tipo onde fica o id q vou por na tile , e este 60 representa 1 min ?

 

 

O action ID você determina na tag, em movements.xml

<movevent type="StepIn" actionid="ACTIONID" event="script" value="FILENAME.lua"/>

E sim, são 60 segundos.

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

entendi tudo porem so n aparte de movementes essa tang do  movimentos

 

Fez tudo correto? O kicktime é em minutos, então no caso, você teria de esperar os 10 minutos no tile com o action ID 54321 para ser "kickado".


 

 

 

 

O action ID você determina na tag, em movements.xml

<movevent type="StepIn" actionid="ACTIONID" event="script" value="FILENAME.lua"/>

E sim, são 60 segundos.

Entendi porem a parte do movements n , se eu imitar seu scrip completo id tudo , tenho q ir na pasta do movements e colocar um script la dentro tb e nas tang colocar  <movevent type="StepIn" actionid="ACTIONID" event="script" value="FILENAME.lua"/> , se puder explicar apenas a parto do movements o q devo fazer agradeço mt me desculpe pela burrice e pq n estou compriendendo obg.

Link para o post
Compartilhar em outros sites

Relaxa.
Confira se fez tudo certo no creature script que eu fiz, pois não vejo erros.




Enquanto ao que você pediu uma explicação.
Códigos do membro Gantz.

kicktile.lua (data\movements\scripts):

kick_time = 60

function kick_time_by_pos(cid, ml, kicktime, postile)
    if not isCreature(cid) then return true end

        if ml == kicktime then
            return doRemoveCreature(cid)
        end

    if getThingPos(cid).x ~= postile.x or getThingPos(cid).y ~= postile.y or getThingPos(cid).z ~= postile.z then return true end

    addEvent(kick_time_by_pos, 1, cid, ml+1, kicktime, postile)
    return true
end

function onStepIn(cid, item, position, fromPosition)
    return kick_time_by_pos(cid, 0, kick_time * 10000, position)
end




Tag - movements.xml (data\movements):

<movevent type="StepIn" actionid="65432" event="script" value="kicktile.lua"/>

Adicione o action ID 65432 ao tile, fim.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

[29/12/2014 02:07:29] [Error - LuaScriptInterface::loadFile] cannot open data/movements/scripts/kicktile.lua: No such file or directory
[29/12/2014 02:07:29] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/kicktile.lua)
[29/12/2014 02:07:29] cannot open data/movements/scripts/kicktile.lua: No such file or directory

 

Relaxa.
Confira se fez tudo certo no creature script que eu fiz, pois não vejo erros.




Enquanto ao que você pediu uma explicação.
Códigos do membro Gantz.

kicktile.lua (data\movements\scripts):

kick_time = 60

function kick_time_by_pos(cid, ml, kicktime, postile)
    if not isCreature(cid) then return true end

        if ml == kicktime then
            return doRemoveCreature(cid)
        end

    if getThingPos(cid).x ~= postile.x or getThingPos(cid).y ~= postile.y or getThingPos(cid).z ~= postile.z then return true end

    addEvent(kick_time_by_pos, 1, cid, ml+1, kicktime, postile)
    return true
end

function onStepIn(cid, item, position, fromPosition)
    return kick_time_by_pos(cid, 0, kick_time * 10000, position)
end



Tag - movements.xml (data\movements):

<movevent type="StepIn" actionid="65432" event="script" value="kicktile.lua"/>

Adicione o action ID 65432 ao tile, fim.

[29/12/2014 02:07:29] [Error - LuaScriptInterface::loadFile] cannot open data/movements/scripts/kicktile.lua: No such file or directory
[29/12/2014 02:07:29] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/kicktile.lua)
[29/12/2014 02:07:29] cannot open data/movements/scripts/kicktile.lua: No such file or directory

Link para o post
Compartilhar em outros sites
[29/12/2014 02:07:29] [Error - LuaScriptInterface::loadFile] cannot open data/movements/scripts/kicktile.lua: No such file or directory [29/12/2014 02:07:29] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/kicktile.lua) [29/12/2014 02:07:29] cannot open data/movements/scripts/kicktile.lua: No such file or directory

Esses erros indicam que você não estipulou o nome do arquivo corretamente, na tag ou no próprio nome do arquivo Lua mesmo.

Verifique e iguale-os.

~

 

Melhor, faz de um modo mais simples:

kicktile.lua (data\movements\scripts):

function onStepIn(cid)
    time = 1 -- in minutes
    
    addEvent(function()
        if isCreature(cid) then
            doRemoveCreature(cid)
        end
    end, time * 60 * 1000)
    return true
end

 

Tag - movements.xml (data\movements):

<movevent type="StepIn" actionid="54321" event="script" value="kicktile.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • Solução

movemts script com nome autokick.lua

local config = { 
tempo = 3, -- Tempo em minutos 
storage = 20000, -- não mexa aqui 
teleport = {x=1206, y=754, z=7} -- coordenadas do seu templo 
} 
 
function onStepIn(cid, item, frompos, topos)
if isPlayer(cid) == TRUE then
if getPlayerStorageValue(cid, config.storage) <= 0 then 
kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) 
kick2 = addEvent(doTeleportThing, config.tempo*60*1000-500, cid, config.teleport) 
kick = addEvent(doRemoveCreature, config.tempo*60*1000, cid) 
doPlayerSendTextMessage(cid, 22, "[Trainer]: Movimente-se a cada " .. config.tempo .. " minutos, caso contrário, seu char será deslogado.") 
setPlayerStorageValue(cid, config.storage, 1) 
end 
end
end 
 
function onStepOut(cid, item, frompos, topos)
if isPlayer(cid) == TRUE then
if getPlayerStorageValue(cid, config.storage) >= 1 then 
setPlayerStorageValue(cid, config.storage, -1) 
doPlayerSendTextMessage(cid, 23, "System kick off!") 
stopEvent(kick) 
stopEvent(kick1) 
stopEvent(kick2) 
end 
end
end

movements script adc a tang

<!-- Auto kick tiles -->	
	<movevent type="StepIn" actionid="25000" event="script" value="autokick.lua"/>
	<movevent type="StepOut" actionid="25000" event="script" value="autokick.lua"/>

achei esse scritp testei deu certo alende kikar manda pro templo e manda msg pro player , OBG A Suicide , e Gantz , pelos scripts porem sou burro e n dei conta obg mesmo abraços...

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo