RevScript TFS 1.3 Invocar Criaturas al Equipar un Item

  • Open Games Community no está afiliado a ningún sitio de terceros o grupo de ventas de servidores privados. Todos los servidores son de código abierto, lo que significa que son accesibles para todos. No obstante podra encontrar servicios adicionales creados por la communidad en venta en el foro.

Alex

Miembro del equipo
Webdesigner
1 Sep 2021
1.628
8.040
657
Awards
38
Spain
opengamescommunity.com
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()