-
Üdv!
Hogyan valósítható meg, hogy újraindítható legyen egy adott resource erre a parancsra /restart [Resource Neve] és kiírja pl.: Resource újraindítva \"runcode-system\"
Természetesen ACL jogon keresztül, nem RPG - szerverhez kellene!
Köszönöm!!!
-
ACL jog nélkül is megoldható például serial alapon. :)
Link hozzá:https://wiki.multitheftauto.com/wiki/RestartResource
-
\"ACL jog nélkül is megoldható\"
Ha jól tudom, akkor a modnak amibe benne van a restartResource, annak kell ACL jog az újraindításhoz. Egy próbát megér, de 100% hogy access denied-et fog dobni
Egyszerűbb akkor már magad berakni adminnak, és nem kell restartResource, meg ahhoz külön mod, meg ilyen jog olyan jog, stb.
-
\"ACL jog nélkül is megoldható\"
Ha jól tudom, akkor a modnak amibe benne van a restartResource, annak kell ACL jog az újraindításhoz. Egy próbát megér, de 100% hogy access denied-et fog dobni
Egyszerűbb akkor már magad berakni adminnak, és nem kell restartResource, meg ahhoz külön mod, meg ilyen jog olyan jog, stb.
Nem arra gondoltam én ezzel az ACL jog résszel, hanem hogy ne kelljen belépkedni (+ biztonsági rést felesleges adni az emberek kezébe), illetve ha simán admin rangra teszi, az megint csak szopó, mert jön mondjuk egy SQL inject és máris van adminja és tudja használni az összes parancsot. Mondjuk serial-t is lehet trükközni, de ahhoz azért már egy szintű tudás kell (ha jó tudom lehet ilyesmit is csinálni). :D
-
Ez lenne az alap script, amit Vallhalából néztem:
function restartResource( thePlayer, commandName, resourceName )
local theResource = getResourceFromName(tostring(resourceName))
if (theResource) then
if getResourceState(theResource) == \"running\" then
restartResource(theResource)
outputChatBox( \"Resource \" .. resourceName .. \" újraindítva.\", thePlayer, 0, 255, 0 )
end
end
end
addCommandHandler ( \"restart\", restartResource )
az a probléma, hogy újraindítani újra indítja, de semmi válasz üzenetet nem kapok (gondolok ez alatt a outputChatBox-részre) esetleg valaki tudná javítani?
-
function restartResource( thePlayer, commandName, resourceName )
local theResource = getResourceFromName(tostring(resourceName))
if (theResource) then
if getResourceState(theResource) == \"running\" then
restartResource(theResource)
outputChatBox( \"Resource \" .. resourceName .. \" újraindítva.\", thePlayer, 0, 255, 0 )
end
end
end
addCommandHandler ( \"restart\", restartResource )
Asszem így lesz jó
-
valamiért még mindig nem kapok visszajelzést a \"outputChatBox\"-tól!
-
Server vagy Kliens oldalban van a scirpt?
-
Server side (oldalon)
-
Vedd ki a paraméterek közül a thePlayer-t.
-
Vedd ki a paraméterek közül a thePlayer-t.
Szerver oldalon kell oda egy argument, hogy kinek fusson le, főleg ha utána van rgb és coloredCode engedélyezve, különben hibát fog ismét kapni. Mondjuk nem árt, ha nem azonos a function neve és az egyik meghívott function. :)
-
Még mindig nem sikerült megoldanom, várok még segítségeket! Újra indítja de semmi értesítést nem kapok vissza!
-- restart resources
function restartRes( thePlayer, commandName, resourceName )
if ( resourceName ) then
local resource = getResourceFromName( resourceName )
local restart = restartResource(resource)
if (restart) then
outputChatBox(\"Resource újraindítva\" .. resourceName .. , thePlayer, 0, 255, 0)
else
outputChatBox ( resourceName .. \"Hiba!\", thePlayer, 255, 0, 0 )
end
end
end
addCommandHandler ( \"restart\", restartRes )
köszönöm!..
-
Nálam így nézz ki és működik is. :)
addCommandHandler(\"res\",
function(player, cmd, res)
if enabledSerials[getPlayerSerial(player)] then
local res = getResourceFromName(tostring(res))
if res then
restartResource(res)
outputChatBox(\"A resource újraindítva.\", player)
end
end
end
)