Inq problem

Status
Zamknięty.

hjuston

User
Zarejestrowany
Dołączył
Listopad 10, 2008
Posty
29
Liczba reakcji
0
Mam problem ze skryptem INQ pod TFS 0.4
Przeczytalem na forum otlandu, ze podobno 0.4 nie czyta modow czy cos takiego. Wiec przerobilem skrypt ten :
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Inquisition"

version="2.0" author="Tommy" contact="tommycrusher@gmail.com" enabled="yes">
<config name="inqusitionFunctions"><![CDATA[
config = {
    message = "Go into the teleporter in 3 minutes, else it will disappear.",
    timeToRemove = 180, -- seconds
    teleportId = 1387,
    MonStor = 48000,
    bosses = { -- Monster Name, Teleport To Position, Teleport Position, UID
        ["Ushuriel"] = { ptp={ x=3068, y=1784, z=13}, pp={ x=3175, y=1728, z=11, stackpos=1 }, uid=49100 },
        ["Annihilon"] = { ptp={ x=1244, y=1297, z=12 }, pp={ x=1187, y=1198, z=12, stackpos=1 }, uid=49200 },
        ["Hellgorak"] = { ptp={ x=1067, y=1307, z=13 }, pp={ x=1192, y=1240, z=12, stackpos=1 }, uid=49300 },
        ["Madareth"] = { ptp={ x=1045, y=1130, z=13}, pp={ x=1111, y=1240, z=12, stackpos=1 }, uid=49400 },
        ["Zugurosh"] = { ptp={ x=1126, y=1151, z=12 }, pp={ x=1149, y=1213, z=12, stackpos=1 }, uid=49500 },
        ["Latrivan"] = { ptp={ x=1153, y=1196, z=13}, pp={ x=1147, y=1244, z=12, stackpos=1 }, uid=49600 }
    }
}

    function removal(position)
    if getThingfromPos(position).itemid == config.teleportId then
        doRemoveItem(getThingfromPos(position).uid)
    end
    return TRUE
end]]></config>

        <event type="login" name="inquisitionRegister" event="script"><![CDATA[
        domodlib('inqusitionFunctions')
        function onLogin(cid)
    registerCreatureEvent(cid, "Inquisition")
        return true
end]]></event>

    <event type="kill" name="Inquisition" event="script"><![CDATA[
function onKill(cid, target, lastHit)
    if(config.bosses[getCreatureName(target)]) then
        local t = config.bosses[getCreatureName(target)]
        local teleport = doCreateTeleport(config.teleportId, t.ptp, t.pp)
        local position = t.pp
        doItemSetAttribute(teleport, "uid", t.uid)
        doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
        addEvent(removal, config.timeToRemove * 1000, position)
    end
    return TRUE
end]]></event>


         <action fromuid="1301" touid="1311" event="script"><![CDATA[
        domodlib('inqusitionFunctions')
    local storage = 50301
    local inquisitionRewards = {
        [1300] = 8890, --a robe of the underworld
        [1301] = 8918, --a spellbook of dark mysteries
        [1302] = 8881, --a fireborn giant armor
        [1303] = 8888, --a master archer's armor
        [1304] = 8851, --a royal crossbow
        [1305] = 7435, --an executioner
        [1306] = 8929, --the stomper
        [1307] = 7417, --a runed sword
        [1308] = 8854, --a warsinger bow
        [1309] = 8903, --a spellbook of lost souls
        [1310] = 2508, --a mystical armor
        [1311] = 8905 --a rainbow shield
    }
    
    if inquisitionRewards[item.uid] then
        if getPlayerStorageValue(cid, storage) < 1 then
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found " .. getItemArticleById(inquisitionRewards[item.uid]) .. " " .. getItemNameById(inquisitionRewards[item.uid]) .. ".")
            doPlayerAddItem(cid, inquisitionRewards[item.uid], 1)
            setPlayerStorageValue(cid, storage, 1)
                                addPlayerRep(cid, 5, TEXTCOLOR_LIGHTBLUE)
        else
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") 
        end
    end
    
    return true
]]></action>
</mod>
na zwykle skrypty actions i creaturescripts, wszystko dziala oprocz jednej rzeczy.
Mianowicie gdy potwor padnie teleport pojawia sie i odrazu znika.
Kod:
  addEvent(removal, config.timeToRemove * 1000, position)

Wszystko mam dobrze ustawione timeToRemove wynosi 180, ale tp i tak znika odrazu. Jak mozna temu zaradzic?
Aaa. Jeszcze jedno, po co sa tutaj id przy teleportach i zmienna MonStor?
Kiedy mam w skrypcie te uid to przy zabiciu potwora w konsoli silnika pokazuje sie komunikat duplicated uid : xxx, choc nie jest uzywane.
 
Status
Zamknięty.
Back
Do góry