Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Kajsije ^ poslato Februar 25, 2022, 00:21:50 PRE PODNE

Naslov: Pomoc oko onplayerspawn
Poruka od: Kajsije ^ poslato Februar 25, 2022, 00:21:50 PRE PODNE
Problem(error/warning):  Napravio sam da kada se covek loginuje da mu izbaci Dobrodosao %s na server itd, medjutim kada covek bude killan ili spawnan njemu opet izbaci ta poruka pa ako neko zna kako da stavim samo nakon logina da izbaci tu poruku
Deo skripte:
Pawno Code: [pawn]public OnPlayerSpawn(playerid)
{

   SetPlayerColor(playerid, -1);

   for(new i; i < 100; i++) { SendClientMessage(playerid, -1, ""); }
   new pName[MAX_PLAYER_NAME];
   GetPlayerName(playerid, pName, sizeof(pName));
   SetPlayerPos(playerid, 397.2047,-1531.4915,32.2734);
   SetPlayerSkin(playerid, 171);
   if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] > 2)
   SetPlayerSkin(playerid, 294);
   if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] == 1)
   SetPlayerSkin(playerid, 217);

   new wstring[256];
   GetPlayerName(playerid, pName, sizeof(pName));
   format(wstring, sizeof(wstring), "{0059b3}[BK:RP]: {FFFFFF}Dobrodosao %s na server!", pName);
   SendClientMessage(playerid, -1, wstring);
   new astring[256];
   if( PlayerInfo[ playerid ][ pAdmin ] == 7 )
   format(wstring, sizeof(astring), "{0059b3}[BK:RP]: {FFFFFF}Ulogovan si sa pozicijom Vlasnika.", pName);
   SendClientMessage(playerid, -1, astring);

   new string[256];
   GetPlayerName(playerid, pName, sizeof(pName));

   if( PlayerInfo[ playerid ][ pAdmin ] == 1 ) {
   format(string, sizeof(string), "{0059b3}- Test Admin - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 2 ) {
   format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 3 ) {
   format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 4 ) {
   format(string, sizeof(string), "{0059b3}- Head Admin - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 5 ) {
   format(string, sizeof(string), "{0059b3}- Direktor - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 6 ) {
   format(string, sizeof(string), "{0059b3}- Suvlasnik - {FFFFFF}%s je usao na server.", pName);
   }
   else if( PlayerInfo[ playerid ][ pAdmin ] == 7 ) {
   format(string, sizeof(string), "{0059b3}- Vlasnik - {FFFFFF}%s je usao na server.", pName);
   }
   SendAdminMessage(-1, string);

   return 1;
}[/pawn]
Vaš odgovor
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): /
Pawno Code: [Izaberi]
Vaš odgovor
Slika/video ingame problema(obavezno ako je ingame problem): https://imgur.com/a/tptuEXO
Naslov: Odg: Pomoc oko onplayerspawn
Poruka od: V01D poslato Februar 25, 2022, 02:12:22 PRE PODNE
Callback OnPlayerSpawn se poziva svaki put kada se igrac spawna, znaci to moze biti kada umre, kada se konektuje prvi put na server, izadje iz spectate moda i slicno. Moj predlog bi bio da samo napravis neku promenljivu koja ce da sluzi da proveri da li se igrac spawnovao prvi put. Pogledaj primer ispod :

[pawn]new bool:firstSpawn[MAX_PLAYERS]; //Deklarisemo promenljivu

public OnPlayerConnect(playerid) {

   firstSpawn[playerid] = true; //Resetujemo je kada se igrac konektuje

   return 1;
}

public OnPlayerSpawn(playerid)
{

   if(firstSpawn[playerid]) { //Ukoliko se spawnuje prvi put

      SetPlayerColor(playerid, -1);

      for(new i; i < 100; i++) { SendClientMessage(playerid, -1, ""); }
      new pName[MAX_PLAYER_NAME];
      GetPlayerName(playerid, pName, sizeof(pName));
      SetPlayerPos(playerid, 397.2047,-1531.4915,32.2734);
      SetPlayerSkin(playerid, 171);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] > 2)
      SetPlayerSkin(playerid, 294);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] == 1)
      SetPlayerSkin(playerid, 217);

      new wstring[256];
      GetPlayerName(playerid, pName, sizeof(pName));
      format(wstring, sizeof(wstring), "{0059b3}[BK:RP]: {FFFFFF}Dobrodosao %s na server!", pName);
      SendClientMessage(playerid, -1, wstring);
      new astring[256];
      if( PlayerInfo[ playerid ][ pAdmin ] == 7 )
      format(wstring, sizeof(astring), "{0059b3}[BK:RP]: {FFFFFF}Ulogovan si sa pozicijom Vlasnika.", pName);
      SendClientMessage(playerid, -1, astring);

      new string[256];
      GetPlayerName(playerid, pName, sizeof(pName));

      if( PlayerInfo[ playerid ][ pAdmin ] == 1 ) {
      format(string, sizeof(string), "{0059b3}- Test Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 2 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 3 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 4 ) {
      format(string, sizeof(string), "{0059b3}- Head Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 5 ) {
      format(string, sizeof(string), "{0059b3}- Direktor - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 6 ) {
      format(string, sizeof(string), "{0059b3}- Suvlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 7 ) {
      format(string, sizeof(string), "{0059b3}- Vlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      SendAdminMessage(-1, string);

      firstSpawn[playerid] = false; //Vratimo je na negativnu vrednost tako da se ovo sve iznad nece pozvati vise puta
   }

   return 1;
}[/pawn]
Naslov: Odg: Pomoc oko onplayerspawn
Poruka od: Kajsije ^ poslato Februar 25, 2022, 11:31:09 PRE PODNE
Citat: V01D poslato Februar 25, 2022, 02:12:22 PRE PODNE
Callback OnPlayerSpawn se poziva svaki put kada se igrac spawna, znaci to moze biti kada umre, kada se konektuje prvi put na server, izadje iz spectate moda i slicno. Moj predlog bi bio da samo napravis neku promenljivu koja ce da sluzi da proveri da li se igrac spawnovao prvi put. Pogledaj primer ispod :

[pawn]new bool:firstSpawn[MAX_PLAYERS]; //Deklarisemo promenljivu

public OnPlayerConnect(playerid) {

   firstSpawn[playerid] = true; //Resetujemo je kada se igrac konektuje

   return 1;
}

public OnPlayerSpawn(playerid)
{

   if(firstSpawn[playerid]) { //Ukoliko se spawnuje prvi put

      SetPlayerColor(playerid, -1);

      for(new i; i < 100; i++) { SendClientMessage(playerid, -1, ""); }
      new pName[MAX_PLAYER_NAME];
      GetPlayerName(playerid, pName, sizeof(pName));
      SetPlayerPos(playerid, 397.2047,-1531.4915,32.2734);
      SetPlayerSkin(playerid, 171);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] > 2)
      SetPlayerSkin(playerid, 294);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] == 1)
      SetPlayerSkin(playerid, 217);

      new wstring[256];
      GetPlayerName(playerid, pName, sizeof(pName));
      format(wstring, sizeof(wstring), "{0059b3}[BK:RP]: {FFFFFF}Dobrodosao %s na server!", pName);
      SendClientMessage(playerid, -1, wstring);
      new astring[256];
      if( PlayerInfo[ playerid ][ pAdmin ] == 7 )
      format(wstring, sizeof(astring), "{0059b3}[BK:RP]: {FFFFFF}Ulogovan si sa pozicijom Vlasnika.", pName);
      SendClientMessage(playerid, -1, astring);

      new string[256];
      GetPlayerName(playerid, pName, sizeof(pName));

      if( PlayerInfo[ playerid ][ pAdmin ] == 1 ) {
      format(string, sizeof(string), "{0059b3}- Test Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 2 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 3 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 4 ) {
      format(string, sizeof(string), "{0059b3}- Head Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 5 ) {
      format(string, sizeof(string), "{0059b3}- Direktor - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 6 ) {
      format(string, sizeof(string), "{0059b3}- Suvlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 7 ) {
      format(string, sizeof(string), "{0059b3}- Vlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      SendAdminMessage(-1, string);

      firstSpawn[playerid] = false; //Vratimo je na negativnu vrednost tako da se ovo sve iznad nece pozvati vise puta
   }

   return 1;
}[/pawn]
radi, hvala puno <3
Naslov: Odg: Pomoc oko onplayerspawn
Poruka od: Wizzard1 poslato Februar 25, 2022, 16:08:32 POSLE PODNE
Citat: V01D poslato Februar 25, 2022, 02:12:22 PRE PODNE
Callback OnPlayerSpawn se poziva svaki put kada se igrac spawna, znaci to moze biti kada umre, kada se konektuje prvi put na server, izadje iz spectate moda i slicno. Moj predlog bi bio da samo napravis neku promenljivu koja ce da sluzi da proveri da li se igrac spawnovao prvi put. Pogledaj primer ispod :

[pawn]new bool:firstSpawn[MAX_PLAYERS]; //Deklarisemo promenljivu

public OnPlayerConnect(playerid) {

   firstSpawn[playerid] = true; //Resetujemo je kada se igrac konektuje

   return 1;
}

public OnPlayerSpawn(playerid)
{

   if(firstSpawn[playerid]) { //Ukoliko se spawnuje prvi put

      SetPlayerColor(playerid, -1);

      for(new i; i < 100; i++) { SendClientMessage(playerid, -1, ""); }
      new pName[MAX_PLAYER_NAME];
      GetPlayerName(playerid, pName, sizeof(pName));
      SetPlayerPos(playerid, 397.2047,-1531.4915,32.2734);
      SetPlayerSkin(playerid, 171);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] > 2)
      SetPlayerSkin(playerid, 294);
      if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] == 1)
      SetPlayerSkin(playerid, 217);

      new wstring[256];
      GetPlayerName(playerid, pName, sizeof(pName));
      format(wstring, sizeof(wstring), "{0059b3}[BK:RP]: {FFFFFF}Dobrodosao %s na server!", pName);
      SendClientMessage(playerid, -1, wstring);
      new astring[256];
      if( PlayerInfo[ playerid ][ pAdmin ] == 7 )
      format(wstring, sizeof(astring), "{0059b3}[BK:RP]: {FFFFFF}Ulogovan si sa pozicijom Vlasnika.", pName);
      SendClientMessage(playerid, -1, astring);

      new string[256];
      GetPlayerName(playerid, pName, sizeof(pName));

      if( PlayerInfo[ playerid ][ pAdmin ] == 1 ) {
      format(string, sizeof(string), "{0059b3}- Test Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 2 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 3 ) {
      format(string, sizeof(string), "{0059b3}- Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 4 ) {
      format(string, sizeof(string), "{0059b3}- Head Admin - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 5 ) {
      format(string, sizeof(string), "{0059b3}- Direktor - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 6 ) {
      format(string, sizeof(string), "{0059b3}- Suvlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      else if( PlayerInfo[ playerid ][ pAdmin ] == 7 ) {
      format(string, sizeof(string), "{0059b3}- Vlasnik - {FFFFFF}%s je usao na server.", pName);
      }
      SendAdminMessage(-1, string);

      firstSpawn[playerid] = false; //Vratimo je na negativnu vrednost tako da se ovo sve iznad nece pozvati vise puta
   }

   return 1;
}[/pawn]
Nije morao sve ovo da radi mogao je da stavi da kad se igrac loginuju da mu posalje poruku i tjt
Naslov: Odg: Pomoc oko onplayerspawn
Poruka od: V01D poslato Februar 25, 2022, 16:39:41 POSLE PODNE
Citat: Wizzard1 poslato Februar 25, 2022, 16:08:32 POSLE PODNE
Nije morao sve ovo da radi mogao je da stavi da kad se igrac loginuju da mu posalje poruku i tjt

Par stvari u kodu koji je on napisao ne moze da uradi ako igrac nije spawnan ( skin, pozicija )