Szerző Téma: Jármû robbanásgátló  (Megtekintve 1068 alkalommal)

Jármû robbanásgátló
« Dátum: 2013. Október 29. - 14:05:17 »
0 Show voters
Helló azt szeretném megkérdezni hogy hogyan lehetne az megoldani hogy a jármû ne robbanjon fel.
Én próbáltam OnVehicleDamageStatusUpdate de nem jött össze :(

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármû robbanásgátló
« Válasz #1 Dátum: 2013. Október 29. - 14:24:27 »
0 Show voters
mivel nem a textura alapján nézi, hogy sérült e, gondolj bele ha minigunnal szétlövik nem látszik mégis robban :D
Ez kell neked:
http://wiki.sa-mp.com/wiki/GetVehicleHealth
http://wiki.sa-mp.com/wiki/SetVehicleHealth
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármû robbanásgátló
« Válasz #2 Dátum: 2013. Október 29. - 14:25:41 »
0 Show voters
Nem teszteltem, de ha hiba van akkor szólj:
 
new dam_timer[MAX_PLAYERS];     //timer-eknek egy tömb
public OnPlayerStateChange(playerid, newstate, oldstate)    //ha állást vált
{
if(newstate != PLAYER_STATE_DRIVER) return 0;   //ha nem õ a sofõr
dam_timer[playerid] = SetTimerEx(\"repair\", 500, true, \"i\", playerid);   //elindítja a timert, fél másodpercenként, azaz 500ms-enként fut le
return 1;
}
forward repair(playerid);
public repair(playerid)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);   //1000 lesz a kocsi
return 1;
}
public OnPlayerExitVehicle(playerid)
{
KillTimer(dam_timer[playerid]); //kilövi a timert
return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármû robbanásgátló
« Válasz #3 Dátum: 2013. Október 29. - 14:33:24 »
0 Show voters

Nem teszteltem, de ha hiba van akkor szólj:
 
new dam_timer[MAX_PLAYERS];     //timer-eknek egy tömb
public OnPlayerStateChange(playerid, newstate, oldstate)    //ha állást vált
{
if(newstate != PLAYER_STATE_DRIVER) return 0;   //ha nem õ a sofõr
dam_timer[playerid] = SetTimerEx(\"repair\", 500, true, \"i\", playerid);   //elindítja a timert, fél másodpercenként, azaz 500ms-enként fut le
return 1;
}
forward repair(playerid);
public repair(playerid)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);   //1000 lesz a kocsi
return 1;
}
public OnPlayerExitVehicle(playerid)
{
KillTimer(dam_timer[playerid]); //kilövi a timert
return 1;
}

 

[/quote]
én nem pont erre gondoltam de lehet ez kellett neki csak ez a kód nem jó...
ha 100x beszáll 1 ember akármilyen jármûbe létrehoz 100 timert ami mindig fut...szóval eléggé terhelné a szervert egy idõ után
http://wiki.sa-mp.com/wiki/KillTimer
de felesleges játékosonként 1-1 timer inkább ciklust használnék erre
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármû robbanásgátló
« Válasz #4 Dátum: 2013. Október 29. - 14:57:50 »
0 Show voters
ha elolvasnád ott van a killtimer  :facepalm: 1,
2 pedig a ciklus az megfagyaszthatja 1-2 másodpercre a szervert ha sok a jármû.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármû robbanásgátló
« Válasz #5 Dátum: 2013. Október 29. - 15:00:58 »
0 Show voters

ha elolvasnád ott van a killtimer  :facepalm: 1,
2 pedig a ciklus az megfagyaszthatja 1-2 másodpercre a szervert ha sok a jármû.
 
