Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Arkoo poslato Oktobar 27, 2015, 23:43:51 POSLE PODNE

Naslov: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 27, 2015, 23:43:51 POSLE PODNE
Skripta koju koristim:N/A
Detaljan opis problema:stavio sam da mi izbaciva tekst na sredini kad je igrac u zatvoru compiluje mod sve ok ali u igri ne ispisuje tekst
Dio skripte:[pawn]forward Jail();
public Jail()
{
   new string[128];
   for(new i = 0; i<MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
           if(PlayerInfo[pZatvorenVreme] > 0)
           {
       format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%d",PlayerInfo[pZatvorenVreme]);
       GameTextForPlayer(i, string, 1000, 3);
          }
      }
   }
   return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Nemanja Milijic poslato Oktobar 27, 2015, 23:56:24 POSLE PODNE
string[256] probaj
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: LuKsA poslato Oktobar 28, 2015, 03:17:54 PRE PODNE
Glupost Nemanja, string mu je 35 + eventualnih 5 za vrijeme (%d), stoga je i on sam previse stavio.

@Arkoo, IsPlayerConnected ne moras koristiti vec od 0.3 verzije sampa ako se dobro sjecam. Preporucam ti da koristis foreach ili nesto slicno, a ne da loopas kroz sve igrace moguce (0.3.7 je to 1000) - to opterecuje skriptu.

Vjerojatno ti ne pokazuje (inace je sve dobro sto se tice same funkcije) iz razloga sto vec postoji neki GameText prikazan na ekranu (mozda skriven ili nesto) jer koliko ja znam ne moze se prikazati vise od jednog u isto vrijeme. To mozes rjesiti Textdrawom pa mjenjati ga, ili pa da ga prikaze samo na par sekundi kad napises komandu i sl. Ali najbolje rjesenje bi bilo da pronadjes taj drugi GameText koji ti blokira ovo :).
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 06:16:34 PRE PODNE
ne mogu pronaci taj drugi gametext
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: ElectricityBoy poslato Oktobar 28, 2015, 10:31:53 PRE PODNE
Na koliko si stavio da se repeatuje timer?
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: MySQL poslato Oktobar 28, 2015, 13:03:09 POSLE PODNE
-Probaj  :)

if(PlayerInfo[i][pZatvorenVreme]  == 0)
     {
     PlayerInfo[i][pZatvorenVreme]--;
     format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
     GameTextForPlayer([i], string, 1000, 3);
       }
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 15:23:47 POSLE PODNE
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 13:03:09 POSLE PODNE
-Probaj  :)

if(PlayerInfo[i][pZatvorenVreme]  == 0)
     {
     PlayerInfo[i][pZatvorenVreme]--;
     format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
     GameTextForPlayer([i], string, 1000, 3);
       }



error 029: invalid expression, assumed zero
expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
-----------------------------------------------------------------------------
GameTextForPlayer([i], string, 1000, 3);
--------------------------------------------------------------------------------


P.S. POPRAVIO SAM ERROR
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 15:32:35 POSLE PODNE
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 13:03:09 POSLE PODNE
-Probaj  :)

if(PlayerInfo[i][pZatvorenVreme]  == 0)
     {
     PlayerInfo[i][pZatvorenVreme]--;
     format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
     GameTextForPlayer([i], string, 1000, 3);
       }

Ne ispisuje opet tekst.
@ElectricityBoy , Kakav timer?
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: MySQL poslato Oktobar 28, 2015, 16:37:35 POSLE PODNE
-Ovako ce ti bit lakše bar po meni napravis textdraw za npr:Do izlaska imate jos 30 minuta i tako to i ovako postavis
i radice ti

       
       Textdraw1[playerid] = TextDrawCreate(, " "); //Napravi sebi textdraw
TextDrawAlignment(Textdraw1[playerid], );
TextDrawBackgroundColor(Textdraw1[playerid], );
TextDrawFont(Textdraw1[playerid], );
TextDrawLetterSize(Textdraw1[playerid], );
TextDrawColor(Textdraw1[playerid], );
TextDrawSetOutline(Textdraw1[playerid], );
TextDrawSetProportional(Textdraw1[playerid], );

       if(PlayerInfo[i][pZatvorenVreme]  == 0)
      {
     PlayerInfo[i][pZatvorenVreme]--;
     format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
     TextDrawSetString(Textdraw1[i],string);//Ovo stavis i bice ti sve ok
        }

       
   
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 16:48:39 POSLE PODNE
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 16:37:35 POSLE PODNE
-Ovako ce ti bit lakše bar po meni napravis textdraw za npr:Do izlaska imate jos 30 minuta i tako to i ovako postavis
i radice ti

       
       Textdraw1[playerid] = TextDrawCreate(, " "); //Napravi sebi textdraw
