[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
  • Jo danke, hab mal die Slots ergänzt


    Spoiler anzeigen
    enum weapondetails
    {
    d_weaponname[50],
    d_slot,
    }

    Spoiler anzeigen
    new waffenverzeichnis[55][weapondetails] =
    {
    {"Faust",0},
    {"Schlagring",0},
    {"Golfschläger",1},
    {"Polizeistock",1},
    {"Messer",1},
    {"Baseballschläger",1},
    {"Schaufel",1},
    {"Billard Queue",1},
    {"Katana",1},
    {"Kettensäge",1},
    {"Dildo",10},
    {"Vibrator",10},
    {"Vibrator",10},
    {"Vibrator",10},
    {"Blume",10},
    {"Rohrstock",10},
    {"Granate",8},
    {"Tränengas",8},
    {"Molotov Cocktail",8},
    {"Unbekannt",-1},
    {"Unbekannt",-1},
    {"Unbekannt",-1},
    {"9mm",2},
    {"SD Pistol",2},
    {"Desert Eagle",2},
    {"Shotgun",3},
    {"abgesägte Shotgun",3},
    {"Combat Shotgun",3},
    {"Micro SMG",4},
    {"MP5",4},
    {"AK47",5},
    {"M4",5},
    {"Tec9",4},
    {"Country Rifle",6},
    {"Sniper Rifle",6},
    {"Raketenwerfer",7},
    {"HS Raketenwerfer",7},
    {"Flammenwerfer",7},
    {"Minigun",7},
    {"Rucksackbombe",8},
    {"Zünder",12},
    {"Spraydose",9},
    {"Feuerlöscher",9},
    {"Kamera",9},
    {"Nachtsichtgerät",11},
    {"Infrarotsichtgerät",11},
    {"Fallschirm",11},
    {"Fake Pistol",-1},
    {"Unbekannt",-1},
    {"Fahrzeug",-1},
    {"Helicopterrotor",-1},
    {"Explosion",-1},
    {"Unbekannt",-1},
    {"Wasser",-1},
    {"gefallen",-1}
    };

  • new Float:distance=floatsqroot(((x1-x)*(x1-x))+((y1-y)*(y1-y))+((z1-z)*(z1-z)));


    Oder wenn du einen stock willst:
    stock Float:GetDistanceBetweenPoints(Float:x, Float:y, Float:z, Float:x1, Float:y1, Float:z1)
    {
    return floatsqroot(((x1-x)*(x1-x))+((y1-y)*(y1-y))+((z1-z)*(z1-z)));
    }

  • Ich möchte gerne IsPlayerAnAdmin(playerid,rang) als makro
    meins sieht so aus:

    #define IsPlayerAnAdmin(%0,%1) if(Spieler[%0][Admin]>=%1)
    //so möchte ich es verwenden
    if(!IsPlayerAdmin(playerid)|| !IsPlayerAnAdmin(playerid,1))return SCM(playerid,grau,"Nicht befugt!");


  • Du musst schon das Adminlevel wiedergeben

    now @ glowfire CMS.

  • Hey,
    warum kann man bei OnPlayerKeyStateChange nicht Rechts und Links (pfeiltasten) benutzen ?
    @BlackAce: Weiß der Scripting-Gott evtl. warum? :whistling:
    Und wie kann ich die benutzen, beispiel wäre nett :)

  • Und wie kann ich die benutzen, beispiel wäre nett :)


    Nun, ganz einfach so:


    public OnPlayerUpdate(playerid) {
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);

    if(ud == KEY_UP) SendClientMessage(playerid, -1, "UP");
    else if(ud == KEY_DOWN) SendClientMessage(playerid, -1, "DOWN");

    if(lr == KEY_LEFT) SendClientMessage(playerid, -1, "LEFT");
    else if(lr == KEY_RIGHT) SendClientMessage(playerid, -1, "RIGHT");

    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Ist das nicht blöd?
    Ich mein die Taste soll nur EINMAL wärend des ganzens Spielverlaufes benutzt werden :/

  • Nein, ich mein das geht doch an die Ressourcen, die ganze Zeit abzufragen (Callback wird ja aufgerufen, wenn pakete vom client zum server gesendet werden) ?


    Kaliber:

  • Nein, ich mein das geht doch an die Ressourcen, die ganze Zeit abzufragen (Callback wird ja aufgerufen, wenn pakete vom client zum server gesendet werden) ?


    Wenn dies der Fall wäre, dann würde OnPlayerUpdate bei jeder Sache wie zB beim Connecten ausgeführt (tut es aber nicht).


    OnPlayerUpdate wird bei jeder Art von Spieler Spezifischen Aktionen ausgeführt (Lite & Full Onfootupdate).
    Das heißt wenn er sich bewegt wird das Callback bei Standard Einstellungen im Abstand von 40MS ausgeführt (das gleiche im Fahrzeug).


    Um es schnell auszudrücken, du solltest einfach keine langwierige Codesequenzen in OnPlayerUpdate ausführen aber diese kleine IF abfrage sollte keinen großen Performance Einbruch bringen (vor allem brauchst du diese jedes mal oder nur in bestimmten Momenten?).

  • NUR in einem bestimmten Moment.


    Aber hat sich eh erledigt,
    da man keine Taste drücken kann wären man SelectTextDraw(playerid,color);
    hat...


  • #define IsPlayerAnAdmin(%0,%1) (Spieler[%0][Admin] >= %1)


    so geht das ganze :D