Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: malitoni poslato Februar 10, 2020, 14:28:48 POSLE PODNE

Naslov: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 10, 2020, 14:28:48 POSLE PODNE
- Savet -


Nije me dugo bilo i primetio sam da dosta vas ovde ne koristi neke fine stvari koje dosta ubrzavaju vreme pisanja koda tj. potrebno vam je manje vremena za to, primer iz nekog random SA moda:

[pawn]forward AdminGameMaster(color, const string[]);
public AdminGameMaster(color, const string[])
{
   foreach(new i : Player)
   {
      if(PlayerInfo[pGM] >= 1|| PlayerInfo[pAdmin] >= 1)
      {
         SendClientMessage(i, color, string);
      }
   }
}
// I posle
new string[128];
format(string, sizeof(string), "Poruka od %s", GetName(playerid));
AdminGameMaster(-1, string);
[/pawn]

Ovo bi moglo da bude mnogo drugačije:
[pawn]stock AdminGameMaster(color, const string[], {Float,_}:...)
{
   if(numargs() > 2)
   {
      foreach(new i : Player)
      {
         if(PlayerInfo[pGM] >= 1 || PlayerInfo[pAdmin] >= 1)
         {
            va_SendClientMessage(i, color, string, ___(2));
         }
      }
   }
   else
   {
      foreach(new i : Player)
      {
         if(PlayerInfo[pGM] >= 1 || PlayerInfo[pAdmin] >= 1)
         {
            SendClientMessage(i, color, string);
         }
      }
   }
   return 1;
}
// I sada:
AdminGameMaster(0xFF0000FF, "Poruka od %s", GetName(playerid));
[/pawn]
Takodje, kad smo vec kod ovog parčeta koda, ovo bi moglo malo (mnogo, zavisi od broja igrača na serveru) brže da radi:
[pawn]#include <YSI_Data\y_iterate>

new Iterator:Admins<MAX_PLAYERS>;

public OnAccountLoaded(const playerid) // Recimo da ovo pozivate kada se igrac uloguje
{
   if (PlayerInfo[playerid][pAdmin] > 0) {
      Iter_Add(Admins, playerid); // Dodajmo igraca u iterator Admins
   }
}

public OnPlayerDisconnect(playerid, reason)
{
   if (PlayerInfo[playerid][pAdmin] > 0) {
      Iter_Remove(Admins, playerid); // Maknimo taj ID igraca iz iteratora
   }
}

YCMD:setadmin(playerid, const params[])
{
   new tagetID, level; // Necu celu CMD pisati sada, podrazumeva se da dole ima sve tj. kod vas
   // Kod

   if (level <= 0) { // Namerno <=, vi dodajte zastite ostale
      // Kod
      Iter_Remove(Admins, targetID);
   }
   else {
      // Kod
      Iter_Add(Admins, targetID);
   }

   return COMMAND_OK;
}

// I sada kada sam sve objasnio (valjda)
stock AdminGameMaster(color, const string[], {Float,_}:...)
{
   if(numargs() > 2)
   {
      foreach( new i : Admins ) { // Ime iteratora sa linije broj 3
         va_SendClientMessage(i, color, string, ___(2));
      }
   }
   else
   {
      foreach( new i : Admins ) { // Ime iteratora sa linije broj 3
         SendClientMessage(i, color, string);
      }
   }
   return 1;
}

// Sada umesto da npr loopujemo kroz 1000 igrača, mi loopujemo samo kroz one koji postoje u iteratoru (mnogo brže nego u primeru gore da uvek loopujemo kroz SVE igrače dok ovako loopujemo samo kroz slotove iteratora)[/pawn]
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: YumikoJR poslato Februar 10, 2020, 14:54:28 POSLE PODNE
fino boga mi, posluzice pocetnicima i tako tim...... thumbsup
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 10, 2020, 14:56:08 POSLE PODNE
Citat: YumikoJR poslato Februar 10, 2020, 14:54:28 POSLE PODNE
fino boga mi, posluzice pocetnicima i tako tim...... thumbsup
Zbog toga sam tu :P
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: m u m i poslato Februar 10, 2020, 15:03:23 POSLE PODNE
extrica
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: salqnovic poslato Februar 10, 2020, 15:03:49 POSLE PODNE
njesra
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 10, 2020, 15:44:36 POSLE PODNE
Citat: salqnovic poslato Februar 10, 2020, 15:03:49 POSLE PODNE
njesra
Ti pravi stringove, ne branim ja tebi :D

