Fala galera eu estou com um problema chato de mais, estou criando um servidor de War 7.4 e NÂO quero que os players percam skills, mls e equipamento na hora que morre... a Backpack pode perder...
Acontece que já usei todos os scripts possíveis na internet já modifiquei o Login.lua um montão de vez não consigo arrumar uma solução pra isso vocês poderiam me ajudar?
O OT é baseado no OTX só não sei qual versão dela vou postar o Login.Lua
ESSE É O JEITO QUE ELE FICOU DEPOIS DAS MODIFICAÇÕES QUE EU FIZ
local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
function onLogin(cid)
if(getBooleanFromString(getConfigValue('accountManager')) == false) then
if (getCreatureName(cid) == "Account Manager") then
return doRemoveCreature(cid, true)
end
end
function onDeath(cid, corpse, killer)
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, loss * 0)
doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, loss * 0)
doPlayerSetLossPercent(cid, PLAYERLOSS_ITEMS, loss * 0)
end
if(getPlayerStorageValue(cid, "death_bless") == 1) then
local t = {PLAYERLOSS_EXPERIENCE, PLAYERLOSS_SKILLS, PLAYERLOSS_ITEMS, PLAYERLOSS_CONTAINERS}
for i = 1, #t do
doPlayerSetLossPercent(cid, t[i], 100)
end
setPlayerStorageValue(cid, "death_bless", 0)
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
addEvent(valid(doCreatureSay), 500, cid, "Hello, it appears that your character has been locked for name violating rules, what new name would you like to have?", TALKTYPE_PRIVATE_NP, true, cid)
elseif(accountManager == MANAGER_ACCOUNT) then
addEvent(valid(doCreatureSay), 500, cid, "Hello, type 'account' to manage your account. If you would like to start over, type 'cancel' anywhere.", TALKTYPE_PRIVATE, true, cid)
else
addEvent(valid(doCreatureSay), 500, cid, "Hello, type 'account' to create an account or 'recover' to recover an account.", TALKTYPE_PRIVATE, true, cid)
end
if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end
registerCreatureEvent(cid, "kill")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "killgold")
registerCreatureEvent(cid, "fullmh")
registerCreatureEvent(cid, "PlayerLogout")
registerCreatureEvent(cid, "Reward")
registerCreatureEvent(cid, "antimc")
registerCreatureEvent(cid, "TiraBattle")
registerCreatureEvent(cid, "NOME")
registerCreatureEvent(cid, "onPrepareDeath")
registerCreatureEvent(cid, "deathBroadcast")
registerCreatureEvent(cid, "DeathBroadcast")
registerCreatureEvent(cid, "showKD")
registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end
registerCreatureEvent(cid, "ReportBug")
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)
return true
end
ESSE É ELE ORIGINAL
local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
function onLogin(cid)
if(getBooleanFromString(getConfigValue('accountManager')) == false) then
if (getCreatureName(cid) == "Account Manager") then
return doRemoveCreature(cid, true)
end
end
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil and getPlayerStorageValue(cid, "bless") ~= 5) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end
if(getPlayerStorageValue(cid, "death_bless") == 1) then
local t = {PLAYERLOSS_EXPERIENCE, PLAYERLOSS_SKILLS, PLAYERLOSS_ITEMS, PLAYERLOSS_CONTAINERS}
for i = 1, #t do
doPlayerSetLossPercent(cid, t[i], 100)
end
setPlayerStorageValue(cid, "death_bless", 0)
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
addEvent(valid(doCreatureSay), 500, cid, "Hello, it appears that your character has been locked for name violating rules, what new name would you like to have?", TALKTYPE_PRIVATE_NP, true, cid)
elseif(accountManager == MANAGER_ACCOUNT) then
addEvent(valid(doCreatureSay), 500, cid, "Hello, type 'account' to manage your account. If you would like to start over, type 'cancel' anywhere.", TALKTYPE_PRIVATE, true, cid)
else
addEvent(valid(doCreatureSay), 500, cid, "Hello, type 'account' to create an account or 'recover' to recover an account.", TALKTYPE_PRIVATE, true, cid)
end
if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end
registerCreatureEvent(cid, "Idle")
registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "PVPCreature")
registerCreatureEvent(cid, "ReportBug")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end
registerCreatureEvent(cid, "GuildEvents")
registerCreatureEvent(cid, "AdvanceSave")
registerCreatureEvent(cid, "FimVip")
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)
return true
end
E ESSE AQUI É a 000-constant do servidor caso queira ver alguma coisa