Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: dino12 poslato Jun 11, 2020, 15:43:48 POSLE PODNE

Naslov: Komanda /engine
Poruka od: dino12 poslato Jun 11, 2020, 15:43:48 POSLE PODNE
Problem: Kako napraviti da se komanda /engine tj. paljenje motora vozila kad se pritisne 2 moze koristiti svake 2-3 sekunde (to zelim napraviti, kako bih npr. na avionu mogao uvuci kotace...)
Dio skripte:
Pawno Code: [Izaberi]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem):
Naslov: Odg: Komanda /engine
Poruka od: Crownshot poslato Jun 11, 2020, 15:52:20 POSLE PODNE
Možeš putem varijable to da uradiš, evo ti JEDAN od primera.
[pawn]new
   isEngined[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
   isEngined[playerid] = -1;
        return 1;
}

CMD:engine(playerid) {
   if(isEngined[playerid] < gettime()) {
      isEngined[playerid] = gettime() + 5;
      //ovde pises kod koji ce da se desi kad kuca /engine, npr toggleplayercontrollable itd.
   }
   else va_SendClientMessage(playerid, -1, "Ne mozes da koristis ovu komandu jos %d sekundi!", isEngined[playerid] - gettime());
   return 1;
}[/pawn]
Naslov: Odg: Komanda /engine
Poruka od: dino12 poslato Jun 11, 2020, 16:12:15 POSLE PODNE
Citat: Crownshot poslato Jun 11, 2020, 15:52:20 POSLE PODNE
Možeš putem varijable to da uradiš, evo ti JEDAN od primera.
[pawn]new
   isEngined[MAX_PLAYERS];

public OnPlayerConnect(playerid) {
   isEngined[playerid] = -1;
        return 1;
}

CMD:engine(playerid) {
   if(isEngined[playerid] < gettime()) {
      isEngined[playerid] = gettime() + 5;
      //ovde pises kod koji ce da se desi kad kuca /engine, npr toggleplayercontrollable itd.
   }
   else va_SendClientMessage(playerid, -1, "Ne mozes da koristis ovu komandu jos %d sekundi!", isEngined[playerid] - gettime());
   return 1;
}[/pawn]

A kako napraviti baš za to da kad se pali motor na 2, da ima dilej tj. isto npr. da se nakon 2-3 sekunde moze koristiti tj. opet upaliti/ugasiti motor na 2?
Naslov: Odg: Komanda /engine
Poruka od: Crownshot poslato Jun 11, 2020, 16:19:28 POSLE PODNE
Pod OnPlayerKeyStateChange napraviš proveru ako pritisne 2 na tastaturi i ako je u vozilu.
Onda staviš isto kao što sam ti za komandu napisao unutar toga i cepaš kod dalje.
Naslov: Odg: Komanda /engine
Poruka od: dino12 poslato Jun 11, 2020, 16:21:32 POSLE PODNE
Citat: Crownshot poslato Jun 11, 2020, 16:19:28 POSLE PODNE
Pod OnPlayerKeyStateChange napraviš proveru ako pritisne 2 na tastaturi i ako je u vozilu (nije passenger).
Onda staviš isto kao što sam ti za komandu napisao unutar toga i cepaš kod dalje.

Ne mogu skontat koja je linija baš za te sekunde  :D
Naslov: Odg: Komanda /engine
Poruka od: Crownshot poslato Jun 11, 2020, 16:23:55 POSLE PODNE
Citat: dino12 poslato Jun 11, 2020, 16:21:32 POSLE PODNE
Ne mogu skontat koja je linija baš za te sekunde  :D

[pawn]if(isEngined[playerid] < gettime()) {
      isEngined[playerid] = gettime() + 5;
      //ovde pises kod koji ce da se desi kad kuca /engine, npr toggleplayercontrollable itd.
   }
   else va_SendClientMessage(playerid, -1, "Ne mozes da koristis ovu komandu jos %d sekundi!", isEngined[playerid] - gettime());[/pawn]

Automatski će nestati delay ne moraš da praviš tajmer da ti se skidaju sekunde..
Naslov: Odg: Komanda /engine
Poruka od: ᗪ卂乂 poslato Jun 12, 2020, 23:48:37 POSLE PODNE
Evo ti imas u mom modu samo ukucas motor se pali ili motor se pokrece
https://balkan-samp.com/forum/index.php?topic=125296.0