Im Team ein Heiler

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
  • Hier als Ganzes Filterscript weil ich OCMD Benutzt habe
    #define FILTERSCRIPT


    #include <a_samp>
    #include <ocmd>
    #define Color_White 0xFFFFFFAA


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }
    ocmd:Heilen(playerid,params[])
    {
    new pID;
    new skin = GetPlayerSkin(playerid);
    new name[MAX_PLAYER_NAME];
    new string[128];
    new string2[128];
    GetPlayerName(playerid, name, sizeof(name));
    new nama[MAX_PLAYER_NAME];
    GetPlayerName(pID, nama, sizeof(nama));
    if (sscanf(params, "u", pID)) SendClientMessage(playerid, Color_White, "Info: /heilen [SpielerID]");
    else if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) SendClientMessage(playerid, Color_White, " Dieser Spieler kann nicht erreicht werden. ");
    else if(skin != 103 ) SendClientMessage(playerid, Color_White, "Dieser Spieler ist kein Heiler");
    else
    {
    SetPlayerHealth(pID, 100);
    format(string, sizeof(string),"Du hast %s sein Leben aufgefüllt",nama);
    format(string2, sizeof(string2),"Du wurdest vom %s Geheilt",name);
    SendClientMessage(pID, Color_White, string2);
    SendClientMessage(playerid, Color_White, string);
    }
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }



    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

  • else if(skin != 103 ) SendClientMessage(playerid, Color_White, "Dieser Spieler ist kein Heiler");

    Das heisst jetzt wen er nicht Skin 103 hat wird eine Nachricht gesendet darin steht "Dieser Spieler ist kein Heiler");
    Wen du jetzt mehrere machen willst musst du es so machen:
    else if(skin != 103 || skin != 103 || skin != 103) SendClientMessage(playerid, Color_White, "Dieser Spieler ist kein Heiler");
    Kannst du immer deine Skins eintragen
    das != bedeutet wen es Negativ ist also ist ist Skin 103 nicht da ...^^ dann kommt ....

  • Kein Problem dafür ist das Forum doch da.


    Freundliche grüße .Art.

  • Sorry, aber hab nochmals eine Frage,
    ist das bei dem FS, das ich auch einen aus der anderen Gang heilen kann?
    Und kann ich einen von LS auch in SF heilen?
    Der Umkreis soll höhstens 1M sein, wenns geht...

  • Du kannst jeden heilen, oke mit dem umkreis macht man am besten


    new Float : Pos[3];
    GetPlayerPos(pID, Pos[0],Pos[1],Pos[2]);
    erm und dan
    if(IsPlayerInRangeOfPoint(playerid, Pos[0],Pos[1],Pos[2] );


    so in der Ähnlichkeit mir fällts gerade nicht ein