Beiträge von Jeffry

    public OnVehicleDamageStatusUpdate(vehicleid, playerid)
    {
    new Float:hp;
    GetVehicleHealth(vehicleid,hp);
    if(hp <= 300 && hp > 250) SendClientMessage(playerid,FARBE,"Dein Auto wird gleich explodieren fahr lieber zum Pain Spray!");
    return 1;
    }


    Dann sollten sie explodieren, bzw. erstmal brennen.

    Ja, das wird irgendwann zu lang sein. Dialoge haben eine begrenze Zahl von Characters die sie darstellen können, solange du die nicht erreichst ist das kein Problem, wenn du es erreichst, musst du halt eine zweite Seite von Stats machen.
    Wenn die Zeile dem Compiler zu lang wird, dann musst du sie halt halbieren in den Variablen, also so:


    format(string2,sizeof(string2),"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s",coordsstring1[0],coordsstring1[1],coordsstring1[2],coordsstring1[3],coordsstring1[4],coordsstring1[5],coordsstring1[6],coordsstring1[7],coordsstring1[8],coordsstring1[9],
    coordsstring1[10],coordsstring1[11],coordsstring1[12],coordsstring1[13],coordsstring1[14],coordsstring1[15],coordsstring1[16]);


    Sonst sollte es aber keine Probleme geben.

    if(strcmp("/dm",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1) return SendClientMessage(playerid,GRAU,"Du bist bereits in einer Arena!");
    if(IstInDM[playerid] == 1) return SendClientMessage(playerid,GRAU,"Du bist bereits in einem DM!");
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[ARENA] Der Spieler {FFFFFF}%s {8200FF}ist der DM-Arena {FFFFFF}[/DM] {8200FF}beigetreten.",SpielerName(playerid));
    SendClientMessageToAll(LILA,string);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    new rand=random(sizeof(DMSpawn));
    SetPlayerPos(playerid,DMSpawn[rand][0],DMSpawn[rand][1],DMSpawn[rand][2]);
    SetPlayerFacingAngle(playerid,DMSpawn[rand][3]);
    GivePlayerWeapon(playerid,24,2208);
    GivePlayerWeapon(playerid,25,2201);
    GivePlayerWeapon(playerid,34,2201);
    IstInArena[playerid] = 1;
    IstInDM[playerid] = 1;
    return 1;
    }


    if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1 || IstInDM[playerid] == 1)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die DM Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 0;
    IstInDM[playerid] = 0;
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du bist noch nicht in der /dm Arena!");
    return 1;
    }
    return 1;
    }


    Je nach dem wie das ganze System aussieht, muss man vielleicht noch die ein oder andere Änderung vornehmen.

    new coordsstring1[7][256],string2[7*256];
    format(coordsstring1[0], sizeof(coordsstring1[]),"*** %s ***",name);
    format(coordsstring1[1], sizeof(coordsstring1[]), "Level:[%d] Geschlecht:[%s] Alter:[%d] Herkunft:[%s] Spawnenergie:[%.1f] Geld:[$%d] Bank:[$%d] Ph:[%d]", level,atext,age,otext,shealth+50, cash, account, pnumber);
    format(coordsstring1[2], sizeof(coordsstring1[]), "Premium Rang:[%s] Verheiratet:[%s] Spielzeit:[%d] LottoNr:[%d] Job:[%s]", drank,married,ptime,lotto,jtext);
    format(coordsstring1[3], sizeof(coordsstring1[]), "FishesCaught:[%d] GrösterFisch:[%d] Verbrechen:[%d] Gefängniszeit:[%d] Gesucht:[%d]", fishes,bigfish,crimes,arrests,warrests );
    format(coordsstring1[4], sizeof(coordsstring1[]), "Kills:[%d] Tode:[%d] Nächstes Level:[$%d] Respekt:[%d/%d] WantedLevel:[%d] Familie:[%s]",kills,deaths,costlevel,exp,expamount,wanted,f2text);
    format(coordsstring1[5], sizeof(coordsstring1[]), "Drugs:[%d] Materials:[%d] Team:[%s] Krankheit:[%s] Organisation:[%s] Rank:[%s]",drugs,mats,ttext,dtext,ftext,rtext);
    format(coordsstring1[6], sizeof(coordsstring1[]), "Spielminuten seit Login: [%d] Spielminuten Insgesamt: [%d]",PlayerInfo[targetid][pMinutesSinceLogin],PlayerInfo[targetid][pGesamtMinutes]);
    format(string2,sizeof(string2),"%s\n%s\n%s\n%s\n%s\n%s\n%s",coordsstring1[0],coordsstring1[1],coordsstring1[2],coordsstring1[3],coordsstring1[4],coordsstring1[5],coordsstring1[6]);
    ShowPlayerDialog(playerid,DIALOG_STATS, DIALOG_STYLE_MSGBOX,"Deine Stats",string2,"Schließen","");


    Du hattest ja auch 3/4 der Änderungen nicht übernommen.
    Jetzt sollte es tun, einfach so einfügen.

    format(string2,sizeof(string2),"%s\n%s\n%s\n%s\n%s\n%s\n%s",coordsstring[0],coordsstring[1],coordsstring[2],coordsstring[3],coordsstring[4],coordsstring[5],coordsstring[6]);

    zu:
    format(string2,sizeof(string2),"%s\n%s\n%s\n%s\n%s\n%s\n%s",coordsstring2[0],coordsstring2[1],coordsstring2[2],coordsstring2[3],coordsstring2[4],coordsstring2[5],coordsstring2[6]);


    Was wird zuerst gesichert?
    Name oder das Alter?
    Stimmt der Name denn das Alter kann mehrfach enthalten sein


    Das muss nicht sein. Wenn er eine AUTO_INCREMENT ID verwendet, ist es völlig egal was wann gespeichert wird, weil die ID den Spieler repräsentiert, und in jedem Fall eindeutig ist. Da MySQL aber nicht case-sensitive ist, wird dem namen Jeffry die gleiche Reihe wie dem Namen "jeFFrY zugewiesen, was in einem Server doch etwas doof ist, wenn ich jedes mal irgendwie anders den Server betreten kann.
    Dennoch ist INSERT INTO hier richtig, denn ein Konto kann ja erst erstellt werden, wenn die Registration abgeschlossen ist, und das ist sie genau an diesem Punkt. Wird keine eindeutige ID verwendet, sollte man den Namen hier auch noch mit einfügen.

    format(query, sizeof query,"INSERT INTO accountdaten (pAlter) VALUES ('%i')", strval(inputtext));
    mysql_function_query(MySQLconnection,query, false, "","");
    format(string, sizeof string,#HTML_WEIS"Gut du bist also %i Jahre alt.\nDie Registrationsphase ist nun beendet.\nDu kannst nun spawnen und beginnen zu spielen.", strval(inputtext));


    Auch hier musst du strval benutzen, sonst geht es nicht.

    Ja, das musst du so weit hochsetzen, bis diese Stack-Header Warnung nicht mehr kommt. Ob das jetzt 100000 oder 25000 sind kann ich dir nicht sagen, das musst du probieren. Es kann aber ruhig mehr sein, nur übertreib es nicht, also nicht dass du da jetzt 1000000000 einträgst. ;)

    if(IsPlayerInRangeOfPoint(playerid,10.0,980,1699.68,-1796.45,13.62))
    zu:
    if(IsPlayerInRangeOfPoint(playerid,10.0,1699.68,-1796.45,13.62))


    Die 980 hatte da nichts zu suchen, das ist ja die Model ID.


    Ebenso hier:
    MoveObject(tor,980, 1699.68,-1796.45,13.62-10,5);
    zu:
    MoveObject(tor, 1699.68,-1796.45,13.62-10,5);

    Du musst diesen Wert eben hochsetzen, wenn diese Stack-Header Warnung kommt.
    Die Warnung darf man, entgegen mancher Aussagen, NICHT ignorieren, weil es zu z.T. schwerwiegenden Fehlern während der Laufzeit kommen kann, zum Beispiel habe ich es bei Tests gemerkt, dass Commands einfach nicht mehr aufgerufen worden sind, mit Erhöhen des dynamischen Wertes funktionierten sie wieder.
    Also bitte nicht ignorieren. :)

    eli:
    Das bedeutet, dass du einen extrem hohen Variablen-Verbrauch hast, einfach gesagt.


    Du kannst das umgehen, indem du eine andere "Grenze" definierst:
    #pragma dynamic 100000


    Das setzt du unter die include's.