Ir para conteúdo

Featured Replies

Postado
  Em 17/10/2014 em 18:44, Ribeiro Foda disse:

só que ai quando o player desloga com o script funcionando o OT dá varios erros e fecha

  Em 17/10/2014 em 22:12, Ribeiro Foda disse:

ESTÁ DANDO ESTE ERRO! E ISSO QUE FAZ TRAVAR! [17/10/2014 19:10:02] [GOD] R1B31R0 has logged out.

 

Já que isso só ocorre se o player fizer logout, tenta adicionar uma condição a ele ao usar a spell para que não possa sair do jogo, a não ser morrendo:

local tempo = 400
local distance_effect = 37

local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1)

local function getPosDirs(p, dir)
    return dir == 1 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 2 and {x=p.x-1, y=p.y-1, z=p.z} or dir == 3 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x-1, y=p.y+1, z=p.z}
end

local f = 1
local function executeEffect(cid)
	if isCreature(cid) then
		doSendDistanceShoot(getPosDirs(getThingPos(cid), f), getPosDirs(getThingPos(cid), f+1), distance_effect)
		if f == 4 then
			f = 1
		else
			f = f + 1
		end
		addEvent(executeEffect, tempo, cid)
	end
end

function onCastSpell(cid, var)
	if getPlayerStorageValue(cid, 101518) < 0 then
		executeEffect(cid)
		setPlayerStorageValue(cid, 101518, 1)
		doAddCondition(cid, condition_infight)
	else
		return doPlayerSendCancel(cid, "You cannot use this spell.") and false
	end
return true
end

 

Esses seus creaturescripts estão muito confusos em relação aos valores da storage na spell. Retire-os do seu servidor e use este:

deathorlog.lua

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
    if isPlayer(lastHitKiller) then
        setPlayerStorageValue(lastHitKiller, 101518, -1)
    end
return true
end

function onLogout(cid)
    if getPlayerStorageValue(cid, 101518) > 0 then
        setPlayerStorageValue(cid, 101518, -1)
    end
return true
end

 

Adicione as tags (creaturescripts.xml):

<event type="death" name="SpellDeath" script="deathorlog.lua"/>
<event type="logout" name="SpellLogout" script="deathorlog.lua"/>

 

Procure e abra o arquivo login.lua (data/creaturescripts/scripts) e adicione as linhas de registros à ele:

registerCreatureEvent(cid, "SpellDeath")
registerCreatureEvent(cid, "SpellLogout")

Espero ter ajudado.

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

  • Respostas 14
  • Visualizações 670
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Já que isso só ocorre se o player fizer logout, tenta adicionar uma condição a ele ao usar a spell para que não possa sair do jogo, a não ser morrendo: local tempo = 400 local distance_effect = 37

  • Nossa, postei o script errado, desatenção minha..desculpa. Taí: deathorlog.lua function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) if isPlayer(lastHitKiller) then setPlayerStorageVal

  • Certo, tente assim: rodopio.lua local f, tempo, distance_effect = 1, 400, 37 local function getPosDirs(p, dir) return dir == 1 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 2 and {x=p.x-1, y=p.y-1, z

Postado
  • Autor

Deu um erro aqui:

 

[17/10/2014 23:22:46] Warning: [Event::loadScript] Can not load script. data/creaturescripts/scripts/deathorlog.lua
[17/10/2014 23:22:46] data/creaturescripts/scripts/deathorlog.lua:11: 'end' expected (to close 'function' at line 7) near '<eof>'
[17/10/2014 23:22:46] Warning: [Event::loadScript] Can not load script. data/creaturescripts/scripts/deathorlog.lua
[17/10/2014 23:22:46] data/creaturescripts/scripts/deathorlog.lua:11: 'end' expected (to close 'function' at line 7) near '<eof>'
 
e mesmo relogando com o efeito ele da o mesmo erro:
 
[17/10/2014 19:10:02] Lua Script Error: [spell Interface] 
[17/10/2014 19:10:02] in a timer event called from: 
[17/10/2014 19:10:02] data/spells/scripts/monsters/rodopio.lua:onCastSpell
 
[17/10/2014 19:10:02] luaGetThingPos(). Thing not found

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

Postado

Nossa, postei o script errado, desatenção minha..desculpa.
Taí:

deathorlog.lua

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
	if isPlayer(lastHitKiller) then
		setPlayerStorageValue(lastHitKiller, 101518, -1)
	end
return true
end

function onLogout(cid)
	if getPlayerStorageValue(cid, 101518) > 0 then
		setPlayerStorageValue(cid, 101518, -1)
	end
return true
end

  Em 18/10/2014 em 02:23, Ribeiro Foda disse:
e mesmo relogando com o efeito ele da o mesmo erro: [17/10/2014 19:10:02] Lua Script Error: [spell Interface] [17/10/2014 19:10:02] in a timer event called from: [17/10/2014 19:10:02] data/spells/scripts/monsters/rodopio.lua:onCastSpell [17/10/2014 19:10:02] luaGetThingPos(). Thing not found

hm..

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

Postado

  Em 18/10/2014 em 02:39, Ribeiro Foda disse:
mais depois que relogo ele não volta e da o erro!

ele não volta e da o erro, você quer dizer que o servidor cai definitivamente só acusando o mesmo erro?

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo