Beiträge von [NeS]MrCrunch

    Guten Tag.
    Nach langer Zeit habe ich endlich einen /register und /login cmd "gebaut"
    Nun habe ich jedoch ein Problem.
    Wenn ich mich registrieren will, kommt immer nur die Meldnung "Dieser Accounter existiert noch nicht! Tippe /register"
    Also wenn ich /register eingebe.
    Somit kann ich mich nicht registrieren...
    Könnte mir da wer helfen?


    Hier einmal /login



    if(strcmp(cmd,"/login",true)==0)
    {
    new tmp[256];
    new file[256];
    new playername[256];
    new string[256];
    new password[256];
    tmp=strtok(cmdtext,idx);
    GetPlayerName(playerid,playername, sizeof(playername));
    format(file, sizeof(file), "%s.ini",playername);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"FEHLER : /login [Passwort]");
    return 1;
    }
    if(!dini_Exists(file))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Accounter existiert noch nicht! Tippe /register");
    return 1;
    }
    if(logged[playerid]==1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist bereits eingeloggt!");
    return 1;
    }
    password=dini_Get(file,"hashPW");
    if(udb_hash(tmp) != strval(password))
    {
    format(string, 256, "Falsches Passwort", playername);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    }
    else
    {
    logged[playerid]=1;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast dich eingeloggt!");
    printf("%s (%i) logged in", playername, playerid);
    new cash=dini_Int(file,"cash");
    GivePlayerMoney(playerid,cash);
    level[playerid]=dini_Int(file,"level");
    }


    }


    Und /register



    if(strcmp("/register", cmd, true) == 0)
    {
    new tmp[256];
    new file[256];
    new string[256];
    new playername[MAX_PLAYER_NAME];
    tmp=strtok(cmdtext,idx);
    GetPlayerName(playerid,playername, sizeof(playername));
    format(file, sizeof(file), "%s.ini",playername);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"FEHLER : /register [Passwort]");
    return 1;
    }
    if(dini_Exists(file))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Account existiert bereit! Tippe /login");
    return 1;
    }
    dini_Create(file);
    dini_IntSet(file, "Passwort", udb_hash(tmp));
    dini_IntSet(file, "Level", 1);
    dini_IntSet(file, "Geld", GetPlayerMoney(playerid));
    format(string,sizeof(string),"Du hast dich erfolgreich mit dem Nichname %s und dem Passwort %s registriert.",playername,tmp);
    SendClientMessage(playerid,COLOR_GREEN,string);
    SendClientMessage(playerid,COLOR_YELLOW,"Du kannst dich nun per /login einloggen!");


    }

    Ich habe jetzt mal diesen Teil aus GF gezockt^^


    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s sagt: %s", sendername, text);
    ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);


    Nur habe ich jetzt das Problem das wenn ich was in den Chat schreibe es zweimal geschrieben wird.
    Also einmal normal von SAMP und einmal wie in GF.


    BSP:
    MrCrunch: Yes //Samp
    MrCrunch sagt: Yes //GF kopie


    Könnte mir da jemand helfen?

    new Text:Forum;< Oben in deinen Script setzen




    public OnPlayerConnect(playerid)
    {
    Forum = TextDrawCreate(3.000000,434.000000,"Dein Link wie immer der auch heißt");
    TextDrawAlignment(Forum,0);
    TextDrawBackgroundColor(Forum,0x000000ff);
    TextDrawFont(Forum,3);
    TextDrawLetterSize(Forum,0.399999,0.899999);
    TextDrawColor(Forum,0x00ff00cc);
    TextDrawSetOutline(Forum,1);
    TextDrawSetProportional(Forum,1);
    TextDrawSetShadow(Forum,1);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    TextDrawShowForPlayer(playerid,Forum);
    return 1;
    }

    Guten Morgen^^


    Also ich habe vor einen Script zu schreiben, mit dem man eine Explosion vor dem Spieler erzeugen kann.
    Das ganze soll in etwa so ablaufen.
    Ich bin zB in einen Auto und gebe /fire ein.
    Dann soll direkt vor mir eine Explosion erzeugt werden.


    Das Problem dabei sind die Achsen X,Y,Z.
    Ich habe da schonmal einen Versuch ausgearbeitet.


    if (strcmp("/fire", cmdtext, true, 10) == 0)
    {
    new Float:X, Float:Y, Float:Z;
    {
    GetPlayerPos(playerid,X,Y,Z);
    CreateExplosion(X+20,Y,Z,2,50);
    }
    return 1;
    }


    Nur jetzt wird die Explosion immer nur auf der X-Ache verschoben.
    Wie kann ich es einstellen, das die immer vor dem Spieler ist?
    Hoffe ich habt verstanden worauf ich hinaus will.

    Der gesuchte verliert die Wanteds somit muss der Cop sie erneut geben.
    Allerdings bleiben auch nach dem sterben, sprich wenn man eigentlich wieder 0 wanteds hat
    die Sterne am rechten rand stehen...

    Und was muss ich "einstellen" bzw. "scripten",
    damit die wanteds gespeichert werden?
    Also auch nach dem ausloggen


    ///EDIT.
    1. Wenn man gekillt wird, steht da "you have lost 6500$ for dieing with wanted level 13"
    2. Nachdem man gestorben ist, muss man dem Spieler die wanteds erneut geben.

    Komisch in meinem "Gamemode" geht das bzw. gibt es ein LVPD^^



    SetPlayerInterior(i, 3);
    SetPlayerPos(i,238.6608,141.0492,1003.0234);
    SetPlayerFacingAngle( i, 360.0 );
    GameTextForPlayer(i, "~w~Willkommen im ~n~~r~Police Department", 3000, 3);

    if(strcmp(cmd, "/nos", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    new vehicle;
    vehicle = GetPlayerVehicleID(playerid);
    AddVehicleComponent(vehicle,1010);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast Nos in deinen Wagen eingebaut");
    }
    }
    }