Beiträge von IPrototypeI

    Warum willst du denn eine 100HP Anzeige?
    Ein Auto hat nun mal 1000HP.


    Kann er doch machen 100 Prozent nun gut ^^ einfach durch 10 teilen :D
    und das


    g~%.0f"


    in

    g~%.2f" oder je nach dem wie viele nach koma stellen man haben will selbst abändern


    zum Tacho generel benutz doch bitte PlayerTextdraws und dort nicht das array vergessen es geht zwar auch ohne jedoch kann das skript bei mehreren textdraws mit der
    id durcheinander kommen und nicht alle Textdraws in PlayerTextdraws umändern sondern nur die , die sich verändern.
    und bei public SpeedoUpdate() bitte eine Abfrage noch rein hauen ob der spieler überhaupt in einem auto ist beziehungsweise ob er überhaupt fährt je nach dem was man will.

    So sollte es gehen ich bin generel kein freund dieser funktionen , welche maddin gepostet hatte in seinen Tutorial


    stock LoadFrakCars()
    {
    new Query[128], v;
    mysql_query("SELECT * FROM `frakcars`");
    mysql_store_result();
    while(mysql_fetch_row_format(Query))
    {
    sscanf(str, "p<|>e<-i{i}iffffii>", FrakCarInfo[v]);
    FrakCarInfo[v][fcVehid] = CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1);
    v++;
    }
    mysql_free_result();
    return print("Fraktionsautos geladen");
    }


    Du benötigst das sscanf plugin


    //edit hab nun den richtige sscanf abfolge noch hinzugefügt die genau das tut was sie soll :D
    also an fcVehid keinen wert übergeben und einen Wert überspringen, den aus der datenbank also die id

    Danke falls es ihrgend welche unklarheiten geben sollte können auch gerne Fragen gestellt werden.


    um einen teil zu korrigieren switch ist in Pawn schneller als else if
    In C++ ist das nicht so das sind else if abfragen schneller als switch jedoch ist beides nicht so schnell wie der Ternäre Operator

    Arbeite dabei mit Timestamps entweder du speicherst das als integer ab also die zahl die du per gettime zurück bekommst und dazu deine 7 tage addierst
    und beim auslesen abgleichst oder du machst das ganze per mysql oder du arbeitest direkt mit mysql mit der DATE_ADD funktion beim auslesen kannst du entweder
    ein query senden um das zu überprüfen wo du als zweite where clausel schaust ob das jetzige datum geringer ist als das in der datenbank wird ein eintrag gefunden
    so wird dir der wert zurück gegeben wenn nicht bleibt dieser 0.


    SQL
    WHERE DATE(`tabellename`) > NOW()


    jedoch denk ich das geht auch alles per mysql dennoch weiß ich dies nicht

    Du nutzt mehr als 92 Textdraws ? Dafuq


    http://wiki.sa-mp.com/wiki/Limits


    Wenn ja musste mal nach einem Streamer ausschau halten ^^

    92 ist das limit an textdraws die du auf einmal anzeigen lassen kannst.
    2048 Serverseitige Textdraws kannst du erstellen und Spielertextdraws
    256 das bedeutet du kannst das limit der 2048 Globalentextdraws mit den Spielertextdraws umgehen
    Da ja die Playertextdraws ein clientseitigen streamer integriert haben.



    Wenn ja musste mal nach einem Streamer ausschau halten


    Es gibt kein Textdrawstreamer


    //edit korrektur


    X(


    Wozu brauch ich für einen Spieler beim laden eine While schleife?
    Ich seh da kein sinn


    Beim auslesen der daten des spielers macht es ja auch kein sinn eine for , while , do-while oder sonst eine schleifenform zu verwenden.


    du hast nur eine anspielung auf die while schleife gemacht


    Zitat

    die while funktion würd ich nicht anwenden, da bei mir gerne der Server verreckt wenn ich das mit ner while funktion mache


    und das man so die daten eines Spielers ausließt ist ja schon von vorne herrein klar das man das nicht macht daher habe ich mich ja generel
    auf die while schleife bezogen ohne den übrigen teil zu beachten wo du das element aus seinem Tutorial zitierst.


    for(new i; ;++i ){
    if(!mysql_fetch_row(str))break;
    sscanf(str, "e<p<|>{i}s[16]s[24]s[130]iiifff>",SpielerInfo[i]);
    }

    Mal so eine Frage warum müsst ihr hier immer unnötiges Zeug rein posten , wenn ihr sowieso keine ahnung habt ?



    enum GPSA
    {
    A_ID,
    veh_ID,
    Float:X,
    Float:Y,
    };
    new GPSArrow[MAX_PLAYERS][GPSA];



    stock SetArrowPos(playerid,vehicleid,objectid,Float:X, Float:Y){
    new Float: Pos[3];
    GetVehiclePos(vehicleid, Pos[0], Pos[1],Pos[2]);
    return AttachPlayerObjectToVehicle(playerid,objectid, vehicleid, 0.0, 0.0, 1.5, 0.0, 90.0, (90 - atan2(Pos[0] - X, Pos[1] - Y)));
    }


    So hier bitte die positionen für den ort wo der spieler hin fahren will übergibst du an das array als auch das Spielerobjekt und die Fahrzeugid welches du für den Spieler erstellst dann kannst du die funktion bei OnPlayerUpdate aufrufen oder schiebst es in einen anderen timer rein. Nicht vergessen auch die werte wieder zurück zu setzen.


    if(GPSArrow[playerid][A_ID] != 0)SetArrowPos(playerid,GPSArrow[playerid][veh_ID] ,GPSArrow[playerid][A_ID],GPSArrow[playerid][X] ,GPSArrow[playerid][Y]);

    Benutz dazu das streamer plugin und die funktion
    CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);


    und das mit dem damage machst du ganz einfach so das du dies bei OnPlayerTakeDamage abfrägst oder OnPlayerGiveDamage das ist dir überlassen


    ahja hau am besten die Zonen in ein array :D da sparst dir zeilen und arbeit beim hinzufügen neuer zonen.


    und ein tipp zu den Zonen die du mit CreateDynamicRectangle erstellst die musst du auch aktivieren mit TogglePlayerAllDynamicAreas oder TogglePlayerDynamicArea je nach dem was du willst am besten nach dem laden deines accountes


    maddin änder das doch mal bei gelegenheit
    die while funktion würd ich nicht anwenden, da bei mir gerne der Server verreckt wenn ich das mit ner while funktion mache^^


    So geht es auch:
    mysql_fetch_row(str);
    sscanf(str, "e<p<|>{i}s[16]s[24]s[130]iiifff>",SpielerInfo[playerid]);


    wenn du nicht kompetent genug dazu bist eine while schleife zu verwenden geht das auch per for-schleife, aber von der geschwindigkeit sollte in dem fall sogar
    die while schleife schneller sein


    for(new i; mysql_fetch_row(str) == 0; ++i)


    oder


    for(new i; ;++i ){
    if(!mysql_fetch_row(str))break;
    sscanf(str, "e<p<|>{i}s[16]s[24]s[130]iiifff>",SpielerInfo[i]);
    }


    Von wem willst du den Account Checken?


    mysql_CheckAccount(playerid)


    Was du hier schreibst macht im zusammengang zu dem befehl keinen Sinn um einen spieler zu entbannen gibt man ja am besten die spielerid ein obwohl der spieler ja nichtmal online sein kan Super Sach [ironie]


    du hast bestimmt die funktion von maddin benutzt dort ist der erste parameter für integer gedacht du willst jedoch einen string weiter geben daher auch dann
    bei der Funktion
    mysql_CheckAccount(name[]){


    }

    Es ist trotzdem ein normaler Code der zwar auch nützlich ist, aber du schreibst hier ja jetzt auch nicht rein das man SpawnPlayer benutzen kann, ist genauso nützlich aber Standard. Desweiteren sollte man auch bei einem Beispiel korrekten Code benutzen.


    Trotzdem sollte der hier gepostete Code auch einen sinn haben entweder hilfreich sein oder belehrend ( was nicht zum basis wissen gehört)


    wie zum beispiel mann muss nicht umbedingt ++i oder i++ | --i oder i-- verwenden das ganze kann auch per bitshifting gehen


    for(new i; i < 10000; i <<= 1)

    ne erstmal ohne schwimm soll nur echt aussehen ;) danke dir schonmal in voraus :thumbup:


    Du kannst die objekte um einer wasserfläche weg mappen beispiel LS ballas base oder in der nähe der Kirche in Ls da du darin schwimmen kannst.
    Die Tiefe ist nahezu unbegrenzt.


    ja der fügt alles wieder erneut zusammen
    und ja ich hab MSG_STRING für den einen Platzhalter vergessen ahja für result der string würde überschrieben werden daher gleich den wert an eine variabel weiter geben



    new result[MAX_PLAYER_NAME],var,MSG_STRING[400];
    mysql_query("SELECT `Name`, `Admin` FROM `accounts` WHERE `Admin` > 0")
    mysql_store_result()
    while(mysql_retrieve_row()){
    mysql_fetch_field_row(result,"Admin"), var= strval(resultnumber);
    mysql_fetch_field_row(result,"Name");
    format(MSG_STRING,400"%s%s: Adminlevel %d\n",MSG_STRING,result,var);
    }

    Kann mir jemand den Namen von der Brücke in SF sagen, also die Rote, brauche es als .dff model und den namen davon :)


    Das bekommst du ganz leicht raus auch mit dem map construction mappingtool


    der name steht bei model es sind die modelle


    ggbrig_01_sfw.dff bis ggbrig_07_sfw.dff


    gg_split1_sfw.dff , gg_split2_sfw.dff


    lod_lopolbrij1.dff