Hali,
Elég régi topic és már biztos mindenki tudja hogyan kellene ennek működnie, azért berakom ide az én kódomat is.
Eléggé sok hibát vétettél. A kezdő koordinátáid nem tudom, hogy miért ott voltak ahol. Pontosan nem tudom, mert egyből az autósiskolához vezettem, de sehogy sem sikerült előhozni, így megváltoztattam azokat. Persze ahova te akarod rakni, átírod. Ha valakit beteleportálsz valahova, az ki is szeretne jönni, ezt a részt pedig nem másoltad- vagy nem is csináltad meg. Feltételezem, hogy az autósiskola belső teréhez szeretted volna teleportálni, ebben az esetben pedig az Interiort is változtatni kell. Bár az a Z koordináta nem elég magas, szóval nem tudom.
A hitElement létezik így van, de ha kicsit belegondolunk ez minden egyes elementre tartozik, ami azt a markert érinti. Biztos beakarsz teleportálni egy kocsit is?
Egyébként amit lehet, sőt mindent amit meglehet azt serverside írd meg, ezzel sem terhelve a clientside-t.
Ha valami nem működik, akkor az hibás, ajánlom a szerver ablakot nézegetni, hogy ír-e ki hibát, vagy játékon belül a debugscript-et. Elegendő, hogyha az acl.xmlben adsz magadnak jogokat, még az admin resource se kell hozzá, csak lépj be és írd be a parancsot.
A kód pedig: (serverside)
local posX, posY, posZ = -2026.6, -102, 35.1640625
local posfX, posfY, posfZ = -2026.8, -103.6, 1035.171875
local marker_id_0 = createMarker ( posX, posY, posZ+1, "arrow", 1.5, 255, 255, 0, 255 )
marker_id_1 = createMarker ( posfX, posfY, posfZ+1, "arrow", 1.5, 255, 255, 0, 255 )
setElementInterior ( marker_id_1, 3)
function WarpInToAutoSchool(sourcePlayer)
setElementInterior ( sourcePlayer, 3, posfX, posfY-1.15, posfZ)
outputChatBox ( "Beléptél az autóiskolába!", sourcePlayer, 0, 255, 0, true)
end
function WarpOutFromAutoSchool(sourcePlayer)
setElementInterior ( sourcePlayer, 0, posX, posY+1.15, posZ)
end
addEventHandler ( "onMarkerHit", marker_id_0, WarpInToAutoSchool)
addEventHandler ( "onMarkerHit", marker_id_1, WarpOutFromAutoSchool)
Tanácsos a koordinátákat külön változóban eltárolni, mivel hogyha többhelyen használod, akkor nem kell ezer helyen átírni, valamint maga a function is sokkal átláthatóbb. A koordináták nyilvánvalóan azért vannak kívül a függvényen, mert akkor nem jönnének létre, csak ha meghívódik a függvény, ami sose történne meg.
setElementInterior ( marker_id_1, 3, posfX, posYf, posfZ)
Ezzel a belső térben található markert át tettem egy másik interiorba, egyébként nem látszódna.
A két function végzi a be és ki teleportálást. Amint láthatod, mindkét esetben az Y koordináta kapott plusz értékeket, mivel ha ezt nem tettem volna meg, akkor a script alapján folyamatosan be és kiteleportálgatott volna.
Ez egy nagyon alap script, fejleszteni simán lehet, az előbbi hiba kiküszöbölésére például, meglehet sokkal szebben is csinálni, de ez egy jó alap. Egy kisebb hozzáfűznivaló még, hogyha Interiorból, vagy éppen be szeretnél teleportálni, akkor használd a fentebb bemásolt setElementInterior()-t, mivel opcionálisan pozició változtatást is tud, ezáltal nem kell használni a setElementPosition()-t. Persze ez csak Interioroknál.
Üdv.