[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
  • Hey,
    wollte mal fragen, wie man Fahrzeuge schneller machen kann, ohne dass Probleme entstehen, wie zum Beispiel auf Hügeln, dass man das plötzlich schwebt, weil man die Geschwindigkeit in diesem Augenblick wieder setzt..
    Mit MapAndreas könnte man das doch machen, oder?
    Muss man dort dann noch irgendwas wichtiges beachten?


    Danke im Voraus! ;)

  • ohne dass Probleme entstehen


    Sollte aufm Berg gar keine Probleme geben wenn du nur die X/Y Geschwindigkeit erhöst. Am Sonntag bin ich wieder zuhause da setzt ich mich weiter an mein Include, was sowas kann, es bietet dann eine SetVehicleMaxSpeed Funktion. Wenn du aber nicht warten willst, es funktioniert genau nach Jeffry's Prinzip ;)


    Mir würden jetzt keine weiteren Probleme dazu einfallen, solange du nur X/Y-Speed erhöhst. :)


  • Sollte aufm Berg gar keine Probleme geben wenn du nur die X/Y Geschwindigkeit erhöst. Am Sonntag bin ich wieder zuhause da setzt ich mich weiter an mein Include, was sowas kann, es bietet dann eine SetVehicleMaxSpeed Funktion. Wenn du aber nicht warten willst, es funktioniert genau nach Jeffry's Prinzip ;)


    Wollte damit eig auch eine Include rausbringen.. Aber wenn du es schon machst, ist ja gut ;)


    Jeffry: Danke ;)

  • Hallo!


    Ich habe ein kleines Problem im Bezug auf einen Dialog, bei dem Cops ihren Skin Changen können. Beim LVPD (Frak ID: 3) funktioniert alles, doch beim SFPD (Frak ID: 2) und LSPD (Frak ID: 1) wird kein Dialog angezeigt.


    Hier alle Codes (OnPlayerPickup, Enum und Array und OnPlayerDialogResponse)


    [pwn=280]
    enum CopSkinChangeEnum {
    skin_icon_id,
    skin1,
    skin2,
    skin3,
    skin4,
    skin5,
    skinn1[24],
    skinn2[24],
    skinn3[24],
    skinn4[24],
    skinn5[24],
    Float:skin_x,
    Float:skin_y,
    Float:skin_z,
    skin_f_id,
    skin_vw
    };
    new CopSkinChange[][CopSkinChangeEnum] = {
    {0, 280, 281, 282, 283, 284, "LSPD Cop", "SFPD Cop", "LVPD Cop", "Sheriff", "Bike Police", 317.8099,-160.1672,999.5938, 1, 1},
    {0, 280, 281, 282, 285, 284, "LSPD Cop", "SFPD Cop", "LVPD Cop", "S.W.A.T", "Bike Police", 317.8099,-160.1672,999.5938, 2, 2},
    {0, 250, 170, 286, 285, 283, "Undercover 1", "Undercover 2", "FBI Agent", "S.W.A.T", "LVPD Cop", 317.8099,-160.1672,999.5938, 3, 3}
    };
    [/pwn]


    [pwn=951]
    for(new i = 0; i < sizeof(CopSkinChange); i++)
    {
    if(pickupid == CopSkinChange[i][skin_icon_id] && Spieler[playerid][fraktion] == CopSkinChange[i][skin_f_id])
    {
    new dialog[256];
    format(dialog, sizeof(dialog), "%s\n%s\n%s\n%s\n%s", CopSkinChange[i][skinn1],CopSkinChange[i][skinn2],CopSkinChange[i][skinn3],CopSkinChange[i][skinn4],CopSkinChange[i][skinn5]);
    ShowPlayerDialog(playerid, DIALOG_COP_SKINCHANGE, DIALOG_STYLE_LIST, "Skinchange", dialog, "Wechseln", "Abbrechen");
    }
    }
    [/pwn]


    [pwn=1081]
    if(dialogid == DIALOG_COP_SKINCHANGE)
    {
    if(!response) return 1;
    if(response)
    {
    if(listitem == 0) return SetPlayerSkin(playerid, CopSkinChange[Spieler[playerid][fraktion]-1][skin1]);
    if(listitem == 1) return SetPlayerSkin(playerid, CopSkinChange[Spieler[playerid][fraktion]-1][skin2]);
    if(listitem == 2) return SetPlayerSkin(playerid, CopSkinChange[Spieler[playerid][fraktion]-1][skin3]);
    if(listitem == 3) return SetPlayerSkin(playerid, CopSkinChange[Spieler[playerid][fraktion]-1][skin4]);
    if(listitem == 4) return SetPlayerSkin(playerid, CopSkinChange[Spieler[playerid][fraktion]-1][skin5]);
    }
    }
    [/pwn]


    Es kommen keine Fehler in der server_log.txt


    Ich hoffe auf helfende antworten. Danke :)

  • if(playerid == INVALID_PLAYER_ID)//Playerid ist eine ungültige Player-ID, das heißt: existiert nicht

  • INVALID_PLAYER_ID heißt soviel wie: UNGÜLTIGE_PLAYER_ID


    if(playerid == INVALID_PLAYER_ID)return 1;


    Die If-Abfrage heißt dann: Wenn playerid eine ungültige ID ist, z.B. wenn der Spieler nicht online ist, dann wird 1 returnt.


    Beispiel:
    http://wiki.sa-mp.com/wiki/OnPlayerDeath_DE
    Hier wird auch INVALID_PLAYER_ID verwendet, kann man sich auch mal anschauen ;)



  • Achhsooo .. danke dir .. wieder mal was neues gelernt :

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Die If-Abfrage heißt dann: Wenn playerid eine ungültige ID ist, z.B. wenn der Spieler nicht online ist, dann wird 1 returnt.


    Um zu prüfen ob ein Spieler mit dem Server verbunden ist, musst du IsPlayerConencted verwenden.


    Manche Funktionen geben den Wert INVALID_PLAYER_ID zurück, wenn keine gültige Spieler-ID gefunden wurde,
    oder wenn die Spieler-ID nicht mit dem Server verbunden ist.

    • Offizieller Beitrag

    @CrashGamesDE: Ganz ohne Neustarten gehts nicht, entweder Ingame über den RCON Befehl /rcon gmx oder direkt in die Serverkonsole gmx schreiben

  • Mal ne kleine Frage: Kann man ein Script reloaden, ohne den Server neu zu starten? ^^


    @CrashGamesDE: Ganz ohne Neustarten gehts nicht, entweder Ingame über den RCON Befehl /rcon gmx oder direkt in die Serverkonsole gmx schreiben


    Öh, doch? :D
    Filterscript heißt das Stichwort.



    => Erstelle deinen Code in einem Filterscript, dann kannst du den Filterscript über RCON reloadfs scriptname neu laden, ohne dass der Server neu gestartet wird, und ohne dass du einen GMX machen musst. Ich habe bei meinem Server zum Beispiel 99.9% des gesamten Codes in Filterscripts. Der Gamemode ist bei mir fast leer, dadurch muss ich nie den GMX machen, sondern kann in der Theorie alles ohne einen Neustart des Servers regeln.

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