ocmd:sethp(playerid,params [])
{
if(Spieler[playerid][Admin] < 3)return SendClientMessage(playerid,ROT,"Du bist kein Admin der Stufe 3 oder höher.");
new pid,pidname[MAX_PLAYER_NAME],Float:Health,leben,str[128];
GetPlayerName(pid,pidname,sizeof(pidname));
if(sscanf(params,"ui",pid,leben))return SendClientMessage(playerid,ROT,"FEHLER: /sethp [ID] [HP]");
if(Spieler[playerid][Admin] == 3 && playerid == pid)return SendClientMessage(playerid,ROT,"Erst ab Adminlvl 4 darfst du dein eigenes Leben höher setzen.");
if(Spieler[pid][Admin] > Spieler[playerid][Admin])return SendClientMessage(playerid,ROT,"Du darfst das Leben Rankhöherer (AdminRank) nicht runter/hochsetzen.");
SetPlayerHealth(pid,leben);
new lebenn = GetPlayerHealth(pid,Health);
format(str,sizeof(str),"%s HP wurde auf %d gesetzt.",pidname,lebenn);
for(new i; i<MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] > 0)
{
SendClientMessage(i,HELLROT,str);
}
}
return 1;
}
Soo... Jetzt wenn ich /sethp 5 44 mache, steht im Text:
Blood HP wurde auf 1 gesetzt also immer 1, ich weiß nicht, was ich falsch mache.
Bitte um hilfe
SetHP Befehl funktzniert nicht.
- Blood.
- Geschlossen
- Erledigt
-
-
ocmd:sethp(playerid,params [])
{
if(Spieler[playerid][Admin] < 3)return SendClientMessage(playerid,ROT,"Du bist kein Admin der Stufe 3 oder höher.");
new pid,pidname[MAX_PLAYER_NAME],Float:Health,leben,str[128];
GetPlayerName(pid,pidname,sizeof(pidname));
if(sscanf(params,"uf",pid,leben))return SendClientMessage(playerid,ROT,"FEHLER: /sethp [ID] [HP]");if(Spieler[playerid][Admin] == 3 && playerid == pid)return
SendClientMessage(playerid,ROT,"Erst ab Adminlvl 4 darfst du dein
eigenes Leben höher setzen.");
if(Spieler[pid][Admin] >
Spieler[playerid][Admin])return SendClientMessage(playerid,ROT,"Du
darfst das Leben Rankhöherer (AdminRank) nicht runter/hochsetzen.");
SetPlayerHealth(pid,leben);
format(str,sizeof(str),"%s HP wurde auf %.0f gesetzt.",pidname,leben);
for(new i; i<MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] > 0)
{
SendClientMessage(i,HELLROT,str);
}
}
return 1;
}
Sollte so gehen -
Sollte so gehen
Darf ich wissen, was du dran veränder hast? Möchte niht einfach C&P machen -
ocmd:sethp(playerid,params [])
{
if(Spieler[playerid][Admin] < 3)return SendClientMessage(playerid,ROT,"Du bist kein Admin der Stufe 3 oder höher.");
new pid,pidname[MAX_PLAYER_NAME],Float:Health,leben,str[128];
GetPlayerName(pid,pidname,sizeof(pidname));
if(sscanf(params,"uf",pid,leben))return SendClientMessage(playerid,ROT,"FEHLER: /sethp [ID] [HP]");
if(Spieler[playerid][Admin] == 3 && playerid == pid)return SendClientMessage(playerid,ROT,"Erst ab Adminlvl 4 darfst du dein eigenes Leben höher setzen.");
if(Spieler[pid][Admin] > Spieler[playerid][Admin])return SendClientMessage(playerid,ROT,"Du darfst das Leben Rankhöherer (AdminRank) nicht runter/hochsetzen.");
SetPlayerHealth(pid,leben);
format(str,sizeof(str),"%s HP wurde auf %.0f gesetzt.",pidname,leben);
for(new i; i<MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] > 0)
{
SendClientMessage(i,HELLROT,str);
}
}
return 1;
}Nochmal eingerückt^^
Du darfst nicht %d verwenden, da es eine Float ist Und das 2. mal Leben abfragen war unnötig
-
SetPlayerHealth(pid,leben);
new lebenn = GetPlayerHealth(pid,Health);
format(str,sizeof(str),"%s HP wurde auf %d gesetzt.",pidname,lebenn);du frägst sein leben nochmal ab obwohl du es änderst also kannst du auch gleich leben benutzen.
Bei einer leben anfrage heißt es nicht %d sondern %.0f
-
ocmd:sethp(playerid,params [])
{
if(Spieler[playerid][Admin] < 3)return SendClientMessage(playerid,ROT,"Du bist kein Admin der Stufe 3 oder höher.");
new pid,pidname[MAX_PLAYER_NAME],Float:Health,leben,str[128];
GetPlayerName(pid,pidname,sizeof(pidname));
if(sscanf(params,"uf",pid,leben))return SendClientMessage(playerid,ROT,"FEHLER: /sethp [ID] [HP]");
if(Spieler[playerid][Admin] == 3 && playerid == pid)return SendClientMessage(playerid,ROT,"Erst ab Adminlvl 4 darfst du dein eigenes Leben höher setzen.");
if(Spieler[pid][Admin] > Spieler[playerid][Admin])return SendClientMessage(playerid,ROT,"Du darfst das Leben Rankhöherer (AdminRank) nicht runter/hochsetzen.");
SetPlayerHealth(pid,leben);
format(str,sizeof(str),"%s HP wurde auf %.0f gesetzt.",pidname,leben);
for(new i; i<MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] > 0)
{
SendClientMessage(i,HELLROT,str);
}
}
return 1;
}Nochmal eingerückt^^
Du darfst nicht %d verwenden, da es eine Float ist Und das 2. mal Leben abfragen war unnötig
Danke funktzuniert. -
Ohja und %f würde in etwa folgendes ausgeben: "40.000" Deshalb das .0f
-
breadfish.de
Hat das Thema geschlossen.