Beiträge von IPrototypeI

    das objekte die über MoveObject oder MoveDynamicObject bewegt werden. Die Heißluftballons kannst du mappen, jedoch bewegen sich diese nicht
    du kannst sie auch individuell beweg bar machen in dem du OnPlayerKeyStateChange und dem object floats dazu rechnen lässt

    wenn du es ausließt fragst dann die variabel ab bei OnPlayerSpawn


    beispiel

    if(SpielerInfo[playerid][pStadt] == 1){ SetPlayerPos....}
    else if(SpielerInfo[playerid][pStadt] == 2){ SetPlayerPos....}


    etc

    Das was du da machen willst nennt man ein Textdraw am besten erstellst du dir deine Boxen und eine Schrift mit einem Textdraweditor
    http://forum.sa-mp.com/showthread.php?t=290640


    Für den Text welcher drinne steht ersetzen wir durch einen string also einen formatieren Text
    new string{128],pName[MAX_PLAYER_Name];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(string,sizeof(string,"Name: %s~n~Kills: %d~n~Deaths: %d...",pName,etc...);


    bei bsp;


    Name = TextDrawCreate(-10.000000, -10.000000, string);


    bei ... darfst selbst bissle weiter machen und beim ende des strings wo ... steht dort gibst bitte deine definitionen für die varaibeln ein die du gespeichert hast


    anzeigen lässt über
    http://wiki.sa-mp.com/wiki/TextDrawShowForPlayer
    .....

    Wie sieht eiegentlich deine MYSQL Datenbank aus im bezug zu den floats.
    und warum erstellst du für alle paar zeilen eine einzelnes query füg das doch zusammen.
    und du könntest mal weiter probleme auslesen per OnQueryError und das mal in der console printen lassen


    //edit da du ihrgend was falsch formatiert hast

    Deine Designs find ich bis auf paar kleinigkeiten sehr gut gemacht.
    Was mein ich mit Kleinigkeiten und zwar zum beispiel bei deinem neuen Design
    der footer find ich mit der abrundung nicht so passend aber das ist alles geschmacksache

    stock IsViewInRangeOfPoint(playerid, Float: r, Float: x, Float: y, Float: z)
    {
    new Float:GP[3], GPCFV[3], Float: Output[3];
    const Float: weite = 5.0;
    GetPlayerCameraPos(playerid, GP[0], GP[1], GP[2]);
    GetPlayerCameraFrontVector(playerid, GPCFV[0], GPCFV[1], GPCFV[2]);
    Output[0] = GP[0] + floatmul(GPCFV[0], weite);
    Output[1] = GP[1] + floatmul(GPCFV[1], weite);
    Output[2] = GP[2] + floatmul(GPCFV[2], weite);
    if((Output[0] - x)*(Output[0] - x) + (Output[1] - y)*(Output[1] - y) <= r*r && Output[2] <= z)return 1;
    else return 0;
    }




    stock IsPlayerInRangeOfPoint(playerid, Float: radius, Float:X, Float:Y, Float:Z)
    {
    new Float:pxx,Float:pxy,Float:pxz;
    GetPlayerPos(playerid,pxx,pxy,pxz);
    if((pxx - X)*(pxx - X) + (pxy - Y)*(pxy - Y) <= radius*radius && pxz <= Z)return 1;
    else return 0;
    }


    Also die obere ist meine eigenen Funktion mit der es möglich ist zu überprüfen ob der spieler in einen bestimmten punkt rein schaut von einer entfernung von 5.0
    längeneinheiten welche ich mir zurecht geschrieben habe für mein feuerwehrsystem welches ich momentan mache ist jedoch noch nicht getestet jedoch geh ich mal
    davon aus das diese funktioniert da der IsPlayerInRangeOfPoint stock auch funktioniert

    Naja in dem du dir ein load und save funktion schreibst ^^ aber ich geh mal davon aus das dir sowas auch bewusst ist
    1. Solltest du dich mal mit mysql ein wenig auseinander setzen
    ich empfehle dir das tutorial
    [ SCRIPTING ] [Aktualisiert]Registersystem mit MySQL ( Enum!! + GUI )
    es bassiert zwar auf einem Accountsystem jedoch per sscanf kannst du die daten schneller auslesen.


    so würde das in etwas bei dir aussehen das ist ein beispiel wo ich mal für einen gemacht habe der ein problem bei seinem autosystem hatte ein ausschnitt
    stock Autosladen()
    {
    new Query[1024], id, i = 0;
    format(Query, sizeof(Query), "SELECT * FROM autos4");
    mysql_query(Query);
    mysql_store_result();
    while(mysql_fetch_row_format(Query,"|"))
    {
    id = i;
    sscanf(Query, "p<|>e<is[25]iiiffff>", VehicleInfo[id]);
    new Color1 = random(126); new Color2 = random(126);
    CreateVehicle(VehicleInfo[id][Model],VehicleInfo[id][Pos][X],VehicleInfo[id][Pos][Y],VehicleInfo[id][Pos][Z],VehicleInfo[id][Pos][R],Color1,Color2, 60*10000);
    i++;
    printf("%d",VehicleInfo[id][Model]);
    }
    }


    und du kannst dir auch das ganze mal anschauen da Vincent mal ein Mysql Haussystem erstellt hatte

    ich empfehl dir per IsNumeric(inputtext) abzufragen ob er nur zahlen eintippt und
    noch mit strval(inputtext) ob das eingezahlt höher ist als das was der spieler auf der hand hat .


    Dann ziehst du dem spieler einfach den wert ab mit GivePlayerMoney(playerid) -= geld;


    und erhöhst das konto


    new stand = GetPVarInt(playerid,"Konto");
    new geld = strval(inputtext);
    SetPVarInt(playerid,"Konto",stand+geld);

    könntest du erstmal vllt kurz schildern welche version du verwendest und wie du ihn eingebaut hast


    http://www.file-upload.net/dow…4621285/streamer.rar.html


    die drawdistanz kannst du auch einstellen


    CreateDynamicObject(978, -2033.50, -142.90, 35.20, 0.00, 0.00, 119.99,-1,-1,-1,500);
    native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
    also hier als beispiel 500

    Also ich habe den Timer Health von OnPlayerLogin entfernt und den
    Account Update timer nun geht es einiges besser aber es gibt immer noch kleine Laggs
    das heißt nicht mehr so extrem aber z.b wenn ich in den ooc chat schreibe kommt die nachricht erst sagen wir 10 bis 20 sekunden
    später meinst du es liegt immer noch an den timers oder einfach an mysql sowie wir es gemacht haben beim reggen?


    das mitm R7 Plugin verstehe ich überhaupt nicht kriege es gerade mal so hin es zumachen so wie maddin es sagte :S


    Hm also mit dem rc 7 plugin da könnte ich dir sogar ein beispiel geben falls du daran interesse hättest aber wie schon LeijaT gesagt hast
    kannst es verteilen oder dir noch einen zweiten Thread aufbauen.


    //edit


    wann genau entstehen nun die laggs

    das heißt es laggt übelst wegen den Timer? also den einfach entfernen?
    und was meinst du mit MYSQL ist nicht so eine gute variante ich habe gehört dies so die Schellste File Speicherung sein?
    daswegen benutze ich es eig nur ansonsten hätte ich Dini weiter benutzt.


    Nee da hast mich ihrgend wie falsch verstanden ^^.


    Alsozum Thema Mysql wenn du ladst und speicherst werden querys augeführt und diese werden 1 nach dem anderen abgearbeitet
    und daher kommt das das mysql laggt


    genauer siehe hier [ SCRIPTING ] [MySQL] OnQueryFinish - Performance verbessern!

    Also du weisst bestimmt das man verschiedene möglichkeiten hat mit mysql zu arbeiten und um die abfragen zu optimieren ein beispiel wäre auch die benutzung
    von sscanf mit mysql. So aber zu dem Thema Mysql Rc 7 plugin was ich empfehle.
    Da fallen einige probleme weg welche man mit dem vorgängern hatte ( die laggs).


    speed siehe


    http://forum.sa-mp.com/showpost.php?p=1827054&postcount=6


    With mysql_fetch_row, no caching


    1. mysql_fetch_row calls took 3065 milliseconds


    2. sscanf (parsing) took 27ms in total (500 calls to function)


    3. the rest of the house loading code took 129ms (irrelevant)


    Total: 3221ms




    With caching


    1. cache functions (loading and parsing) took 166ms


    2. the rest of the house loading code took 108ms (irrelevant)


    Total: 274ms


    //edit


    @ Quini ja entfern mal die timer ob es sich bessert