Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2019-07-27, 13:51


Quin







Wiek: 25
Na forum: 4678 dni
Posty: 79

Piwa: 3

Respekt: 38

Siemka, mam problem z przerobieniem skryptu ?eby nie dzia?a? on na zasadzie komendy tylko eventu.

Funkcja kt?ra ma triggerowa? event odpowiedzialny za spawn drona:


function setDrone2 (itemName)
    setElementData(source,itemName,getElementData(source,itemName)-1)
    triggerEvent("startspawndrone",source)
    triggerClientEvent(source,"refreshInventoryManual",source)
end
addEvent("SetDrone2",true)
addEventHandler("SetDrone2",getRootElement(),setDrone2)


drone_server:

Originalna funkcja


addCommandHandler ("drone",
    function (player, cmd, ...)
        local id = arg[1] or 501;
        if tonumber (id) then 
            id=tonumber(id);
            if valid_models[id] then 
                startDrone (player, id);
            else
                errMsg (msg.INVALID_ID, player);
            end
        else
            errMsg (msg.INVALID_ID, player);
        end
    end
);    


Moja funkcja:

addEvent ( "startspawndrone", true );

addEventHandler ( "startspawndrone", root,
    function (player, ...)
        local id = arg[1] or 501;
        if tonumber (id) then 
            id=tonumber(id);
            if valid_models[id] then 
                startDrone (player, id);
            else
                errMsg (msg.INVALID_ID, player);
            end
        else
            errMsg (msg.INVALID_ID, player);
        end
    end
);    


Funkcja odpowiadaj?ca za start drona:


function startDrone(player, id)
    if players[player] then 
        errMsg (msg.ALREADY_HAS_DRONE:format("droned"), player);
        return;
    end    
    if getElementData ( player, "Dron" ) >= 1 then
    players[player] = {};
    local x,y,z = getElementPosition(player)
    local drone = createVehicle(501, x+1.5, y+1.5, z)
    local ped = createPed(180, x+1.5, y+1.5, z)
    players[player].drone = drone;
    players[player].ped = ped
    setElementAlpha(ped, 0)
    warpPedIntoVehicle(ped, drone)
    giveWeapon(player, 40, 1, true)
    triggerClientEvent(player, "drone.start", resourceRoot, drone, ped)
    setPedAnimation(player, "CAMERA", "camstnd_lkabt",-1, false, false, false, true)
    toggleAllControls (player, false, true, false);
    addEventHandler ("onVehicleExplode", drone, function () stopDrone(player) end);    
    addEventHandler ("onElementDestroy", drone, function () stopDrone(player) end);
end
end


B??d z db3:

Kod:


[2019-07-27 13] WARNING: [DayZ]\DayZ\dron\drone_server.lua:41: Bad argument @ 'getElementData' [Expected element at argument 1, got nil]
[2019-07-27 13] ERROR: [DayZ]\DayZ\dron\drone_server.lua:41: attempt to compare number with boolean


Postaw piwo autorowi tego posta
 

 
Tagi: dron :: przerobienie :: commandhandlera :: eventhandlera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Dron - przerobienie commandhandlera na eventhandlera Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku