[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
  • Hmm keine Ahnung was du da machst, aber an dem Code liegt es nicht.


    Ich kann ihn ohne Probleme compilen.


    Klammer die Zeile mal aus, geht es dann?

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von Maho ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Doppelpost ().
  • ja jetzt gehts wenn es ausgeklammert ist


    //edit geht jetzt komisch habe nix geändert wenn ich weiß woran es lag schreibe ich es hier rein.


    //Edit


    Wie kann ich machen das sich das object erst bewegt und nach 3 sekunden löscht ?




    public fall2bewegen()
    {
    if(IsValidObject(fall2obj[random(FALL2O)]))
    {
    hier soll es sich erst bewegen mit MoveObject und nach 3 sekunden löschen aber genau dieses object was im Random genommen wurde
    DestroyObject(fall2obj[random(FALL2O)]);
    }
    }

    Du willst mich kennenlernen? Kauf mein Buch, Bia*ch!


    Einmal editiert, zuletzt von Maho () aus folgendem Grund: hi

  • Oder du nutzt OnObjectMoved für eine präzisere Zeitbestimmung.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Gibt es eine Möglichkeit das sich die Objekte unter stock fall2 erstellen in dem er die map unter scriptfiles ausliest?

    Natürlich, dafür gibt es sogar schon Includes:


    https://forum.sa-mp.com/showthread.php?t=519790
    https://forum.sa-mp.com/showthread.php?t=239465
    https://forum.sa-mp.com/showthread.php?t=176461


    Aber generell rate ich dir davon ab, da das sehr rechenintensiv ist.


    Wenn du die Maps schon alle hast, kannst du diese auch in ein Include packen und dann in der Funktion fall2 nur die Funktion aus dem Include aufrufen, die das dann alles erstellt.
    Dann kannst du es auch kontrolliert wieder löschen etc.


    Das ist im einiges effizienter und einfacher :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Das ist nicht soo leicht und je nach Anwendungsfall würde ich da anders vorgehen.


    Kannst du uns ein wenig Code zeigen, wie du das bisher machst?


    Dann kann man dir evtl besser zeigen, wie es auszusehen hat ^^

    Habs anders gelöst :D



    Aber eine andere frage.
    Ich habe ein System wo ich ( z.b in 60 Minuten ) etwas Passieren lasse und es wie Folgt gemacht.
    Nun habe ich vor dass man dies auch Mittendrin verlängern kann bloß da weiß ich nicht wie ich das mache.

    Code
    var = gettime() + 60 * 60;
  • Nun habe ich vor dass man dies auch Mittendrin verlängern kann bloß da weiß ich nicht wie ich das mache.

    Ganz einfach, der Timer prüft jede Sekunde, ob (gettime() < var) ist.


    Wenn das so ist, kann der Timer gelöscht werden und das Event ausgeführt werden.


    Und um das zu verlängern, machst du einfach var += 60*5; Das wären jetzt nochmal 5 Minuten extra, bevor das Event ausgelöst wird :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Das hat Funktioniert, habs das auch so Ausprobiert war bloß bisschen verwirrt gewesen was mir ausgegeben wurde von TimeStampToDate.


    Mal eine frage
    Ich habe eine Varraible in einem Enum z.b uc_411 was für die Internus ID steht.
    Gibt es eine Möglichkeit ein String in einem Enum zu Verwenden ?
    Ich wollte das hier machen aber das Funktioniert nicht.
    Ich hoffe ihr versteht was ich vor habe

    Code
    format(string, sizeof(string), "uc_%d", GetVehicleModel(UnterInfoc[b][Unternehc_car]));
    return UnterInfoc[i][string] ; //Hier gibt er ein Fehler
  • Ich hoffe ihr versteht was ich vor habe

    Ja, aber so geht das nicht.


    Wenn du Eigenschaften an die modelids der Fahrzeuge knüpfen magst, musst du ein Array für alle erstellen.
    Zum Beispiel:


    C
    stock const uc[211] = {
        1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,..
    };

    Dann kannst du das direkt nutzen:



    new modelid = GetVehicleModel(UnterInfoc[b][Unternehc_car]);
    if(modelid == 0) return 0; //Kein gültiges Model
    return uc[modelid-400]; //Für Infernus würde 11 zurückgegeben werden, da 411-400 = 11 ist und das der Wert im Array gerade ist


    Falls du aber nur bestimmte Informationen für bestimmte Modelids speichern magst, sagen wir es gibt nur Infernus oder was anderes, kannst du auch über switch/case oder einfache if-Abfragen bestimmte Werte für die jeweilige Modelid einfach zurückgeben.


    Es kommt darauf an, was du machen magst, das sagst du nicht direkt ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • {"Kleines Frachtschiff", -1480.8,1470.8, -1342.4,1517.6, -1464.9314, 1489.7552, 8.2578, -1369.5643, 1489.4977, 11.0391, 1434.4052, 1489.0123, 1.8672, 0, 5000},
    {"El Quebrados", -1679.8,2455.9, 1254.5, 2758.0, -1515.3817, 2534.1997, 55.6875, -1480.7784, 2625.8945, 58.7813, 1299.9275, 2506.2488, 86.9799, 1, 2000}




    Was mache ich da Falsch die Zwei gebiete die komisch lang und groß sind^^

  • Ehh kannst du das Enum dazu zeigen? ^^


    Und wie du die Zonen dann erstellst? :D

  • C
    {"TROLOLO",-2989.536,-2942.825,-2989.536,-2942.825,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0 ,0,0},//zone zum entbuggen der zone 1
    	{"Playa Del Seville", 2700.9, -1890.0, 2830.4,-2020.3, 2743.2251, -1944.1409, 17.3203, 2795.2485, -1944.6350, 17.3203, 2769.6355, -1944.9102, 13.3770, 0, 5000}, //Funktioniert nicht
    	{"Las Colinas", 2383.5, -1062.9, 2645.5, -913.6, 2457.5811, -960.2296, 80.0848, 2579.3096, -962.1602, 81.3516, 2503.8743, -1023.1802, 70.0859, 1, 2000}, //Funktioniert
    	{"Bauernhof", 889.3,-437.6, 1160.6,-251.8, 1023.7870,-370.6768,73.6379, 1032.4221,-299.1335,73.9922, 1107.4480,-309.2968,73.9851, 0, 5000}, //Funktioniert
    	{"Angel Pine", -1943.8967,-2551.4695, -2279.9031,-2222.6743, -2060.4712,-2520.6755,30.4219, -2198.0098,-2260.0271,30.6558, -2163.2393,-2387.4541,30.6250, 1, 2000}, //Funktioniert Nicht
    	{"The Panaopticon", -407.7,-219.2, -606.0,-14.9, -442.2260,-64.6266,59.0742, -563.9421,-74.5615,64.1928, -535.2014,-176.9257,78.4047, 0, 5000}, //Funktioniert Nicht
    	{"Grosses Frachtschiff", 2508.9,1542.3, -2304.7,1565.3, -2313.8044,1545.3721,18.7734, -2374.7720,1551.4169,2.1172, -2474.0291,1548.7952,33.2273, 1, 2000}, //Funktioniert nicht (Gebiet zu Groß)
    	{"Kleines Frachtschiff", -1480.8,1470.8, -1342.4,1517.6, -1464.9314, 1489.7552, 8.2578, -1369.5643, 1489.4977, 11.0391, 1434.4052, 1489.0123, 1.8672, 0, 5000}, //Funktioniert
    	{"El Quebrados", -1679.8,2455.9, 1254.5, 2758.0, -1515.3817, 2534.1997, 55.6875, -1480.7784, 2625.8945, 58.7813, 1299.9275, 2506.2488, 86.9799, 1, 2000} //Funktioniert (Gebiet aber zu Groß)


    Habe mir nochmal alle angeschaut und getestet teilweise funktionieren Sie.
    Habe mal die Makiert die mir sagen das ich in keinen Gebiet sei.

  • und getestet teilweise funktionieren Sie.

    Das liegt daran, dass bei einigen die Koordinaten richtig angeordnet sind und bei den Anderen nicht.


    minX, minY, maxX, maxY


    Das bedeutet, dass minX < maxX sein muss.


    Ich denke das ist klar.


    Bei dir ist das aber nicht immer der Fall.


    Zum Beispiel Angel Pine, da haben wir



    minX = -1943.8967
    minY = -2551.4695,
    maxX = -2279.9031
    maxY = -2222.6743

    Aber -1943.8967 < -2279.9031 stimmt nicht!


    Der min Wert ist größer als der max Wert...daas kann nicht sein ^^ Hier muss ein Fehler sein :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • "Angel Pine", -2279.9031, -1943.8967, -2279.9031, -2222.6743, -2060.4712, -2520.6755, 30.4219, -2198.0098, -2260.0271, 30.6558, -2163.2393, -2387.4541, 30.6250, 1, 2000},


    Habe ich jetzt angepasst, nun zeigt er mir garkein Ganggebiet an. Der Vorige Code war eins da :/

  • -2279.9031, -1943.8967, -2279.9031, -2222.6743

    Schau mal genau auf die Koordinaten, da kamst du wohl durcheinander mit dem kopieren.


    Du hast plötzlich 2x die selbe minX und maxX Koordinate ^^


    So sollte das aussehen...


    -2279.9031, -2551.4695, -1943.8967, -2222.6743

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Jou Danke hab mir das schon zuhilfe genommen:


    https://dev.prineside.com/gtasa_gangzone_editor/


    Funktioniert eigentlich das simpel aber habe folgendes Problem:


    Er gibt mir die Kordis bei der ein Zone So aus:


    -1630, 2503.666664123535, -1363, 2715.666664123535


    Aber beim Compeilen sagt er mir:



    C:\Users\User\Desktop\Reallife\Reallife Script\gamemodes\German.pwn(451) : warning 213: tag mismatchC:\Users\User\Desktop\Reallifen\Reallife Script\gamemodes\German.pwn(451) : warning 213: tag mismatch


    Fehler Zeile:


    {"El Quebrados", -1630, 2503.666664123535, -1363, 2715.666664123535, -1515.3817, 2534.1997, 55.6875, -1480.7784, 2625.8945, 58.7813, 1299.9275, 2506.2488, 86.9799, 1, 2000},


    Noch dazu kommt die Kordis sind ja sehr sehr lang kann man die nicht iwie kürzen?