[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
  • Will einen Blitzer machen der auch Punkte und Bußgeld automatisch ausgibt aber wie genau berechnet man das z.b pro zu schnellen Km/h 100$ Bußgeld und alle 5Km/h 1 Punkt, also kann mir momentan nichts vorstellen wie ich anfangen kann Tutorials finde ich auch keine.


    Also habe angefangen so einen 50er Blitzer schon einmal zu machen aber irgendwie weiß ich nicht wie ich vorgehen soll das ist so falsch kriege auch errors wegen der Abfrage ob er in einem Auto ist was auch falsch gemacht war habe extra Fahrzeuge gemacht die Blitzbar sind:





    Blitzer:


    1633.10706, -1737.88904, 12.547
    1641.25098, -1726.88403, 12.547


    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Hay,


    Undzwar habe ich eine Frage...
    Beim VRL-Script kann man ein Gangfight nur in der Nähe von einer Flagge starten.... Ich wollte aber das Gangfight System ohne Flaggen nutzen und nur auf Kills basieren sowie, dass man ein Gangfight starten kann, sobald man in der Zone ist.
    Würde mir jemand helfen wie ich das einrichten kann?
    Code zu /gangfight ist ebenfalls angehangen.

    CMD:gangfight(playerid)
    {
    new string[128], gwzone = GetPlayerGangzone(playerid), gangs = 0;
    if(!IsGang(Spieler[playerid][pFraktion]))return SendClientMessage(playerid, COLOR_GREY, "Du gehörst keiner Gang/Mafia an.");
    if(Spieler[playerid][pRank] < 5)return SendClientMessage(playerid, COLOR_GREY, "Gangfights können erst ab Rang 5 gestartet werden.");
    if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du darfst dich in keinem Fahrzeug befinden.");
    if(gwzone == -1)return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keiner Gangfight Zone.");
    if(GangFight[gwzone][warOwner] == Spieler[playerid][pFraktion])return SendClientMessage(playerid, COLOR_GREY, "Dieses Gebiet gehört bereits deiner Fraktion.");
    if(GangFight[gwzone][warAttacker] == Spieler[playerid][pFraktion])return SendClientMessage(playerid, COLOR_GREY, "Deine Fraktion greift dieses Gebiet bereits an.");
    if(GangFight[gwzone][warTime] != 0 || GangFight[gwzone][warAttacker] != 0 ||GangFight[gwzone][warStarted] != 0)return SendClientMessage(playerid, COLOR_GREY, "Dieses Gebiet wird bereits umkämpft.");
    if(IsPlayerInRangeOfPoint(playerid, 5.0, GangFight[gwzone][warFlagX1], GangFight[gwzone][warFlagY1], GangFight[gwzone][warFlagZ1]) ||
    IsPlayerInRangeOfPoint(playerid, 5.0, GangFight[gwzone][warFlagX2], GangFight[gwzone][warFlagY2], GangFight[gwzone][warFlagZ2]))
    {
    if(GWisStarted4Fraktion[Spieler[playerid][pFraktion]] == 1)return SendClientMessage(playerid, COLOR_GREY, "Deine Fraktion bekämpft bereits ein Gebiet.");
    if(GWisStarted4Fraktion[GangFight[gwzone][warOwner]] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Besitzer ist bereits in einem Gangfight.");
    if(GangFight[gwzone][warOwner] == 0)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsLoggedIn(i))
    {
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][0]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][1]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][2]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][3]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][4]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][5]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][6]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][7]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][8]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][9]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][10]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][11]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][12]);
    TextDrawHideForPlayer(i,GangFight[gwzone][warDraw][13]);
    GameTextForPlayer(i,"~g~GEBIET EINGENOMMEN",4000,5);
    }
    GangFight[gwzone][warOwner] = Spieler[playerid][pFraktion];
    GangFight[gwzone][warAttacker] = 0;
    GangFight[gwzone][warAttackerScore] = 0;
    GangFight[gwzone][warOwnerScore] = 0;
    GangFight[gwzone][warStarted] = 0;
    GangZoneShowForAll(GangFight[gwzone][warZoneID], GetZoneColor(Spieler[playerid][pFraktion]));
    return 1;
    }
    }
    }
    for(new a=0;a<GetMaxPlayers();a++)
    {
    if(IsLoggedIn(a))
    {
    if(Spieler[a][pFraktion] == GangFight[gwzone][warOwner])
    {
    gangs++;
    }
    }
    }
    if(gangs < 1)return SendClientMessage(playerid, COLOR_GREY, "Es müssen mindestens 1 Gegner online sein.");
    if(GangFight[gwzone][warReady] > 0)
    {
    format(string, sizeof(string), "Dieses Gebiet hat noch eine Sperre von %d Minuten.", (GangFight[gwzone][warReady]/60));
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }
    format(string, sizeof(string), "Ein Gangfight von %s gegen %s (%s) wurde gestartet.", GetFraktionName(Spieler[playerid][pFraktion]), GetFraktionName(GangFight[gwzone][warOwner]), GangFight[gwzone][warZoneName]);
    for(new a=0;a<GetMaxPlayers();a++)
    {
    if(IsLoggedIn(a))
    {
    if(Spieler[a][pFraktion] == 3 || Spieler[a][pFraktion] == 5 || Spieler[a][pFraktion] == 8 || Spieler[a][pFraktion] == 9)
    {
    SendClientMessage(a, COLOR_ORANGE, string);
    }
    }
    }
    format(string, sizeof(string), "%s hat ein Gangfight (%s) gegen euch gestartet.", GetFraktionName(Spieler[playerid][pFraktion]), GangFight[gwzone][warZoneName]);
    SendFraktionMessage(GangFight[gwzone][warOwner], COLOR_ORANGE, string);
    format(string, sizeof(string), "Ein Gangfight gegen %s (%s) wurde von %s gestartet.", GetFraktionName(GangFight[gwzone][warOwner]), GangFight[gwzone][warZoneName], GetName(playerid));
    SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
    GangFight[gwzone][warAttacker] = Spieler[playerid][pFraktion];
    GWisStarted4Fraktion[GangFight[gwzone][warOwner]] = 1;
    GWisStarted4Fraktion[GangFight[gwzone][warAttacker]] = 1;
    GangFight[gwzone][warAttackerScore] = 0;
    GangFight[gwzone][warOwnerScore] = 0;
    GangFight[gwzone][warCapturedFlags][0] = 0;
    GangFight[gwzone][warCapturedFlags][1] = 0;
    GangFight[gwzone][warCapturedBy][0] = 0;
    GangFight[gwzone][warCapturedBy][1] = 0;
    GangFight[gwzone][warCaptureTime][0] = 0;
    GangFight[gwzone][warCaptureTime][1] = 0;
    GangFight[gwzone][warTime] = 60;
    GangFight[gwzone][warStarted] = 1;
    format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gwzone][warOwner]), 0, MAX_GANGFIGHTSCORE);
    TextDrawSetString(GangFight[gwzone][warDraw][3], string);
    format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gwzone][warAttacker]), 0, MAX_GANGFIGHTSCORE);
    TextDrawSetString(GangFight[gwzone][warDraw][4], string);
    format(string, sizeof(string), "~y~verbl. Zeit: %d Min", GangFight[gwzone][warTime]);
    TextDrawSetString(GangFight[gwzone][warDraw][5], string);
    GangZoneFlashForAll(GangFight[gwzone][warZoneID], GetZoneColor(Spieler[playerid][pFraktion]));
    if(IsPlayerInRangeOfPoint(playerid, 20.0, GangFight[gwzone][warFlagX1], GangFight[gwzone][warFlagY1], GangFight[gwzone][warFlagZ1]))
    {
    GangFight[gwzone][warCapturedFlags][0] = Spieler[playerid][pFraktion];
    format(string, sizeof(string), "Flagge A wurde von %s erobert.", GetName(playerid));
    SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
    }
    else if(IsPlayerInRangeOfPoint(playerid, 20.0, GangFight[gwzone][warFlagX2], GangFight[gwzone][warFlagY2], GangFight[gwzone][warFlagZ2]))
    {
    GangFight[gwzone][warCapturedFlags][1] = Spieler[playerid][pFraktion];
    format(string, sizeof(string), "Flagge B wurde von %s erobert.", GetName(playerid));
    SendFraktionMessage(Spieler[playerid][pFraktion], COLOR_ORANGE, string);
    }
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsLoggedIn(i))
    {
    if(Spieler[i][pFraktion] == GangFight[gwzone][warOwner])
    {
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][0]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][1]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][2]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][3]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][4]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][5]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][6]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][7]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][8]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][9]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][10]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][11]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][12]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][13]);
    }
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][0]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][1]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][2]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][3]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][4]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][5]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][6]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][7]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][8]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][9]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][10]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][11]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][12]);
    TextDrawShowForPlayer(i, GangFight[gwzone][warDraw][13]);
    }
    }
    }
    }
    return 1;
    }

  • Hallo ich habe ein Script mit 40.000 Zeilen wenn ich das Compile dann dauert es immer nur so 1-2 Minuten, jetzt dauert es noch länger überhaupt ich keine Systeme oder so eingefügt habe es ist alles gleich weiß einer warum?

  • Hallo ich habe ein Script mit 40.000 Zeilen wenn ich das Compile dann dauert es immer nur so 1-2 Minuten, jetzt dauert es noch länger überhaupt ich keine Systeme oder so eingefügt habe es ist alles gleich weiß einer warum?

    Je mehr globale und lokale Variablen du deklarierst, und je mehr Code du an sich hast, kann der Vorgang einige Zeit in Anspruch nehmen. Vor allem größere Arrays, die im Code verwendet werden, tragen zu sehr langen Laufzeiten bei.
    Je stärker die Systemleistung (CPU, RAM, Festplatte), desto schneller geht es.

  • Warum startet mein Server nicht im Script?


    [19:13:47]bind 148.251.233.201 Server Plugins
    [19:13:47]bind 148.251.233.201 --------------
    [19:13:47]bind 148.251.233.201 Loading plugin: streamer
    [19:13:47]bind 148.251.233.201 Failed (plugins/streamer: cannot open shared object file: No such file or directory)
    [19:13:47]bind 148.251.233.201 Loaded 0 plugins.







    Wenn ich localhost server starte genau selbes Plugin funktioniert alles aber wenn ich aufs Server draufsetze dann nicht? Weiß jemand warum?

  • Habe mir Tutorials angeguckt wie man sich ein individuelles PayDay System erstellt, habe momentan das Problem das alle Daten auf 0 sind also irgendwie funktioniert etwas nicht hier alles was ich habe, vlt habe ich was übersehen.



    Das wird nach dem Login gemacht ( Zeile 6. )

    Code
    forward LoadAccount(playerid);
    public LoadAccount(playerid)
    {
    	SetCameraBehindPlayer(playerid);
    	SetPlayerScore(playerid,(pInfo[playerid][pLevel]));
    	payday[playerid]=SetTimerEx("PayDay",1000*60,true,"i",playerid);
    	return 1;
    }




    Der Timer wird auch beim Disconnect gekillt.

    Code
    KillTimer(payday[playerid]);

    Also ich möchte ja das man auch sehen kann das nach jeder Minute sich pPayDay sich auf +1 erhöht aber ich kann 10 Minuten warten da passiert nichts. Also bei dem %d/60, wenn ich einen neuen Command erstelle der mir das auf +60 setzt steht da immer noch 0

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • format(string, sizeof(string), "•Level: %d \n•Respektpunkte:%d/%d\n•Payday: %d/60", string, pInfo[playerid][pLevel],pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay]);
    zu:
    format(string, sizeof(string), "•Level: %d \n•Respektpunkte:%d/%d\n•Payday: %d/60", pInfo[playerid][pLevel],pInfo[playerid][pXP],pInfo[playerid][pXPMax],pInfo[playerid][pPayDay]);

  • Kann mir jemand helfen? :/

  • Er zeigt mir im String immer 0$ an aber zieht mir das richtige ab ( Stringlänge passt ) woran liegt es habe einiges getestet.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.


  • format(string, sizeof(string), "{c45461}Du bist %dKm/h gefahren (%dKm/h zu viel). Du musst ein extra Bußgeld bezahlen, Bußgeld in höhe von $%d.", floatround(speed), uebertretung, punkte, extrageldstrafe);


    zu



    format(string, sizeof(string), "{c45461}Du bist %dKm/h gefahren (%dKm/h zu viel). Du musst ein extra Bußgeld bezahlen, Bußgeld in höhe von $%d.", floatround(speed), uebertretung, extrageldstrafe);

  • Danke dir!♥


    Code
    Autohausauto1[ 1 ] = CreateVehicle(502, 771.72266, -1381.50586, 13.64, 340, 79, 62, 600); //vehicle (Hotring Racer 3) (1)
    	Autohausauto1[ 2 ] = CreateVehicle(503, 767.22302, -1381.26501, 13.631, 340, 98, 83, 600); //vehicle (Hotring Racer 2) (1)
    	Autohausauto1[ 3 ] = CreateVehicle(494, 762.409, -1381.12805, 13.632, 340, 54, 36, 600); //vehicle (Hotring Racer) (1)


    Bin dabei ein Autohaus System zu machen aber wie frage ich ab oder besser gesagt was passiert wenn er im Autohausauto1[1] und was passiert wenn er im 2. Ist weil die haben ja alle ganz andere Preise usw. hmm

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Am besten über eine zweite Variable (oder ein enum-Array).


    Autohausauto1_preis[ 0 ] = 10000;
    Autohausauto1_preis[ 1 ] = 10;
    Autohausauto1_preis[ 2 ] = 9876;
    Autohausauto1_preis[ 3 ] = 454545;


    format(string, sizeof(string), "Auto koscht $%d", Autohausauto1_preis[i]);
    ShowPlayerDialog(playerid, DIALOG_AUTOHAUS1, DIALOG_STYLE_LIST, "{FFFFFF}Los Santos exquisit Autohaus", string, "Kaufen", "Abbrechen");

  • Ja wie sage ich dem jetzt das Autohausauto1_preis[ 0 ] = 10000; zu dem ersten Auto gehört, kann ich das nicht anders machen was dann auch bisschen länger Script ist?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.