Ir para conteúdo

God Administrativo


HighSaintess

Posts Recomendados

Oiie , estou pedido aqui , ou se tiver que me redirecione .

 

Presiso de um script +/-. assim.

 

O Player Fla "GOD".

 

Ae Automaticamente , apareçe uma msg no Default, /accept invite "PLAYER NAME", /Reject Invite "player name".

 

ae se accept o god é teleportado ao player , se reject naum .

 

e tabém que tiver um modo de antiflood um tempo mininmo de pedido e tal .

 

se alguem sober de algum script assim , que ja esteja postado , os se nun tiver fica a dica. :p

 

Obrigado

 

PS: Sei de action so um pouco ;/

Link para o comentário
Compartilhar em outros sites

Olha , ao inves da mensagem ser mandada no default , ira ser mandada em vermelho para todo mundo , ok ?

Pois preferi assim , porque fica mais facil do GOD ver quem mandou ..

 

Va na pasta do seu OT data/talkactions/scripts , copie e cole um arquivo .lua , apague tudo que tem dentro , renomeie para "chamando" e coloque isso dentro :

 

function onSay(cid, words, param, channel)

if(words == "GOD") then

doBroadcastMessage(GetPlayerName(cid) .. "have called the GOD !)

end

return 1

end

 

function onSay(cid, words, param, channel)

 

if(param == '') then

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")

 

return true

 

end

 

 

local creature = getCreatureByName(param)

 

local player = getPlayerByNameWildcard(param)

 

local waypoint = getWaypointPosition(param)

 

local tile = string.explode(param, ",")

 

local pos = {x = 0, y = 0, z = 0}

 

 

if(player ~= nil and (not isPlayerGhost(player) or getPlayerGhostAccess(player) <= getPlayerGhostAccess(cid))) then

 

pos = getCreaturePosition(player)

 

elseif(creature ~= nil and (not isPlayer(creature) or (not isPlayerGhost(creature) or getPlayerGhostAccess(creature) <= getPlayerGhostAccess(cid)))) then

 

pos = getCreaturePosition(creature)

 

elseif(type(waypoint) == 'table' and waypoint.x ~= 0 and waypoint.y ~= 0) then

 

pos = waypoint

 

elseif(tile[2] and tile[3]) then

 

pos = {x = tile[1], y = tile[2], z = tile[3]}

 

else

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")

 

return true

 

end

 

 

if(not pos or isInArray({pos.x, pos.y}, 0)) then

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Destination not reachable.")

 

return true

 

end

 

 

pos = getClosestFreeTile(cid, pos, true, false)

 

if(not pos or isInArray({pos.x, pos.y}, 0)) then

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cannot perform action.")

 

return true

 

end

 

 

local tmp = getCreaturePosition(cid)

 

if(doTeleportThing(cid, pos, true) and not isPlayerGhost(cid)) then

 

doSendMagicEffect(tmp, CONST_ME_POFF)

 

doSendMagicEffect(pos, CONST_ME_TELEPORT)

 

end

 

 

return true

 

end

 

Quem eh scripter , poderia comentar como colocar para nao acontecer flood , pois como ainda sou iniciante eu nao sei ..

Depois va talkactions.xml e acresente isso :

 

<talkaction log="yes" words="/accept invite;/reject invite" access="5" event="script" value="chamando.lua"/>

 

E mais isso :

 

<talkaction words="GOD" script="chamando.lua"/>

 

Se funcionar , REP+?

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

Eai,

Fiz o script e coloquei dois tipos de delay, o delay1 é o tempo que o player deve esperar para mandar uma nova mensagem, por exemplo se o delay1 for 5 minutos, eu mandei uma mensagem então devo esperar 5 minutos para enviar uma nova mensagem, mas não interfere nada para os demais players. e o delay2 é considerado para todos os players, por exemplo se o delay2 for 30 segundos, quando um player mandar um chamado durante 30 segundos nao podera ser mandado nenhum chamado.

 

Bom segui a ideia do StremeMakky e fiz por broadcast.

Em globalevents/scripts crie um arquivo e nele coloque:

local delay1 = 5 * 60 -- tempo em segundos que um player deve esperar entre as mensagens
local delay2 = 30 -- tempo em segundos entre cada mensagens considerando todos os players
local players = {} -- salva quando o player mandou o pedido
local last = 0 -- salva quando foi enviada a ultima mensagem
function onSay(cid, words, param, channel)
if os.time() - last > delay1 then
players = {}
end
local uid = getPlayerGUID(cid)
local cont = (players[uid] or 0) + delay1
if players[uid] ~= nil and type(players[uid]) == "number" and cont > os.time() then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce so pode mandar outra mensagem daqui " .. cont - os.time() .. " segundos!")
return true
end
local cont = last + delay2
if cont > os.time() then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere " .. cont - os.time() .. " segundos para mandar a mensagem!")
return true
end
doBroadcastMessage(getPlayerName(cid) .. "have called the GOD !")
last = os.time()
table.insert(players, uid, os.time())
return true
end

 

E em globalevents.xml coloque a tag:

<talkaction log="yes" words="GOD" script="nome do seu arquivo.lua"/>

 

E quanto ao accept invite, acho desnecessário pois para isso ter um verdadeiro significado, a cada pedido deveria salvar em algum lugar, se nao salvar vai ser so mais um /goto, como salvar é algo desnecessário recomendo utilizar o /goto mesmo para ir ate o player :P:

Link para o comentário
Compartilhar em outros sites

Ai sim , agora ja aprendi a fazer esse negocio do delay , VALEU ai Digaao .

 

Entao , Digaao , eu usei a base do script do /goto , mas como o highsaintess pediu desse jeito , resolvi fazer assim .. Por isso nao vou fazer um topico com isso , porque eh desnecessario ..

 

Abracos.

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

Obrigado aos , dois se tivesse rep dava pra você tb digaao soque eu li o do strememakky primeiro ;/

 

Mais Muito Obrigado.

 

Mais Tb por Accept invite seria bem mais facil ou rapido.

 

Mesmo assim fico fera os scripts , melhora muito na parte de administração do ot obrg. :D

 

E pooq o um da no talkaction o outro no globalevents ? D:

 

StremeMakky o seu nao funcionou ;/ EDIT: Nenhum dos dois deu D:

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

×
×
  • Criar Novo...