Check Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo, ich habe hier einen kleine Befehl, mit dem man Spielerdaten ansehen kann (für Admins).
    Nur wird die falsche IP und die falsche HP Anzahl angezeigt:


    Code:


    ocmd:check(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new pID,string[128];
    new Float:health;
    new sIP[64];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"Benutze: /check [ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Der gewünschte Spieler ist nicht online!");
    format(string,sizeof(string),"Überprüfung | Spielername: %s \n Ping: %d \n IP: %d \n HP: %d \n Level: %d \n Geld %d",SpielerName(pID),GetPlayerPing(pID),GetPlayerIp(pID,sIP,sizeof(sIP)),GetPlayerHealth(pID,health),GetPlayerScore(pID),GetPlayerMoney(pID));
    SendClientMessage(playerid,BLAU,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    return 1;
    }


    Screen:



    Mfg.

  • else{
    GetPlayerIp(pID,sIP,sizeof(sIP));
    GetPlayerHealth(pID,health);
    format(string,sizeof(string),"Überprüfung | Spielername: %s \n Ping: %d \n IP: %d \n HP: %d \n Level: %d \n Geld: %d",SpielerName(pID),GetPlayerPing(pID),sIP,health,GetPlayerScore(pID),GetPlayerMoney(pID));
    SendClientMessage(playerid,BLAU,string); }

  • Schau doch im SA:MP Wiki nach.


    GetPlayerIp
    Returns 1 on success and 0 on failure.


    GetPlayerHealth
    Returns The function itself doesn't return a specific value. The player's health is stored in the specified variable.


    Heisst also,du kannst den return-Wert ( von GetPlayerIp und GetPlayerHealth ) für deine Formatierung nicht wirklich gebrauchen.


    ocmd:check(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    new pID,string[128];
    new Float:health;
    new sIP[64];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_RED,"Benutze: /check [ID]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Der gewünschte Spieler ist nicht online!");
    GetPlayerIp(pID,sIP,sizeof(sIP)); // IP steht nun in 'sIP'
    GetPlayerHealth(pID,health); // Energie steht nun in 'health'
    format(string,sizeof(string),"Überprüfung | Spielername: %s \n Ping: %d \n IP: %d \n HP: %d \n Level: %d \n Geld: %d",SpielerName(pID),GetPlayerPing(pID),sIP,health,GetPlayerScore(pID),GetPlayerMoney(pID));
    SendClientMessage(playerid,BLAU,string);
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    return 1;
    }

  • Tatsächlich, hab die format-Zeile einfach von ReVide übernommen gehabt :S . Hab angenommen,die hätte er ebenfalls geändert.
    Schau dir am besten die formatFunktion an.


    format(string,sizeof(string),"Überprüfung | Spielername: %s \n Ping: %d \n IP: %s \n HP: %.1f \n Level: %d \n Geld: %d",SpielerName(pID),GetPlayerPing(pID),sIP,health,GetPlayerScore(pID),GetPlayerMoney(pID));