Citat: Mumi. poslato Februar 10, 2020, 15:03:23 POSLE PODNE
extrica
Hvala <3
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: Ƭ H Σ Ʋ 1 ∏ ∏ Ψ _ poslato Februar 10, 2020, 17:34:08 POSLE PODNE
Stil pisanja koda treba biti individualan , u ostalom stil pisanja koda nije vazan ukoliko funkcija , komanda , sistem ili slicno radi normalno sto je najvaznije u celoj prici programiranja ne samo pawno nego i bilo koji drugi programski jezik ;)
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 10, 2020, 17:59:21 POSLE PODNE
Citat: #THEV1NNY_ poslato Februar 10, 2020, 17:34:08 POSLE PODNE
Stil pisanja koda treba biti individualan , u ostalom stil pisanja koda nije vazan ukoliko funkcija , komanda , sistem ili slicno radi normalno sto je najvaznije u celoj prici programiranja ne samo pawno nego i bilo koji drugi programski jezik ;)
Ko ovde pominje stil? :D
Ja kažem da je mnogo lakše i brže ovako (performanse servera UP).

Ja nikome nisam rekao "E nemoj tako", zato se zove Savet a ne Naredba, dal' ces ti mene poslusati ili ne kgjb :P

Svakako ovako je najbolje, posebno za Iteratore :)
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: Muma poslato Februar 11, 2020, 00:42:41 PRE PODNE
Citat: #THEV1NNY_ poslato Februar 10, 2020, 17:34:08 POSLE PODNE
Stil pisanja koda treba biti individualan , u ostalom stil pisanja koda nije vazan ukoliko funkcija , komanda , sistem ili slicno radi normalno sto je najvaznije u celoj prici programiranja ne samo pawno nego i bilo koji drugi programski jezik ;)
Nije ovo nikakav stil već kako bi trebalo da bude ili bolje ako zna onda super, a ne prahistorijski kurci kao što je već naveo gore
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: omcho poslato Februar 11, 2020, 00:54:41 PRE PODNE
Citat: #THEV1NNY_ poslato Februar 10, 2020, 17:34:08 POSLE PODNE
Stil pisanja koda treba biti individualan , u ostalom stil pisanja koda nije vazan ukoliko funkcija , komanda , sistem ili slicno radi normalno sto je najvaznije u celoj prici programiranja ne samo pawno nego i bilo koji drugi programski jezik ;)

ne slazem se bas toliko sa tobom o tome da treba biti individualan, losa praksa 'kod nas' sto se PAWN-a tice je npr sto lupaju 'forward + public' u istu liniju, bad code pracite ono bzvz ako je nesto lose i moze biti brze zasto ne bi bilo brze?

@tema i ja sam skoro saznao za `numargs` native i cini mi se da moze biti mnogo mnogoo koristan, i ne znam ako nisam ranije skontao za to :D
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: Ƭ H Σ Ʋ 1 ∏ ∏ Ψ _ poslato Februar 11, 2020, 01:03:16 PRE PODNE
Citat: omcho poslato Februar 11, 2020, 00:54:41 PRE PODNE
ne slazem se bas toliko sa tobom o tome da treba biti individualan, losa praksa 'kod nas' sto se PAWN-a tice je npr sto lupaju 'forward + public' u istu liniju, bad code pracite ono bzvz ako je nesto lose i moze biti brze zasto ne bi bilo brze?

@tema i ja sam skoro saznao za `numargs` native i cini mi se da moze biti mnogo mnogoo koristan, i ne znam ako nisam ranije skontao za to :D
Pa pazi bad code pada u drugi plan ukoliko funkcija , komanda ili sistem rade bez problema ;)
Neko je navikao na stariji sistem neko na noviji sistem pisanja sa novim opcijama ali ako ti umes da se snadjes u tom code-u i ako opet kao sto kazem code se pretvori u to da sistem radi onda ne treba menjati :)
Npr ja sam navikao da code pisem bez tih numargsa i iteratora i opet mi sistemi rade normalno :D
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: omcho poslato Februar 11, 2020, 01:40:27 PRE PODNE
Citat: #THEV1NNY_ poslato Februar 11, 2020, 01:03:16 PRE PODNE
Pa pazi bad code pada u drugi plan ukoliko funkcija , komanda ili sistem rade bez problema ;)
Neko je navikao na stariji sistem neko na noviji sistem pisanja sa novim opcijama ali ako ti umes da se snadjes u tom code-u i ako opet kao sto kazem code se pretvori u to da sistem radi onda ne treba menjati :)
Npr ja sam navikao da code pisem bez tih numargsa i iteratora i opet mi sistemi rade normalno :D

