Jump to content

Удаление стандартных объектов с инт.


Recommended Posts

Всем привет, я вот попробовал удалить стандартные объекты с интерьера (мебель), но ничего не получилось, удалял в мап эдиторе вот такой код получился:

"editor_main"> 
    "removeWorldObject (LOW_COUCH_1) (1)" radius="3.5078673" interior="0" model="1763" lodModel="0" posX="221.77013" posY="1289.4447" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (COFFEE_SWANK_1) (1)" radius="2.8326304" interior="0" model="2236" lodModel="0" posX="224.77013" posY="1289.4447" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (CJ_TV_TABLE4) (1)" radius="3.3244874" interior="0" model="2315" lodModel="0" posX="226.77013" posY="1293.4447" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (LOW_CONSOLE) (1)" radius="2.3575516" interior="0" model="1719" lodModel="0" posX="226.58794" posY="1292.4835" posZ="1081.769" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (CJ_TELE_1) (1)" radius="2.45737" interior="0" model="2318" lodModel="0" posX="226.51474" posY="1293.5071" posZ="1081.8754" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (LOW_SINGLE_1) (1)" radius="2.9219837" interior="0" model="1759" lodModel="0" posX="222.77013" posY="1293.4447" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (int2lasmone01) (1)" radius="7.8918309" interior="0" model="14719" lodModel="0" posX="218.74219" posY="1290.8203" posZ="1082.8672" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (CJ_HIFI_TABLE) (1)" radius="2.8360684" interior="0" model="2346" lodModel="0" posX="233.5963" posY="1290.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (CJ_HIFI_TABLE) (2)" radius="2.8360684" interior="0" model="2346" lodModel="0" posX="233.5963" posY="1290.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (LOW_HI_FI_1) (1)" radius="2.6332061" interior="0" model="2103" lodModel="0" posX="233.4379" posY="1289.9298" posZ="1081.8923" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (SWANK_BED_5) (1)" radius="4.2708411" interior="0" model="2090" lodModel="0" posX="232.5963" posY="1289.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (LOW_CABINET_2) (1)" radius="2.7152104" interior="0" model="2095" lodModel="0" posX="230.5963" posY="1287.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (LOW_CABINET_2) (2)" radius="2.7152104" interior="0" model="2095" lodModel="0" posX="233.5963" posY="1287.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (CJ_BEDROOM1_W) (1)" radius="3.5607553" interior="0" model="2330" lodModel="0" posX="229.5963" posY="1287.4606" posZ="1081.1547" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (int2lasmone01) (2)" radius="7.8918309" interior="0" model="14719" lodModel="0" posX="218.74219" posY="1290.8203" posZ="1082.8672" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (int2lasmone02) (1)" radius="5.9548655" interior="0" model="14720" lodModel="0" posX="216.55469" posY="1292.2188" posZ="1081.1172" rotX="0" rotY="0" rotZ="0">
    "removeWorldObject (Gen_doorEXT03) (1)" radius="3.4582796" interior="0" model="1498" lodModel="0" posX="223.17831" posY="1286.7255" posZ="1082.6317" rotX="0" rotY="0" rotZ="0">

  

И сам код удаления (стандартный код с эдитора):

function onResourceStartOrStop ( ) 
    for _, object in ipairs ( getElementsByType ( "removeWorldObject", source ) ) do 
        local model = getElementData ( object, "model" ) 
        local lodModel = getElementData ( object, "lodModel" ) 
        local posX = getElementData ( object, "posX" ) 
        local posY = getElementData ( object, "posY" ) 
        local posZ = getElementData ( object, "posZ" ) 
        local interior = getElementData ( object, "interior" ) or 0 
        local radius = getElementData ( object, "radius" ) 
        if ( eventName == "onResourceStart" ) then 
            removeWorldModel ( model, radius, posX, posY, posZ, interior ) 
            removeWorldModel ( lodModel, radius, posX, posY, posZ, interior ) 
        else 
            restoreWorldModel ( model, radius, posX, posY, posZ, interior ) 
            restoreWorldModel ( lodModel, radius, posX, posY, posZ, interior ) 
        end 
    end 
    if (eventName == "onResourceStart" and get(getResourceName(getThisResource())..".useLODs")) then 
        for i, object in ipairs(getElementsByType("object", source)) do 
            local objID = getElementModel(object) 
            local lodModel = LOD_MAP[objID] 
            if (lodModel) then 
                local x,y,z = getElementPosition(object) 
                local rx,ry,rz = getElementRotation(object) 
                local lodObj = createObject(lodModel,x,y,z,rx,ry,rz,true) 
                setElementInterior(lodObj, getElementInterior(object) ) 
                setElementDimension(lodObj, getElementDimension(object) ) 
                setElementParent(lodObj, object) 
                setLowLODElement(object, lodObj) 
                table.insert(usedLODModels, lodModel) 
            end 
        end 
    end 
end 
addEventHandler ( "onResourceStart", resourceRoot, onResourceStartOrStop ) 
addEventHandler ( "onResourceStop", resourceRoot, onResourceStartOrStop ) 

Здесь я заметил что interior="0" вместо interior="1" т.к. сам инт. находится в 1 инт. мире, я заменил всё, но кое-какие объекты удалились, а некоторые остались:

Что удалилось:e1452084006c.png

d042a5934f79.png

А что осталось:f6e6617cbee2.png

56989722e22f.png

2a4a27f31594.png

Я подумал возможно в радиусе ошибка увеличил его на 10 ед., но ничего не изменилось.

Потом написал вот такой код и удалились только двери (id 1498):

-- server side 
local objectListSafe_1 = {1498, 14720, 14719, 2330, 2095, 2090, 2103, 2346, 1759, 2318, 1719, 2315, 2236, 1763} -- объекты которые используются в этом интерьере. 
  
function deleteALLObjectInSAFE_HOUSE1(player) 
    local x,y,z = getElementPosition(player) 
    local interior = getElementInterior(player) 
    for i=1,#objectListSafe_1 do 
        local modelID = objectListSafe_1[i] 
        removeWorldModel(modelID, 100, x, y, z, interior) 
    end 
end 
addCommandHandler('delSafe', deleteALLObjectInSAFE_HOUSE1) 

Что я не так сделал?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...