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
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 )