sistemi ti rade normalno, ali rade sporije nego sa iteratorima recimo...
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: rOLDen poslato Februar 11, 2020, 08:19:28 PRE PODNE
OK su savjeti. Trebali bi pomoći početnicima, ali drugi put stavi više savjeta jer radi par njih se ne isplati otvarat temu. Pohvale za uloženi trud.
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 11, 2020, 11:16:18 PRE PODNE
Citat: Aaron poslato Februar 11, 2020, 08:19:28 PRE PODNE
OK su savjeti. Trebali bi pomoći početnicima, ali drugi put stavi više savjeta jer radi par njih se ne isplati otvarat temu. Pohvale za uloženi trud.
Ako @Galardo bude dozvolio da apdejtam ovo, sve moze :D

Citat: #THEV1NNY_ poslato Februar 11, 2020, 01:03:16 PRE PODNE
Pa pazi bad code pada u drugi plan ukoliko funkcija , komanda ili sistem rade bez problema ;)
Neko je navikao na stariji sistem neko na noviji sistem pisanja sa novim opcijama ali ako ti umes da se snadjes u tom code-u i ako opet kao sto kazem code se pretvori u to da sistem radi onda ne treba menjati :)
Npr ja sam navikao da code pisem bez tih numargsa i iteratora i opet mi sistemi rade normalno :D
Uvrede bez baki ali nisam baš video da imaš server sa 500+ igraca :D
Ovo pomaze mnogo ako imaš igrace, ovo tebi tehnicki nikada nece trebati

EDIT: Postoji loša praksa i dobra praksa, pa sam skontaj na sta mislim...
Zašto bi ti format poruku koja nema args posle stringa? Besmisleno je i dzaba vuce performance dole
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: Galardo poslato Februar 11, 2020, 11:20:22 PRE PODNE
Naravno,posalji mi u privatnu poruku,veceras cu update.
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 11, 2020, 11:24:26 PRE PODNE
Citat: omcho poslato Februar 11, 2020, 00:54:41 PRE PODNE
ne slazem se bas toliko sa tobom o tome da treba biti individualan, losa praksa 'kod nas' sto se PAWN-a tice je npr sto lupaju 'forward + public' u istu liniju, bad code pracite ono bzvz ako je nesto lose i moze biti brze zasto ne bi bilo brze?

@tema i ja sam skoro saznao za `numargs` native i cini mi se da moze biti mnogo mnogoo koristan, i ne znam ako nisam ranije skontao za to :D
Sve je korisno realno :D
Ja forward lupam pod API tag (comment) a public zajedno sa callbackovima
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: Ƭ H Σ Ʋ 1 ∏ ∏ Ψ _ poslato Februar 11, 2020, 13:37:52 POSLE PODNE
Citat: malitoni poslato Februar 11, 2020, 11:16:18 PRE PODNE
Ako @Galardo bude dozvolio da apdejtam ovo, sve moze :D
Uvrede bez baki ali nisam baš video da imaš server sa 500+ igraca :D
Ovo pomaze mnogo ako imaš igrace, ovo tebi tehnicki nikada nece trebati

EDIT: Postoji loša praksa i dobra praksa, pa sam skontaj na sta mislim...
Zašto bi ti format poruku koja nema args posle stringa? Besmisleno je i dzaba vuce performance dole
Treba prvo sakupiti 500 igraca pa tek onda pricati i menjati code :D
Naslov: Odg: Par sitnih saveta koji će svima pomoći (nadam se)
Poruka od: malitoni poslato Februar 11, 2020, 14:35:25 POSLE PODNE
Da lockam temu @Galardo?
Pišu gluposti :D