/fesseln Befehl

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
  • Moin,
    Wie geht ein Fesseln/Entfesseln Befehl?
    Also das wenn jemand im Auto sitzt dann kann der Fahrer /fesseln [ID] machen und dann wird die ID gefesselt.
    Soll nur gehen wenn derjenige im Auto sitzt ;)
    Und mit /entfesseln hat Entfesseln^^
    Wenn man gefesselt ist sollte man sich nich mehr Bewegen können :D
    Ich glaube das geht mit


    TogglePlayerControllable(playerid, false);


    Aber weiter komm ich nicht also wie das geht das nur der Fahrer das kann ;) :)

  • ja mach einfach so n command:


    Spoiler anzeigen
    dcmd:
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Spoiler anzeigen
    public OnPlayerCommandText(playerid,cmdtext[]) {
    dcmd(fesseln,7,cmdtext);
    dcmd(entfesseln,7,cmdtext);
    return 0;
    }

    Spoiler anzeigen
    dcmd_fesseln(playerid,params[]) {
    new id=strval(params);
    if(!strlen(params) || !IsNumeric(params)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /fesseln [playerid]");
    }
    else if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht Online");
    }
    else if(IsPlayerConnected(id)){
    TogglePlayerControllable(playerid, false);
    printf("id is %d",id);
    }

    Spoiler anzeigen
    return 1;
    }

    Spoiler anzeigen
    dcmd_entfesseln(playerid,params[]) {
    new id=strval(params);
    if(!strlen(params) || !IsNumeric(params)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /entfesseln [playerid]");
    }
    else if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht Online");
    }
    else if(IsPlayerConnected(id)){
    TogglePlayerControllable(playerid, true);
    printf("id is %d",id);
    }

    Spoiler anzeigen
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid,cmdtext[]) {
    new index, cmd[128];
    cmd = strtok(cmdtext, index);
    if (!strcmp("/fesseln",cmd,true,8)) {
    new tmp[128];
    tmp = strtok(cmdtext, index);
    if(!strlen(tmp) || !IsNumeric(tmp)) {
    return SendClientMessage(playerid,COLOR_RED,"Usage: /fesseln [playerid]");
    }
    else {
    new id=strval(tmp);
    if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"Spieler nicht online"); }
    else {
    TogglePlayerControllable(playerid, false);
    printf("id is %d",id);
    }
    }
    return 1;
    }

    Spoiler anzeigen
    if (!strcmp("/fesseln",cmd,true,8)) {
    new tmp[128];
    tmp = strtok(cmdtext, index);
    if(!strlen(tmp) || !IsNumeric(tmp)) {
    return SendClientMessage(playerid,COLOR_RED,"Usage: /fesseln [playerid]");
    }
    else {
    new id=strval(tmp);
    if(!IsPlayerConnected(id)) {
    return SendClientMessage(playerid,COLOR_RED,"Spieler nicht online"); }
    else {
    TogglePlayerControllable(playerid, true);
    printf("id is %d",id);
    }
    }
    return 1;
    }
    return 0;
    }
    //-----

    Spoiler anzeigen
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

    Spoiler anzeigen
    //-----
    stock IsNumeric(const string[]) {
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++) {
    if (
    (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
    || (string[i]=='-' && i!=0) //
    || (string[i]=='+' && i!=0) //
    ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
    }


    aber mehr weiß ich nicht!