-
Sziasztok. Talán 3 napja kezdtem el scriptelni, úgyhogy bocsánat a hülye kérdésért, valahol el kell kezdeni. Úgy gondoltam, neki állok egy kis munka script megírásának, azt olvastam, egy kis egyszerű, egyik markerből a másikba munka scriptet nem nehéz létrehozni, kezdőknek még pont elég. Már megcsináltam azt, hogyha valaki beírja hogy /felvesz, akkor létrehozza a markert, és ha valaki abba beleáll, akkor legetel egy kocsit, viszont én csak azt szeretném, hogy csak 1x getelje le, mégegyszer ne lehessen, csak akkor ha ledja azt. Ez hogyan lenne lehetséges. Tudom, if-fel, viszont már mindent próbáltam közé írni, keresgéltem is, nem találtam, gondoltam megkérdezem itt.
function felvesz(thePlayer, commandName)
felveves = createMarker (-1692.23132, -278.43570, 14.17757, \"checkpoint\", 3, 255, 255, 255, 170 )
outputChatBox(\"Sikeresen felvetted a munkát!\")
addEventHandler( \"onMarkerHit\", felveves, MarkerHit )
end
addCommandHandler(\"felvesz\", felvesz)
function MarkerHit(thePlayer, matchingDimension )
local x, y, z = getElementPosition(thePlayer)
local RaceVehicle = createVehicle ( 411, 0, 0, 0 )
local spawnVeh = spawnVehicle ( RaceVehicle, x+3, y+3, z )
warpPedIntoVehicle(thePlayer, RaceVehicle)
end
-
Ha lehívta egy változót/elementDatát állítasz, pl:
felvesz = true
és akkor ez:
function MarkerHit(thePlayer, matchingDimension )
if felvesz == false then
local x, y, z = getElementPosition(thePlayer)
local RaceVehicle = createVehicle ( 411, 0, 0, 0 )
local spawnVeh = spawnVehicle ( RaceVehicle, x+3, y+3, z )
warpPedIntoVehicle(thePlayer, RaceVehicle)
felvesz = true
else
--Ha fel van már véve mit csináljon.
end
end
-
Létrehozunk egy változót a mod elején.
Példa.:
local getCar = false
Hozzá adhassuk a funkcióhoz a következő módszerrel.:
function MarkerHit(thePlayer, matchingDimension )
if not getCar then
local x, y, z = getElementPosition(thePlayer)
local RaceVehicle = createVehicle ( 411, 0, 0, 0 )
local spawnVeh = spawnVehicle ( RaceVehicle, x+3, y+3, z )
warpPedIntoVehicle(thePlayer, RaceVehicle)
getCar = true
end
end
Megadtuk neki, hogy ha az érték false akkor engedje át és ha lehívta a végén tegye true-ra az értéket.
-
Ennyire idióta is csak én lehetek amúgy... már próbálkoztam mindennel, hogy a true helyére 1-et rakok. Köszönöm segítségedet :D
-
Jobb lenne szerintem elementData. De kinek mi :)
-
Jobb, de lusta beleírni a példába. xd
-
Jobb lenne szerintem elementData. De kinek mi :)
Hát az is egy megoldás, de felesleges ha belegondolsz mivel csak server/client oldalon fogja használni a dolgot...
-
server
Na ott már biztos elementData fog kelleni.
-
Figyeljetek, nekem még most elég ez is :D Nagyon kínai nekem még ez, szerencsére mta wiki barátom, tanulok :D Majd ha már egy ilyen alap dolgot meg tudok írni :D
-
Mondjuk jobban állsz mint én, mikor elkezdtem. Talán 2016 áprilisában kezdtem, de nem néztem semmi leírást/tutorial-t, nem volt ki segítene, és semmi tapasztalatom nem volt. Koordinátákat alig tudtam átírni, nem hogy egy saját script-et írni. Aztán ahogy nézegettem más emberek munkáit, és a Wiki-t, úgy kezdtem el tanulgatni, de még mindig nem vagyok az elfogadható szinten. :D
-
Újabb probléma. Még ez az egy, aztán már nem írok ide semmit se, csak ha nagyon muszáj. Most csináltam meg, hogy fel lehet venni a helikoptert, el lehet menni A-ból B-be, majd ezek után amikor a repülővel belemegyek a checkpoint-ba, átdob sikeresen a maverick-be, törli az előző helit, viszont 2 mavericket dob le, 2x írja be a chatbe a szöveget. Miért van ez?
function felvesz(thePlayer, commandName, matchingDimension )
if not getCar then
local x, y, z = getElementPosition(thePlayer)
Shamal = createVehicle ( 519, 0, 0, 0 )
local spawnShamal = spawnVehicle ( Shamal, -1647.07410, -154.49638, 14.14844)
warpPedIntoVehicle(thePlayer, Shamal)
getCar = true
destroyElement ( felveves )
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffShamal-003 Vétel! A felszállást megkezdheti a kifutópályáról, Los Santosi Reptér irányában!\",player,255,255,255,true)
megallo1 = createMarker (1963.88074, -2644.21899, 13.54688, \"checkpoint\", 2, 255, 0, 0, 170 )
addEventHandler( \"onMarkerHit\", megallo1, odaeres1 )
else
outputChatBox(\"Neked már van munkajárműved!\")
end
end
function odaeres1(thePlayer, commandName, playerSource)
outputChatBox(\"#3ca3e8[Shamal-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeres volt!\",player,255,255,255,true)
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Shamal-003! A következő úti cél mount chiliad lesz, amit már egy Maverick típusú helikopterrel kell megközelítenie!\",player,255,255,255,true)
destroyElement( megallo1 )
destroyElement( Shamal )
Maverick = createVehicle ( 487, 0, 0, 0 )
local spawnMaverick = spawnVehicle ( Maverick, 1999.96265, -2641.37988, 16.03086)
warpPedIntoVehicle(thePlayer, Maverick)
end
-
Valószínűleg azért, mert 2x érinted a CP-t. Egyszer amikor belemész, és egyszer amikor ki. Próbáld meg destroy-olni a funkció legelején. Szóval:
function odaeres1(thePlayer, commandName, playerSource)
destroyElement( megallo1 )
outputChatBox(\"#3ca3e8[Shamal-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeres volt!\",player,255,255,255,true)
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Shamal-003! A következő úti cél mount chiliad lesz, amit már egy Maverick típusú helikopterrel kell megközelítenie!\",player,255,255,255,true)
destroyElement( Shamal )
Maverick = createVehicle ( 487, 0, 0, 0 )
local spawnMaverick = spawnVehicle ( Maverick, 1999.96265, -2641.37988, 16.03086)
warpPedIntoVehicle(thePlayer, Maverick)
end
És amúgy miért Space-t használsz? Ott a tabulátor. Sokkal könnyebb mikor új sorokat kezdenél.
-
Tab-ot használok :) Amúgy, megpróbáltam, 2x írja ki, 2x geteli le a helikoptert is, pedig már próbáltam most timerrel is :/ Próbálkozom, hátha sikerül mással. Igazából most látom ,ír 3 errort a consoleba. A két destroyElementet jelzi hibásnak. Bad Argument @ \'DestroyElement\' [Expected element ad argument 1]
function odaeres1(thePlayer, commandName, playerSource)
destroyElement( megallo1 )
destroyElement( Shamal )
setTimer ( function()
outputChatBox(\"#3ca3e8[Shamal-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeres volt!\",player,255,255,255,true)
end, 2000, 1 )
setTimer ( function()
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Shamal-003! A következő úti cél mount chiliad lesz, amit már egy Maverick típusú helikopterrel kell megközelítenie!\",player,255,255,255,true)
Maverick = createVehicle ( 487, 0, 0, 0 )
local spawnMaverick = spawnVehicle ( Maverick, 1999.96265, -2641.37988, 16.03086)
warpPedIntoVehicle(thePlayer, Maverick)
end, 5000, 1 )
end
-
Ezt is változóval?
-
Megnéztem mi lenne, ha megcsinálom a 2. checkpointot is. Nos, itt már természetesen mivel a 3. itt már 3x írja ki ugyan azt a szöveget :D Amúgy mivel gondolom nem ok nélkül mondod az ElementData-t, megnézem hogyam működik ez, keresek róla videót/nmegnézem mta wiki-n. Esetleg ha tudsz valami olyan segédanyagot, ami megérteti velem, és elküldöd ide, azt megköszönöm :D
local getCar = false
function felvesz(thePlayer, commandName, playerSource)
felveves = createMarker (-1545.84644, -442.00558, 6.00000, \"checkpoint\", 2, 32, 213, 80, 170 )
addEventHandler( \"onMarkerHit\", felveves, felvesz )
end
addCommandHandler(\"felvesz\", felvesz)
function felvesz(thePlayer, commandName, matchingDimension )
if not getCar then
Shamal = createVehicle ( 519, 0, 0, 0 )
spawnVehicle ( Shamal, -1647.07410, -154.49638, 14.14844)
warpPedIntoVehicle(thePlayer, Shamal)
getCar = true
destroyElement ( felveves )
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffShamal-003 Vétel! A felszállást megkezdheti a kifutópályáról, Los Santosi Reptér irányában!\",player,255,255,255,true)
megallo1 = createMarker (1963.88074, -2644.21899, 13.54688, \"checkpoint\", 2, 255, 0, 0, 170 )
addEventHandler( \"onMarkerHit\", megallo1, odaeres1 )
else
outputChatBox(\"Neked már van munkajárműved!\")
end
end
function odaeres1(thePlayer, commandName, matchingDimension )
destroyElement( megallo1 )
destroyElement( Shamal )
setTimer ( function()
outputChatBox(\"#3ca3e8[Shamal-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeres volt!\",player,255,255,255,true)
end, 2000, 1 )
setTimer ( function()
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Shamal-003! A következő úti cél mount chiliad lesz, amit már egy Maverick típusú helikopterrel kell megközelítenie!\",player,255,255,255,true)
Maverick = createVehicle ( 487, 0, 0, 0 )
local spawnMaverick = spawnVehicle ( Maverick, 1999.96265, -2641.37988, 16.03086)
warpPedIntoVehicle(thePlayer, Maverick)
end, 5000, 1 )
megallo2 = createMarker (-2326.63745, -1642.41980, 483.78610, \"checkpoint\", 2, 255, 0, 0, 170 )
addEventHandler( \"onMarkerHit\", megallo2, odaeres2 )
end
function odaeres2(thePlayer, commandName, matchingDimension )
destroyElement( megallo2 )
outputChatBox(\"#3ca3e8[Maverick-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeresen megtörtént.\",player,255,255,255,true)
setTimer ( function()
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Maverick-003! Következő állomása Las Venturas lesz, ahol majd egy Beagle típusú repülőbe kell átszállnia!\",player,255,255,255,true)
end, 2000, 1 )
end
-
Nem kell Timer.
function felvesz(thePlayer, commandName, matchingDimension )
if not getCar then
local x, y, z = getElementPosition(thePlayer)
Shamal = createVehicle ( 519, 0, 0, 0 )
local spawnShamal = spawnVehicle ( Shamal, 2019.06824, -2597.34180, 13.54688)
warpPedIntoVehicle(thePlayer, Shamal)
getCar = true
destroyElement ( felveves )
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffShamal-003 Vétel! A felszállást megkezdheti a kifutópályáról, Los Santosi Reptér irányában!\",player,255,255,255,true)
megallo1 = createMarker (1980.31885, -2596.95776, 13.54688, \"checkpoint\", 2, 255, 0, 0, 170 )
local myBlip = createBlip( 1980.31885, -2596.95776, 13.54688,52)
addEventHandler( \"onMarkerHit\", megallo1, odaeres1 )
else
outputChatBox(\"Neked már van munkajárműved!\")
end
end
function odaeres1(thePlayer, commandName, playerSource)
if getPedOccupiedVehicle (thePlayer) then
destroyElement( megallo1 )
destroyElement( Shamal )
outputChatBox(\"#3ca3e8[Shamal-003]: #ffffffTorony vétel! Itt a repülőgép főpilótája beszél, a leszállás sikeres volt!\",player,255,255,255,true)
outputChatBox(\"#3ca3e8[Légiforgalom-Irányító]: #ffffffVettem Shamal-003! A következő úti cél mount chiliad lesz, amit már egy Maverick típusú helikopterrel kell megközelítenie!\",player,255,255,255,true)
Maverick = createVehicle ( 487, 0, 0, 0 )
local spawnMaverick = spawnVehicle ( Maverick, 1999.96265, -2641.37988, 16.03086)
warpPedIntoVehicle(thePlayer, Maverick)
end
end
A koordinátákat átírtam, mert így könnyebb volt tesztelni. xd A hiba az volt gondolom én, hogy 2x érintetted a cp-t. Egyszer a ped-del, egyszer meg a járművel.
-
Egyszer a ped-del, egyszer meg a járművel.
Azzal régen is baszakodtam, tényleg LOL.
Oh elementDatáról szólva.
setElementData(element, \'elementDataName\', value)
element = Mire/kire szeretnéd \"ráállítani\"
elementDataName = egy string, evvel tudsz majd rá hivatkozni.
value = Az érték.
getElementData(element, \'elementDataname\')
element = Miről/kiről szeretnéd lekérni.
elementDataName = egy string, ezzel lehet hivatkozni egy értékre.
https://wiki.multitheftauto.com/wiki/SetElementData
https://wiki.multitheftauto.com/wiki/GetElementData
-
Ohh, már értem ;) Köszönöm szépen segítségeteket, 1000x hálám, amúgy most már elementData-ba fogom intézni a dolgokat.
-
Ohh, már értem ;) Köszönöm szépen segítségeteket, 1000x hálám, amúgy most már elementData-ba fogom intézni a dolgokat.
Csak vigyázz, próbáld meg az elementData állítást szerver oldalon végezni, és akkor nem nagyon lehet manipulálni.
-
Oksa. Na, tényleg egy utolsó kérdés, és nem bombázlak tovább titeket vele, majd a többire magamtól rájövök, ezt sajna nem találom mta wikin se :D . Be szeretnék helyezni pl. 3 kocsi modot, viszont ezeket 1 darab mappába szeretném tárolni, pl.: modok\\repulo1 nevű mappába szeretném ezt tárolni. ( a modok nevű mappán belül a repülő1 almappa mellett még lenne másik almappa is... ), ezt hogy írjam be mtaserver.conf-ba? Vagy ez hogyan szokták, hogy ne legyen 2000 mappa benne?
-
Azt a mappát kell megadnod ilyenkor, ahol a meta.xml van. Tehát ha van egy mappád, mondjuk \"kocsik\" néven, abba van a meta, és több almappa, akkor a \"kocsik\" mappát adod meg a config fájlban.