/fesseln und /entfessseln

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 Leute ,
    Ich brauche einen befehl ( /fesseln ) um leute zu fesseln kann mir jmd inene posten ? habe leider garkeine ahnung wie ich daran gehen soll bitte so schnell wie mödlich posten hab nur noch bis montag nachmittag zeit! ?(

  • Hi,
    setz unter OnPlayerCommandText
    new idx, tmp[256], cmd[256];
    cmd = strtok(cmdtext, idx);
    Und dann darunter (oder dahin wo der Befehl soll, hauptsache unter OnPlayerCommandText)
    if(strcmp(cmd, "/fesseln", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xAFAFAFAA, "Info: /fesseln [PlayerID/Name]");
    return 1;
    }
    new player;
    player = ReturnUser(tmp);
    TogglePlayerControllable(player, 0);
    }
    }


    Habs jetzt nicht getestet, müsste aber gehn.


    //E: Bei /entfesseln genauso nur das du /fesseln auf /entfesseln und TogglePlayerControllable(player, 0); auf TogglePlayerControllable(player, 1); änderst

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • zeig doch mal die Errors






    if(!strcmp(strget(cmdtext,0),"/cuff"))
    {
    if(Spieler[playerid][team] == 1) return SendClientMessage(playerid, rot,"Du bist kein Polizist");
    {
    new ziel = strval(strget(cmdtext,1));
    new Float:pos[3];


    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,weiss,"Benutzung: /cuff [ID]");
    return 1;
    }
    GetPlayerPos(ziel, pos[0], pos[1], pos[2]);





    if(IsPlayerInRangeOfPoint(playerid,1.0,pos[0] , pos[1], pos[2])) return SendClientMessage(playerid, rot,"Du bist nicht in der nähe des ziels");


    {
    TogglePlayerControllable(ziel, 0);
    SendClientMessage(ziel,grün,"Du wurdest festgenommen");
    SendClientMessage(playerid,grün,"Sie haben den Verbrecher Festgenommen.");
    return 1;
    }




    gruß


    t.S

    Einmal editiert, zuletzt von TeamSpirit ()

  • \Desktop\sa-mp server\gamemodes\selfmade.pwn(395) : error 017: undefined symbol "strtok"
    \Desktop\sa-mp server\gamemodes\selfmade.pwn(395) : error 033: array must be indexed (variable "cmd")
    \Desktop\sa-mp server\gamemodes\selfmade.pwn(401) : error 017: undefined symbol "strtok"
    \Desktop\sa-mp server\gamemodes\selfmade.pwn(401) : error 033: array must be indexed (variable "cmd")
    \Desktop\sa-mp server\gamemodes\selfmade.pwn(408) : error 017: undefined symbol "ReturnUser" Der Smiley ist natürlich acht)

  • dutils + utils includes fehlen

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • #include dutils
    #include utils


    sollte gnügen davor musst du aber dich vergewissern das die includes auch in deinem PAWN Include Order sind


    gruß


    t.S

  • Lesen lernen


    schau dir mein Beitrag genau an und versteh es.


    Und English Kenntnisse muss man besitzen

  • Zitat

    davor musst du aber dich vergewissern das die includes auch in deinem PAWN Include Order sind

    Hier was sagt dir dieser Text??

  • runter laden und rein tuen


    ich schätze du solltest erstmal wiki druch lesen

  • versuchs mal so:


    aus cmd = cmdtext
    aus strtok = strcmp
    aus ReturnUser = ReturnPlayer << Bin ich mir nicht sicher, aber das darüber müsste funktionieren!

  • Also wenn ich mich mal einmischen darf ;)
    Ich habe meinen Befehl so gemacht:
    Allerdings arbeite ich mit "STRGET", dass müsst ihr bei euch noch definieren oder umändern :D
    Ich habe einen /freeze Befehl und einen /unfreeze Befehl ich finde das so irgendwie leichter als das was ihr da macht.


    EDIT: Ihr müsst auch noch euer Admins System ändern. Also das: pInfo[...][...] in euer System.
    //------------------Freeze-----------------
    if(strcmp(strget(cmdtext, 0),"/freeze", true) == 0)
    {
    if(pInfo[playerid][alevel] >= 3)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_GRUEN, "Benutze: /freeze [ID]");
    {
    new msg[512];
    new msg2[512];
    new ziel = strval(strget(cmdtext,1));

    TogglePlayerControllable(ziel, 0);

    format(msg, sizeof(msg), "Du hast %d Gefesselt", ziel);
    format(msg2, sizeof(msg2), "Du wurdest von %d Gefesselt", playerid);

    SCM(playerid, COLOR_HELL_BLAU, msg);
    SCM(ziel, COLOR_HELL_BLAU, msg2);
    }
    }else{
    SCM(playerid, COLOR_ROT, "Du bist kein Level 3 Admin");
    }
    return 1;
    }


    //------------------unFreeze---------------
    if(strcmp(strget(cmdtext, 0),"/unfreeze", true) == 0)
    {
    if(pInfo[playerid][alevel] >= 3)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_GRUEN, "Benutze: /unfreeze [ID]");
    {
    new msg[512];
    new msg2[512];
    new ziel = strval(strget(cmdtext,1));


    TogglePlayerControllable(ziel, 1);


    format(msg, sizeof(msg), "Du hast %d Entfesselt", ziel);
    format(msg2, sizeof(msg2), "Du wurdest von %d Entfesselt", playerid);


    SCM(playerid, COLOR_HELL_BLAU, msg);
    SCM(ziel, COLOR_HELL_BLAU, msg2);
    }
    }else{
    SCM(playerid, COLOR_ROT, "Du bist kein Level 3 Admin");
    }
    return 1;
    }



    PS: Ich hoffe es hat euch geholfen.


    MFG Kompressor

  • Also ich habe es so:


    Ganz unten wird strget definiert damit keine error kommen wie: undefined symbol: strget


    //---------------------STRGET------------------//
    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;
    }



    nun wurde strget definiert. Dann kommen die befehle;



    if(strcmp(strget(cmdtext, 0), "/cuff", true) == 0)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cuff [playerid]");
    {
    new zielname[512];
    new playername[512];
    new ziel = strval(strget(cmdtext,1));
    new msg[512];
    new msg2[512];


    GetPlayerName(ziel, zielname, sizeof(zielname));
    GetPlayerName(playerid, playername, sizeof(playername));


    TogglePlayerControllable(ziel,0);


    format(msg, sizeof(msg),"Du hast %s Handschellen angelegt",zielname);
    format(msg2, sizeof(msg2),"Officer %s hat dir Handschellen angelegt!",playername);


    SendClientMessage(playerid, orange, msg);
    SendClientMessage(ziel, orange, msg2);
    }
    return 1;
    }




    if(strcmp(strget(cmdtext, 0), "/uncuff", true) == 0)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /uncuff [playerid]");
    {
    new zielname[512];
    new playername[512];
    new ziel = strval(strget(cmdtext,1));
    new msg[512];
    new msg2[512];


    GetPlayerName(ziel, zielname, sizeof(zielname));
    GetPlayerName(playerid, playername, sizeof(playername));


    TogglePlayerControllable(ziel,1);


    format(msg, sizeof(msg),"Du hast %s´s Handschellen abgenommen",zielname);
    format(msg2, sizeof(msg2),"Officer %s hat dir deine Handschellen abgenommen!",playername);


    SendClientMessage(playerid, orange, msg);
    SendClientMessage(ziel, orange, msg2);
    }
    return 1;
    }



    Das wars ;) aber nun kann jeder diesen Befehl nutzen deshalb würde ich es mit GetPlayerTeam noch machen, falls du Teams in deinem script hast.

  • Also das Problem ist folgendes : Wenn ich dein strget unten reinfüge kommen genauso wie gesagt undefiended symbol oder wie es heisst, ich schätze mal das ist das problem weiß nicht genau brauche schnell hilfe

    Einmal editiert, zuletzt von BenZin75 ()