Postado Dezembro 12, 2014 10 anos Script do Printer. Amigo, callback onLogin não registra creature event. Você quer dizer não dropar loot se for morto por players durante os níveis 20~50, certo? lootp.lua (data/creaturescripts/scripts): function onPrepareDeath(cid, killer) local level = {20, 50} local player = Player(cid) if player ~= nil and killer:isPlayer() and player:getLevel() >= level[1] and player:getLevel() < level[2] + 1 then player:setDropLoot(false) end return true end Registre o creature event em login.lua: registerCreatureEvent(cid, "LootProtection") Tag - creaturescripts.xml (data/creaturescripts): <event type="preparedeath" name="LootProtection" script="lootp.lua"/> Bless para leveis inferiores a 20: data/creaturescripts/scripts crie um arquivo com o nome de bleeslvl20.lua e dentro adicione: local freeBlessMaxLevel = 20 function onLogin(cid) local player = Player(cid) if player:getLevel() <= freeBlessMaxLevel then for i = 1, 5 do player:addBlessing(i) end player:say('FREE BLESS! -20', TALKTYPE_ORANGE_1) player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE) end return true end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha: <event type="login" name="blesslvl20" event="script" value="blesslvl20.lua"/> Em data/creaturescripts/scripts/others/login.lua, registre o evento abaixo de um normal: registerCreatureEvent(cid, "blesslvl20") mt obrigado, 1 de meus problemas 100% resolvido. BOM DIA GENTE, TUDO DEU CERTO, MENOS O BLESS PROTECT PVP, FIZ TUDO CERTINHO 100%, MAS TESTEI ME MATANDO PRA PLAYER E DROPOU LOOT IGUAL. ACHO QUE A DIVERGENCIA ESTA NO MEU LOGUIN.LUA, VO POSTAR ELE AQUI EM BAIXO PARA VOCÊS ME DIZER AONDE DEVO ADICIONAR A TAG NO LOGIN.: NOTE QUE COLOQUEI EM NEGRITO PRA FACILITAR A LOCALIZAÇÃO. -- ordered as in creaturescripts.xml local events = { 'pythiusDead', 'bossesGrayIsland', 'ElementalSpheres', 'ElementalSpheresKill', 'ElementalSpheresLogin', 'WarzoneThree', 'WarzoneTwo', 'bossesWarzone', 'SvargrondArenaKill', 'PharaoKillPortal', 'inServiceOfYalaharQuestsDiseased', 'inServiceOfYalaharQuestsMorik', 'inServiceOfYalaharQuestsQuara', 'inquisitionQuestBosses', 'inquisitionQuestUngreez', 'killingInTheNameOfQuestKills', 'TaskCustom', 'Yielothax', 'Energized', 'Raging', 'MastersVoiceServants', 'wrathBoss', 'wrathZalamon', 'PlayerDeath', 'ThievesGuildNomad', 'AdvanceSave', 'SpikeDrillworm', 'SecretServiceBlackKnight' } function onLogin(cid) local player = Player(cid) local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Please choose your outfit.' player:sendTutorial(1) registerCreatureEvent(cid, "PremiumRate") registerCreatureEvent(cid, "blesslvl20") else if loginStr ~= '' then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) for i = 1, #events do player:registerEvent(events) end return true end GOSTOU? AJUDEI DE ALGUMA FORMA? REP+ , clica em Gostei.
Postado Dezembro 12, 2014 10 anos No caso do seu login.lua, os creature events registrados pelo comando for antes de retornar e encerrar o callback são os que estão na tabela events. Então sempre que adicionar um novo creature event ao creaturescripts.xml e o mesmo precisar ser registrado, apenas adicione ele à mesma tabela. local events = { 'pythiusDead', 'bossesGrayIsland', 'ElementalSpheres', 'ElementalSpheresKill', 'ElementalSpheresLogin', 'WarzoneThree', 'WarzoneTwo', 'bossesWarzone', 'SvargrondArenaKill', 'PharaoKillPortal', 'inServiceOfYalaharQuestsDiseased', 'inServiceOfYalaharQuestsMorik', 'inServiceOfYalaharQuestsQuara', 'inquisitionQuestBosses', 'inquisitionQuestUngreez', 'killingInTheNameOfQuestKills', 'TaskCustom', 'Yielothax', 'Energized', 'Raging', 'MastersVoiceServants', 'wrathBoss', 'wrathZalamon', 'PlayerDeath', 'ThievesGuildNomad', 'AdvanceSave', 'SpikeDrillworm', 'SecretServiceBlackKnight', 'PremiumRate', 'LootProtection', 'blesslvl20' } function onLogin(cid) local player = Player(cid) local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Please choose your outfit.' player:sendTutorial(1) else if loginStr ~= '' then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) for i = 1, #events do player:registerEvent(events[i]) end return true end The corrupt fear us. The honest support us. The heroic join us.
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.