[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich kann es auch nur abschätzen. Probieren musst du es selbst.


    Du nimmst einfach die erste Koordinate, machst die +50 und schreibst das als erstes bei TextDrawTextSize hin. Als zweites dann 20 oder so.


    TextDrawTextSize(Textdraw1 , 375.666656, 20.0);


    Das ist eben eine Probiererei.

  • Mahlzeit zusammen, ich stehe mal wieder etwas auf dem Schlauch. Ich möchte ganz gerne wenn ein Fahrzeug explodiert, dass dieses an einer bestimmten Stelle spawnt und nicht am normalen Spawnort. So sieht es in etwa aus:


    forward vehicledeath(vehicleid);


    public OnVehicleDeath(vehicleid, killerid){
    SetTimer("vehicledeath",5000,false);
    return 1;
    }


    public vehicledeath(vehicleid){
    SetVehiclePos(vehicleid, 1171.9113,1333.4581,10.5169);
    SetVehicleHealth(vehicleid, 400.0);
    }


    Nun ist halt das Problem, dass die vehicleid von OnVehicleDeath nicht in die public-Funktion vehicledeath übertragen wird. Wie würdet ihr das lösen? Ansonsten würde ich eine neue Variable erstellen namens "lastvehicledeath" oder so und würde darin die vehicleid speichern und dann bei vehicledeath auslesen. Gibt es eine andere Lösung? Danke!

    Trancebase, Dreamweaver und ab geht die Uzi.

  • Danke dafür!


    Eigentlich bin ich ja nicht so einer der sich alles erbettelt sondern versucht es erst selbst, aber bei meinem jetzigen Vorhaben habe ich leider überhaupt keine Erfahrung. Und ich glaube Du lauerst schon auf die nächste Frage hier im Thread, oder Jeffry? :D


    Also: Ich möchte ganz gerne beim OnGameModeExit alle Vehicle-Positions in der Datenbank aktualisieren. Sprich ich benötige eine Schleife, die jedes einzelne Vehicle aufruft, die Vehicle-Position abfragt und diese wiederrum in der Datenbank speichert. Leider sind Schleifen für mich in pawno neu, in PHP würde ich das noch hinbekommen.


    Wenn Dir gerade langweilig ist, magst Du mir vielleicht ein kleines Example schreiben? Würde mich freuen.


    Und noch was: Wann wird OnGameModeExit aufgerufen? Nur beim GMX oder auch wenn ich die Konsole schließe? Ich danke dir vielmals. :)


    //EDIT:


    Warte mal, ich glaube ich habe meine Frage schon selbst beantwortet:


    for(new i=1;i<=MAX_VEHICLES;i++)
    {
    DestroyVehicle(i);
    }


    Habe ich gerade gefunden. So werden alle Vehicles entfernt. Damit werde ich wohl weiterkommen :P


    //EDIT2:


    So, leider habe ich nun folgendes Problem: Wenn ich /test eingebe werden alle Fahrzeuge in der Datenbank geupdated. Schön und gut, jedoch haben dann alle Fahrzeuge die gleiche Position. Und zwar die Position vom letzten DB-Eintrag. Zum Glück bin ich Profi und hab mir vorher ein Backup von der Tabelle gemacht. :P


    if(strcmp(cmdtext, "/test", true) == 0)
    {
    for(new i=1;i<=MAX_VEHICLES;i++){
    new query[128], Float:vehx, Float:vehy, Float:vehz, Float:angle;
    GetVehiclePos(i, vehx, vehy, vehz);
    GetVehicleZAngle(i, angle);
    format(query, 128, "UPDATE `vehicles` SET `posx` = '%f', `posy` = '%f', `posz` = '%f', `floatx` = '%f' WHERE `id` = '%i'", vehx, vehy, vehz, angle, i);
    mysql_query(query);
    }
    return 1;
    }


    Jemand eine Idee?

    Trancebase, Dreamweaver und ab geht die Uzi.

    Einmal editiert, zuletzt von crs0r ()

  • Kurze frage zu switch case und checkpoints.


    wieso kann icht checkpoints im switch case nicht nutzen ? Müsste ich die cp variablen mit const deklarieren ?



    public OnPlayerEnterDynamicCP(playerid, checkpointid)
    {
    switch(checkpointid)
    {
    case LVPDEntryECP: // error 008: must be a constant expression; assumed zero
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid,289.5062,170.0043,1007.1794);
    SetPlayerFacingAngle(playerid,12.2594);
    SetCameraBehindPlayer(playerid);
    }
    }
    }
    }


  • In switch und case können nur fest vorgegebene Werte geprüft werden.


    Variable Werte, wie sie in normalen Variablen zu finden sind, können so nicht geprüft werden.
    const wird dir auch nicht helfen, da du const nur zur Initialisierung einen Wert geben kannst.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Bin gerade am überlegen, welche Variante besser ist:


    switch(listitem){
    case 0: {
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 1. Listitem geklickt!");
    }
    case 1: {
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 2. Listitem geklickt!");
    }
    case 2: {
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 3. Listitem geklickt!");
    }
    }


    if(listitem == 0){
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 1. Listitem geklickt!");
    }
    if(listitem == 1){
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 2. Listitem geklickt!");
    }
    if(listitem == 2){
    SendClientMessage(playerid,deine_farbe,"Du hast auf das 3. Listitem geklickt!");
    }
    Habe die beiden Varianten aus einem Dialogtut her. Was meint ihr? Also ich würde zweiteres vorziehen da übersichtlicher. Oder gibt es hier sogar funktionelle Unterschiede?

    Trancebase, Dreamweaver und ab geht die Uzi.

  • Die "switch & case"-Variante läuft schneller als die If-Variante. Natürlich bemerkst du das bei den 3 Abfragen nicht.
    Letztendlich ist das deine Entscheidung.

  • Abend,
    Bekomme bei folgendem Code den Fehler: Error 050: invalid range


    Habe das bereits gegoogelt; keine Lösung gefunden.



    Hoffe, man kann das lesen. Handykamera ist innen dreckig, komm ich nicht zum saubermachen drann.


    Der Fehler wird in dem zentrierten Codeblock ausgegeben.


    - raven
    # handy