Tehát, adott egy infobar textdraw, amibe egy public frissíti az adatokat 5 másodpercenként.
Ez néha, ha többen vagyunk nem jelenik meg, csak az \"alap stringje\": \"Adatok betöltése...\"
Kód:
Változó:
new Text:infobar[MAX_PLAYERS];
forward:
forward Infok(playerid);
Timer(OnGameModeInit):
SetTimer(\"Infok\", 5000, true);
Textdraw létrehozása(OnPlayerConnect)
infobar[playerid] = TextDrawCreate(0, 428, \"Adatok betöltése folyamatban...\");
TextDrawAlignment(infobar[playerid], 1);
TextDrawFont(infobar[playerid], 1);
TextDrawSetShadow(infobar[playerid], 1);
TextDrawColor(infobar[playerid], SZIN_TD1);//
TextDrawBackgroundColor(infobar[playerid], SZIN_TD2);//
TextDrawSetOutline(infobar[playerid], 1);
TextDrawUseBox(infobar[playerid], 1);
TextDrawBoxColor(infobar[playerid], 0x05050566);
TextDrawLetterSize(infobar[playerid], 0.4, 1);
TextDrawTextSize(infobar[playerid], 640, 480);
Mutatás (OnPlayerSpawn):
TextDrawShowForPlayer(playerid,infobar[playerid]);
Tartalom: (public Infok(playerid)):
public Infok(playerid)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid != 0)
{
new string[512], nev[MAX_PLAYER_NAME], rangneve[32];
GetPlayerName(playerid,nev,sizeof(nev));
if(PlayerInfo[playerid][AdminSzint] == 0) {rangneve = \"Játékos\";}
if(PlayerInfo[playerid][VIP] == 1) {rangneve = \"V.I.P\";}
if(PlayerInfo[playerid][AdminSzint] == 1) {rangneve = \"Adminsegéd\";}
if(PlayerInfo[playerid][AdminSzint] == 2) {rangneve = \"Próbaidõs Admin\";}
if(PlayerInfo[playerid][AdminSzint] == 3) {rangneve = \"Admin\";}
if(PlayerInfo[playerid][AdminSzint] == 4) {rangneve = \"Fõadmin\";}
if(PlayerInfo[playerid][AdminSzint] == 5) {rangneve = \"Segéd Fejlesztõ\";}
if(PlayerInfo[playerid][AdminSzint] == 6) {rangneve = \"Tulajdonos\";}
format(string,sizeof(string), \" Név: %s XP: %d Bank: $%d Rang: %s ~n~ Halálok: %i Ölések: %i Figyelmeztetések: %d/5 Ban Figyelmeztetések: %d/5\",GetName(playerid),GetPlayerScore(playerid),PlayerInfo[playerid][bank], rangneve,PlayerInfo[playerid][Halal],PlayerInfo[playerid][Oles],PlayerInfo[playerid][Figyelmeztetes],PlayerInfo[playerid][bFigyelmeztetes]);
TextDrawSetString(infobar[playerid], string);
}
else
{
new string[512], rangneve[32];
if(PlayerInfo[playerid][AdminSzint] == 0) {rangneve = \"Játékos\";}
if(PlayerInfo[playerid][VIP] == 1) {rangneve = \"V.I.P\";}
if(PlayerInfo[playerid][AdminSzint] == 1) {rangneve = \"Adminsegéd\";}
if(PlayerInfo[playerid][AdminSzint] == 2) {rangneve = \"Próbaidõs Admin\";}
if(PlayerInfo[playerid][AdminSzint] == 3) {rangneve = \"Admin\";}
if(PlayerInfo[playerid][AdminSzint] == 4) {rangneve = \"Fõadmin\";}
if(PlayerInfo[playerid][AdminSzint] == 5) {rangneve = \"Segéd Fejlesztõ\";}
if(PlayerInfo[playerid][AdminSzint] == 6) {rangneve = \"Tulajdonos\";}
format(string,sizeof(string), \" Név: %s XP: %d Bank: $%d Rang: %s ~n~ Halálok: %i Ölések: %i Figyelmeztetések: %d/5 Ban Figyelmeztetések: %d/5\",GetName(playerid),GetPlayerScore(playerid),PlayerInfo[playerid][bank], rangneve,PlayerInfo[playerid][Halal],PlayerInfo[playerid][Oles],PlayerInfo[playerid][Figyelmeztetes],PlayerInfo[playerid][Figyelmeztetes]);
TextDrawSetString(infobar[playerid], string);
}
return 1;
}
Elõre is köszönöm, ha valaki segít.
Edit: \"Kitudja\"...
public Infok()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(i);
if(vehicleid != 0)
{
new string[512], nev[MAX_PLAYER_NAME], rangneve[32];
GetPlayerName(i,nev,sizeof(nev));
if(PlayerInfo[AdminSzint] == 0) {rangneve = \"Játékos\";}
if(PlayerInfo[VIP] == 1) {rangneve = \"V.I.P\";}
if(PlayerInfo[AdminSzint] == 1) {rangneve = \"Adminsegéd\";}
if(PlayerInfo[AdminSzint] == 2) {rangneve = \"Próbaidõs Admin\";}
if(PlayerInfo[AdminSzint] == 3) {rangneve = \"Admin\";}
if(PlayerInfo[AdminSzint] == 4) {rangneve = \"Fõadmin\";}
if(PlayerInfo[AdminSzint] == 5) {rangneve = \"Segéd Fejlesztõ\";}
if(PlayerInfo[AdminSzint] == 6) {rangneve = \"Tulajdonos\";}
format(string,sizeof(string), \" Név: %s XP: %d Bank: $%d Rang: %s ~n~ Halálok: %i Ölések: %i Figyelmeztetések: %d/5 Ban Figyelmeztetések: %d/5\",GetName(i),GetPlayerScore(i),PlayerInfo[bank], rangneve,PlayerInfo[Halal],PlayerInfo[Oles],PlayerInfo[Figyelmeztetes],PlayerInfo[bFigyelmeztetes]);
TextDrawSetString(infobar, string);
}
else
{
new string[512], rangneve[32];
if(PlayerInfo[AdminSzint] == 0) {rangneve = \"Játékos\";}
if(PlayerInfo[VIP] == 1) {rangneve = \"V.I.P\";}
if(PlayerInfo[AdminSzint] == 1) {rangneve = \"Adminsegéd\";}
if(PlayerInfo[AdminSzint] == 2) {rangneve = \"Próbaidõs Admin\";}
if(PlayerInfo[AdminSzint] == 3) {rangneve = \"Admin\";}
if(PlayerInfo[AdminSzint] == 4) {rangneve = \"Fõadmin\";}
if(PlayerInfo[AdminSzint] == 5) {rangneve = \"Segéd Fejlesztõ\";}
if(PlayerInfo[AdminSzint] == 6) {rangneve = \"Tulajdonos\";}
format(string,sizeof(string), \" Név: %s XP: %d Bank: $%d Rang: %s ~n~ Halálok: %i Ölések: %i Figyelmeztetések: %d/5 Ban Figyelmeztetések: %d/5\",GetName(i),GetPlayerScore(i),PlayerInfo[bank], rangneve,PlayerInfo[Halal],PlayerInfo[Oles],PlayerInfo[Figyelmeztetes],PlayerInfo[Figyelmeztetes]);
TextDrawSetString(infobar, string);
}
}
return 1;
}
Egyszerû alap hiba.
Egy argumentum értékkel láttad el az eljárást te meg egy szimpla SetTimer-rel hívod meg. Nem csoda hogy csak 0 értékkel mûködik, hiszen nem kapja meg a játékos azonosítóját.
public Infok(playerid)
SetTimer(\"Infok\", 5000, true);
Használj PlayerTextDraw-ot,