Pomoc oko onplayerspawn

Započeo Kajsije ^, Februar 25, 2022, 00:21:50 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

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
Poslednja Izmena: Mart 02, 2022, 22:04:07 POSLE PODNE od 'xza

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]

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

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

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 )