Sziasztok! Az lenne az én problémám, hogy mikor lelép egy játékos a szerverről (RolePlay) akkor a járműve eltűnik és ez tökjó meg minden, de mikor vissza lép nem jön vissza a jármű, hanem ugyan abba a dimensioba marad a jármű ahova el geteli a rendszer mikor lelépet (1-es dimenzióba)! UI: A szerver Valhallából épül fel!Lua file: function PlayerJoin()
if getElementData(source, \"loggedin\") == 1 then
local dbid = getElementData(source, \"dbid\")
local veh = exports.pool:getPoolElementsByType(\"vehicle\")
for key, value in ipairs(veh) do
local owner = tonumber(getElementData(value, \"owner\"))
if (owner) and (owner==dbid) then
local id = getElementData(value, \"dbid\")
setElementDimension(value, 0)
end
end
end
end
addEventHandler(\"onPlayerJoin\", getRootElement() ,PlayerJoin)
function PlayerQuit()
local dbid = getElementData(source, \"dbid\")
local veh = exports.pool:getPoolElementsByType(\"vehicle\")
for key, value in ipairs(veh) do
local owner = tonumber(getElementData(value, \"owner\"))
if (owner) and (owner==dbid) then
local id = getElementData(value, \"dbid\")
setElementDimension(value, 1)
end
end
end
addEventHandler(\"onPlayerQuit\",getRootElement(),PlayerQuit)
Miért akarod 1-es dimenzióba rakni mikor lelép az adott játékos? :O
Miért nem használsz destroyElementet?
Értem, akkor mit kéne rajta változtatnom? :)
Én úgy oldottam meg, h resource startnál(vehicle sys) és mikor belép a játékos(acc sys) akkor meghív egy funkciót a veh sysben, lekéri az adatokat sql-ből h van-e kocsija, ha van akkor meghív egy másik funkciót ami spawnol, lelépésnél vagy resource stopnál/restartnál pedig meghív egy törlés funkciót és ennyi.
Értem, köszönöm a segítséget!
De még várok segítségeket, valahogy ehhez a rendszerhez megoldást! :)
Nem nagy was ist das, de a helyedben nem dolgoznék valhallával.
function quitSaveCar()
for k,v in ipairs(getElementsByType(\"vehicle\") do
if v:getData(\"dbid\") == source:getData(\"owner\") then
v:setDimension(1)
end
end
end
addEventHandler(\"onPlayerQuit\", getRootElement(), quitSaveCar)
function showTheCar()
for k,v in ipairs(getElementsByType(\"vehicle\") do
if v:getData(\"dbid\") == source:getData(\"owner\") then
v:setDimension(0)
end
end
end
addEventHandler(\"onPlayerJoin\", getRootElement(), showTheCar)
Maga az egész kód értelmetlen, próbáld meg még egyszer átgondolni.
\"for k,v in ipairs(getElementsByType(\"vehicle\") do\" ezzel csak azt éred el hogy 50-100 kocsinál végignézi az összeset -> lagg, esetleg network trouble
+ meg amikor joinolsz nincs dbid-d mivel akkor lépsz fel és még be se loginoltál így a szerver hogy tudja hogy a te dbid-d mi inkább használj onPlayerSpawnt :)
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
Ennél nagyobb butaságot rég olvastam :)
Xenius[/member] te hogy oldanád meg? :)
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
Ennél nagyobb butaságot rég olvastam :)
[/quote]
Akkor nagyon nem értünk egyet, de nem is szándékozok egy valhalla editerrel leállni veszekedni :)
egy minden vehiclen végigmenő loop 300 playernél akik csatlakozgatnak le és fel akadna.
:-[
Xenius pedig sokat letett az asztalra, nem hívható egyszerű Valhalla editernek.
egy minden vehiclen végigmenő loop 300 playernél akik csatlakozgatnak le és fel akadna.
:-[
Xenius pedig sokat letett az asztalra, nem hívható egyszerű Valhalla editernek.
Igen, de aki feltette a kérdést, azt kérdezte, milyen megoldás lehet rá, nem azt hogy hogyan lehet 100 százalékosan optimalizáltan kidolgozva megírni. Nálam aki valhalla editer, már elásta magát a szemembe :)
Tehát te úgy gondolod h ha valaki egyszer is valhallához nyúlt akkor ő már a szemedben egy senki? Szerintem akkor a mai \"scripterek\" 99%-a a szemedben senki :)
Tehát te úgy gondolod h ha valaki egyszer is valhallához nyúlt akkor ő már a szemedben egy senki? Szerintem akkor a mai \"scripterek\" 99%-a a szemedben senki :)
Ez így van. De a scripterek körétől beszéltem, nem a sima emberekről van szó.
local lama = {}
kocsi betöltésnél/létrehozásnál pedig a láma táblába berakod a kocsikat tulaj vagy adatbázis id alapján aztán csak lekérdezed -> magyarul be indexeled normálisan és nem fog semmiféle laggot sem okozni.
a másik megoldás pedig a setElementByID + getElementByID, ami sok lekérdezésnél szintén laggoltatni fog
Akkor nagyon nem értünk egyet, de nem is szándékozok egy valhalla editerrel leállni veszekedni :)
Xistance[/member] erre van az a mondás hogy \"Nem mindegy hogy a h***e okoskodik vagy az okos h***éskedik\"
Xistance[/member] erre van az a mondás hogy \"Nem mindegy hogy a h***e okoskodik vagy az okos h***éskedik\"[/quote]
Van benne igazság. :D
local lama = {}
kocsi betöltésnél/létrehozásnál pedig a láma táblába berakod a kocsikat tulaj vagy adatbázis id alapján aztán csak lekérdezed -> magyarul be indexeled normálisan és nem fog semmiféle laggot sem okozni.
a másik megoldás pedig a setElementByID + getElementByID, ami sok lekérdezésnél szintén laggoltatni fog
Akkor nagyon nem értünk egyet, de nem is szándékozok egy valhalla editerrel leállni veszekedni :)
Xistance[/member] erre van az a mondás hogy \"Nem mindegy hogy a h***e okoskodik vagy az okos h***éskedik\"
[/quote]
Tehát adott a te megoldásod, ami szintén laggoltat magas használat esetén, és adott az enyém, ami szintén magas használaton laggol. Magyarán, ugyanazt dolgoztuk ki máshogyan, tehát ütöd a saját szavadat. Az folyamatos adatbázis lekerdezés is laggol, hiába van táblába. :)
Na most akkor még tegyünk egy kis fát a tűzre.
Szerintem ti egyáltalán nem tudtok LUA-t scriptelni.
:-[ :-[ :-[
Valhalla editerek vagytok mind a ketten. :-[
(( Nem mindegy hogy ki hogyan oldja meg, de most őszintén, így is úgy is laggolni fog magas használat esetén. ))
kappa :shifty:
kommentfight
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
Ennél nagyobb butaságot rég olvastam :)
[/quote]
Nem a for ciklus laggoltatja a szervert, hanem ami végigfut benne :\'D
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
Ennél nagyobb butaságot rég olvastam :)
[/quote]
Nem a for ciklus laggoltatja a szervert, hanem ami végigfut benne :\'D
[/quote]
És az nem a for ciklus? kiégtem mára.
A kód nem értelmetlen egyáltalán. Én nekem fogalmam sincs, hogy a valhallába mi hogy működik, tehát alapból nem tudhattam hogy a dbid mihez van kötve ebben az esetben. Laggoltatni nem fog egy for loop, csak esetleg ha sok van belőle.
Ennél nagyobb butaságot rég olvastam :)
[/quote]
Nem a for ciklus laggoltatja a szervert, hanem ami végigfut benne :\'D
[/quote]
És az nem a for ciklus? kiégtem mára.
[/quote]
What?
Ezt én sem értem hogy őszinte legyek. :nugget: :facepalm:
Ezt én sem értem hogy őszinte legyek. :nugget: :facepalm:
\"Nem a for ciklus laggoltat, hanem ami benne van.\" Tehát a for ciklus.
Na most akkor még tegyünk egy kis fát a tűzre.
Szerintem ti egyáltalán nem tudtok LUA-t scriptelni.
:-[ :-[ :-[
Valhalla editerek vagytok mind a ketten. :-[
(( Nem mindegy hogy ki hogyan oldja meg, de most őszintén, így is úgy is laggolni fog magas használat esetén. ))
kappa :shifty:
kommentfight
Ahogy érzed, viszont az én megoldásom nem használ szinte semmi erőforrást.
lama[kocsiid] = createVehiclevel letrehozott szar
És pl outputChatBox(tostring(lama[kocsiid]))
És legyetek szívesek nem belepofázni ha nem látjátok át.
+ez semmi for ciklust nem használ
és Xistance[/member] nem ugyan az a két dolog, teljesen másról írtam
Na most akkor még tegyünk egy kis fát a tűzre.
Szerintem ti egyáltalán nem tudtok LUA-t scriptelni.
:-[ :-[ :-[
Valhalla editerek vagytok mind a ketten. :-[
(( Nem mindegy hogy ki hogyan oldja meg, de most őszintén, így is úgy is laggolni fog magas használat esetén. ))
kappa :shifty:
kommentfight
Ahogy érzed, viszont az én megoldásom nem használ szinte semmi erőforrást.
lama[kocsiid] = createVehiclevel letrehozott szar
És pl outputChatBox(tostring(lama[kocsiid]))
És legyetek szívesek nem belepofázni ha nem látjátok át.
+ez semmi for ciklust nem használ
és Xistance[/member] nem ugyan az a két dolog, teljesen másról írtam
[/quote]
Akkor schuldigung bitte.
Nem mindegy, hogy a for ciklus átmegy az összes járművön, vagy csak azon, amin kell. Lásd: alap DayZ mód item respawn.
Nem mindegy, hogy a for ciklus átmegy az összes járművön, vagy csak azon, amin kell. Lásd: alap DayZ mód item respawn.
Senki nem mondta, hogy mindegy.
Ezt én sem értem hogy őszinte legyek. :nugget: :facepalm:
\"Nem a for ciklus laggoltat, hanem ami benne van.\" Tehát a for ciklus.
[/quote]
Nem érted mit mondok, nem az laggoltat a for ciklusban, hogy végiglépked egy adott iteratoron, vagy tömbön, vagy akármin, hanem ami lefut benne.
Ezt én sem értem hogy őszinte legyek. :nugget: :facepalm:
\"Nem a for ciklus laggoltat, hanem ami benne van.\" Tehát a for ciklus.
[/quote]
Nem érted mit mondok, nem az laggoltat a for ciklusban, hogy végiglépked egy adott iteratoron, vagy tömbön, vagy akármin, hanem ami lefut benne.
[/quote]
:wall: Ami lefut benne az a ciklushoz tartozik. Ha nem lépked a ciklusban semmi, akkor nem fog laggoltatni. Egy merő baromságok a kommentjeid.
Omg. Nem a ciklus és a lépkedés laggoltat, hanem az, amit csinál. Megint hozzáértés hiánya...
Az iteratoron lépkedés hogy a viharba laggoltatna? Általában a baj, hogy 9000 műveletet indít lépésenként.
Remélem így már értitek...
u.i: Xistance és az arc. Örülnél ha fele annyira értenél a dologhoz, mint DrAkE.
Omg. Nem a ciklus és a lépkedés laggoltat, hanem az, amit csinál. Megint hozzáértés hiánya...
Az iteratoron lépkedés hogy a viharba laggoltatna? Általában a baj, hogy 9000 műveletet indít lépésenként.
Remélem így már értitek...
u.i: Xistance és az arc. Örülnél ha fele annyira értenél a dologhoz, mint DrAkE.
Theeeeeeeerrrrrreeee you goooooooooo....... Valaki megértette! Megyek leiszom magam.
Örülnél te ha az én szintemen lennél :D
[/quote]
https://github.com/drakeee/samp-plugin-lua
Biztos hülyeségeket beszélek és nem értek a Luahoz, meg a programozáshoz.
Taníts mester.
Minden elindított folyamatnak (ofc a programkódod minden utasítása egy-egy folyamat [na jó azért nem teljesen]) van egy futásideje, és ha ezzel számolsz, talán te is megérted:
pszeudo:
ismételd 10x: ezt
folyamat1() // futásidő 0.2mp
folyamat2() // futásidő 0.3mp
folyamat3() //futásidő 0.5mp --> pl egy nagy sql tábla beolvasása változóba
eddig
Na ez lépésenként ~1mp, azaz ha ezt mind egy szálon csinálod, 10 másodpercig fog futni a ciklus. Tehát mi laggoltat?.
Mielőtt beleköttök ebbe is, egy-egy ilyen szar függvény nyílván nem kér tizedmásodpercnyi CPU időket, csak .
Jééé, ha PAWN-ban pl:
halt(seconds)
{
new _newTime[4], _oldTime[4];
gettime(_oldTime[0], _oldTime[1], _oldTime[2]);
_oldTime[3] = _oldTime[2] + (_oldTime[1] * 60) + (_oldTime[0] * 600);
while(_newTime[3] != (_oldTime[3] + seconds))
{
gettime(_newTime[0], _newTime[1], _newTime[2]);
_newTime[3] = _newTime[2] + (_newTime[1] * 60) + (_newTime[0] * 600);
}
}
halt(30); akkor 30 másodpercig ROHADUL megáll a szerver, hisz ezt a függvényt csinálja. Írd át luába és nézd meg, ha ennyire nem értesz hozzá.
[gmod]Hozzászólások törölve. Az írjon aki eltudja magyarázni normálisan a témanyitónak a megoldást. Nem kéne egy ilyen apróságon is vitatkozni mivel ez csak egy \'játék\' srácok.[/gmod]