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

  • Neu

    Sieht echt schon gut aus.. wie kann ich mehrere einfügen habe das so gemacht:

    PAWN-Quellcode

    1. if(Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 12 || Spieler[playerid][pFraktion] == 13)

    PAWN-Quellcode

    1. new model = (Spieler[playerid][pFraktion] == 9) ? 18659 : 18667 : 18663 : 18665;



    Oder geht das nicht?
  • Neu

    Hallo, folgendes Problem:
    Mit diesem Befehl wird eine Liste aufgelistet, welche Fraktionsfahrzeuge alles abgeschleppt sind. Das Problem was sich mir jetzt stellt ist, dass ich nicht genau weiß, wie ich abfrage, auf welches Fahrzeug er geklickt hat, um so weitere Informationen zu übergeben.

    Quellcode

    1. CMD:freefraccar(playerid, params[])
    2. {
    3. new string[256], dialog[526], vehicleName[30], cars;
    4. if (!PlayerInfo[playerid][pFraktion]) return SendClientMessageEx(playerid, COLOR_GRAD1, "Du gehörst keiner Fraktion an.");
    5. if (PlayerInfo[playerid][pFraktion] >= 1 && PlayerInfo[playerid][pFraktion] <= 7) return SendClientMessageEx(playerid, COLOR_GRAD1, "Fahrzeuge deiner Fraktion können nicht abgeschleppt werden.");
    6. string = "";
    7. dialog = "";
    8. format(string, sizeof(string), "Fahrzeug\tKosten\n");
    9. strcat(dialog, string);
    10. for (new fV; fV < MAX_FVEHS; fV ++)
    11. {
    12. if (fVehicle[fV][vehFraktion] == PlayerInfo[playerid][pFraktion])
    13. {
    14. if (Vehicle[fVehicle[fV][vehID]][vehAbgeschleppt] == 1)
    15. {
    16. format(vehicleName, sizeof(vehicleName), "%s", VehicleName[GetVehicleModel(fVehicle[fV][vehID])-400]);
    17. TowedInfo[playerid][tListItem][cars];
    18. TowedInfo[playerid][tVehID][cars] = fVehicle[fV][vehID];
    19. TowedInfo[playerid][tCarPrice][cars] = fVehicle[fV][vehAbgeschlepptPrice];
    20. format(TowedInfo[playerid][tCarName][cars], 30, "%s", vehicleName);
    21. format(TowedInfo[playerid][tCarPolite][cars], 25, "%s", fVehicle[fV][vehAbgeschlepptPreis]);
    22. format(TowedInfo[playerid][tTowedDate][cars], 15, "%s", fVehicle[fV][vehAbgeschlepptDatum]);
    23. format(string, sizeof(string), "{FF0000}%s\t%d$\n", vehicleName, fVehicle[fV][vehAbgeschlepptPrice]);
    24. strcat(dialog, string);
    25. cars ++;
    26. }
    27. }
    28. }
    29. if (!cars) return SendClientMessageEx)playerid, COLOR_GRAD1, "Es sind keine Fraktionsfahrzeuge abgeschleppt.");
    30. if (cars) ShowPlayerDialog(playerid, DIALOG_FREEFRAKCAR, DIALOG_STYLE_TABLIST_HEADERS, "Verwahrstelle", dialog, "Befreien", "Abbruch");
    31. return 1;
    32. }
    Alles anzeigen

    Beitrag von Nima.Yaghobi ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Neu

    Fernandez_ schrieb:

    auf welches Fahrzeug er geklickt hat, um so weitere Informationen zu übergeben.
    In OnDialogResponse:

    PAWN-Quellcode

    1. new count;
    2. for (new fV; fV < MAX_FVEHS; fV ++)
    3. {
    4. if (fVehicle[fV][vehFraktion] == PlayerInfo[playerid][pFraktion])
    5. {
    6. if (Vehicle[fVehicle[fV][vehID]][vehAbgeschleppt] == 1)
    7. {
    8. if(count == listitem)
    9. {
    10. //Fahrzeug fV wurde angeklickt.
    11. break;
    12. }
    13. count++;
    14. }
    15. }
    16. }
    Alles anzeigen
  • Neu

    PAWN-Quellcode

    1. C:\Users\Patrick\Desktop\Reallife Script\gamemodes\German.pwn(2775) : error 001: expected token: ";", but found ":"
    2. C:\Users\Patrick\Desktop\ Reallife Script\gamemodes\German.pwn(2775) : error 029: invalid expression, assumed zero
    3. C:\Users\Patrick\Desktop\Reallife Script\gamemodes\German.pwn(2775) : warning 215: expression has no effect
    4. C:\Users\Patrick\Desktop\Reallife Script\gamemodes\German.pwn(2775) : error 001: expected token: ";", but found ":"
    5. C:\Users\Patrick\Desktop\Reallife Script\gamemodes\German.pwn(2775) : fatal error 107: too many error messages on one line


    PAWN-Quellcode

    1. if(Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 12 || Spieler[playerid][pFraktion] == 13)
    2. {
    3. new model = (Spieler[playerid][pFraktion] == 9) ? 18659 : 18667 : 18663 : 18665; //Fehler Zeile


    Weiß jemand warum habe mehrere Fraktionen Eingetragen aber irgendwie klappt das nicht so...
  • Neu

    Dr. Frauenarzt schrieb:

    Weiß jemand warum habe mehrere Fraktionen Eingetragen aber irgendwie klappt das nicht so...
    Schreib es so:

    C-Quellcode

    1. new model;
    2. switch(Spieler[playerid][pFraktion])
    3. {
    4. case 9: model = 18659;
    5. case 10: model = 18667;
    6. case 12: model = 18663;
    7. case 13: model = 18665;
    8. }


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

    Beitrag von Baduv ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: rausgefunden ().
  • Neu

    Fernandez_ schrieb:

    Einer eine Ahnung, warum das nicht klappt?

    PAWN-Quellcode

    1. #include "\source\libraries\includes.pwn"


    Struktur unter Gamemodes:
    source -> libraries -> darin die includes.pwn
    Wo genau ist der Ordner? Im includes Ordner?
    Das erste \ ist unnötig, und du kannst einfach normale / verwenden.

    Also so:

    PAWN-Quellcode

    1. #include "source/libraries/includes.pwn"
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Ich biete auch einen Scripting Service an: Scripting Service

    Konversation: Konversation starten

    Discord: LeonMrBonnie#2251


  • Neu

    Fernandez_ schrieb:

    LeonMrBonnie schrieb:

    Dann so:

    PAWN-Quellcode

    1. #include "../gamemodes/source/libraries/includes.pwn"

    Du musst die Datei aber zu .inc umbenennen, da man keine .pwn includen kann.
    Klappt trotzdem nicht. Btw, man kann .pwn verwenden, hatten wir damals bei Arcadia-Life auch.
    Also ich habs bei mir so:

    PAWN-Quellcode

    1. #include "../gamemodes/sources/includes"

    Und das funktioniert.
    Ich denke mal man kann nur .inc verwenden, weiß nicht wie du .pwn verwendest hast.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Ich biete auch einen Scripting Service an: Scripting Service

    Konversation: Konversation starten

    Discord: LeonMrBonnie#2251

  • Neu

    Hab es jetzt. Jetzt aber mal zu einer anderen Frage. Ich lagere wirklich alle Möglichkeiten aus dem Hauptgamemode aus, um diese auf einzelne Dateien zu verteilen, da mir dieser Style besser gefällt.

    PAWN-Quellcode

    1. #include "../gamemodes/source/libraries/includes.pwn"//Alle Includes, die der Server verwendet
    2. #include "../gamemodes/source/libraries/colors.pwn"//Alle SA:MP Color sowie HTML Color Codes
    3. #include "../gamemodes/source/libraries/dialogs.pwn"//Alle Dialoge, die der Server verwendet
    4. //Functions - (Funktionen)
    5. #include "../gamemodes/source/functions/mysql.pwn"//Aufbau der MySQL Verbindung &' MySQL Verbindungsdaten
    6. #include "../gamemodes/source/functions/settings.pwn" //Einstellungen, mit denen der Server hochgefahren wird
    7. #include "../gamemodes/source/functions/setup.pwn" //Funktion, um den Server einzurichten


    Sagen wir, ich möchte jetzt in der mysql.pwn die Gamemode Funktion OnGameModeInit ansprechen. Damals hatte ich es so geregelt, dass ich in der mysql.pwn einen forward erstelle, beispielweise MySQL_OnGameModeInIt(); und diese Funktion in den Hauptgamemode unter OnGameModeInit einbinde. Das gefällt mir aber nicht so.

    Ist es möglich, die Funktion in der mysql.pwn so zu schreiben, dass ich keine Eintragung im Hauptgamemode vornehmen muss, damit diese Funktion beispielweise aufgerufen wird?
    @Kaliber
    @Jeffry

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fernandez_ ()

  • Neu

    Verstehe das noch nicht so ganz. Dann muss ich dennoch in den Hauptgamemode unter OnGameModeInit Code schreiben, oder?

    Zumindest ist das mein Output.

    PAWN-Quellcode

    1. //For more info on ALS Hooking check
    2. //http://forum.sa-mp.com/showthread.php?t=85907
    3. //--------------OnGameModeInit Hook-------------------
    4. public OnGameModeInit()
    5. {
    6. //your OnGameModeInit pre code here
    7. //function hook checks
    8. if (funcidx("mysql_OnGameModeInit") != -1)
    9. {
    10. return CallLocalFunction("mysql_OnGameModeInit", "");
    11. }
    12. //your OnGameModeInit post code here
    13. return 1;
    14. }
    15. #if defined _ALS_OnGameModeInit
    16. #undef OnGameModeInit
    17. #else
    18. #define _ALS_OnGameModeInit
    19. #endif
    20. #define OnGameModeInit mysql_OnGameModeInit
    21. forward mysql_OnGameModeInit();
    Alles anzeigen
  • Neu

    Fernandez_ schrieb:

    Verstehe das noch nicht so ganz. Dann muss ich dennoch in den Hauptgamemode unter OnGameModeInit Code schreiben, oder?

    Zumindest ist das mein Output.

    PAWN-Quellcode

    1. //For more info on ALS Hooking check//http://forum.sa-mp.com/showthread.php?t=85907//--------------OnGameModeInit Hook-------------------public OnGameModeInit(){//your OnGameModeInit pre code here//function hook checksif (funcidx("mysql_OnGameModeInit") != -1){return CallLocalFunction("mysql_OnGameModeInit", "");}//your OnGameModeInit post code herereturn 1;}#if defined _ALS_OnGameModeInit#undef OnGameModeInit#else#define _ALS_OnGameModeInit#endif#define OnGameModeInit mysql_OnGameModeInitforward mysql_OnGameModeInit();

    Nimm lieber y_hooks.

    github.com/pawn-lang/YSI

    ysi.wikia.com/wiki/Library:YSI%5Cy_hooks#y_hooks