RevScript TFS 1.3 Invocar Criaturas al Equipar un Item

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Aquí les traigo un script por tofame, convertido por mi en revscript y corregido para que al desequipar pueda correctamente eliminar el monstruo.
Sería mas util de usar ese tipo de script en un item con valoración decay, es decir, un item temportal.

El script va en data/scripts/
En el caso del ejemplo 2472 = Magic Plate Armor.

Para que funcione correctamente deberán de eliminar las líneas del item en unscripted_equipements, y si es arma en unscripted_weapons.

Código:
local skillReq = MoveEvent()

local summonName = "demon"

function skillReq.onEquip(player, item, slot, isCheck)
    if isCheck then
        return true
    end
 
    local playerSummons = player:getSummons(summonName)
    local playerPosition = player:getPosition()
    local summonsCountGamakichi = 0

  
     if Tile(playerPosition):hasFlag(TILESTATE_PROTECTIONZONE) then
        return player:sendCancelMessage("You mustn't be in PZ!")-- error msg
    end
 
    for _,player in pairs(playerSummons) do
        if player:getName() == summonName then
            summonsCountGamakichi = 1
        end
    end
 
    if summonsCountGamakichi == 0 then
        local summon = Game.createMonster(summonName, playerPosition)
        summon:setMaster(player)
        summon:setDropLoot(false)
        summon:registerEvent('SummonThink')
        -- what will player say upon summoning: player:say("Go " .. summonName .. "!", TALKTYPE_MONSTER_SAY)
    else
        player:sendCancelMessage("Gamakichi is already summoned.")-- error msg
    end
 
    return true
end

skillReq:type("equip")
skillReq:id(2472)
skillReq:register()

local skillReqQ = MoveEvent()

function skillReqQ.onDeEquip(creature, item, slot)

local creatureSummons = creature:getSummons(summonName)
local creaturePosition = creature:getPosition()
 
for _,creature in pairs(creatureSummons) do
    if creature:getName() == summonName  then
        creature:getPosition():sendMagicEffect(6) -- 3 = poff, 6 = explosion
        doRemoveCreature(creature:getId())
    else
        creature:getPosition():sendMagicEffect(6) -- 3 = poff, 6 = explosion
        doRemoveCreature(creature:getId())
    end
end

return true
end


skillReqQ:type("deequip")
skillReqQ:id(2472)
skillReqQ:register()
 
Arriba