[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
  • Oder liegt es evtl. an meinem Code?

    Ja, du nutzt mehrmals die random Funktion...dadurch verändern sich die Koordinaten ^^


    C
    new Float:X = float(random(floatround(dmZone[i][maxX]) - floatround(dmZone[i][minX])) + floatround(dmZone[i][minX]));
    new Float:Y = float(random(floatround(dmZone[i][maxY]) - floatround(dmZone[i][minY])) + floatround(dmZone[i][minY]));
    new Float:Z;
    MapAndreas_FindZ_For2DCoord(X, Y, Z);
    SetPlayerPos(playerid, X, Y, Z);

    ast2ufdyxkb1.png


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


  • if(fVehicle[fV][vehFraktion] == 3)
    {
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    if(fVehicle[fV][vehFraktion] == 3){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 6){ //Funktioniert nicht
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 1){
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);
    }
    }
    }
    SetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);
    SetTimerEx("SetVehicleZAngle", 5000, 0, "dd", fVehicle[fV][vehID], fVehicle[fV][vehPosA]);
    }
    return 1;
    }


    Hey wen ich für Fraktion ID 3 ein Sultan erstelle wird die Sirene drauf gemacht.
    Wen ich für die Fraktion ID 6 ein Sultan erstelle wird die Sirene nicht drauf gemacht.


    @Kaliber

  • if(fVehicle[fV][vehFraktion] == 3){if(GetVehicleModel(fVehicle[fV][vehID]) == 560){if(fVehicle[fV][vehFraktion] == 3){fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);}}else if(fVehicle[fV][vehFraktion] == 6){ //Funktioniert nichtif(GetVehicleModel(fVehicle[fV][vehID]) == 560){fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);}}else if(fVehicle[fV][vehFraktion] == 1){if(GetVehicleModel(fVehicle[fV][vehID]) == 560){fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);}}}SetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);SetTimerEx("SetVehicleZAngle", 5000, 0, "dd", fVehicle[fV][vehID], fVehicle[fV][vehPosA]);}return 1;}


    Hey wen ich für Fraktion ID 3 ein Sultan erstelle wird die Sirene drauf gemacht.
    Wen ich für die Fraktion ID 6 ein Sultan erstelle wird die Sirene nicht drauf gemacht.


    @Kaliber


    if(GetVehicleModel(fVehicle[fV][vehID]) == 560)
    {
    if(fVehicle[fV][vehFraktion] == 3 || fVehicle[fV][vehFraktion] == 6)
    {
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    else if(fVehicle[fV][vehFraktion] == 1)
    {
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);
    }
    }


  • format(string, sizeof(string), "Im Jackpot befinden sich %d$.\nHeute ist die Gewinnernummer %d.", Others[Lotto], lottonumber);
    SendClientMessageToAll(COLOR_WHITE, string);


    Hey,


    Ich hab versucht \n ~n~ das die Heute ist die Gewinnernummer %sd. in die Nexte zeile angezeigt wird warum nimmt er das nicht?

  • format(string, sizeof(string), "Im Jackpot befinden sich %d$.\nHeute ist die Gewinnernummer %d.", Others[Lotto], lottonumber);SendClientMessageToAll(COLOR_WHITE, string);


    Hey,


    Ich hab versucht \n ~n~ das die Heute ist die Gewinnernummer %sd. in die Nexte zeile angezeigt wird warum nimmt er das nicht?

    Musst du wohl oder übel zwei Nachrichten verschicken, die Zeichen funktionieren nämlich bei SendClientMessageToAll() nicht.

  • Musst du wohl oder übel zwei Nachrichten verschicken, die Zeichen funktionieren nämlich bei SendClientMessageToAll() nicht.


    format(string, sizeof(string), "Im Jackpot befinden sich %d$.", Others[Lotto]);
    format(string, sizeof(string), "Heute ist die Gewinnernummer %d.", lottonumber);
    SendClientMessageToAll(COLOR_WHITE, string);


    meinst du so? oder muss ich das SendClientMessageToAll(COLOR_WHITE, string); ein zweites mal einfügen?

  • Du beendest mit dem format, die Nachricht wird nicht gesendet.
    Mache es so:
    if(GetMoney(playerid) < 2000)
    {
    format(string, sizeof(string), "Du benötigst 2000$ um ein Ticket zu kaufen. Jackpot: %d$", Others[Lotto]);
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }


  • CMD:sup(playerid, params[])
    {
    new input[90], string[128];
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pAdmin] > 0)return SendClientMessage(playerid, COLOR_GREY, "Der Befehl ist nicht für Team Mitglieder gedacht.");
    if(sscanf(params, "s[90]", input))return SendClientMessage(playerid, COLOR_GREY, "Benutze /sup [Nachricht]");
    new bool:isOnline;
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i) && Spieler[i][pLoggedIn])
    {
    if(Spieler[i][pAdmin] > 0)
    {
    isOnline = true;
    }
    }
    }
    if(!isOnline)
    {
    SendClientMessage(playerid, COLOR_GREY, "Derzeit ist kein Team Mitglied online.");
    return 1;
    }
    // CREATE SUPPORT TICKET
    if(GetTicketCount() > MAX_REPORTS)return SendClientMessage(playerid, COLOR_GREY, "Die Team Mitglieder haben momentan zuviele Tickets. Schreibe in einigen Minuten ein neues Ticket!");
    if(Spieler[playerid][pReportAktiv] != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist bereits in einem aktiven Report oder hast ein Ticket erstellt!");
    SendClientMessage(playerid, COLOR_GREEN, "Du hast ein Support-Ticket abgeschickt. Bitte gedulde dich nun einen moment.");
    format(string, sizeof(string), "%s hat ein Support-Ticket erstellt! (/areport)", GetName(playerid));
    SendAdminMessage(COLOR_GREEN, string);
    format(string, sizeof(string), "Support-Ticket: "COLOR_HEX_WHITE"%s", input);
    SendClientMessage(playerid, COLOR_GREEN, string);
    Spieler[playerid][pReportAktiv] = 1;
    new ticket = GetFreeTicket();
    gSupport[ticket][ticketCreated] = true;
    format(gSupport[ticket][ticketMessage], 90, input);
    gSupport[ticket][ticketSender] = playerid;
    gSupport[ticket][ticketAdmin] = INVALID_PLAYER_ID;
    gSupport[ticket][ticketType] = 1;
    format(string, sizeof(string), "Offene Tickets: ~g~%d", GetTicketCount());
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsLoggedIn(i))
    {
    if(Spieler[i][pAdminDuty] == 1)
    {
    PlayerTextDrawSetString(i, pTextSupport[i][2], string);
    }
    }
    }
    return 1;
    }




    Ich wollte fragen wie man das ändert also man erstellt per /sup ein Ticket.
    so wen das Ticket angenommen wird das man auch per /sup antworten kann genauso wie der admin /sup schreiben kann mit den Spieler


    derzeit antwortet man mit also "T" kommt das Kästchen wo man Befehle eingibt so wen man antworten möchte !TEXT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wie kann ich hier optionale Parameter einfügen?

    Code
    new vId, col1=-1, col2=-1, sirene=0;
    
    
    if(sscanf(params, "dDDD", vId, col1, col2, sirene)) return SendClientMessage(playerid, COLOR_RED, "Verwende: /aveh [Fahrzeug ID] [Farbe 1(Optional)] [Farbe 2(Optional)] [Sirene (Optional)]");

    Hab irgendwo gelesen das es optional ist wenn man das "d" einfach groß schreibt. Jedoch ist in diesem Fall nur der letzte Parameter optional.

  • Hey! Da bei diesem "Befehl" sowieso nur Zahlen angegeben werden müssen /- dürfen ist es hier nicht nötig "d" zu verwenden. "i" ist hierbei die richtige Verwendung.


    Code
    new vId, col1= 0, col2= 0, sirene=0;
    
    
    if(sscanf(params, "iiii", vId, col1, col2, sirene)) return SendClientMessage(playerid, COLOR_RED, "Verwende: /aveh [Fahrzeug ID] [Farbe 1(Optional)] [Farbe 2(Optional)] [Sirene (Optional)]");

    Ich hoffe ich konnte dir weiterhelfen.


    Mit freundlichen Grüßen
    Paymon

  • @Infra und dieses "k<vehicle>" funktioniert automatisch?
    Weil auf der englischen Seite hab ich dazu sowas gefunden:

    Kann man damit eigene definieren?
    Und der für <vehicle> existiert so schon?

  • weiß jemand wie man ein Aktivitätsbonus macht. Z.b


    Tag 1 1000$ usw.


    Der Aktovitäts bonus soll nicht weiter laufen wen er ESC ist.


    Man soll jeden Tag 2 Stunden maximal spielen.
    Wen man ein tag nicht online ist wird das wider resettet.


    Heißt


    Du hast den Aktivitätsbonus noch nicht erhalten ( Tag 1)


    Du hast bereits den Aktivitätsbonus erhalten (tag 1)


    DER Aktivitäts Bonus wurde zurückgesetzt weil du dich nicht eingeloggt hast.


    Mit /activity soll man sehn wielang er online ist und wv Minuten noch bis zum bonus sind.


    Wen er den bonus bekommt:


    Du hast den Aktivitätsbonus erhalten (.....) egal ob geld oder rp


    E:
    Würde mich sehr freuen mit jemand helfen kann :)

  • @Dr. Frauenarzt
    Du speicherst in der Datenbank einen Timestamp (gettime()) wann er zuletzt den Bonus bekommen hat. Dann noch eine Variable in der steht wie oft er den Bonus schon in Folge bekommen hat. Und dann musst du nurmehr regelmäßig prüfen ob der letzte Bonus zwischen 24 und 48 Stunden her ist. Wenn ja erhält er den nächsten Bonus. Wenns früher ist kann er noch keinen erhalten weil er ihn schon hatte. Und wenns später ist wird der Zähler resettet und er bekommt wieder den ersten Bonus.


    Hoffe das hilft dir n bisschen.
    Ps.: Wenn du noch möchtest das er ihn an jedem Tag einmal erhält (egal ob das letzte mal um 8 Uhr abends war und er jetzt schon um 14 Uhr online ist) dann musst du über getdate den Tag speichern und kannst dann zusätzlich zu der überprüfung ob es unter 24 Stunden her ist eine überprüfung ob es noch der gleiche Tag ist hinzufügen bzw in dem Fall ob es nichtmehr der gleiche Tag ist aber unter 24 Stunden her ist.


    Mfg

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