Ok, Vamos lá
1º Passo:
Abra o Spells.XML e adicione o seguinte código:
<instant name="Shadow Walker" words="invisible" lvl="40" manapercent="70" exhaustion="2000" needlearn="0" event="script" value="support/shadow.lua"> <vocation id="41"/> </instant>
2º Passo
Crie na pasta \data\spells\scripts\support um arquivo chamado Shadow.lua e coloque o seguinte código dentro:
function onCastSpell(cid, var) parameters = {cid=cid} setPlayerGroupId(cid, 2) doCreatureExecuteTalkAction(cid, "/ghost", TRUE) addEvent(talk, 5000, parameters) return true end function talk(parameters) doCreatureExecuteTalkAction(parameters.cid, "/ghost", TRUE) setPlayerGroupId(parameters.cid, 1) end
3º passo
No arquivo login.lua (\data\creaturescripts\scripts) Adicione o seguinte código logo abaixo de "function onLogin(cid)"
-- Login Cancel Invisible -- if(getPlayerGroupId(cid) == 2) then setPlayerGroupId(cid, 1) end if(isPlayerGhost(cid)) then doCreatureExecuteTalkAction(cid, "/ghost", TRUE) end -- end --
Configurando:
1º Passo:
NOTA: aonde está manapercent="70" pode ser trocado por mana="VALOR", Deixe só 1 dos dos para não dar problemas!
2º Passo
Na linha onde se encontra "addEvent(talk, 5000, parameters)" Troque 5000 por quantos segundos vc deseja que este spell dure (1 seg = 1000)
Na linha onde se encontra "setPlayerGroupId(cid, 2)" ela deixará o player com o groupid de senior tutor. Infelismente é o único jeito que descobri para que players não te encherguem ao usar, pois a condição ghost afeta apenas quem é inferior ao groupid do player.
3º passo
Isto serve para caso o server caia, o player que está na condição ghost vire groupid 0(player) e cancele o ghostmode ao login.
É importante ressaltar também, que caso algum GM/GOD esteja ghostmode e de logout, quando der login voltará a ser visível apenas, ele NÃO terá o groupid modificado! então pode usar de boas
CREDITOS Shadow Walker