[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
  • Wie kann ich mysql_pquery(Handle, "SELECT * FROM funkmast", "LoadFunkmast"); So umschreiben, dass er nur die erstellt, welche auch in der Datenbank sind ?
    Ich führe beim Laden ein Schleife mit maximaler Anzahl an Funkmasten aus. Möchte jedoch, dass er nur die erstellt, welche wirklich in der Datenbank stehen.

  • Hab einen Funktion, die über einen Timer aufgerufen wird.
    pTimerFS[playerid] = SetTimerEx("NextPruefung", 5000, 0, "i", playerid);


    .. und in diesem Timer einen Count, sprich ich möchte in dem Timer angeben, welcher Count aufgerufen werden soll. Wie funktioniert das?

    public NextPruefung(playerid, count)
    {
    KillTimer(pTimerFS[playerid]);
    switch(count)
    {
    case 0:
    case 1:
    }
    return 1;
    }

  • Bei meiner Fahrschule wollte ich gerne die Kamera an einer bestimmten Position haben, den Spieler eine Animation ausführen lassen (sitzen) und ihn zeitgleich freezen, sodass er nicht durch die Gegend laufen kann.
    Jedoch wird bei einem Freeze die Animation + Kamera ja abgebrochen.


    @Nemesus
    Hab es auf deinem Server damals gesehen, dass es möglich wäre. Wie funktioniert das genau? :)

    Einmal editiert, zuletzt von Speezy ()

  • Hey, kann mir jemand Helfen im Thema: Dynamisches ATM System ?
    Ich würde gerne die Einträge aus der Datenbank laden, weiß aber nun nicht wie.
    Da ich A: bei "OnGameModeInit" ja kein Aktiven cache habe und wenn ich es über Public machen würde, dann müsste ich ja zwei
    Schleifen verwenden, gibt es da noch eine andere möglichkeit ? Die vielleicht weniger "Leistung" bezieht?


    Mit freundlichen Grüßen,


    @Jeffry, @Kaliber, @TheOneBehindYou1


  • CMD:linie(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(Spieler[playerid][pJob] == 1)//Busfahrer
    {
    if(IsVehicleABus(vehicleid))
    {
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz.");
    strdel(DialogString, 0, sizeof(DialogString));
    strcat(DialogString, "Linie abbrechen\n\nLinie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7\nLinie 8: SF-LV, ab Skill 8");
    ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Beginnen", "Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Bus.");
    }
    }
    return 1;
    }


    Hey,


    ich habe eine Frage wen ich jetzt z.b eine Linie nehme und ich die Falsche ausgewählt habe das er ganz einfach /linie nochmal eingeben das die Linie abgebrochen wird wie mache ich das?




    der Code zum abbrechen:



    new vehicleid = GetPlayerVehicleID(playerid);
    Spieler[playerid][pBusTime] = 0;
    UnfreezePlayer(playerid);
    DisablePlayerCheckpointEx(playerid);
    if(listitem == 0)
    {
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
    Spieler[playerid][pBusLinie] = 0;
    return DisablePlayerCheckpointEx(playerid);
    }
    pUnixBus[playerid] = gettime();


    @Jeffry

  • das die Linie abgebrochen wird wie mache ich das?

    Kannst du bitte den Code von OnDialogResponse DIALOG_BUSFAHRER posten?


    Da ich A: bei "OnGameModeInit" ja kein Aktiven cache habe und wenn ich es über Public machen würde, dann müsste ich ja zwei
    Schleifen verwenden, gibt es da noch eine andere möglichkeit ? Die vielleicht weniger "Leistung" bezieht?

    Das Vorgehen dazu kannst du dir hier abschauen:
    [jTuT] Fraktions-Fahrzeug-System mit MySQL R39-5

  • Kannst du bitte den Code von OnDialogResponse DIALOG_BUSFAHRER posten?

    Das Vorgehen dazu kannst du dir hier abschauen:[jTuT] Fraktions-Fahrzeug-System mit MySQL R39-5

    Ich wollte



    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
    Spieler[playerid][pBusLinie] = 0;
    return DisablePlayerCheckpointEx(playerid);



    in /linie einbaun das der Spieler nicht extra in dialog das Linie abbrechen anklicken muss..





    case DIALOG_BUSFAHRER:
    {
    if(response)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    Spieler[playerid][pBusTime] = 0;
    UnfreezePlayer(playerid);
    DisablePlayerCheckpointEx(playerid);
    if(listitem == 0)
    {
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
    Spieler[playerid][pBusLinie] = 0;
    return DisablePlayerCheckpointEx(playerid);
    }
    pUnixBus[playerid] = gettime();
    if(listitem == 1) //Linie 1 LS
    {


    SetPlayerCheckpointEx(playerid, 1172.6979,-1825.4078,13.5033, 4.0, CP_BUSFAHRER_LINIE_1_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Busbahnhof Ost");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 1\nLS Stadtlinie 1");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 1;
    return 1;
    }
    if(listitem == 2) //Linie 2 LS
    {
    if(Spieler[playerid][pBusSkill] < 2)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 2.");
    return cmd_linie(playerid);
    }
    SetPlayerCheckpointEx(playerid, 1181.8607,-1736.2557,13.5038, 4.0, CP_BUSFAHRER_LINIE_2_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Busbahnhof Süd");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 2\nLS Stadtlinie 1");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 2;
    return 1;
    }
    if(listitem == 3) //Linie 3 LS
    {
    if(Spieler[playerid][pBusSkill] < 3)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 3.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid, 1172.6979,-1825.4078,13.5033, 4.0, CP_BUSFAHRER_LINIE_3_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Busbahnhof Ost");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 3\nLS Stadtlinie 3 (East)");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 3;
    return 1;
    }
    if(listitem == 4) //Linie 4 LS nach SF
    {
    if(Spieler[playerid][pBusSkill] < 4)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 4.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid, 1181.8607,-1736.2557,13.5038, 4.0, CP_BUSFAHRER_LINIE_4_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Busbahnhof Süd");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 4\nLS-SF");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 4;
    return 1;
    }
    if(listitem == 5) //Linie 5 SF nach LS
    {
    if(Spieler[playerid][pBusSkill] < 4)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 4.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid, -1988.8389,162.3712,27.6386, 4.0, CP_BUSFAHRER_LINIE_5_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: San Fierro Busbahnhof");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 5\nSF-LS");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 5;
    return 1;
    }
    if(listitem == 6) //Linie 6 SF Stadtlinie 1
    {
    if(Spieler[playerid][pBusSkill] < 6)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 6.");
    return cmd_linie(playerid);
    }
    SetPlayerCheckpointEx(playerid, -1988.9519,161.5845,27.6323, 4.0, CP_BUSFAHRER_LINIE_6_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: San Fierro Busbahnhof");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 6\nSF Stadtlinie 1");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 6;
    return 1;
    }
    if(listitem == 7) //Linie 7 SF Stadtlinie 2
    {
    if(Spieler[playerid][pBusSkill] < 7)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 7.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid,-1989.2382,161.6659,27.6346, 4.0, CP_BUSFAHRER_LINIE_7_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: San Fierro Busbahnhof");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 7\nSF Stadtlinie 2");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 7;
    return 1;
    }
    if(listitem == 8) //Linie 8 LS nach LV
    {
    if(Spieler[playerid][pBusSkill] < 7)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 7.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid,1181.7701,-1796.8571,13.4986, 4.0, CP_BUSFAHRER_LINIE_8_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Los Santos Busbahnhof");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 8\nLS-LV");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 8;
    return 1;
    }
    if(listitem == 9) //Linie 9 LV nach LS
    {
    if(Spieler[playerid][pBusSkill] < 7)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Linie ist ab Skill-Stufe 7.");
    return cmd_linie(playerid);
    }


    SetPlayerCheckpointEx(playerid,2829.6907,1298.7361,10.8744, 4.0, CP_BUSFAHRER_LINIE_9_1, CP_TYPE_BUS);
    SendVehicleMessage(vehicleid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Las Venturas Busbahnhof");
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Linie 9\nLV-LS");
    Spieler[playerid][pBusID] = vehicleid;
    Spieler[playerid][pBusLinie] = 9;
    return 1;
    }
    }
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • CMD:linie(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(Spieler[playerid][pJob] == 1)//Busfahrer
    {
    if(IsVehicleABus(vehicleid))
    {
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz.");
    strdel(DialogString, 0, sizeof(DialogString));
    strcat(DialogString, "Linie abbrechen\n\nLinie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7\nLinie 8: SF-LV, ab Skill 8");
    ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Beginnen", "Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Bus.");
    }
    }
    return 1;
    }



    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
    Spieler[playerid][pBusLinie] = 0;
    return DisablePlayerCheckpointEx(playerid);



    das möchte ich einbauen wen er nochmal /linie einbaut das die linie dann automatisch abgebrochen wird.

  • CMD:linie(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(Spieler[playerid][pJob] == 1)//Busfahrer
    {
    UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
    Spieler[playerid][pBusLinie] = 0;
    DisablePlayerCheckpointEx(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Die aktuelle Fahrt wurde beendet.");
    if(IsVehicleABus(vehicleid))
    {
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz.");
    strdel(DialogString, 0, sizeof(DialogString));
    strcat(DialogString, "Linie abbrechen\n\nLinie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7\nLinie 8: SF-LV, ab Skill 8");
    ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Beginnen", "Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Bus.");
    }
    }
    return 1;
    }

  • Hallo ich hab eine Frage



    der Cooldown fängt bei 90 an ist er bei 1 angekommen -1 Wanted dann fängt es von 60 an immer -30 sek Pro wanted Höchster Cooldown 15 Sekunden alle 15 sek wird 1 Wanted gehackt
    Kosten kann mit /fee 1-250 eingestellt werden
    Hackradius blau makiert 1km



    wie lasse ich das abfragen?


    also es soll kein Befehl geben sobald man in den 1 km radios drinnen ist soll es automatisch anfangen zum hacken.
    sofern einer im car ist mit Wanteds.


    und mit /fee 1-250
    soll man einstellen können (leader) wieviel man bekommt pro Wanted hacken


    @Jeffry

  • Bei meiner Fahrschule wollte ich gerne die Kamera an einer bestimmten Position haben, den Spieler eine Animation ausführen lassen (sitzen) und ihn zeitgleich freezen, sodass er nicht durch die Gegend laufen kann.
    Jedoch wird bei einem Freeze die Animation + Kamera ja abgebrochen.

    Schau dir mal die Funktion [wiki]ApplyAnimation[/wiki] genauer an ;)


    C
    ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)
    playerid Die ID des Spielers, der die Animation ausführen soll.


    animlib[] Der Name der Bibliothek der Animation.


    animname[] Der Name der Animation.


    fDelta Die Geschwindigkeit der Animation.


    loop 1, um die Animation wiederholen zu lassen, 0, um sie nur ein Mal abzuspielen.


    lockx 0, um den Spieler auf die ursprüngliche X-Position zurückzubringen, nachdem die Animation fertig ist. 1 bewirkt das Gegenteil.


    locky 0, um den Spieler auf die ursprüngliche Y-Position zurückzubringen, nachdem die Animation fertig ist. 1 bewirkt das Gegenteil.


    freeze 0, um den Spieler nach der Animation wieder frei beweglich zu machen, 1, um ihn am Ende der Bewegung "einzufrieren".


    time Länge der Animation in Millisekunden. Wird 0 angegeben, hört die Animation nicht von selbst auf.


    forcesync 1, um die Animation mit allen Spielern zu synchronisieren (in allen Instanzen) (optional).


    Mit freundlichen Grüßen
    German_ScripterHD

  • Guten Abend,
    ich habe ein Problem mit meinen Eintrag und der Datenbank.
    Ich lasse in der Datenbank was eintragen aber die Datenbank erstellt dann Falsch mit der ID, habt ihr eine Idee wieso?



    case DIALOG_ADMIN_CREATE:
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: // *** Bankautomat
    {
    new Float:Pos[4], query[256];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetPlayerFacingAngle(playerid, Pos[3]);
    for(new i = 0; i < MAX_ATMS; i++)
    {
    if(ATMInfo[i][aErstellt] == true)continue;
    ATMInfo[i][aErstellt] = true;
    ATMInfo[i][aX] = Pos[0];
    ATMInfo[i][aY] = Pos[1];
    ATMInfo[i][aZ] = Pos[2];
    ATMInfo[i][aA] = Pos[3];
    ATMInfo[i][aObject] = CreateDynamicObject(2942, Pos[0], Pos[1], Pos[2]-0.5, 0, 0, Pos[3]);
    mysql_format(Handle, query, sizeof(query), "INSERT INTO `ATMs` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%i', '%f', '%f', '%f', '%f')", i, Pos[0], Pos[1], Pos[2], Pos[3]);
    mysql_tquery(Handle, query);
    SendClientMessage(playerid, -1, ""#FARBE_GELB"Du hast einen Bankautomat erstellt!");
    return 1;
    }
    }
    }
    }
    }


    Bild aus der Datenbank:
    datenbank.PNG


    Bild von der Datenbank wo die IDs falsch ist. (1, 2, 51?)
    eintrag.PNG

  • Hey! Ich hätte da mal eine Frage und zwar; Wenn man mit dem MTA Mapping Editor mappt kann man ja eine Scale (größe) für das Object setzten. Nun ist meine Frage; Kann man das dann am Ende auch in die Tat umsetzten? Also beim Scripten? Wäre nett wenn mir jemand Antwort und eventuell zugleich (wenn es Möglich ist) die Lösung hier schreibt.

  • Hey! Ich hätte da mal eine Frage und zwar; Wenn man mit dem MTA Mapping Editor mappt kann man ja eine Scale (größe) für das Object setzten. Nun ist meine Frage; Kann man das dann am Ende auch in die Tat umsetzten? Also beim Scripten? Wäre nett wenn mir jemand Antwort und eventuell zugleich (wenn es Möglich ist) die Lösung hier schreibt.

    Nicht möglich, außer für Objekte die du an den Spieler attachst.


    Mit freundlichen Grüßen
    JustMe.77 8)