Beiträge von EvilToastBrot

    stock ReturnPlayerFromIP(ip[])
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new ipp = GetPlayerIP(i, ipp, sizeof(ipp));
    if(!strcmp(ip, ipp, false))
    {
    return i;
    }
    }
    }
    }
    Returnt die PlayerID aus der IP. UNGETESTET. Sollte aber funktionieren. Könnte man für OnRconLoginAttempt nehmen.


    Evil

    Hallo!
    Wenn ich beim einloggen ein falsches Passwort eingebe, soll der Login Dialog einfach nochmal erscheinen. Das tut er auch, und es steht auch "Falsches Passwort!" dort. Aber anstatt bei der Skinauswahl zu bleiben spawnt der Player einfach?! Mir ist dann noch aufgefallen, dass alle Player Variablen auf 0 gesetzt werden. Bitte helft mir ich verzweifel =(
    Hier der Code vom Login Dialog:


    if(dialogid == DLogin)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    new str[128];
    SendClientMessage(playerid, Yellow, "Falsches Passwort!");
    format(str, sizeof str, "Willkommen zurück, %s!\nDu kannst dich unten mit deinem Passwort einloggen!", pn(playerid));
    ShowPlayerDialog(playerid, DLogin, 1, "Login", str, "Login", "Abbrechen");
    }
    new strr[128];
    format(strr, sizeof strr, "/Players/%s.ini", pn(playerid));
    if(strcmp(inputtext, dini_Get(strr, "PW"), true) == 0)
    {
    LoadPlayer(playerid);
    Spawned[playerid] = 1;
    FirstSpawn[playerid] = 1;
    SetSpawnInfo(playerid, Player[playerid][Team], Player[playerid][Skin], 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    else
    {
    new str[128];
    format(str, sizeof str, "Willkommen zurück, %s!\nDu kannst dich unten mit deinem Passwort einloggen!", pn(playerid));
    ShowPlayerDialog(playerid, DLogin, 1, "Login", str, "Login", "Abbrechen");
    SendClientMessage(playerid, Yellow, "Falsches Passwort!");
    }
    }
    if(!response)
    {
    Kick(playerid);
    }
    }


    Hier ein Screen von da, wo Falsches Passwort dortsteht, der Player aber gespawnt wird:



    Helft mir Bitte!
    Danke


    Evil

    else if(PlayerInfo[playerid][pHarndrang] == wert)
    {
    SendClientMessage(playerid, farbe, "Text");
    }
    Wert eben ab da, wo es ist.
    Zu dem Problem mit dem sterben haben Deadwalker und ich keine Lösung gefunden.


    LG
    Evil.

    Finde ich auch gut^^ Weil die Posts oft verschwinden und wenn man dann neuen Thread macht Verwarnung. Und ich glaub kaum, dass jemand die Seiten 2, 3, 4, usw. nach unbeantworteten Threads durchsucht.

    Das hier ganz oben in OnPlayerCommandText:


    new
    index,
    cmd[20];
    cmd = strtok(cmdtext, index);


    Das hier irgendwo hin außerhalb eines Publics:

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



    Und hier der Command:



    if (strcmp(cmdtext, "/me", true) == 0)
    {
    new str[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    return SendClientMessage(playerid, WEISS, "/Me [Text]");
    }
    format(str, sizeof(str), "* %s %s", pname, tmp);
    SendClientMessageToAll(WEISS, str);
    return 1;
    }


    So, dass muss funktionieren.


    //Edit: Tutorial dazu: Klick

    TogglePlayerSpectating(playerid, 1);
    new rand = random(1); // Es soll eben durch zufall entweder der TramBot oder der TrainBot beobachtet werden.
    if(!rand) PlayerSpectateVehicle(playerid, TrainBot);
    if(!rand) PlayerSpectateVehicle(playerid, TramBot);


    So eventuell ?


    Es soll ja nur einer der Bots beobachtet werden.
    Wenn rand 0 ist dann der Zug Bot.
    Wenn rand 1 ist dann der TramBot.

    Hallo!
    Will, dass der Player beim Connecten einen Bot beobachtet.
    Hab dazu unter OnPlayerConnect:
    TogglePlayerSpectating(playerid, 1);
    new rand = random(1); // Es soll eben durch zufall entweder der TramBot oder der TrainBot beobachtet werden.
    if(!rand) PlayerSpectateVehicle(playerid, TrainBot);
    if(rand) PlayerSpectateVehicle(playerid, TramBot);
    Also beide Bots machen genau das, was sie machen sollen.
    Das beobachten des Fahrzeugs klappt ja, aber wenn der Bot losfährt wie er es soll, bleibt die Kamera und der Zug einfach da, wo das vehicle erstellt wurde. Irgendwann verschwindet der Zug dann und man hängt in der luft ( Siehe Screens ).
    Aber habe jetzt rausgefunden wenn ich einen GMX machen, dann funktioniert alles, wie es soll. Wenn ich dagegen die samp-server.exe beende und wieder neu starte habe ich das oben beschrieben Problem.
    Bitte helft mir. Verzweifel langsam -.-


    LG
    Evil


    //Edit: Screens vergessen :D


    Hier bleibt der Bot einfach die ganze Zeit so stehen.



    Und hier ist er dann verschwunden: ( Der Zug fährt nicht aus dem Bild, er verschwindet einfach auf einmal )



    Und noch was: Wenn ich GMX mache, dann ist irgendwie immer nacht im Spiel. Dagegen bei samp-server.exe beenden und wieder starten ist es Tag.

    Also hab jetzt keine Ahnung ob MySQl oder Datei system.
    Aber Dini würde ich nicht benutzen. Bei jedem dini_Get, dini_IntGet, dini_FloatGet, dini_Set, dini_FloatSet usw... wird die Datei jedes mal neu geöffnet. Und das erfordert Ressourecen. Nimm lieber SII das ist schnell einfach und gut.
    LG
    Evil