Szerző Téma: GPS és Timer szinkron v0.1  (Megtekintve 779 alkalommal)

Nem elérhető kos

  • 292
    • Profil megtekintése
GPS és Timer szinkron v0.1
« Dátum: 2017. Július 12. - 23:04:43 »
0
Üdv!
 
Készítettem egy egyszerű GPS-funkciót, mely Timeres.  Kezdők számára kifejezetten hasznos lehet.
 
Elkészítési idő: 6p
 

/*
SA-MP   Fórum   Script   by   Kos
*/
new GPSZona,GPSKapcsol[MAX_PLAYERS],GPSKiller[MAX_PLAYERS];
forward GPS(playerid);
forward GPSKi(playerid);
forward GPSBug(playerid);
public OnGameModeInit()
{
GPSZona = GangZoneCreate(-3000.0,-3000.0,3000.0,3000.0); // maximális térkép lefedetség
return 1;
}
public OnPlayerSpawn(playerid)
{
    GangZoneShowForPlayer(playerid,GPSZona,0x000000FF); // amikor spawnol a player bekapcsolja
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(GetVehicleModel(vehicleid) == 411){ // ha a 411 ID járműben van
    if(GPSKapcsol[playerid] == 0){ // ha a GPS értéke 0 azaz ki van kapcsolva
      msg(playerid,feher,\"/gps parancs elérhető, ebben a kocsiban.\"); // megkapjuk az értesítést
   }
   if(GPSKapcsol[playerid] == 1){ // ha GPS értéke 1 azaz be van kapcsolva
       msg(playerid,feher,\"GPS kikapcsolás megszüntetése.\"); // megkapjuk az értesítést
      KillTimer(GPSKiller[playerid]); // kinyírjuk a Timert ami a kikapcsolást idézi elő
      GangZoneStopFlashForPlayer(playerid,GPSZona); // megszüntetjük a GPS villogását
      GangZoneHideForPlayer(playerid,GPSZona); // eltüntetjük a fedést
      SetTimerEx(\"GPSBug\",3000,false,\"i\",playerid); // elindítjuk a bugtalanítót, ha netán nem folytatná a járműbe szállást
   }
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(GetVehicleModel(vehicleid) == 411 && GPSKapcsol[playerid] == 1){ // ha a GPS értéke 1 azaz be van kapcsola
    GangZoneShowForPlayer(playerid,GPSZona,0x000000FF); // megjelenik a fedés
    SetTimerEx(\"GPS\",1000,false,\"i\",playerid); // timer indítása jármű elhagyása esetén
}
return 1;
}
public GPS(playerid)
{
    msg(playerid,feher,\"GPS kikapcsolódik.\"); // üzi
    GangZoneFlashForPlayer(playerid,GPSZona,0x000000AA); // villogtatás indítása
    GPSKiller[playerid] = SetTimerEx(\"GPSKi\",6000,false,\"i\",playerid); // 6sec múlva kikapcsol ha nem szál vissza a járműbe
}
public GPSKi(playerid)
{
    msg(playerid,feher,\"GPS kikapcsolva.\"); // üzi
    GangZoneStopFlashForPlayer(playerid,GPSZona); // villogás leállítása
    GPSKapcsol[playerid] = 0; // érték nullázása
}
public GPSBug(playerid)
{
    if(!IsPlayerInAnyVehicle(playerid)){ // ha nincs kocsiban
   if(GPSKapcsol[playerid] == 1){ // ha a GPS értéke 1 azaz be van kapcsolva
      GangZoneShowForPlayer(playerid,GPSZona,0x000000FF); // megjelenik a fedés h ne bugoltassa be h nem szállt vissza a kocsiba
       SetTimerEx(\"GPS\",1000,false,\"i\",playerid); // timer újraindítása
   }
}
}
CMD:gps(playerid,params[])
{
    if(!IsPlayerInAnyVehicle(playerid)) return msg(playerid,feher,\"Járműben kell lenned!\");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 411) return msg(playerid,feher,\"Nincs benne GPS!\");
    GangZoneHideForPlayer(playerid,GPSZona); // eltüntetés
    GPSKapcsol[playerid] = 1; // érték adás
return 1;
}

 
a // magyarázatok az elején fontosak szerintem, a végére ki lehet következtetni mi mire jó, így az elején próbáltam precízen kiírni, a többi csak utalás.
« Utoljára szerkesztve: 2017. Július 12. - 23:05:18 írta kos »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal