Hilfe bei /tie

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
  • Zeig uns mal deine Befehle ( /tie & /untie )


    & Du musst mit params arbeiten.

  • @GUCCI ich will das nur mit pawno also ohne ocmd und so machen und @N0SKILL der erste link mit toggleplayercontrollable damit freezed man sich selber ;)

    Und auch andere*


    Ja dann zeig uns deine Befehle. Wie ich erwähnt habe /tie und /untie

  • Code
    public OnPlayerCommandText(playerid, cmdtext[])
    
    
            if(strcmp("/tie", cmdtext, true, 10) == 0)
    	{
    	TogglePlayerControllable(playerid, 0);
    	SendClientMessage(playerid, 0xFFFFFFAA, "Du hast jemanden gekidnappt!");
    	return 1;
            }

    das ist mein befehl und ich will irgendwie machen das man jemanden nur im umkreis von 5 metern oder so kidnappen kann @GUCCI @[DT]midomen

    Einmal editiert, zuletzt von Snap_pulse ()


  • if(strcmp(cmd, "/tie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAGang(playerid) || IsACop(playerid) || PlayerInfo[playerid][pFMember] < 255)
    {
    if(PlayerInfo[playerid][pRank] < 2)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du brauchst Rang 2 oder höher !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /tie [Playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(PlayerInfo[giveplayerid][pLevel] <= 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keine Level 1er - Level 1er fesseln!");
    return 1;
    }
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerTied[giveplayerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Schon gefesselt !");
    return 1;
    }
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    new car = GetPlayerVehicleID(playerid);
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber Anbinden!"); return 1; }
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(giveplayerid, car))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s gefesselt.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s gefesselt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s hat %s gefesselt.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(giveplayerid, "~r~Gefesselt", 2500, 3);
    FreezePlayer(giveplayerid);
    PlayerInfo[giveplayerid][pBefreit] = 5;
    PlayerTied[giveplayerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist nicht in deinem Fahrzeug!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist nicht nah genug !");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist Offline !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keiner Familie, Member / Leader !");
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/untie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAGang(playerid) || IsACop(playerid) || PlayerInfo[playerid][pFMember] < 255 || PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(PlayerInfo[playerid][pRank] < 3)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du benötigst Rang 3 oder höher !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutz: /untie [Playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst Frei machen!"); return 1; }
    if(PlayerTied[giveplayerid])
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s befreit.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s befreit.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GameTextForPlayer(giveplayerid, "~g~Frei", 2500, 3);
    UnFreezePlayer(giveplayerid);
    PlayerTied[giveplayerid] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist nicht gefesselt !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist nicht in deiner nähe !");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist Offline !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Familienmitlgied !");
    }
    }//not connected
    return 1;
    }


    Passe deine Variablen an ;)

  • ok langer text O_o ich versteh das meiste garnicht aber gut XD undzwar kannste es so umformen das jeder fesseln kann also ohne fraktion sozusagen und brauch ich dafür zcmd oder sowas weil das habe ich nicht
    und mega danke für deine mühe nur könntest du das halt anpassen das es jeder machen kann ohne rang und so
    :saint: @GUCCI


    //Edit. hab mir das mal rein gemacht und paar sachen entfernt hab erstmal nur/tie gemacht doch da kommen errors


    error 017: undefined symbol "PlayerInfo"
    warning 215: expression has no effect
    error 001: expected token: ";", but found "]"
    error 029: invalid expression, assumed zero


    fatal error 107: too many error messages on one line

    2 Mal editiert, zuletzt von Snap_pulse ()


  • if(strcmp(cmd, "/tie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /tie [Playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(PlayerInfo[giveplayerid][pLevel] <= 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keine Level 1er - Level 1er fesseln!");
    return 1;
    }
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerTied[giveplayerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Schon gefesselt !");
    return 1;
    }
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    new car = GetPlayerVehicleID(playerid);
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber Anbinden!"); return 1; }
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(giveplayerid, car))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s gefesselt.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s gefesselt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s hat %s gefesselt.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(giveplayerid, "~r~Gefesselt", 2500, 3);
    FreezePlayer(giveplayerid);
    PlayerInfo[giveplayerid][pBefreit] = 5;
    PlayerTied[giveplayerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist nicht in deinem Fahrzeug!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist nicht nah genug !");
    return 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist Offline !");
    return 1;
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/untie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Benutz: /untie [Playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst Frei machen!"); return 1; }
    if(PlayerTied[giveplayerid])
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s befreit.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s befreit.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GameTextForPlayer(giveplayerid, "~g~Frei", 2500, 3);
    UnFreezePlayer(giveplayerid);
    PlayerTied[giveplayerid] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist nicht gefesselt !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist nicht in deiner nähe !");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist Offline !");
    return 1;
    }
    }
    }//not connected
    return 1;
    }


    Jetzt kannst du die Befehle nutzen auch wenn man in keiner Fraktion ist.

  • hey danke für deine mühe habe aber errors ?(
    warning 217: loose indentation
    error 017: undefined symbol "cmd"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "strtok"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "giveplayerid"
    error 017: undefined symbol "ReturnUser"
    error 017: undefined symbol "PlayerInfo"
    error 017: undefined symbol "giveplayerid"
    error 029: invalid expression, assumed zero
    fatal error 107: too many error messages on one line


    muss ich da noch irgendwas machen? und danke nochmal :> @GUCCI

  • Wenn du das Include: OCMD und das Plugin: SSCANF nutzt, kannst du es viel einfacher Lösen.


    new bool:IsTied[MAX_PLAYERS] = false;returnName(playerid){ new name[24]; GetPlayerName(playerid, name, 24); return name;}ocmd:tie(playerid, params[]){ new pID, string[70]; if(sscanf(params, "u", pID)) return SendClientMessage(playerid, -1, "Tippe: /tie [Spielername / ID]"); if(IsTied[pID]) return SendClientMessage(playerid, -1, "Dieser Spieler ist bereits Gefesselt."); if(IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid, -1, "Du kannst diesen Spieler nicht Fesseln."); TogglePlayerControllable(pID, true); format(string, sizeof(string), "* Du hast den Spieler %s gefesselt.", returnName(pID)); SendClientMessage(playerid, -1, string); format(string, sizeof(string), "* Du wurdest von den Spieler %s gefesselt.", returnName(playerid)); SendClientMessage(pID, -1, string); IsTied[pID] = true; return 1;}


    Den Untie Code kannst du selbst Erstellen. Nimm dann meinen Code als Beispiel und ändere ihn etwas.

  • SLaYz hat es nur besser und kürzer geschrieben wie ich, allerdings müsstest du halt beispielsweise das OCMD Include in deinen Include Ordner ( Pawno -> Includes -> ocmd.inc ) einfügen und im Script ganz oben "#include <ocmd>" und danach dein Script compilen.