Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hi hab ein Probelm.

    Ganz oben :

    PAWN-Quellcode

    1. new fall2obj[9];


    PAWN-Quellcode

    1. ocmd:fall2(playerid,params[])
    2. {
    3. fall2(); //zeile 42
    4. new string[126];
    5. new adminname[MAX_PLAYER_NAME];
    6. GetPlayerName(playerid, adminname, sizeof(adminname));
    7. format(string, sizeof(string), "EVENT: Admin: %s hat die Fall2 Map geladen.", adminname);
    8. SendClientMessageToAll(COLOR_ORANGE, string);
    9. SendClientMessage(playerid, COLOR_ORANGE, "FALL-EVENT: Um das Fall Event zu Starten benutze /fall2start");
    10. SendClientMessage(playerid, COLOR_ORANGE, "FALL-EVENT: Um das Fall Event zu Stopen benutze /fall2stop");
    11. return 1;
    12. }
    Alles anzeigen


    PAWN-Quellcode

    1. stock fall2()
    2. {
    3. fall2obj[0] = CreateObject(19356, -1068.8114, -996.6095, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    4. SetObjectMaterial(fall2obj[0], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    5. fall2obj[1] = CreateObject(19356, -1068.8114, -999.7996, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    6. SetObjectMaterial(fall2obj[1], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    7. fall2obj[2] = CreateObject(19356, -1068.8114, -993.3997, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    8. SetObjectMaterial(fall2obj[2], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    9. fall2obj[3] = CreateObject(19356, -1072.3127, -993.3997, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    10. SetObjectMaterial(fall2obj[3], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    11. fall2obj[4] = CreateObject(19356, -1072.3127, -996.5997, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    12. SetObjectMaterial(fall2obj[4], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    13. fall2obj[5] = CreateObject(19356, -1072.3127, -999.7997, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    14. SetObjectMaterial(fall2obj[5], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    15. fall2obj[6] = CreateObject(19356, -1075.8040, -999.7997, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    16. SetObjectMaterial(fall2obj[6], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    17. fall2obj[7] = CreateObject(19356, -1075.8040, -996.5900, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    18. SetObjectMaterial(fall2obj[7], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    19. fall2obj[8] = CreateObject(19356, -1075.8040, -993.3901, 143.3839, 0.0000, 90.0000, 0.0000); //wall004
    20. SetObjectMaterial(fall2obj[8], 0, 1649, "wglass", "carshowwin2", 0x00000000);
    21. }
    Alles anzeigen


    Fehler code:

    PAWN-Quellcode

    1. C:\Users\*********\Desktop\SAMP *********\*********Server\filterscripts\*********.pwn(42) : error 029: invalid expression, assumed zero
    2. C:\Users\*********\Desktop\SAMP *********\*********Server\filterscripts\*********.pwn(42) : error 029: invalid expression, assumed zero
    3. C:\Users\*********\Desktop\SAMP *********\*********Server\filterscripts\*********.pwn(42) : error 001: expected token: ")", but found ";"
    4. C:\Users\*********\Desktop\SAMP *********\*********Server\filterscripts\*********.pwn(42) : fatal error 107: too many error messages on one line
    5. Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
    6. 4 Errors.

    Beitrag von iTsRooT ()

    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 ?


    PAWN-Quellcode

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

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von iTsRooT () aus folgendem Grund: hi

  • C-Quellcode

    1. public fall2bewegen()
    2. {
    3. new r = random(FALL2O);
    4. if(IsValidObject(fall2obj[r]))
    5. {
    6. MoveObject(fall2obj[r],x,y,z,speed);
    7. SetTimerEx("@dFall2",1000*3,0, "i",r);
    8. }
    9. }
    10. @dFall2(i);@dFall2(i) {
    11. DestroyObject(fall2obj[i]);
    12. return 1;
    13. }
    Alles anzeigen
    Oder du nutzt OnObjectMoved für eine präzisere Zeitbestimmung.


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • iTsRooT schrieb:

    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:

    forum.sa-mp.com/showthread.php?t=519790
    forum.sa-mp.com/showthread.php?t=239465
    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 :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Kaliber schrieb:

    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.

    Quellcode

    1. var = gettime() + 60 * 60;
    youtube.com/channel/UC5TZUUd86…AZ4dYQ?view_as=subscriber

    Biete Scripting Service an bei Interesse ->Pn
    Verkaufe Selfmade Script bei Interesse -> Pn

  • reaL. schrieb:

    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 :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • 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

    Quellcode

    1. format(string, sizeof(string), "uc_%d", GetVehicleModel(UnterInfoc[b][Unternehc_car]));
    2. return UnterInfoc[i][string] ; //Hier gibt er ein Fehler
    youtube.com/channel/UC5TZUUd86…AZ4dYQ?view_as=subscriber

    Biete Scripting Service an bei Interesse ->Pn
    Verkaufe Selfmade Script bei Interesse -> Pn
  • reaL. schrieb:

    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-Quellcode

    1. stock const uc[211] = {
    2. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,..
    3. };
    Dann kannst du das direkt nutzen:


    PAWN-Quellcode

    1. new modelid = GetVehicleModel(UnterInfoc[b][Unternehc_car]);
    2. if(modelid == 0) return 0; //Kein gültiges Model
    3. 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 ^^


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • {"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^^
  • Kaliber schrieb:

    Ehh kannst du das Enum dazu zeigen? ^^

    Und wie du die Zonen dann erstellst? :D

    C-Quellcode

    1. enum e_GangWar{
    2. warZoneName[30],
    3. Float:warZoneMinX,
    4. Float:warZoneMinY,
    5. Float:warZoneMaxX,
    6. Float:warZoneMaxY,
    7. Float:warFlagX1,
    8. Float:warFlagY1,
    9. Float:warFlagZ1,
    10. Float:warFlagX2,
    11. Float:warFlagY2,
    12. Float:warFlagZ2,
    13. Float:warFlagX3,
    14. Float:warFlagY3,
    15. Float:warFlagZ3,
    16. warBelohnungType,
    17. warBelohnungVar,
    18. warOwner,
    19. warReady,
    20. warAttacker,
    21. warZoneID,
    22. Text:warDraw[14],
    23. warOwnerScore,
    24. warAttackerScore,
    25. warTime,
    26. warStarted,
    27. Text3D:WarLabel[3],
    28. warPickup[3],
    29. warCaptureTime[3],
    30. warCapturedFlags[3]
    31. };
    Alles anzeigen
  • C-Quellcode

    1. {"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
    2. {"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
    3. {"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
    4. {"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
    5. {"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
    6. {"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
    7. {"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ß)
    8. {"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
    9. {"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.
  • Dr. Frauenarzt schrieb:

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

    PAWN-Quellcode

    1. 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

    PAWN-Quellcode

    1. minX = -1943.8967
    2. minY = -2551.4695,
    3. maxX = -2279.9031
    4. 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 :)


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