Samp 0.3 Bots Erstellen [überarbeitet]

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
  • Hay leute ich hab ein riesen problem
    In jedem damit meine ich in JEDEM GameMode kommt


    samp symbol already defined: "sscanf"


    Das kann nicht sein mit den Includes habe ich auch nichts gemacht :S
    Weiß wer was man bruacht oder wie man das fixxen kann? Da ich nur in einem GM was gemacht
    habe kann es ja nicht 2x auch in anderen GameModes die unabhängig von einander sind definiert sein

    KleineHilfe 2.0

  • Also erst mal ein Danke für das super Tutorial. Nur leider habe ich ein ziemlich kniffliges Problem. Bei mir verlässt der Bot nach ein paar Sekunden wieder den Server... Bei einem Kumpel von mir funktioniert jedoch das Ganze. An was kann das liegen? Betriebssystem: Windows XP ;)


    • server.cfg ist identisch, maxnpc nicht auf 0
    • samp-npc chmod 700 funktioniert auch nicht
    • samp-server.exe und samp-npc.exe werden nicht blockiert und sind nicht schreibgeschützt oder sonst was
    • Der Bot ist an allen "kick-Fallen" vorbeigeschleust.
    • Selbst bei einem GM wie rivershell funktioniert's nicht.


    Grüße
    Phil_Smith

  • Kann mir denn keiner bei


    samp symbol already defined: "sscanf"


    Diesem Prob helfen? :s weil ich kriege es nicht mehr weg
    und alles sscanf was ich im script habe ist des


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    KleineHilfe 2.0

  • Hallo,


    Das sieht wirklich super aus, gefällt mir 10/10*
    weiter so! :) ich werde es auf jedenfall mal nachchamen

  • Hallo liebe SA-MP Gemeinde,


    gibt es ne möglichkeit den skin zu ändern?


    ich habe schon folgendes ausprobiert:

    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "BulletLS", true))
    {
    PlayerInfo[playerid][pCarLic] = 1; //Auto
    PlayerInfo[playerid][pFlyLic] = 1; //Flug
    PlayerInfo[playerid][pNewLic] = 1; //allcars
    PlayerInfo[playerid][pBoatLic] = 1;
    PlayerInfo[playerid][pFishLic] = 1;
    PlayerInfo[playerid][pGunLic] = 1;
    PlayerInfo[playerid][pLKWLic] = 1;
    PlayerInfo[playerid][pMotoLic] = 1;
    PutPlayerInVehicle(playerid, car_BulletLS, 0);//car_BulletLS
    SetPlayerSkin(playerid,173); //playerskin
    }
    }


    aber der bot ist noch immer nen clown


    oder hat es damit was zu tun?

    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "BulletLS", true))
    {
    gPlayerLogged[playerid] = 1;
    }
    }

    ///EDIT///
    Sorry war mein fehler so gehts bei mir
    PlayerInfo[playerid][pChar] = 173;
    /*
    Hätt ich drauf kommen können da er ja eine user datei anlegt
    */ 
    vieleicht hilft es ja jemand anderem
    ///EDIT///
    für Hilfen wär ich dankbar


    PcRooT

    Einmal editiert, zuletzt von pcroot ()

  • mein bot steht nur blöt rum wenn ich starte


    bei mir der start:
    mann muss sich regestriern
    mann muss spawn klicken (beim bot mit SpawnPlayer(playerid); umgangen)
    man wird gefrezzt und muss go drücken den krigt man den skin und sowas (der bot wird entfrezzt)



    der bot steht jetzt schon neben den auto aber der steht dof rum ?? muss ich den bot erst regestriern?

    Teamspeak zum Quatschen?

    IP: 217.79.182.216:9999

    Jeder kann Semi-Permanent Channel erstellen ;)


  • C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(60) : warning 235: public function lacks forward declaration (symbol "OnRecordingPlaybackEnd")
    C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(62) : error 017: undefined symbol "StartRecordingPlayback"
    C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(65) : warning 235: public function lacks forward declaration (symbol "OnNPCEnterVehicle")
    C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(67) : error 017: undefined symbol "StartRecordingPlayback"
    C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(69) : warning 235: public function lacks forward declaration (symbol "OnNPCExitVehicle")
    C:\Dokumente und Einstellungen\user\Desktop\GTA SA & Samp\Samp-Server\npcmodes\BUS.pwn(71) : error 017: undefined symbol "StopRecordingPlayback"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.


    Edit: Zitat

    KleineHilfe 2.0

    Einmal editiert, zuletzt von YaBroo ()

  • Hay
    Ich kriege das mit dein tut nicht hin
    es kommen immer errors
    könntest du mir das über teamviewer machen


    ist sehr nett wen du es machst oder ein anderer

  • Hat geklappt!


    :thumbup: :thumbup: :thumbup:

    kannst du es bei mir auch machen über teamviewer?


    //edit oder ein anderer pls

    Einmal editiert, zuletzt von Kingbushido-legende ()

  • Zitat

    SetPlayerSkin(playerid,173); //playerskin

    SetPlayerSkin(BOTNAME,173); //playerskin
    Versuchs so^^