Beiträge von Saargreen

    Du kannst es nur bei OnPlayerKeyStateChange benutzen. Dieses Callback wird ausgeführt,
    wenn der Spieler eine Spieltaste drückt (hoch,runter,links,rechts,hupen,schießen etc.)


    Wenn du das was du oben geschrieben hast nach OnPlayerKeyStateChange packst,
    würde die Taste "ALT" das Tor öffnen.

    Der letzte Public Exploit für TS3 war in der beta23, die niemand mehr nutzt.
    Dieser hat eine Lücke bei dem Protokoll ausgenutzt, das mit TS3 eingeführt wurde (soweit ich mich erinnern kann).
    Und wie DreisT sagte, solche Programme gibt es nicht.
    Ein Webinterface aufsetzen geht ebenfalls nicht, da er den Server nicht selbst hostet (hab gestern den Hoster hier reingeschrieben)

    Mh. Er könnte allerdings freundlich den Hoster fragen ob er das Webinterface installiert bekommt, vielleicht tut er es ja.


    Du guckst zuviel Videos auf YouTube eindeutig, so das ich mein Senf nun auch dazu geben muss den du ueber 2 Seiten geteilt hast.
    Hacks bzw. Programme die dir einfach Serveradmin geben gibt es nicht! Es gab in der Version 2.0.6(glaube ich) ein exploit via cmd den man ausnutzen konnte um sich SA zu geben.
    Also hatten sie entweder die alte Server Version oder sonst was gibt da mehrere möglichkeiten. Und deine lustige Idee mit dem Tutorial ist auch schwachfug. Jeder schlaue weis das meistens die SA`s Tokens haben, die kannst du auch einfach als "hacker" löschen und somit kann er dann mit sein Tokens auch nichts mehr anfangen. Und ich hoffe der Hacker nutzt nen VPN mit non logging, dann bringt selbst eure Anzeige nichts. Also, Hoster kontaktieren und abwarten. ^^

    Naja, ich nenne sie nicht Youtubehacks nur weil man sie auf Youtube bekommt, ich nenne sie so weil man sie überall angeboten bekommt, genau
    wie Hacks für Spiele wie "War Rock, AVA, Combat Arms" die man massig auf Youtube findet etc...
    Außerdem war das mit dem Tutorial doch nicht ernst gemeint 8| sonst hätte ich längst eins geschrieben ^^
    Man sollte nicht alles ernst nehmen was ich schreibe :p


    Ich bin leider weder professioneller Hacker noch habe ich TS3 programmiert oder sonst irgendwie an
    der Entwicklung gearbeitet. Du scheinst von TS³ wesentlich mehr Ahnung zu haben als ich
    und wenn das, was ich geschrieben habe Unsinn war tuts mir natürlich leid. Aber
    Gehirnschwund hab ich jetzt auch nicht gerade und diese Nummer mit der Backdoor
    und dem Token ging mal irgendwann, oder?

    Ist halt trotzdem doof sowas zu machen?


    Vorallem, was hat er nun davon ? Eine Anzeige! WOW!

    Naja, die Zielgruppen sind ungeduldige unwissende. Diese denken der Server wäre nun für immer in
    seiner Kontrolle und sie bekämen ihn nur zurück durch die Zahlung von 50€ PSC (laut deiner Angabe).
    Es wird hoffnungslose Volltrottel geben die ihm die PSC geben und wahrscheinlich macht er dann sogar
    noch den Server wieder frei, trotzdem hat er nur Adminrechte auf dem Server. Selbst wenn der
    Besitzer gebannt ist bleibt ihm der Zugriff über FTP/Psychokiller Webinterface (meiner Meinung nach
    ein sehr geiles Addon für einen Server) um den Möchtegernhacker zu bannen und sich selbst wieder zu
    entbannen.


    Mein Tipp: Erstmal Psychos Webinterface auf dem Server installieren wenn ihr ihn wieder habt, damit
    ist ne Menge Zeug möglich....

    Danke für das positive Feedback. :)


    @UltimateKeks: Da ist nix besonders zusammengeschnitten, ein Hauptfeature wird sein, dass in der Spielwelt alles voller NPCs ist, damit man sich, auch wenn man der einzige Spieler auf dem Server ist, nie allein fühlt. :)

    Langsam fange ich an mich zu verlieben.... :love:

    Am Ende steht ja dass nie mehr als 2 User gleichzeitig auf dem Server waren.
    Mal ne Frage, wie habt ihr das gemacht, dass ein User die ganzen Straßen belebt?
    Haufenweise NPC's oder habt ihr das einfach gut geschnitten?


    Der Trailer an sich sieht geil aus, 10/10 und man bekommt sofort
    Lust auf den Server :)

    ocmd:gruss(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u", pID))return SendClientMessage(playerid, F_O, "/gruss [ID]");
    SendClientMessage(pID,ROT,"Paul Panzer mein Name, ich grüße sieeeee");
    return 1;
    }


    So sieht ein kleiner ocmd Befehl aus.
    Hier der sscanf Stock falls du ihn nicht hast:


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


    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[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(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++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
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    heul nicht so viel rum sieht so aus als ob es um leben oder tot geht chill einfach mal dein leben gib ihm keine 50PSC und woher willst du das wissen das er 50stück schon gehackt hat ?


    Aja wie du gerade beschrieben hast stimmt das aber welcher idiot ladet sich sachen auf youtube runter lol

    Idioten wie dieser Psycho_Killer :D
    Ein professioneller Hacker würde die Sache anders angehen, ohne Spuren etc.
    Durch das Benutzen von so einem Billighack kannste gleich zum Hoster rennen und
    sagen "Hey mein Name ist Thorsten Thorsty ich wohne in der Thorstenstraße 3 und meine IP ist 127.0.0.1