[Wunsch]Set Hp 0

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 erstmal^^,
    Und zwar würde ich gern einen Befehl machen, mit dem man die Hp von Leuten auf Null setzt... einen /kill befehl bekomm ich hin, aber ich hätte gerne,dass man als Spieler die Hp von einer gewählten IP 0 setzt, also ich bin z.b. ID 5 und will ID 3 Killen, dass ich dann z.B. /kill [id] eingeben kann^^.


    würde mich sehr über hilfe freuen(hab eig. keinerlei Erfahrung im Scripten, daher bitte für "Dumme" ^^


    mfg

  • GF:


    if(strcmp(cmd, "/sethp", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /sethp [spielerid/teildesnamens] [Gesundheit]");
    return 1;
    }
    new playa;
    new health;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    health = strval(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    SetPlayerHealth(playa, health);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }

  • Vielen dank, es muss aber kein Admin sein, wenn der Spieler kein Admin sein muss? Also is nur für mich, ich mach einfach nen Befehl den Keiner kennt,z.B. /möp [id] xD


    Ausserdem wollte ich noch sagen, das ich es toll finde, wie schnell man hier qualitative Antworten bekommt :thumbup:

  • Wie definiere ich diese Sachen? :


    .pwn(277) : error 017: undefined symbol "cmd"
    .pwn(281) : error 017: undefined symbol "tmp"
    .pwn(281) : error 017: undefined symbol "strtok"
    pwn(282) : error 017: undefined symbol "tmp"
    .pwn(289) : error 017: undefined symbol "ReturnUser"
    .pwn(290) : error 017: undefined symbol "tmp"
    .pwn(290) : error 017: undefined symbol "strtok"
    .pwn(291) : error 017: undefined symbol "tmp"
    .pwn(292) : error 017: undefined symbol "PlayerInfo"
    .pwn(292) : warning 215: expression has no effect
    .pwn(292) : error 001: expected token: ";", but found "]"
    .pwn(292) : error 029: invalid expression, assumed zero
    .pwn(292) : fatal error 107: too many error messages on one line


    }


    if(strcmp(cmd, "/sethp", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREEN, "Verwendung: /sethp [spielerid/teildesnamens] [Gesundheit]");
    return 1;
    }
    new playa;
    new health;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    health = strval(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    SetPlayerHealth(playa, health);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, rot, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }



    return 0;
    }

  • Cmd:

    new index,cmd[30];
    cmd = strtok(cmdtext, index);
    if (strcmp(cmd, "/killhim", true) == 0)
    {
    new tmp[30],id;
    tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
    id = strval(tmp);
    if (IsPlayerConnected(id))
    {
    SetPlayerHealth(id, 0.0);
    SendClientMessage(id, 0x00FF00AA, "Du wurdest gekillt!");
    SendClientMessage(playerid, 0x00FF00AA, "Spieler gekillt!");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Spieler nicht gefunden!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Hinweis: \"/killhim <playerid>\"");
    }
    return 1;
    }

    Ganz unzen ins Script:

    Spoiler anzeigen

    strtok( const string[], &index, const seperator[] = " " )
    {
    new
    index2,
    result[ 30 ];

    Spoiler anzeigen
    index2 = strfind(string, seperator, false, index);

    Spoiler anzeigen
    if(index2 == -1)
    {
    if(strlen(string) > index)
    {
    strmid(result, string, index, strlen(string), 30);
    index = strlen(string);
    }
    return result; // This string is empty, probably, if index came to an end
    }
    if(index2 > (index + 29))
    {
    index2 = index + 29;
    strmid(result, string, index, index2, 30);
    index = index2;
    return result;
    }
    strmid(result, string, index, index2, 30);
    index = index2 + 1;
    return result;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • kann man das dan auch einfach ändern (also die aktion) so das ich z.b. ein heal befehl machen kann? wen ja sieht das dann so aus?
    new index,cmd[30];
    cmd = strtok(cmdtext, index);
    if (strcmp(cmd, "/killhim", true) == 0)
    {
    new tmp[30],id;
    tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
    id = strval(tmp);
    if (IsPlayerConnected(id))
    if(gTeam[playerid] == TEAM_medic)
    {
    SetPlayerHealth(id,100.0);
    GivePlayerMoney(id, -100);
    SendClientMessage(id, 0x00FF00AA, "Du wurdest geheilt!");
    SendClientMessage(playerid, 0x00FF00AA, "Du hast eine Person geheilt!");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Spieler nicht gefunden!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Hinweis: \"/killhim <playerid>\"");
    }
    return 1;
    }

  • jo,
    if (strcmp(cmd, "/killhim", true) == 0) in
    if (strcmp(cmd, "/healhim", true) == 0)
    und die message..

  • ah cool vielen dank


    /EDIT: nekomm diese errors/warnings:
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(368) : warning 225: unreachable code
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(368) : warning 217: loose indentation
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(369) : error 017: undefined symbol "strtok"
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(369) : error 033: array must be indexed (variable "cmd")
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(373) : error 017: undefined symbol "strtok"
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(373) : error 033: array must be indexed (variable "tmp")
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(368) : warning 203: symbol is never used: "index"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    new index,cmd[30]; //zeile 368
    cmd = strtok(cmdtext, index);
    if (strcmp(cmd, "/healhim", true) == 0)
    {
    new tmp[30],id;
    tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
    id = strval(tmp);
    if (IsPlayerConnected(id))
    if(gTeam[playerid] == TEAM_medic)
    {
    SetPlayerHealth(id,100.0);
    GivePlayerMoney(id, -100);
    SendClientMessage(id, 0x00FF00AA, "Du wurdest geheilt!");
    SendClientMessage(playerid, 0x00FF00AA, "Du hast eine Person geheilt!");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Spieler nicht gefunden!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Hinweis: \"/healhim <playerid>\"");
    }
    return 1;
    }

    Einmal editiert, zuletzt von GTA0071 ()

  • OnPlayerCommandText wo den sonst?
    Aber ich hab di raus beommn hab noch nch 4 errors/warnings:
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(415) : warning 225: unreachable code
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(416) : error 047: array sizes do not match, or destination array is too small
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(420) : error 047: array sizes do not match, or destination array is too small
    D:\GTA San andreas\SA.MP 0.3\samp03asvr_win32\gamemodes\CaR.pwn(597) : warning 203: symbol is never used: "pInfo"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Das ist zeile 415-445
    new index,cmd[30]; //zeile 368
    cmd = strtok(cmdtext, index);
    if (strcmp(cmd, "/killhim", true) == 0)
    {
    new tmp[30],id;
    tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
    id = strval(tmp);
    if (IsPlayerConnected(id))
    if(gTeam[playerid] == TEAM_medic)
    {
    SetPlayerHealth(id,100.0);
    GivePlayerMoney(id, -100);
    SendClientMessage(id, 0x00FF00AA, "Du wurdest geheilt!");
    SendClientMessage(playerid, 0x00FF00AA, "Du hast eine Person geheilt!");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Spieler nicht gefunden!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Hinweis: \"/killhim <playerid>\"");
    }
    return 1;
    }
    }
    return 0;
    }


    und das ist 581-596(ich weis im error steht ein warning in zeil 597 aber die existiert net)
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }

  • versuch mal:
    if (strcmp(cmd, "/killhim", true) == 0)
    {
    new tmp[30],id;
    tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
    id = strval(tmp);
    if (IsPlayerConnected(id) && gTeam[playerid] == TEAM_medic))
    {
    SetPlayerHealth(id,100.0);
    GivePlayerMoney(id, -100);
    SendClientMessage(id, 0x00FF00AA, "Du wurdest geheilt!");
    SendClientMessage(playerid, 0x00FF00AA, "Du hast eine Person geheilt!");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Spieler nicht gefunden!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Hinweis: \"/killhim <playerid>\"");
    }}
    return 1;
    }
    return 0;
    }