Jump to content

DereX

Members
  • Posts

    2
  • Joined

  • Last visited

DereX's Achievements

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody.

I ordered some spaghetti with marinara sauce and I got egg noodles and ketchup. I'm an average nobody. (2/54)

0

Reputation

  1. 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.
  2. Hali, habár elég régi topic és a kérdező is biztos megtalálta már a választ, azért én beraknám ide a helyes kódot, kicsit letisztítva, Természetesen kliensoldali script. function GPS ( command ) local posX, posY, posZ = getElementPosition ( localPlayer ) local posfX, posfY, posfZ = 2040.9111328125, 1545.1611328125, 10.671875 local Distance = getDistanceBetweenPoints3D ( posX, posY, posZ, posfX, posfY, posfZ ) outputChatBox ( "Te "..Distance.." méterre vagy az úti célodtól!", source ) end addCommandHandler ( "gps", GPS) Használat: /gps A másik kérdés pedig, hogy hogyan lehet olyan parancsot csinálni, amiben adatokat kérsz be nagyon egyszerű. Ez a példa bekéri a játékostól az úti célt, és a parancs beírásakor vett pozíciója alapján számolja ki. function GPS ( command, posfX, posfY, posfZ) local posX, posY, posZ = getElementPosition ( localPlayer ) local Distance = getDistanceBetweenPoints3D ( posX, posY, posZ, posfX, posfY, posfZ ) outputChatBox ( "Te "..Distance.." méterre vagy az úti célodtól!", source ) end addCommandHandler ( "gps", GPS) Használat: /gps posfX posfY posfZ /gps 10 20 3
×
×
  • Create New...