[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
  • Du hast schon ein Thread aufgemacht ?


    Zu 1. Du musst bei OnPlayerSpawn eine Abfrage machen, ob der spieler in der Frak ist, wen ja dan setzt
    du ihn nach ... SetPlayerPos(...)


    Zu 2. Fraktionen löschen, musste leider selber herrausfinden, ist bei jedem Script anders, wer sich mit GF
    auskennt, kann dir bestimmt weiterhelfen.


    zu 3. machst du einfach eine Abfrage bei OnPlayerenterVehicle oder OnPlayerStateChange

  • Erm, das klingt jetzt etwas blöd aber ...
    für ein CMD muss ich den Spielernamen des schreibenden rausfinden, diesen dann verwenden, zum anderen muss ich das rausbekommen, was diese person geschrieben hat.
    Mit new string etc.
    Aber WO kann ich nochmal nachlesen, wie man soetwas macht?

  • // OnPlayerCommandText
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    // playerid ist bei OnPlayerCommandText die ID des Spielers der den Befehl eingiebt


    Was du meinst mit "rausbekommen, was diese person geschrieben hat" weiß ich nicht was du wissen willst.
    Wenn du denn die Eingabe der Cmds meinst dann kannst du einfach cmdtext nehmen


    z.b.:


    Das würde eine Nachricht an alle Rcons senden, wenn ein User einen Befehl eingibt

    // OnPlayerCOmmandText :
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s hat folgenden Befehl eingegeben : %s", name, cmdtext);
    new i=0;
    for(;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerAdmin(i)
    {
    SendClientMessage(i, grau, string);
    }
    }


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Such mal weiter nach pInfo im Script und schau mal obs irgendwo so eingesetzt wurde


    new <neuevariabele>[MAX_PLAYERS][pInfo];


    Enum's sind dazu da Variablen so zu sagen eine Struktur zu verleihen,
    und Allgemein auch neue Strukturen zu erschaffen.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • ich hab viele Fragen, fange gerade erst an^^
    also werden noch einige fragen kommen^^


    erstma, ich hab mal zum test ein paar player classes hinzugfügt, aber bei auswählen sieht man die skins nicht, aber wenn ich zb 1 mal nach links drücke habe ich den skin der da wäre, also was muss ich ändern?


    Wie mache ich mir am besten ein system fürs registrieren und einloggen?


    Und ein system, wo die stats gespeichert werden, so was wie spielzeit, tode, kills, geld etc. (achja was zum Geld speichern brauch ich auch^^)


    und wie mache ich befehle richtig, habe zwar ein bisschen was herausgefunden aber nicht richtig verstaden...


    Danke im vorraus^^

  • "probier" gerade ein selfmade script zu machen^^ und hab folgendes problem


    C:\Users\Admin\Desktop\AnfngerGamemode.pwn(263) : error 028: invalid subscript (not an array or too many subscripts): "spieler_daten"
    C:\Users\Admin\Desktop\AnfngerGamemode.pwn(263) : warning 215: expression has no effect
    C:\Users\Admin\Desktop\AnfngerGamemode.pwn(263) : error 001: expected token: ";", but found "]"
    C:\Users\Admin\Desktop\AnfngerGamemode.pwn(263) : error 029: invalid expression, assumed zero
    C:\Users\Admin\Desktop\AnfngerGamemode.pwn(263) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    und hier der cmd dazu



    if (strcmp(cmd, "/überprüfung", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (spieler_daten[playerid][sadmin] >= 1) //line 263 /edit sadmin
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwendung: /überprüfung [spielerid/teildesnamens]");
    return 1;
    }
    //giveplayerid = strval(tmp);
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    ShowStats(playerid,giveplayerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Diesen Spieler gibt es nicht!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Admin!");
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von [GwR]Sky ()

  • doch hier ..oder ist das falsch?^^


    enum spieler_daten //Hier wird das enum Spieler_daten definiert, mit folgenden Funktionen
    {
    wanted, //Es speichert die Wanted anzahl
    skin, // Es speichert den Skin des Spielers
    Float:lastx,Float:lasty,Float:lastz, //Es speichert die Letzten X,y,z Koordinaten des Spielers.
    eingeloggt, //Hier wird gecheckt ob der spieler Eingeloggt ist oder nicht, weiteres unten [Kein Komma!]
    sleader,
    smember,
    sadmin,
    }

  • pAdmin vergessen...



    enum spieler_daten //Hier wird das enum Spieler_daten definiert, mit folgenden Funktionen
    {
    wanted, //Es speichert die Wanted anzahl
    skin, // Es speichert den Skin des Spielers
    Float:lastx,Float:lasty,Float:lastz, //Es speichert die Letzten X,y,z Koordinaten des Spielers.
    eingeloggt, //Hier wird gecheckt ob der spieler Eingeloggt ist oder nicht, weiteres unten [Kein Komma!]
    sleader,
    smember,
    sadmin,
    pAdmin,
    }
    So müsste es gehen.

  • @ durtyfree: hab ich schon geändert^^


    @bfx:


    new Spieler[MAX_PLAYERS][spieler_daten];


    dann bei enum und bei dem cmd wo ich oben gepostet hab^^