TextDrawAlignment(Textdraw1[playerid], );
TextDrawBackgroundColor(Textdraw1[playerid], );
TextDrawFont(Textdraw1[playerid], );
TextDrawLetterSize(Textdraw1[playerid], );
TextDrawColor(Textdraw1[playerid], );
TextDrawSetOutline(Textdraw1[playerid], );
TextDrawSetProportional(Textdraw1[playerid], );

       if(PlayerInfo[i][pZatvorenVreme]  == 0)
      {
     PlayerInfo[i][pZatvorenVreme]--;
     format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
     TextDrawSetString(Textdraw1[i],string);//Ovo stavis i bice ti sve ok
        }

       
   
Zbunio sam se sad ovdje da postavim ovaj kod zajedno ovako ili da razdvojim
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: ElectricityBoy poslato Oktobar 28, 2015, 18:02:30 POSLE PODNE

Pa kako pozivaš ovu gore public funkciju koja ti updatuje gamemodetext
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 18:19:01 POSLE PODNE
Citat: ElectricityBoy poslato Oktobar 28, 2015, 18:02:30 POSLE PODNE

Pa kako pozivaš ovu gore public funkciju koja ti updatuje gamemodetext
ovo je sve sto sam napravio sad sam stavio da ide preko foreach ali opet ne prikazuje [pawn]forward ZatvorVR();
public ZatvorVR()
{
   foreach(Player,i)
   {
           if(PlayerInfo[pZatvorVreme] >= 0)
           {
            new string[128];
               format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%d", PlayerInfo[pZatvorenVreme]);
               GameTextForPlayer(i, string, 1000, 3);
               }
   }
}[/pawn]
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: ElectricityBoy poslato Oktobar 28, 2015, 18:29:44 POSLE PODNE
Pa brate moraš napravit timer koji će pozivat tu funkciju da bi radilo
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 18:32:57 POSLE PODNE
Citat: ElectricityBoy poslato Oktobar 28, 2015, 18:29:44 POSLE PODNE
Pa brate moraš napravit timer koji će pozivat tu funkciju da bi radilo
hahahahahhaha mislis da u cmd uhapsi ubacim settimer....... i na ovaj public ?
na koliko da stavim timer?
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: [PL]KristijanS poslato Oktobar 28, 2015, 18:53:01 POSLE PODNE
Dodaj ovaj STOCK

[pawn]stock KonvertujVreme(vreme)
{
    new minuti, sekunde, string[128];
    if(vreme > 59)
   {
        minuti = floatround(vreme/60);
        sekunde = floatround(vreme - minuti*60);
        if(sekunde > 9) format(string, sizeof(string), "%d:%d", minuti, sekunde);
        else format(string, sizeof(string), "%d:0%d", minuti, sekunde);
    }
    else
   {
        sekunde = floatround(vreme);
        if(sekunde > 9) format(string, sizeof(string), "0:%d", sekunde);
        else format(string, sizeof(string), "0:0%d", sekunde);
    }
    return string;
}[/pawn]

A ovo tu neka bude tvoj kod

[pawn]forward Jail();
public Jail()
{
   new string[128];
   for(new i = 0; i<MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
           if(PlayerInfo[pZatvorenVreme] > 0)
           {
            format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%s", KonvertujVreme(PlayerInfo[pZatvorenVreme]));
            GameTextForPlayer(i, string, 1200, 5);
          }
      }
   }
   return 1;
}[/pawn]

I koristi "FOREACH" jer je brzi od ove petlje. Na puno igraca dizat ce ti se CPU servera!
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 18:54:45 POSLE PODNE
@ElectricityBoy ,  ehhh jbg sad mi cim se logujem izbacuje preostalo vreme u zatvoru: 0  :D kako timer da postavim  :'(

//EDITED
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: ElectricityBoy poslato Oktobar 28, 2015, 20:08:21 POSLE PODNE
Vrijeme ponavljanja timera moraÅ¡  uskladit sa vremenom koliko dugo se prikazuje GameText na sred ekrana

timer staviš u gamemodeinit da se repeatuje na onoliko vremena koliko često hoćeš da se updateuje to vrijeme, ako ćeš da bude real-time staviš 1 sekundu i vrijeme prikazivanja texta 1 sekundu
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 20:09:40 POSLE PODNE
pokusat cu s ovim
   new asd[256];
      format(asd,sizeof(asd),"~b~Preostalo vreme~n~~w~do izlaska~n~%d",PlayerInfo[playerid][pZatvorenVreme]);
        GameTextForPlayer(ID,asd,3000,4);
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: ElectricityBoy poslato Oktobar 28, 2015, 20:19:19 POSLE PODNE
Citat: Arkoo poslato Oktobar 28, 2015, 20:09:40 POSLE PODNE
pokusat cu s ovim
   new asd[256];
      format(asd,sizeof(asd),"~b~Preostalo vreme~n~~w~do izlaska~n~%d",PlayerInfo[playerid][pZatvorenVreme]);
        GameTextForPlayer(ID,asd,3000,4);
onda ti i timer mora biti stavljen na 3000
Naslov: Odg: [POMOC] Zatvor vrijeme
Poruka od: Arkoo poslato Oktobar 28, 2015, 21:52:30 POSLE PODNE
rijesio sam na taj nacin radi hvala na pomoci svima. Moze LOCK