Szerző Téma: Csak egyszeri lehívás  (Megtekintve 1971 alkalommal)

Csak egyszeri lehívás
« Dátum: 2017. December 17. - 17:26:08 »
0
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
« Utoljára szerkesztve: 2017. December 17. - 17:26:44 írta martinpozs »

Csak egyszeri lehívás
« Válasz #1 Dátum: 2017. December 17. - 17:31:52 »
0
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

 
 

Nem elérhető Dom95

Csak egyszeri lehívás
« Válasz #2 Dátum: 2017. December 17. - 17:36:57 »
0
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. 

Csak egyszeri lehívás
« Válasz #3 Dátum: 2017. December 17. - 17:37:28 »
0
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 

Csak egyszeri lehívás
« Válasz #4 Dátum: 2017. December 17. - 17:38:24 »
0
Jobb lenne szerintem elementData. De kinek mi :)

Csak egyszeri lehívás
« Válasz #5 Dátum: 2017. December 17. - 17:39:54 »
0
Jobb, de lusta beleírni a példába. xd

Nem elérhető Dom95

Csak egyszeri lehívás
« Válasz #6 Dátum: 2017. December 17. - 17:40:23 »
0
Idézetet írta: thegergo02 date=1513528704


   
      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... 

Csak egyszeri lehívás
« Válasz #7 Dátum: 2017. December 17. - 17:41:47 »
0
Idézetet írta: Dom95 date=1513528823


   
      server
   


Na ott már biztos elementData fog kelleni.

Csak egyszeri lehívás
« Válasz #8 Dátum: 2017. December 17. - 17:44:17 »
0
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 

Csak egyszeri lehívás
« Válasz #9 Dátum: 2017. December 17. - 18:40:56 »
0
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

Csak egyszeri lehívás
« Válasz #10 Dátum: 2017. December 17. - 19:27:56 »
0
Ú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

Csak egyszeri lehívás
« Válasz #11 Dátum: 2017. December 17. - 19:38:20 »
0
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.

Csak egyszeri lehívás
« Válasz #12 Dátum: 2017. December 17. - 19:55:11 »
0
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
« Utoljára szerkesztve: 2017. December 17. - 19:57:58 írta martinpozs »

Csak egyszeri lehívás
« Válasz #13 Dátum: 2017. December 17. - 19:59:54 »
0
Ezt is változóval?

Csak egyszeri lehívás
« Válasz #14 Dátum: 2017. December 17. - 20:10:19 »
0
 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
« Utoljára szerkesztve: 2017. December 17. - 20:18:59 írta martinpozs »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal