Bots

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
  • Also Leute ich hatte eine krasse Idee für Bots :D sie ist von mir (patentiert)!!!


    Also Leute: Wenn ich will dass ein Bot einem Spieler folgt....Ist das möglich ?! Ich habe es so probiert


    Also in einem Include: native OnPlayerBot(playerid, Float:x, Float:y, Float:z, Float:speed);


    Und dann im Filterscript oder im GameMode:



    if(strcmp(cmd, "/bot", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /bot [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    new Float: X, Float: Y, Float: Z;
    GetPlayerPos(playerid, X, Y, Z);
    SetPlayerPos(giveplayerid, X, Y+4, Z);
    MovePlayerBot(giveplayerid, X, Y+2, Z, 4);
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Funzt !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist Offline !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Admin !");
    return 1;
    }
    return 1; }


    Also pls help das funzt so iwi net ?! need help :thumbup:

  • Gute Idee aber das sieht bisschen komisch aus denk ich^^
    Du musst nen Timer setzen.
    Also:


    if(strcmp(cmd, "/bot", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutze: /bot [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    new Float: X, Float: Y, Float: Z;
    GetPlayerPos(playerid, X, Y, Z);
    SetPlayerPos(giveplayerid, X, Y+4, Z);
    MovePlayerBot(giveplayerid, X, Y+2, Z, 4);
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Funzt !");
    FollowedByBot[playerid] = 1;
    FollowedPlayer[giveplayerid] = playerid;
    SetTimerEx("BotFollow", 500, 1, "dd", playerid, giveplayerid);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist Offline !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Admin !");
    return 1;
    }
    return 1; }
    public BotFollow(playerid, giveplayerid)
    {
    if(FollowedByBot[playerid] != && FollowedPlayer[giveplayerid] == playerid)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    MovePlayerBot(giveplayerid, x, y+2, z, 4);
    }
    return 1;
    }


    Oben eben noch: new FollowedPlayer[MAX_PLAYERS], FollowedByBot[MAX_PLAYERS];
    forward BotFollow(playerid, giveplayerid);


    UNGETESTET! Einfach ausgedacht und hingeschrieben. Obs funktioniert keine Ahnung. Grundidee sollte so aber funktionieren.
    Du musst jedenfalls nen Timer setzen, sonst wird der Bot ja nur einmal an die Position vom Spieler gesetzt :)


    LG
    Evil