Grundlagen

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 mal wieder ^^ zwei Fragen.


    Meine erste wäre: also ein i=integer, s=string, aber wofür steht ein u=?


    Und ich habe einen Befehl selbst gescripted und will gerne anzeigen lassen das man den spieler mid dieser ID geheilt hat wie geht das? :)


    ocmd:heal(playerid,params[])
    {
    new pID;
    if(!IsAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist nicht berechtigt diesen Befehl zu benutzen.");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,GRAU,"INFO: /heal [playerid]");
    SetPlayerHealth(pID,100.0);
    SendClientMessage(pID,GRÜN,"Du wurdest geheilt");
    SendClientMessage(playerid,GRÜN,"Du hast den Spieler mit der ID %u erfolgreich geheilt.");
    return 1;
    }

  • Das "u" in SSCANF steht dafür, dass Du sowohl einen Spielernamen als auch eine Playerid bearbeiten kannst.
    Ist soweit ich weis von der normalen Formatierungsfunktion ("format();") nicht unterstützt.


    Um die SpielerID auszugeben musst du einen "string" definieren und formatieren.
    Das geht mit der funktion "format".
    http://wiki.sa-mp.com/wiki/Format


    Anschließend den String via "SendClientMessage" senden :)

  • Du musst einen string daraus machen.
    Heißt du erstellst einen String mit einer Größe z.B
    new string[256];


    Dann musst du dem string sagen was in ihm drin steht heißt du Formatierst ihn mit.
    format(string,sizeof(string),"TEXT");


    In deinem Fall wäre das nun.
    format(string,sizeof(string),"Du hast den Spieler mit der ID: %i Erfolgreich geheilt.",pID);
    Das heißt nun du sagst dem String das er wenn er abgerufen wird einem Spieler mitteilt welcher Spieler geheilt worden ist.
    Hierbei kannst du auch nun mit GetPlayerName(); den Namen des Spielers auslesen lassen dann musst du aber anstatt "%i", "%s" machen.
    Ich hoffe ich konnte es dir einiegermaßen erklären.
    Hier ist der Fertige Befehl:



    ocmd:heal(playerid,params[])
    {
    new string[256],pID;
    if(!IsAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist nicht berechtigit diesen Befehl zu benutzen.")
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"/heal [pID]");
    SetPlayerHealth(pID,100.0);
    format(string,sizeof(string),"Du hast den Spieler mit der ID: %i Erfolgreich Geheilt.",pID);
    SendClientMessage(pID,GRÜN,"Du wurdest Geheilt.");
    SendClientMessage(playerid,GRÜN,string); //Wichtig hier den String ausgeben.");
    return 1;
    }