Beiträge von Mischi

    0/10 ....



    • //----- SCHRITT 5: Alle onplayerupdate(?); ersetzen mit

    • PlayerUpdate(playerid);

    WTF? das ist der selbe rotz wie davor. nur das es jetzt anderst heist... OMG


    echt les dir den thread zu scriptoptimierug mal durch...


    Soooo für alle die trotzdem ihr script auslasten wollen:
    Schneidet alles bei OnPlayerUpdate aus.(so das nurnoch das return 1 dasteht)
    dann fügt ihr das bei OnPlayerDisconnect ein.


    Soooo das ist schonmal VIEL besser weil er jetzt nurnoch speichert wenn der spieler den server verlässt. ggf muss gmx undso auch angepasst werden.


    MfG
    Mischi

    public OnPlayerSpawn(playerid)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    new SpielerDatei[128];
    format(SpielerDatei, sizeof(SpielerDatei), Acc_Ordner, SpielerName);


    if (SpielerInfo[playerid][Eingeloggt] == 0)
    {
    SendClientMessage(playerid, ADMIN_RED, " Du musst dich davor einloggen um zu Spawnen!!!");
    Kick(playerid);
    }
    else
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, SpielerInfo[playerid][Geld]);
    SetPlayerScore(playerid, SpielerInfo[playerid][Level]);
    SetPlayerFightingStyle(playerid, SpielerInfo[playerid][FightStyle]);
    SetPlayerDrunkLevel(playerid, SpielerInfo[playerid][DrunkLevel]);
    SetPlayerPos(playerid, SpielerInfo[playerid][PositionX], SpielerInfo[playerid][PositionY], SpielerInfo[playerid][PositionZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][Angle]);
    SetPlayerInterior(playerid, SpielerInfo[playerid][Interior]);
    //SetPlayerHealth(playerid, SpielerInfo[playerid][Leben]);
    }
    return 1;
    }


    hab nur das und kein


    Public SetPlayerSpawn(playerid)


    ^^

    Heyho liebe Community,


    ich habe irgendwie einen Bug in meinem Sciprt das wenn ich /gmx oder auch über Rcon gmx mache das die spieler die noch auf den server sind dann in der lluft spawnen dann auf den standart spawn von samp ich glaube 0 0 0 gesetzt werden (an der Farm da bei Fleischberg).


    Allerdings wenn man nciht auf den server ist und mach über die samp rcon console gmx läuft alles normal. und man spawnt wie gewollt da wo man sich ausgeloggt hat.


    Kann wer helfen?


    MfG
    Mischi

    also möglich ist das schon. Aber ich würde das nicht mit OnPlayerUpdate machen sondern bei Disconnct in die DB speichern lassen.


    Dann kannst du das über ein CP abrufen. Blos die frage ist wie das mit der Auslastung ist da dann ja beides gleichzeitig ausgeführt müssten werde. Also das was ihr bis jetzt habt + MySql.


    Aber da ich mich mit der Script / Server auslastung bislang nicht so befast habe kann ich dir da auch nciht weiterhelfen.


    MfG
    Mischi

    oke ich habs nun erstmal anderst gelöst...


    Für alle die es wissen wollen:
    habe bei
    public OnPlayerSpawn(playerid)
    SetPlayerPos(playerid, SpielerInfo[playerid][PositionX], SpielerInfo[playerid][PositionY], SpielerInfo[playerid][PositionZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][Angle]);
    SetPlayerHealth(playerid, SpielerInfo[playerid][Leben]);


    in


    SetPlayerHealth(playerid, 25);
    SetPlayerPos(playerid, 1109.0306, -1796.4152, 16.5938);
    SetPlayerFacingAngle(playerid, 87.5116);


    geändert nun geht es. Ka Warum aber es geht. scheinbar hab ich irgendwo ein fehler mit der Speicherung.


    MfG
    Mischi

    okeee


    public OnPlayerSpawn(playerid)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    new SpielerDatei[128];
    format(SpielerDatei, sizeof(SpielerDatei), Acc_Ordner, SpielerName);
    if (SpielerInfo[playerid][Eingeloggt] == 0)
    {
    SendClientMessage(playerid, ADMIN_RED, "|- Du musst dich davor einloggen um zu Spawnen!!! -|");
    Kick(playerid);
    }
    else
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, SpielerInfo[playerid][Geld]);
    SetPlayerScore(playerid, SpielerInfo[playerid][Level]);
    SetPlayerFightingStyle(playerid, SpielerInfo[playerid][FightStyle]);
    SetPlayerDrunkLevel(playerid, SpielerInfo[playerid][DrunkLevel]);
    SetPlayerPos(playerid, SpielerInfo[playerid][PositionX], SpielerInfo[playerid][PositionY], SpielerInfo[playerid][PositionZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][Angle]);
    SetPlayerInterior(playerid, SpielerInfo[playerid][Interior]);
    SetPlayerHealth(playerid, SpielerInfo[playerid][Leben]);
    }


    return 1;


    ich glaube es liegt hierdran:
    SetPlayerHealth(playerid, SpielerInfo[playerid][Leben]);


    aber das setze ich bei hier auf 25:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    new SpielerDatei[128];
    format(SpielerDatei, sizeof(SpielerDatei), Acc_Ordner, SpielerName);


    dini_FloatSet(SpielerDatei, "PositionX", 1109.0306);
    dini_FloatSet(SpielerDatei, "PositionY", -1796.4152);
    dini_FloatSet(SpielerDatei, "PositionZ", 16.5938);
    dini_FloatSet(SpielerDatei, "Angle", 87.5116);
    dini_IntSet(SpielerDatei, "Interior", 0);
    dini_IntSet(SpielerDatei, "DrunkLevel", 0);
    dini_FloatSet(SpielerDatei, "Leben", 25);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, SpielerInfo[playerid][Geld]);

    return 1;
    }


    hoffendlich wisst ihr rat :D

    Sooooo Hallo erstmal :D


    ich habe mir mal mein eigenes Login /reg. Script gebatelt. Nun funktiniert auch alles. ABER


    Immer nachdem ich GMX machen stirbt man IMMER nach dem login und fliegt durch die map...


    Nachdem man sich dann mit /q ausloggt und neu auf den Server Connectet funkt alles wieder Perfekt.



    Hat wer ne Ahnung an was das liegen könnte?


    MfG
    Mischi

    Hey Ho ihr da^^


    ich bin ja bestimmt wie ihr mitbekommen habt dabei eine Mod zu schreiben.^^ nun bei meinem Reg.system was ich habe besser gesagt was ich mir anschau wie sowas funktiniert steht das drinne:


    Encrypt(inputtext);
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), Acc_Ordner, 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 , "Password" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
    {
    if(strlen(inputtext))
    {
    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
    {
    inputtext[p] = '?';
    }
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );



    stock ini_GetKey( line[] )
    {
    new keyRes[256];
    keyRes[0] = 0;
    if ( strfind( line , "=" , true ) == -1 ) return keyRes;
    strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
    return keyRes;
    }


    stock ini_GetValue( line[] )
    {
    new valRes[256];
    valRes[0]=0;
    if ( strfind( line , "=" , true ) == -1 ) return valRes;
    strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
    return valRes;
    }


    Encrypt(string[])
    {
    for(new x=0; x < strlen(string); x++)
    {
    string[x] += (3^x) * (x % 15);
    if(string[x] > (0xff))
    {
    string[x] -= 256;
    }
    }
    }


    nun habe ich k.A. was da abläuft... wenn einer von euch mir das erklären könnte wäre das sehr sehr geil.


    hier mal der volle abschnitt.
    [hide]if(dialogid == RegLogin)
    {
    Encrypt(inputtext);
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), Acc_Ordner, 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 , "Password" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
    {
    if(strlen(inputtext))
    {
    for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
    {
    inputtext[p] = '?';
    }
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if(SAVE_MONEY_SCORE_FIGHT_DRUNK == 1)
    {
    if( strcmp( key , "Money" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,strval(val));
    }
    if( strcmp( key , "Score" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerScore(playerid,strval(val));
    }
    if( strcmp( key , "DrunkLevel" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerDrunkLevel(playerid,strval(val));
    }
    if( strcmp( key , "FightStyle" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerFightingStyle(playerid,strval(val));
    }
    }
    if(SAVE_POS == 1)
    {
    if( strcmp( key , "PositionX" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    PositionInfo[playerid][aPosX] = strval(val);
    }
    if( strcmp( key , "PositionY" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    PositionInfo[playerid][aPosY] = strval(val);
    }
    if( strcmp( key , "PositionZ" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    PositionInfo[playerid][aPosZ] = strval(val);
    }
    SetPlayerPos(playerid, PositionInfo[playerid][aPosX], PositionInfo[playerid][aPosY], PositionInfo[playerid][aPosZ]);
    if( strcmp( key , "Angle" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    PositionInfo[playerid][aAngle] = strval(val);
    }
    if( strcmp( key , "Interior" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerInterior(playerid, strval(val));
    }
    SetPlayerFacingAngle(playerid, PositionInfo[playerid][aAngle]);
    }
    if(SAVE_HEALTH == 1)
    {
    if( strcmp( key , "Health" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerHealth(playerid, strval(val));
    }
    }
    if(SAVE_ARMOUR == 1)
    {
    if( strcmp( key , "Armour" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerArmour(playerid, strval(val));
    }
    }
    if(SAVE_WEAPON == 1)
    {
    new silah[128];
    new mermi[128];
    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot != 12; slot++)
    {
    format(silah,sizeof(silah),"Weapon%s",slot);
    if( strcmp( key , silah, true ) == 0 )
    {
    val = ini_GetValue( Data );
    strmid(WeaponInfo[playerid][slot], val, 0, strlen(val));
    }
    }
    for(new slot = 0; slot != 12; slot++)
    {
    format(mermi,sizeof(mermi),"Weapon%sAmmo",slot);
    if( strcmp( key , mermi, true ) == 0 )
    {
    val = ini_GetValue( Data );
    strmid(AmmoInfo[playerid][slot], val, 0, strlen(val));
    }
    }
    for(new slot = 0; slot != 12; slot++)
    {
    GivePlayerWeapon(playerid, WeaponInfo[playerid][slot], AmmoInfo[playerid][slot]);
    }
    if( strcmp( key , "ArmedWeapon" , true ) == 0 )
    {
    val = ini_GetValue( Data );
    SetPlayerArmedWeapon(playerid, strval(val));
    }
    }
    }
    register[playerid] = 0;
    login[playerid] = 0;
    AccountInfo[playerid][aLogged] = 1;
    printf("%s is logged in.",playername2);
    fclose(UserFile);
    }
    }
    else
    {
    if(strlen(inputtext))
    {
    new girismsg[256];
    printf("%s is used the wrong password.",playername2);
    format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
    login[playerid] = 1;
    register[playerid] = 0;
    failedlogin[playerid]++;
    fclose(UserFile);
    return 1;
    }
    }
    if(!strlen(inputtext))
    {
    new girismsg[256];
    printf("%s did not enter the password.",playername2);
    format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
    login[playerid] = 1;
    register[playerid] = 0;
    failedlogin[playerid]++;
    fclose(UserFile);
    return 1;
    }
    }
    }
    [/hide]

    Screenshots fehlen


    So habe des eben lokal getestet und muss sagen naja...


    1/10 Map: da ich die laterne lustig fand xD der rest ist eigendlich ordentlich bis auf das 1 zaun voll vorsteht.
    0/10 Idee: nicht gerade orginell eig nur Zäune


    +1 Zusätzpunkt für das Script


    MfG
    Mischi

    Da einzige was ich bei OnPlayerRequestClasss habe ist das



    public OnPlayerRequestClass(playerid, classid)
    {
    /*
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    */
    if (classid == 0) // Grove Spawn
    {
    SetPlayerPos(playerid, 2495.2678,-1686.6346,13.5143);
    SetPlayerFacingAngle(playerid,0.6267);
    SetPlayerCameraPos(playerid, 2495.6011,-1681.7052,14.3390);
    SetPlayerCameraLookAt(playerid, 2495.2678,-1686.6346,13.5143);
    }
    if (classid == 1) // Ballas Spawn
    {
    SetPlayerPos(playerid, 1974.4294,-1234.9778,20.0469);
    SetPlayerFacingAngle(playerid,99.0279);
    SetPlayerCameraPos(playerid, 1969.6760,-1235.6083,21.0535);
    SetPlayerCameraLookAt(playerid, 1974.4294,-1234.9778,20.0469);
    }
    if (classid == 2) // Vagos Spawn
    {
    SetPlayerPos(playerid, 2534.9875,-1034.1871,69.5781);
    SetPlayerFacingAngle(playerid,175.4048);
    SetPlayerCameraPos(playerid, 2534.1670,-1039.1896,70.5781);
    SetPlayerCameraLookAt(playerid, 2534.9875,-1034.1871,69.5781);
    }

    return 1;
    }


    Also vil versteht ihr nicht ganz was mein Problem ist^^
    Es soll so ablaufen:
    -Player Connectet
    -Noch bei dem Starbildschirm (das am Strand) soll der Login Text kommen
    -Spieler wählt skinn bzw team
    -Spieler wird zu seinem letzten standort geportet.


    So sollte es eig sein
    es hat auch Funktinier aber nur das man erst skinn / Team wählt und dann sich einloggt...


    MfG
    Mischi

    Heyho Brotfischer^^


    ich melde mich mal wieder. Undzwar habe ich gerade mal ein FS getestet.
    http://forum.sa-mp.com/index.php?topic=122308.0


    nun habe ich das in meine neue GM eingebaut (was es wird wird nochnicht veraten^^) doch da wird erst bei der skin auswähl nach dem login gefragt. So nun habe ich den login in onplayerconnect reingepackt. so wie ich es haben will^^. Nun funktiniert aber die Funktion nichtmehr das man da spawnt wo mein rausgegangen ist.
    Das kamm mir auch ganz logisch für da on der player eig am spawn steht und da onplayerupdate ja dann ausgeführt wird. also das von onplayerupdate in onplayerdisconnect reingepackt, damit er erst speichert wenn der user disconnectet.


    Aber aus irgendeinem mir unerklärlichen grund Funktioniert das nicht...
    Kann mir da einer helfen? PWN ist im Anhang.


    Link zur PWN (Orginal) http://pastebin.com/f4dfa369d
    Link zur PWN (Mein Edit) http://pastebin.com/d5f2ca915


    MfG
    Mischi