[/quote]
bocs, tényleg ott van a KillTimer, nem figyeltem :)
nem is a jármûveken kell végig menni :facepalm: :D itt sem a jármûvekre adtál timert :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármû robbanásgátló
« Válasz #6 Dátum: 2013. Október 29. - 15:03:33 »
0 Show voters
ja... tényleg, elfelejtettem, hogy az emberek akarnak fel robbanni :) jó hogy szóltál ;)
a Timer-t a játékosok kapják, ha jármûre rakom a timer az sokkal gázabb....

Dupla hozzászólás automatikusan összefûzve. ( 2013. Október 29. - 15:07:23 )

kis javítás:
 
    new dam_timer[MAX_PLAYERS];     //timer-eknek egy tömb
   public OnPlayerStateChange(playerid, newstate, oldstate)    //ha állást vált
   {
           if(newstate == PLAYER_STATE_DRIVER){
                       dam_timer[playerid] = SetTimerEx(\"repair\", 500, true, \"i\", playerid);   //elindítja a timert, fél másodpercenként, azaz 500ms-enként fut le
           }
           return 1;
   }
   forward repair(playerid);
   public repair(playerid)
   {
           SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);   //1000 lesz a kocsi
           return 1;
   }
   public OnPlayerExitVehicle(playerid)
   {
           KillTimer(dam_timer[playerid]); //kilövi a timert
           return 1;
   }
« Utoljára szerkesztve: 2013. Október 29. - 15:07:23 írta anorennia »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármû robbanásgátló
« Válasz #7 Dátum: 2013. Október 29. - 15:08:17 »
0 Show voters
for(new i; i < GetMaxPlayers(); i++)
{
if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { RepairVehicle(GetPlayerVehicle(i)); }
}

 
csak hogy örülj :D 30 timer kicsit jobban terhel mint 1 ciklus de te tudod nem állok le vitázni te használd nyugodtan a timereket :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármû robbanásgátló
« Válasz #8 Dátum: 2013. Október 29. - 15:12:40 »
0 Show voters
Jó, ne haragudj..
 
new i = 1*

 
és egyébként, ha ciklust szeretnél használni, te hova rakod be?:)

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Jármû robbanásgátló
« Válasz #9 Dátum: 2013. Október 29. - 15:14:49 »
0 Show voters
public RepairAllPlayerVehicle()
{
   for(new i; i < GetMaxPlayers(); i++)
   {
           if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { RepairVehicle(GetPlayerVehicle(i)); }
   }
   return 1;
}

 

SetTimer(\"RepairAllPlayerVehicle\",500,true);
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Jármû robbanásgátló
« Válasz #10 Dátum: 2013. Október 29. - 15:17:32 »
0 Show voters
Értem, csak ezért kérdeztem, hogy van neki 2000 jármûve lerakva és van fenn 2-10-20 játékos akkor semmi értelme hogy végig fusson az összesen.. :/

Jármû robbanásgátló
« Válasz #11 Dátum: 2013. Október 29. - 15:22:39 »
0 Show voters
én olyanra gondoltam hogy pl eléri a 350 akkor lejebb ne menjen

Dupla hozzászólás automatikusan összefûzve. ( 2013. Október 29. - 15:23:52 )

vagyis ne szerelje meg meg akkor az én szerelõmunkámnak semmi lényege

Jármû robbanásgátló
« Válasz #12 Dátum: 2013. Október 29. - 15:31:05 »
0 Show voters

 
SetTimer(\"RepairAllPlayerVehicle\",500,true);

 

[/quote]
 
new Float:hp;
public RepairAllPlayerVehicle()
{
                      for(new i; i < MAX_VEHICLES; i++)
                      {
                                    GetVehicleHealth(i,hp);
                                    if(hp < 350) SetVehicleHealth(i,350);
                       }
}

 
ui: bocs telon nem tudok elrendezest.
« Utoljára szerkesztve: 2013. Október 29. - 15:40:37 írta vityaa »

Jármû robbanásgátló
« Válasz #13 Dátum: 2013. Október 29. - 19:21:39 »
0 Show voters
kösz

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal