Jump to content
  • 0

pomoc [POMOC]Odpočet


KuraMa

Dotaz

Čaute mám taký problém mám policajta,ktorý zatknína hráčov s WL ako do vazenie ho da všetko OK len neviem ako mám spraviť odpočet že koľko ešte bude vo väzení.Ďakujem za odpovede tu je kód:

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
 
    if(Zamestnanie[playerid] == 1)
   {
   if(newkeys == KEY_WALK)
   {
        new id;
        if(GetPlayerWantedLevel(id) == 0)return SendClientMessage(playerid,0xFFAAFF,"Hráč nemá WantedLevel");
        if(GetDistanceBetweenPlayers(playerid, id) >= 10) return SendClientMessage(playerid,0xFFAAFF,"Niesi pri hráčovi");
        if(GetPlayerWantedLevel(id) == 1)
        {
  SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 50;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",60000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
 }
       if(GetPlayerWantedLevel(id) == 2)
       {
           SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 100;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",120000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
       if(GetPlayerWantedLevel(id) == 3)
       {
           SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 150;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",180000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
       if(GetPlayerWantedLevel(id) == 4)
       {
           SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 200;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",240000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
       if(GetPlayerWantedLevel(id) == 5)
       {
           SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 250;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",300000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
       if(GetPlayerWantedLevel(id) == 6)
       {
           SetPlayerWantedLevel(id,0);
  ResetPlayerWeapons(id);
       Vyplata[playerid] += 300;
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",360000,true,"i",id);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
       }
    }
return 1;
}
//a ešte public 
public Jail(playerid)
{
   if(GetPVarInt(playerid,"Jail") ==1)
   {
       SetPVarInt(playerid,"Jail",0);
       GameTextForPlayer(playerid,"~r~ Si prepusteny z vazenie ~r~",10000,5);
   }
   return true;
}

 

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0

Ahoj, to se udělá tak, že danému hráči vytvoříš timer přes funkci SetTimerEx

Na samp-wiki máš návod na použití

 

Ještě je tu něco ohledně zatýkání, máš spoustu zbytečného kódu, když se na to podívám tak se to dá napsat takto:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
 
    if(Zamestnanie[playerid] == 1)
   {
   if(newkeys == KEY_WALK)
   {
        new id;
        if(GetPlayerWantedLevel(id) == 0)return SendClientMessage(playerid,0xFFAAFF,"Hráč nemá WantedLevel");
        if(GetDistanceBetweenPlayers(playerid, id) >= 10) return SendClientMessage(playerid,0xFFAAFF,"Niesi pri hráčovi");
       ResetPlayerWeapons(id);
       Vyplata[playerid] += 50 * GetPlayerWantedLevel(id);
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",60000 * GetPlayerWantedLevel(id),true,"i",id);
       SetPlayerWantedLevel(id,0);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
    }
    return 1;
}

Ps.: opravdu ti to zatýkání funguje? opravdu tomu moc nevěřím, myslím totiž, že takovéto zatýkání půjdou pouze na hráče ID:0

Link to comment
Share on other sites

  • 0

Áno mort máš pravdu teraz som to zistil,ako to mám opraviť ?

Musíš přes cyklus projít všechny online hráče na serveru a zjišťovat dálku mezi policistou a daným hráčem (pozor, aby jsi nezjišťoval dálku mezi sebou)

Pokud podmínka platí (tj. jsou mezi sebou míň než 10 metrů) tak přidej další podmínku, jestli má hráč wantedlevel. Jestli ano, tak ho zatkneš.

Link to comment
Share on other sites

  • 0

Pridal som si tam cyklus teraz to vypada takto

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
 
   if(Zamestnanie[playerid] == 1)
   {
   if(newkeys == KEY_WALK)
   {
   for(new i=0; i<MAX_PLAYERS; i++)
   {
        new id;
        if(GetPlayerWantedLevel(id) == 0)return SendClientMessage(playerid,0xFFAAFF,"Hráč nemá WantedLevel");
        if(GetDistanceBetweenPlayers(playerid, id) >= 10) return SendClientMessage(playerid,0xFFAAFF,"Niesi pri hráčovi");
       ResetPlayerWeapons(id);
       Vyplata[playerid] += 50 * GetPlayerWantedLevel(id);
       SetPVarInt(id,"Jail",1);
       SetTimerEx("Jail",60000 * GetPlayerWantedLevel(id),true,"i",id);
       SetPlayerWantedLevel(id,0);
       SetPlayerInterior(id,3);
       SetPlayerPos(id,198.3796, 160.8905, 1003.03);
       }
     }
    }
return 1;
}
Ale teraz neviem čo ďalej mám s tým cyklusom robiť.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...