Ir para conteúdo
  • Cadastre-se

(Resolvido)[Problema] creaturescript/login.lua


Ir para solução Resolvido por Elwyn,

Posts Recomendados

Olá galera do TK...
Ao abrir o creaturescripts.xml do meu servidor, simplesmente notei que o login.lua estava inativo (pois em todo ot que eu pegava pra olhar, ele estava lá nas tags assim : event type="login" name="PlayerLogin" event="script" value="login.lua"/> )
 
Ao tentar ativar, o servidor abriu normal, porém ninguém conseguia logar. No distro mostrava o seguinte:

 

Fulano has logged in.
Fulano has logged out.

 
Gostaria de saber como arrumar isso (deixá-lo ativo) sem que os players não consigam logar, pois preciso do login.lua para acrescentar algums scripts no servidor.

Segue abaixo o login.lua

 

local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)
    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
    registerCreatureEvent(cid, "GuildMotd")

    registerCreatureEvent(cid, "Idle")
    registerCreatureEvent(cid, "antiPush")    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end

    registerCreatureEvent(cid, "ReportBug")
    registerCreatureEvent(cid, "AdvanceSave")

registerCreatureEvent(cid, "attackguild")    
registerCreatureEvent(cid, "advance")
registerCreatureEvent(cid, "FimVip")
    registerCreatureEvent(cid, "castelo1")
    registerCreatureEvent(cid, "castelo2")
    registerCreatureEvent(cid, "castelo3")
    registerCreatureEvent(cid, "castelo4")
registerCreatureEvent(cid, "SkullCheck")
    registerCreatureEvent(cid, "ReportBug")

registerCreatureEvent(cid, VipReceive)
registerCreatureEvent(cid, "PlayerKill")
    if (InitArenaScript ~= 0) then
    InitArenaScript = 1
    -- make arena rooms free
        for i = 42300, 42309 do
            setGlobalStorageValue(i, 0)
            setGlobalStorageValue(i+100, 0)
        end
    end
    -- if he did not make full arena 1 he must start from zero
    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 2 he must start from zero
    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    -- if he did not make full arena 3 he must start from zero
    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0) -- did not arena level
    end
    setPlayerStorageValue(cid, 42350, 0) -- time to kick 0
   setPlayerStorageValue(cid, 42352, 0)    registerCreatureEvent(cid, "warSystem")    registerCreatureEvent(cid, "fullmh")    registerCreatureEvent(cid, "recompensa")    registerCreatureEvent(cid, "welcome")    if getPlayerStorageValue(cid, 12036) == -1 then -- is not in arena  
return true
end
setPlayerStorageValue(cid, 12036, 1)

 

 

Agradeço e fico no aguardo!

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

local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
  doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end
local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
  local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
  if(lastLogin > 0) then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
   str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
  else
   str = str .. " Please choose your outfit."
   doPlayerSendOutfitWindow(cid)
  end
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
  elseif(accountManager == MANAGER_NAMELOCK) then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
   elseif(accountManager == MANAGER_ACCOUNT) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
   else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
   end
   if(not isPlayerGhost(cid)) then
    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
   end
   registerCreatureEvent(cid, "Mail")
   registerCreatureEvent(cid, "GuildMotd")
   registerCreatureEvent(cid, "Idle")
   registerCreatureEvent(cid, "antiPush")    if(config.useFragHandler) then
   registerCreatureEvent(cid, "SkullCheck")
  end
  registerCreatureEvent(cid, "ReportBug")
  registerCreatureEvent(cid, "AdvanceSave")
  registerCreatureEvent(cid, "attackguild")   
  registerCreatureEvent(cid, "advance")
  registerCreatureEvent(cid, "FimVip")
  registerCreatureEvent(cid, "castelo1")
  registerCreatureEvent(cid, "castelo2")
  registerCreatureEvent(cid, "castelo3")
  registerCreatureEvent(cid, "castelo4")
  registerCreatureEvent(cid, "SkullCheck")
  registerCreatureEvent(cid, "ReportBug")
  registerCreatureEvent(cid, "VipReceive")
  registerCreatureEvent(cid, "PlayerKill")
  if (InitArenaScript ~= 0) then
   InitArenaScript = 1
   for i = 42300, 42309 do
    setGlobalStorageValue(i, 0)
    setGlobalStorageValue(i+100, 0)
   end
  end
  if getPlayerStorageValue(cid, 42309) < 1 then
   for i = 42300, 42309 do
    setPlayerStorageValue(cid, i, 0)
   end
  end
  if getPlayerStorageValue(cid, 42319) < 1 then
   for i = 42310, 42319 do
    setPlayerStorageValue(cid, i, 0)
   end
  end
  if getPlayerStorageValue(cid, 42329) < 1 then
   for i = 42320, 42329 do
    setPlayerStorageValue(cid, i, 0)
   end
  end
  if getPlayerStorageValue(cid, 42355) == -1 then
   setPlayerStorageValue(cid, 42355, 0)
  end
  setPlayerStorageValue(cid, 42350, 0)
  setPlayerStorageValue(cid, 42352, 0)
  registerCreatureEvent(cid, "warSystem")
  registerCreatureEvent(cid, "fullmh")
  registerCreatureEvent(cid, "recompensa")
  registerCreatureEvent(cid, "welcome")
  if getPlayerStorageValue(cid, 12036) == -1 then
   return true
  end
  setPlayerStorageValue(cid, 12036, 1)
return true
end

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

Amigo, só uma detalhe, eu não sei se isso gera erro ou não, também não posto testar aqui.

Mais na parte que você postou, está assim:

registerCreatureEvent(cid, VipReceive)
Ele não iria conhecer VipReceive como uma variável neste caso, consequentemente gerando um erro? Caso sim, ao autor do tópico, altere para:

registerCreatureEvent(cid, "VipReceive")
 

@Elwyn, foi só algo que eu bati o olho e vi, não estou querendo de forma alguma demonstrar superioridade ou algo de tipo, as vezes foi algo que passou despercebido.

Um abraço!

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Simplificando os events .. 

local config = {
	loginMessage = getConfigValue('loginMessage'),
	useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

local events = {
	'Mail',
	'GuildMotd',
	'Idle',
	'antiPush',
	'Mail',
	'SkullCheck',
	'ReportBug',
	'AdvanceSave',
	'attackguild',
	'advance',
	'FimVip',
	'VipReceive',
	'PlayerKill',
	'fullmh',
	'warSystem',
	'recompensa',
	'welcome',
	'castelo1',
	'castelo2',
	'castelo3',
	'castelo4',
}

function onLogin(cid)
	local loss = getConfigValue('deathLostPercent')
	if loss ~= nil then
		doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
	end
	
	local accountManager = getPlayerAccountManager(cid)
	if accountManager == MANAGER_NONE then
		local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
		if lastLogin > 0 then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
			str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
		else
			str = str .. " Please choose your outfit."
			doPlayerSendOutfitWindow(cid)
		end
		
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
	
	elseif(accountManager == MANAGER_NAMELOCK) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
	
	elseif(accountManager == MANAGER_ACCOUNT) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
	end
	
	if(not isPlayerGhost(cid)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
	end

	-- Register Events
	for i = 1, #events do
		registerCreatureEvent(cid, events[i])
	end

	if (InitArenaScript ~= 0) then
		InitArenaScript = 1
		for i = 42300, 42309 do
			setGlobalStorageValue(i, 0)
			setGlobalStorageValue(i + 100, 0)
		end
	end
	
	if getPlayerStorageValue(cid, 42309) < 1 then
		for i = 42300, 42309 do
			setPlayerStorageValue(cid, i, 0)
		end
	end
	
	if getPlayerStorageValue(cid, 42319) < 1 then
		for i = 42310, 42319 do
			setPlayerStorageValue(cid, i, 0)
		end
	end
	
	if getPlayerStorageValue(cid, 42329) < 1 then
		for i = 42320, 42329 do
			setPlayerStorageValue(cid, i, 0)
		end
	end
	
	if getPlayerStorageValue(cid, 42355) == -1 then
		setPlayerStorageValue(cid, 42355, 0)
	end
	
	setPlayerStorageValue(cid, 42350, 0)
	setPlayerStorageValue(cid, 42352, 0)
	setPlayerStorageValue(cid, 12036, 1)
	
	return true
end

Link para o post
Compartilhar em outros sites

Amigo, só uma detalhe, eu não sei se isso gera erro ou não, também não posto testar aqui.

Mais na parte que você postou, está assim:

registerCreatureEvent(cid, VipReceive)
Ele não iria conhecer VipReceive como uma variável neste caso, consequentemente gerando um erro? Caso sim, ao autor do tópico, altere para:

registerCreatureEvent(cid, "VipReceive")
 

@Elwyn, foi só algo que eu bati o olho e vi, não estou querendo de forma alguma demonstrar superioridade ou algo de tipo, as vezes foi algo que passou despercebido.

Um abraço!

 

 

Nao se preocupe, hahahaha

Nem tinha notado isso, editei ja qualquer coisa.

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo