[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
  • Habe jetzt so ein Random zwischen 2 Summen gelöst :



    new CPm[23][] = {1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022};



    new randoms = random(23);
    CP[playerid] = CPm[randoms][0];


    Nur leider, wird immer der gleiche Checkpoint aufgerufen

  • xivo: Bin mir nicht sicher aber:


    CPm[randoms][0]. randoms gibt die Kette an: 1000,1001,1002 usw. die 0 gibt die erste Zahl an und die ist bei jedem Beispiel 1: 1000,1001,1002


    Lösung:
    enum z
    {
    Blubb
    };
    new CPm[23][z] = {1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022};
    new randoms = random(23);
    CP[playerid] = CPm[randoms][z];
    Ungetestet,m weiß nicht genau...

  • Dankeschö, werde es nachher mal ausprobieren, aufjedenfall gibt der Compiler keine Errors / Warnings aus!<br><br>Ohne dem z klappt es, nur dan werden die Checkpoints nicht gerandomt. Wenn ich das aber mit dem z<br>mache, bekomme ich 6 Errors..

    2 Mal editiert, zuletzt von xivo ()

  • Warum geht der Befehl nicht? wenn ich /fight 1 eingebe dann kommt nix ich werd auch nicht geportet :P
    if(strcmp(strget(cmdtext,0),"/fight"))
    {
    if(!strlen(strget(cmdtext,0)))
    {
    SendClientMessage(playerid,COLOR_RED,"Benutze: /fight [1]");
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,500.0,-1396.806030,992.765136,1024.053466))
    {
    SendClientMessage(playerid,COLOR_RED,"ACHTUNG:Du bist noch in einem fight! Benutze /back um ihn zu verlassen");
    return 1;
    }
    new fight = strval(strget(cmdtext,2));
    if(fight == 1)
    {
    SetPlayerPos(playerid,-1396.806030,992.765136,1024.053466);
    SetPlayerInterior(playerid,15);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,39,50000);
    SendClientMessage(playerid,COLOR_YELLOW, "Du hast du zu einem Fight geportet!.");
    return 1;
    }
    return 1;
    }
    thx schonma :)

  • hallo.


    ich wollte ein command machen mit dem man alle fahrzeuge löschen kann ab id 91... hab aber kp wie das geht ;(
    if(strcmp(cmd, "/deleteallcars", true) == 0 || strcmp(cmd, "/dac", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][Level] >= 4)
    {
    new bool:unwanted[128];
    for(new player=0; player<MAX_PLAYERS; player++)
    {
    if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
    }
    for(new car = 91; car >= 90; car++)
    {
    if(!unwanted[car]) DestroyVehicle(car);
    }
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(string, sizeof(string), "SERVER: All unused cars deleted by %s.", pname);
    SendClientMessageToAll(COLOR_WHITE,string);
    }
    else
    {
    SendClientMessage(playerid, red, "you are not authorized to use this command!");
    return 1;
    }
    }
    return 1;
    }
    aber das funzt nicht ;(
    kanns mir jemand machen?? bitte ich wäre sehr dankbar :thumbup:


    mfg

  • dcmd_melden(playerid, params[])
    {
    new Grund[200], string[200];
    if(sscanf(params, "ds",giveplayerid,Grund)) return SendClientMessage(playerid,rot,"Fehler: /melden [id] [Cheat]");
    else if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,rot,"Fehler: Ungültige Spieler ID");
    format(string, sizeof(string), "%s (%i) hat %s (%i) als Cheater gemeldet! Grund: %s", Player(playerid),playerid,Player(giveplayerid),giveplayerid,Grund);
    SendMessageToAdmins(rot, string);
    return 1;
    }


    wie kann ich jetzt bei dem command machen,
    das ich /melden mit dem namen oder der id machen kann allso /melden Name/id grund


    edit: hab die lösung gefunden
    (params, "ds",gi
    einfach ein u hin
    (params, "us",gi

    Einmal editiert, zuletzt von Markus20 ()

  • Zacharias:


    Wieso prüfst du ob der Spieler online ist der gerade den Befehl eingibt ?
    Dein Fehler war, dass du eine folgende Schleife erstellt hast:
    for(new car=91; car>=90; car++)
    // Wird so durchgerechnet:
    // Schleife fängt bei 91 an und addiert jedes mal 1 (wegen car++) bis "car" nicht meht mit der zweiten Anweisung übereinstimmt (car>=90)
    // Und da es unendlich viele Zahlen über 90 gibt hört die Schleife nie auf..
    So funktionierts:
    if((!strcmp(cmd, "/deleteallcars", true)) || (!strcmp(cmd, "/dac", true)))
    {
    if(PlayerInfo[playerid][Level] >= 4)
    {
    new bool:unwanted[MAX_VEHICLES];
    for(new player=0; player<MAX_PLAYERS; player++)
    {
    if(IsPlayerInAnyVehicle(player)) unwanted[GetPlayerVehicleID(player)] = true;
    }
    for(new car=91; car<MAX_VEHICLES; car++)
    {
    if(!unwanted[car]) DestroyVehicle(car);
    }
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(string, sizeof(string), "SERVER: All unused cars deleted by %s.", pname);
    SendClientMessageToAll(COLOR_WHITE,string);
    }
    else
    {
    SendClientMessage(playerid, red, "you are not authorized to use this command!");
    }
    return 1;
    }

  • wie bekomm ich es hin das ich die animationen die ich für 0.3a hatte auch für 0.3b verwenden kann?^^

  • gl_actions aus filterscripts kopieren und bei 0.3b in server.cfg eintragen und in filterscripts kopieren oder einfach bei 0.3a bleiben
    LG
    V1rus

  • ja so schlau bin ich auch ^^
    funkt tdem net, dort steht halt "space to stop the animation" aber es wi bei mir selbst nicht angezeig


    andere sehen es nur ich selbst nich^^

  • @Multivan: Ja ich hatte auch selber mit dem paar kleine Problemchen bin dann einfach auf BFX´s Streamer umgestiegen is auch für 0.3b ;)



    Und nun zu meiner Frage:


    Ich habe mir ne Taste gemacht mit GetVehicleVelocity und so damit ich umso öfter drücke immer schneller werde ^^
    Soo und nun wenn ich mit 500km/h oder so irgendwo appralle und mit vollspeed gegen das nächste haus knallt brennt mein Auto (Logisch xD)
    und bekomme Gamecrash...


    Kann man diesen Gamecrash irgendwie umgehen da ich auch mal auf Servern war die diesen sogenannten speedboost auch gescriptet hatten und wenn ich dort gegen eine Wand knall und brenne krieg ich keinen Gamecrash.
    Habe auch drinne das sich mein auto jede Sekunde ganz macht.


    __________________________________________________________________________________________

  • Ich hab auch ma ne Frage, aber leider keine Antwort zur Frage vor mir, sry.
    Also, wie erstelle ich ein bool für nur einen Spieler?
    Ich möchte dass wenn ein Spieler /gotooff eingibt, dass man sich nicht mehr zu ihm teleportieren kann. Wenn er dann /gotoon eingibt soll es wieder funktionieren. Bisher habe ich nichts wie

    Code
    new bool:goto(playerid);


    hinbekommen.
    Bisher passiert es, dass wenn es ein Spieler eingibt, dass es für alle gilt, das soll nicht sein.


    Mein goto-DCMD: http://pastebin.com/SR0zjGqa

    MfG
    Madd_Dogg