Szerző Téma: Teleport Problem!  (Megtekintve 1693 alkalommal)

Teleport Problem!
« Dátum: 2015. december 16. - 21:18:43 »
0 Show voters
Sziasztok! Valaki kérem magyarázza el ez így ebben a formában miért nem jó márt már kihullik a hajam és, hogy a function paramétereihez mikor mit kell írni :S Meg ,hogy az addEventHandler második paramétere mire jó. Köszönöm! :)
 
local marker_1 = createMarker ( 3453.8, 1989.85, 50,\"cylinder\",1)
local marker_2 = createMarker ( 3454.5, 2000, 50,\"cylinder\",1)
function login_marker(playerSource)
local player = getPlayerName(playerSource)
setElementPosition  (player, 2346.5,1518.2,50)
fadeCamera (source, true)
setCameraTarget (source, source)   
setPlayerBlurLevel ( source, 0 )
 
end
addEventHandler(\"onMarkerHit\", marker_1, login_marker)

Teleport Problem!
« Válasz #1 Dátum: 2015. december 17. - 15:23:28 »
0 Show voters
::| A játékos nevét nem tudod bizonyos pozícióra tenni max ha az elementet tennéd oda :)

Teleport Problem!
« Válasz #2 Dátum: 2015. december 17. - 15:38:42 »
0 Show voters
Szerver oldalról beszélünk, így ez jelenleg ott működik ebbe a formában(amit ide leírtam). Az volt a gond, hogy írtál egy felesleges lokalizálást, és hol player, hol playerSource és hol source volt. :) Átírtam és így működik is, de csak egy irányba( az első markerból a másodikba tesz, fordítva nem!).
 
local marker_1 = createMarker ( 2081.9465332031, -1700.7380371094, 13.3828125,\"cylinder\",1)
local marker_2 = createMarker ( 2102.7658691406, -1685.2058105469, 13.544651031494,\"cylinder\",1)
local tPos = {2102.7658691406, -1685.2058105469, 13.544651031494} -- teleport pozíció
function login_marker(source)
       
        setElementPosition  (source, tPos[1],tPos[2],tPos[3])
        fadeCamera (source, true)
        setCameraTarget (source, source)       
        setPlayerBlurLevel ( source, 0 )
   
end
addEventHandler(\"onMarkerHit\", marker_1, login_marker)

Teleport Problem!
« Válasz #3 Dátum: 2015. december 17. - 17:49:09 »
0 Show voters
Rendesek vagyok srácok! Köszönöm! Így már értem! Azt még le tudnátok írni, hogy a function login_marker(source) részben a source miért kell vagy oda mit kell beírni?

Teleport Problem!
« Válasz #4 Dátum: 2015. december 17. - 17:56:42 »
0 Show voters
Szerver oldalon az felel meg a localPlayer-nek, azaz neked. Tehát hogy azt a játékost tegye át aki bele megy és ne mindenkit. :)

Teleport Problem!
« Válasz #5 Dátum: 2015. december 17. - 18:46:54 »
0 Show voters
Látom még akítv vagy, ha nem gond kérdeznék még! Ugye van ez a dolog, hogy amikor kilép a játékos meg belép elvesznek a dolgok stb... tudom h ezt a setElementData-val meg a getElementData, setAccountData, getAccountData-val kell csinálni. De ezt én nem értem, nincs erre valami más egyszerűbb módszer? Mik állnak rendelkezésemre a játékosok adatainak mentésére és betöltésére?

Teleport Problem!
« Válasz #6 Dátum: 2015. december 17. - 19:28:34 »
0 Show voters
Mindenképpen menteni kell az adatokat ahhoz, hogy ne vesszen el. Megoldás lehet rá egy xml fileba való mentés, de ezt csak azért nem ajánlom, mert a client azt képes felülírni, módosítani, ezzel pedig akár elég rossz dolgokat is véghezvinni. SQL-ben érdemes menteni, már amit oda illik. Tehát, sajnos a setElementData, insert into, stb eléggé fontos eleme az egésznek. Nem igazán fogod tudni kikerülni, ha mentetni akarsz bármit.  setAccountData-t még nem igazán láttam használni és tudtommal elég régi dolog már. Én nem nagyon kerülgetném a setElementDatát, sem az ilyenfajta tárolási módszert. Bár pl vannak olyan dolgok amiket értelmetlen oda menteni, pl akár egy színbeállítás, vagy ilyesmi(ami nem hat ki a szerverre, a játékosra meg csak olyan szinten, hogy maximum szar helyre kerül valami panel, vagy más színű, méretű lesz neki), ezeknél érdemes az xml-be mentést használni(-> felesleges sql terhelés megszüntetése).

Teleport Problem!
« Válasz #7 Dátum: 2015. december 17. - 19:31:47 »
0 Show voters
Értelek, esetleg TS3-en, vagy skypon nem tudnál segíteni ezekben az account-hoz mentéses dolgokban? Mert igazából próbálok mindent önállóan megtanulni, megérteni, de ez kifogott rajtam! Szóval ha tudnál segíteni írj pü.-t! Ha nem az se baj, nem várom el hogy magántanár legyél :D Ebben az egyben kérnék komoly segítséget! És köszönöm az eddig segítséget is! :)

Teleport Problem!
« Válasz #8 Dátum: 2015. december 17. - 20:25:25 »
0 Show voters
Annyira én se értek az account rendszer megírásához. Igazából ami fontos, hogy legyen egy function amit timerrel x időnként menti a játékos adatait. Leginkább setElementDatákat kell írni szinten mindenre, amit ott menteni kell. Ez függ a szervertől is, hogy milyen alapot akarsz. Elsőkörben a login,regisztrációt old meg. Ha megvan akkor a karakterkészítést. Itt fog kelleni egy alap setElementData \"rendszer\", azaz, hogy a beírt dolgokat elmentsd. Írok példát is az egészre, hogy mint ments el.
 

local connection = --ide jön egy sql export pl
function saveAllServers(p)
        if isElement(p) then
        -- setElementDatázás
local dbid = tonumber(getElementData(p, \"acc.accountID\")) or 0
local admin = tonumber(getElementData(p, \"acc.adminLevel\")) or 0
dbExec... -- ide jön a dxExec része, itt menteted bele sql-be az értékeket(a lokalizált értéket írod be)
        dbExec(connection, \"UPDATE account SET dbid = ?, admin = ?, WHERE ID = ?\", dbid,admin)
end
end

Teleport Problem!
« Válasz #9 Dátum: 2015. december 17. - 20:34:22 »
0 Show voters
Hát ettől nem lettem okosabb  :D Nem értem, hogy működik ez az egész setElementData, aúgy nem rp szervert akarok. :)
Mondjuk ha van egy valami.lua fájlom abban van egy local score = 55 akkor azt hogy tudom úgy elmenteni, hogy kilépéskor elmentse, belépéskor betöltse? :S

Teleport Problem!
« Válasz #10 Dátum: 2015. december 17. - 21:02:03 »
0 Show voters
leginkább nem lokalizált értéket szoktak menteni vele, hanem valamilyen változó számot, szöveget, Olyat amit szeretnél szeretnél menteni, esetleg getElementData segítségével máshol lekérni. Az általad írd dolgot a következő kép tudod menteni(persze függ, hogy client vagy server oldalról beszélünk(én most szerver oldalon mentetem le vele, de leginkább amúgy az első argumentnél van változása(sőt csak ott)). Az előző luában hibáztam kicsit(getElementData van benne és nem pedig setElementDat), így az pont kikéri sql-ből az értékét nem pedig menti.  :facepalm:
 

local score = 55
setElementData(root,\"valamiNev\",score)

 
ValamiNev esetén a megnevezését adod meg, hogy hogyan szeretnéd tárolni(milyen névvel), illetve ezzel a névvel fogod lekérdezni getElementData esetén.  :thumbsup:

Teleport Problem!
« Válasz #11 Dátum: 2015. december 17. - 21:45:38 »
+1 Show voters
Nem hiszed el, hány napot szenvedtem, úgy hogy nem működött ez a szar, hány napot töltöttem úgy el a szerveren, hogy alig csináltam valamit mert a setElementData dologgal megakadtam. Most leírtad, írtam egy teszt scriptet, elsőre hibátlanul megírtam. WAT? KÖSZI!! NAGYON KÖSZI!  :thumbsup:

Teleport Problem!
« Válasz #12 Dátum: 2015. december 17. - 22:09:59 »
0 Show voters
Örülök, hogy ha segíthettem. :) Fontos hogy pl getElementData esetén lehetőleg ne a renderen belüli for ciklusba írd mert akkor bizony ki fogsz fagyni elég gyorsan (tapasztalat!).  :thumbsup: Ha pedig kell még valami segítség nyiss új topicot és segítek/segítünk!  :D

Teleport Problem!
« Válasz #13 Dátum: 2015. december 18. - 11:21:53 »
0 Show voters
Ha client oldalon van a setElementData és a getElement data, akkor hogyan kellene kinéznie? És van egy local iMaxScore változó hozzá! Szerver oldalon már meg tudom csinálni de client oldalon nem :S Ja amúgy a setElementDatás dolgok resource ujraindításnál elvesznek. Ezt nem lehet valahogy kiküszöbölni! Mivel meg kell adni a változónak egy kezdőértéket jelent esetben nulla. És amikor újraindítom a resourceot akkor ugye ezt beállítja, tehát minden nullázódott :S
« Utoljára szerkesztve: 2015. december 18. - 11:33:24 írta antal1208 »

Teleport Problem!
« Válasz #14 Dátum: 2015. december 18. - 14:18:22 »
0 Show voters
SQL-be kell menteni, ahhoz hogy megmaradjon állandóra(setElementData mellé). Client oldalon a root-nak mennie kellene, de ha nem akkor oda írhatsz localPlayer, stb.-t is. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal