Hallo,
Ich hätte ne bessere Beschreibung für das Problem, wenn ich wüsste was da abgeht.
Kurzes Beispiel:
ocmd:sethp(playerid,params[])
{
if(!IsAdmin(playerid,2))return noaccess
if(AdminDuty[playerid]!=1)return SendClientMessage(playerid,GRAU,"Du bist nicht On-Duty.");
new pid,heal;
if(sscanf(params,"ui",pid,heal))return SendClientMessage(playerid,WEIß,"Verwendung: /sethp (Spieler/ID) (Heal)");
if(!PlayerOnline(pid))return SendClientMessage(playerid,GRAU,"Dieser Spieler ist nicht erreichbar.");
new str[230];
format(str,sizeof(str),"%s %s hat dein Leben auf %i gesetzt.",RangName(playerid),PlayerName(playerid),heal);
SendClientMessage(playerid,GRUEN,"Leben des Spielers gesetzt.");
SetPlayerHealth(pid,heal);
new Float:temp_h;
GetPlayerHealth(pid, temp_h);
SetPlayerProgressBarValue(pid, pBar_Leben[pid], temp_h);
return 1;
}
Alles anzeigen
Dieser Befehl soll das Leben des Spielers verändern. Zusätzlich benutze ich von Southclaw die von ihm verbesserte progressbars-lib.
Nach dem dieser Befehl ausgeführt wird, soll die progressbar auch geupdatet werden. (SetPlayerProgressBarValue).
Das sollte ja eigentlich funktionieren.. so hat es für mich zumindest in anderen Gamemodes.
Hier ist aber mein Problem das die PlayerBar erst beim zweiten mal ausführen gesetzt wird, aber auch nur mit dem Wert den der Spieler vorher hatte.
Ebenso wenn ich die PlayerBar z.B bei OnPlayerSpawn updaten will. Dann wird beim ersten Spawn statt dem Leben 55.0 - 0.0 wiedergeben.
Beim zweiten mal Spawnen dann 55 statt dem aktuellen Wert dem neuen Wert 20 - und immer so weiter.
1 Mal:
Spieler hat 51 HP - print gibt aber 0 aus.
2 Mal:
Spieler hat 23 HP, gibt aber 51 aus.
und so weiter.
Ich kann mir dieses Problem nicht erklären.
OnPlayerSpawn:
public OnPlayerSpawn(playerid)
{
if(FirstSpawn[playerid])
{
SetPlayerWeather(playerid,currentwetter);
SpawnSchutz[playerid]=true;
StopPlayerSound(playerid);
/*new str[40];
format(str,sizeof(str),"%d Prozent", pInfo[playerid][durst]);
PlayerTextDrawSetString(playerid,pHud[playerid][0],str);
PlayerTextDrawShow(playerid,pHud[0][playerid]);
PlayerTextDrawShow(playerid,pHud[1][playerid]);*/
new Float:temp_h;
GetPlayerHealth(playerid, temp_h);
SetPlayerProgressBarValue(playerid, pBar_Leben[playerid], temp_h);
SetTimerEx("SpawnSchutzTimer", 40000, false, "i", playerid);
SetPlayerChatBubble(playerid,"*Spieler hat Spawnschutz*", ROT, 15.0, 60000);
if(pInfo[playerid][tot]!=1)FirstSpawn[playerid]=false;
}
//weitere(r) code/abfragen....
}
Alles anzeigen
Hoffe jemand versteht was ich meine xD
Lg