Ir para conteúdo
  • Cadastre-se

(Resolvido)[PRECISO] 2 scripts (item at x Level/bless ate o level X)


Ir para solução Resolvido por Absolute,

Posts Recomendados

Preciso de 2 scripts por favor.

TFS 1.0 tibia version 10.53

 

1. -  Player que atingir level 20 ganhar 20k (pra promotion).

2. - Ate level 20 bless pra todos os players,

3. - do level 20-50 apenas bless se morrer pra player.

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

Fiz o do item, vai testando, jájá faço o resto:

 

 

data/creaturescripts/scripts: recompensa.lua

function onAdvance(cid, skill, oldlevel, newlevel)

	       	if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99920) ~= 1 then
						    doPlayerAddItem(cid, 2160, 2)
						    setPlayerStorageValue(cid, 99920, 1)
						    doPlayerSendTextMessage(cid, 19, "You have received 20000 gold in your backpack for advancing to Level 20.")
							
						    end
		    return TRUE
end

data/creaturescripts/creaturescripts.xml:

<event type="advance" name="AbsoluteReward" script="recompense.lua"/>

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

 

Fiz o do item, vai testando, jájá faço o resto:

 

 

data/creaturescripts/scripts: recompensa.lua

function onAdvance(cid, skill, oldlevel, newlevel)

	       	if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99920) ~= 1 then
						    doPlayerAddItem(cid, 2160, 2)
						    setPlayerStorageValue(cid, 99920, 1)
						    doPlayerSendTextMessage(cid, 19, "You have received 20000 gold in your backpack for advancing to Level 20.")
							
						    end
		    return TRUE
end

data/creaturescripts/creaturescripts.xml:

<event type="advance" name="AbsoluteReward" script="recompense.lua"/>

 

 

mt obrigado, 1 de meus problemas 100% resolvido. 

Link para o post
Compartilhar em outros sites

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")

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites
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")

Script do Printer.

Amigo, callback onLogin não registra creature event.

 

do level 20-50 apenas bless se morrer pra player

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"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

 

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? ;D AJUDEI DE ALGUMA FORMA? REP+ :rock: , clica em Gostei.

 

Link para o post
Compartilhar em outros sites

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.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo