Beiträge von [RSA]AlexandA

    Hallo Brotfischer,
    mein Windows Homeserver stürzt nachdem ich ihn gestartet habe einfach ab.
    Hier der Auszug aus der Log:



    Und hier meine Main:
    main()
    {
    print("\n====> Geheim <====");
    print(" Geheim by AlexandA");
    //printf("Version: %s", VERSION);
    if(WHITELIST == 1)
    {
    print("==> Whitelist loaded.");
    }
    print("====> Geheim <====\n");
    }


    Ich weiß nicht genau, aber ich glaube da noch nichts im samp-server erschienen ist muss es ja an der main liegen.


    Vielen dank im Vorraus an alle :rolleyes:




    Achja, kann ein Server abstürzen bei ungültigen Rcon Befehlen?

    Hey, ich versuche gerade ein Login & Registrier verfahren, ähnlich wie im Godfather zu scripten. Allerdings werden beim Aktualisieren der SpielerDatei alle Werte auf die Standartwerte gesetzt.


    Beispiel:


    Meine Userdatei sieht vor dem connecten so aus:


    Sobald ich connecte und meine Spielerdatei aktualisiert wird (passiert jede Sekunde) sieht sie nurnoch so aus:





    Und hier sind die beiden Funktionen, Einloggen und Aktualisieren:


    public Einloggen(playerid,password[])
    {
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(Spieler[playerid][pPas], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(Spieler[playerid][pPas],password, true ) == 0 )
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Du wurdest erfolgreich eingeloggt !");
    TogglePlayerControllable(playerid, 1);
    gEingeloggt[playerid] = 2;
    new key[ 256 ], val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pMoney] = strval( val ); }
    if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pAdmin] = strval( val ); }
    if( strcmp( key , "Skin" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pSkin] = strval( val ); }
    if( strcmp( key , "Cop" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pCop] = strval( val ); }
    if( strcmp( key , "Taxi" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pTaxi] = strval( val ); }
    if( strcmp( key , "Sani" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pSani] = strval( val ); }
    if( strcmp( key , "Duty" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pDuty] = strval( val ); }
    if( strcmp( key , "Arbeitszeit", true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pDutyTime] = strval( val ); }
    }
    fclose(UserFile);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid, Spieler[playerid][pSkin]);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Falsches Passwort.");
    Kick(playerid);
    return 1;
    }
    }
    return 1;
    }


    public Aktualisieren(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gEingeloggt[playerid])
    {
    new
    string3[32],
    SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    format(string3, sizeof(string3), "%s.ini", SpielerName);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    new inhalt[32];
    SetPlayerScore(playerid, Spieler[playerid][pAdmin]);
    Spieler[playerid][pMoney] = GetPlayerMoney(playerid);
    format(inhalt, 32, "Key=%s\n", Spieler[playerid][pPas]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Frage=%s\n", Spieler[playerid][pFrage]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Antwort=%s\n", Spieler[playerid][pAntwort]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Geld=%d\n",Spieler[playerid][pMoney]);fwrite(hFile, inhalt);
    format(inhalt, 32, "AdminLevel=%d\n",Spieler[playerid][pAdmin]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Skin=%d\n",Spieler[playerid][pSkin]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Cop=%d\n",Spieler[playerid][pCop]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Taxi=%d\n",Spieler[playerid][pTaxi]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Sani=%d\n",Spieler[playerid][pSani]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Duty=%d\n",Spieler[playerid][pDuty]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Arbeitszeit=%d\n",Spieler[playerid][pDutyTime]);fwrite(hFile, inhalt);
    fclose(hFile);
    }
    }
    }
    return 1;
    }

    Achso okay, dann nehm ich gleich die strcmp Version. Dann brauch ich auch die ganzen strings nicht mehr. Danke :thumbup: .


    Das andere versteh ich leider nicht. Was ist daran so anders/besser?
    Meintest du jetzt so?


    dcmd_beruf(playerid, params[])
    {
    if(Spieler[playerid][pAdmin] == 0) { return SendClientMessage(playerid, COLOR_RED, "Du musst ein Admin sein."); }
    new
    pID,
    jobname[128],
    string[128],
    ThePlayer[MAX_PLAYER_NAME],
    TheOtherPlayer[MAX_PLAYER_NAME];
    if(sscanf(params, "ds",pID, jobname))
    {
    SendClientMessage(playerid,COLOR_RED,"Da fehlt doch etwas.");
    SendClientMessage(playerid, COLOR_INFO, "Benutze bitte: /beruf [ID] [Job-Name]");
    SendClientMessage(playerid, COLOR_INFO, "Verf. Jobs: Polizei");
    return 1;
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(pID, TheOtherPlayer,sizeof(TheOtherPlayer));
    if(strcmp("police",jobname,false) == 0)
    {
    format(string,sizeof(string),"%s hat dich als Polizist angestellt.",ThePlayer);
    SendClientMessage(pID,COLOR_INFO,string);
    format(string,sizeof(string),"Du hast %s als Polizist angestellt.", TheOtherPlayer);
    SendClientMessage(playerid, COLOR_INFO, string);
    Spieler[pID][pCop] = 1;
    return 1;
    }
    else
    {
    return SendClientMessage(playerid, COLOR_RED, "Ungültiger Job.");
    }
    }
    }

    Hey, ich habe heute seid ein paar Wochen mal wieder ein bisschen gescriptet. Aber nun leider auch schon den ersten Fehler den ich nicht weg kriege.


    Hier mal mein Command:


    dcmd_beruf(playerid, params[])
    {
    if(Spieler[playerid][pAdmin] > 0)
    {
    new
    pID,
    police[128],
    jobname[128],
    string[128],
    ThePlayer[MAX_PLAYER_NAME],
    TheOtherPlayer[MAX_PLAYER_NAME];
    if(sscanf(params, "ds",pID, jobname))
    {
    SendClientMessage(playerid,COLOR_RED,"Da fehlt doch etwas.");
    SendClientMessage(playerid, COLOR_INFO, "Benutze bitte: /beruf [ID] [Job-Name]");
    SendClientMessage(playerid, COLOR_INFO, "Verf. Jobs: Polizei");
    return 1;
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(pID, TheOtherPlayer,sizeof(TheOtherPlayer));
    format(police,sizeof(police),"Polizei");
    if(jobname == police) // --------------Fehlerzeile
    {
    format(string,sizeof(string),"%s hat dich als Polizist angestellt.",ThePlayer);
    SendClientMessage(pID,COLOR_INFO,string);
    format(string,sizeof(string),"Du hast %s als Polizist angestellt.", TheOtherPlayer);
    SendClientMessage(playerid, COLOR_INFO, string);
    Spieler[pID][pCop] = 1;
    return 1;
    }
    else
    {
    return SendClientMessage(playerid, COLOR_RED, "Ungültiger Job.");
    }
    }
    else
    {
    return SendClientMessage(playerid, COLOR_RED, "Du musst ein Admin sein.");
    }
    }


    Ich möchte nun das falls der Admin /beruf ID polizei schreibt, das dann ID demensprechend geändert wird.
    Aber bekomme folgenden Error:


    Zitat

    error 033: array must be indexed (variable "jobname")



    Vielen Dank im Vorraus für eure Antworten :)

    naja ich finds schlecht dann machen da irgendwelche 3 accs werbung spammen das mit müll zu ..+dauert das laden der startseite länger da ehr ja shoutbox mit aktualliesieren muss...


    Ja stimmt schon, aber wie wärs wenn man sie ans Ende der Seite setzt. Dann würde sie zuletzt geladen und stört den anderen Teil der Seite nicht, oder?
    Wenn ich damit falsch liege dann entschuldigt, kenn mich mit php und html nicht so aus :D.



    Und das da irgendwelche Leute Werbung reinmachen wird warscheinlich auch passieren. Aber den würde ich einfach ohne zu zögern den Account und evtl. noch die IP sperren. Allerdings ist das wieder viel Arbeit für die Admins und Mods.



    Naja egal vergesst es einfach, ich kann mir die Antwort schon denken

    Hey,
    Es gibt ja eine kostenlose Shoutbox für ein WBB und wie wäre es denn mal mit einer Shoutbox für dieses Forum?
    Ich weiß es gibt einen Chat aber der wird leider von einigen einfach übersehen und ist fast immer leer.


    Bei einer Shoutbox würden bestimmt auch weniger sinnlose Threads im Forum erscheinen.

    Naja vielleicht habe ich auch nur einen schlechten Monat erwischt und die können ja auch nicht viel machen als das Problem für die zahlreichen Ausfälle so schnell wie möglich zu finden. Auf jedenfall habe ich mich da nur wegen der "keine werbung" Werbung angemeldet :D. Und auf einmal war eine da... Aber soweit ich weiß kann man sie durch Forenaktivität abstellen.

    Bei cwcity war ich auch.
    Ich hatte in nur einem Monat eine geschätzte Downtime von 10% und die Datenbank mindestens doppelt soviel.
    Und dann als die Probleme angeblich gelöst waren setzen die da auch noch so eine fette Werbung auf die Seite.