Beiträge von Darklight

    Hey,


    ich wollte in meinen GameMode das UAC (Ultimate AntiCheat) einbauen.
    Dafür musste ich einfach nur die UAC.inc includieren.


    Nun bringt mir der Compiler aber 2 Warnungen.
    Da ich Warnungen nicht schön finde, würde ich diese gerne weghaben.
    Weiß einer was hierbei nicht stimmt ?


    C:\Users\Andreas\Desktop\SA-MP\pawno\include\UAC.inc(813) : warning 201: redefinition of constant/macro (symbol "OnPlayerCommandText")
    C:\Users\Andreas\Desktop\SA-MP\pawno\include\UAC.inc(817) : warning 201: redefinition of constant/macro (symbol "OnGameModeInit")

    Hi,


    ich habe momentan das Problem, dass ich ein Object vor einem Spieler will.
    COMMAND:bombelegen(playerid,params[])
    {
    #pragma unused params
    new Float:x,Float:y,Float:z,Float:ang;
    if(pInfo[playerid][Team] == 2 || pInfo[playerid][Leader] == 2) {
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,ang);
    ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,0,0,0,0,0);
    CreateObject(1252,x+0.65,y,z-0.9,90,0,0,0.0);
    }
    else {
    SendClientMessage(playerid,grau,"Du bist kein Terrorist");
    }
    return 1;
    }
    Das einzigste Problem ist, wenn der Spieler jetzt in eine andere Richtung sieht, wird das Object, zb. rechts von ihm erstellt und nicht mehr vor ihm.
    Gibt es eine Möglichkeit die Bombe vor dem Spieler zu erstellen auch wenn er in eine andere Richtung sieht ?

    Hey,


    gibt es eine Möglichkeit in zcmd + sscanf einen Leerschritt einzubauen ?
    Ich möchte solche Befehle nutzen:
    /open adac
    /open lspd


    Das es also nur den Befehl /open gibt und je nachdem danach eingegebenen gehandelt werden soll.

    @ iCoke


    Füge erst einmal das hier:
    tor1 = CreateObject(985, 1592.256714, -1637.879028, 13.295558, 0.0000, 0.0000, 0.0000);
    tor2 = CreateObject(986, 1585.214233, -1637.900024, 13.268489, 0.0000, 0.0000, 0.0000);

    Unter OnGameModeInit() ein.


    Und dann brauchst du das hier:
    if (strcmp(cmdtext, "/ls", true) == 0)
    {
    MoveObject(tor1,1596.373413, -1637.951660, 13.275480,1.5);
    MoveObject(tor2,1578.540039, -1637.904907, 13.301139,1.8);
    SetTimer("Lspdgate1", 5000, 0);//5000=Timer Intervalll 5000 = 5sek


    SendClientMessage(playerid, COLOR_BLUE, "** Das Tor wird geöffnet, es schließt sich wieder in 5 Sekunden **");
    return 1;

    Unter OnPlayerCommandText() einfügen.
    Dann könnte es funktionieren. Verwende aber zcmd, was ein klein wenig unterschiedlich ist.



    Zurück zu meinem Problem:
    Nein, ich meine es so:
    Diesen Befehl hier gibt es ja nicht: SendClientMessageToAll(grau,"Spieler %s wurde von Admin %s gebannt",pName,aName);


    Ich möchte aber eigentlich genau das so haben. Es soll an alle eine ClientMessage raus, die sagt welcher Spieler von welchem Admin gebannt worden ist.

    Kleine Anfängerfrage.
    Wie ist es möglich, in einer ClientMessage den Namen einer Person hineinzubekommen.
    Zum Beispiel: "AdmCmd: Spieler darklight wurde von Admin ... gebannt, Grund: 3 Warns


    Mit SendClientMessage kann ich keine Namen mit rein bringen.
    Wie denn sonst ?

    Hier ist ein Tutorial welches soetwas mit DINI behandelt.


    Ein weiteres kleines Problemchen habe ich nun mit Parametern:


    Code
    Zeile (222) : Falsche Parameter (zuwenige/zuviele) 
    Zeile (232) : Falsche Parameter (zuwenige/zuviele) 
    2 Errors, 0 Warnungen 
    Du hast Errors im Skript. Kompilierung abgebrochen 
    PWNMod Compiler Version 1.2 
    (c) Trooper[Y] 
    In Kooperation mit GTA-Servers.de


    Kapiere aber ehrlich gesagt momentan nicht was daran falsch sein sollte.
    Hier sind die besagten Zeilen:


    COMMAND:mark(playerid,params[]) {
    #pragma unused params
    if(!IsPlayerAdmin(playerid)) {
    return SendClientMessage(playerid,grau,"Du bist kein Administrator");
    }
    GetPlayerPos(playerid,markx,marky,markz); //--Zeile 222
    SendClientMessage(playerid,grau,"Koordinaten gespeichert");
    return 1;

    COMMAND:gotomark(playerid,params[]) {
    #pragma unused params
    if(!IsPlayerAdmin(playerid)) {
    return SendClientMessage(playerid,grau,"Du bist kein Administrator");
    }
    SetPlayerPos(playerid,markx,marky,markz); //--Zeile 232
    return 1;
    }

    Ich hätte da kurz eine kleine Anfängerfrage.


    Ich habe einen Befehl /mark Befehl erstellt, welcher die Koordinaten in markx,marky und markz speichert.
    Wie kann ich diese Variablen in einem anderen Befehl wieder benutzen, zb. /gotomark ?

    Also meiner Meinung ist FahrerID und SitzID unnötig.


    Vor allem die SitzID.
    Wenn wir die OpferID ausgewählt haben, wofür brauchst du dann noch die SitzID.
    Bin mir noch nicht mal sicher oben überprüfen kann auf welchem Sitz im Auto der hockt ;)

    Tut mir leid, aber ich kann es dir leider nur in ZCMD geben.


    Dies hier funktioniert auf jeden Fall.


    COMMAND:atta(playerid,params[]) {
    #pragma unused params
    new plattform;
    plattform = CreateObject(3280,0,0,0,0,0,0);
    AttachObjectToPlayer(plattform,playerid,0,0,-1,0,0,0);
    return 1;
    }


    Vielleicht ist ja jemand so nett und schreib es um :D

    Wenn ich die beiden Ergebnisse vergleiche fällt mir nur der unterschied nach dem "true" auf.
    Du hattest da eine 10 stehen, Firefox hat sie rausgenommen.


    Was auch immer diese 10 heiße mag :D
    Sowas brauch ich zum Glück bei zcmd nicht ^^

    Guten Abend,


    ich habe momentan ein kleines Scriptproblem.
    Ich habe mir einen /kick Befehl erstellt. Wenn ich in meinem Server /kick eingebe, ohne eine ID oder Name dahintert dann kicke ich mich selber.



    COMMAND:kick(playerid,params[]) {
    new pID;
    if(!IsPlayerAdmin(playerid)) {
    return SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Administrator");
    }
    if(sscanf(params,"u",pID)) {
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /kick [Name | ID]");
    }
    if(!IsPlayerConnected(pID)) {
    SendClientMessage(playerid,COLOR_WHITE,"Spieler konnte nicht gefunden werden");
    }
    Kick(pID);
    SendClientMessage(playerid,COLOR_WHITE,"Spieler wurde vom Server gekickt!");
    return 1;
    }


    Wo liegt hierbei das Problem ?
    Oder kicke ich mich nur selber weil ich alleine auf dem Server bin ?

    Die sscanf.inc ist eingetragen.
    Hier liegt der Fehler nicht.


    //edit: Hier mal der Anfang des Scriptes + den Problemteil eben.


    #include <a_samp>
    #include <core>
    #include <float>
    #include <sscanf2>
    #include <a_players>
    // Global stuff and defines for our gamemode.
    static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #define OBJECTIVE_VEHICLE_GREEN 2
    #define OBJECTIVE_VEHICLE_BLUE 1
    #define TEAM_GREEN 1
    #define TEAM_BLUE 2
    #define OBJECTIVE_COLOR 0xE2C063FF
    #define TEAM_GREEN_COLOR 0x77CC77FF
    #define TEAM_BLUE_COLOR 0x7777DDFF
    #define CAPS_TO_WIN 3
    #define COLOR_GREEN 0x9EC73DAA
    #define COLOR_RED 0xFF0000
    new gObjectiveReached = 0; // Stops the winner logic reentering itself.
    new gObjectiveGreenPlayer=(-1); // Tracks which green player has the vehicle.
    new gObjectiveBluePlayer=(-1); // Tracks which blue player has the vehicle.
    // number of times the vehicle has been captured by each team
    new gGreenTimesCapped=0;
    new gBlueTimesCapped=0;
    // forward declarations for the PAWN compiler (not really needed, but there for the sake of clarity)
    forward SetPlayerToTeamColor(playerid);
    forward SetupPlayerForClassSelection(playerid);
    forward SetPlayerTeamFromClass(playerid,classid);
    forward ExitTheGameMode();
    //---------------------------------------------------------
    main()
    {
    UsePlayerPedAnims();
    print("\n----------------------------------");
    print(" Rivershell editet by darklight\n");
    print("----------------------------------\n");
    }
    //---------------------------------------------------------
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(kick,4,cmdtext);
    dcmd(ban,3,cmdtext);
    return 0;
    }
    dcmd_kick(playerid, params[]) {
    new pID;
    if(sscanf(params,"u",pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutze: /Kick [Name|ID]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Spieler wurde nicht gefunden.");
    }
    if(IsPlayerNPC(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"NPC's können nicht gekickt werden.");
    }
    if(IsPlayerAdmin(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Admins können nicht gekickt werden.");
    }
    Kick(pID);
    SendClientMessage(playerid,COLOR_RED,"Erfolgreicher Kick des Spielers");
    return 1;
    }
    dcmd_ban(playerid, params[]) {
    new pID;
    if(sscanf(params,"u",pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutze: /Ban [Name|ID]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Spieler wurde nicht gefunden,");
    }
    if(IsPlayerNPC(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"NPC's können nicht gebannt werden.");
    }
    if(IsPlayerAdmin(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Admins können nicht gebannt werden.");
    }
    Ban(pID);
    SendClientMessage(playerid,COLOR_RED,"Erfolgreicher Ban des Spielers");
    return 1;
    }

    Hm.
    Das geht schon mal in die richtige Richtung.
    Ich habe jetzt mal dieses Zeugs hier kommentiert und es nochmal versucht und siehe da - es funktioniert.



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(kick,4,cmdtext);
    return 0;
    }
    dcmd_kick(playerid, params[]) {
    new pID;
    if(sscanf(params,"u",pID)) {
    return SendClientMessage(playerid, COLOR_RED, "Benutze: /Kick [Name|ID]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid, COLOR_RED, "Spieler wurde nicht gefunden.");
    }
    Kick(pID);
    SendClientMessage(playerid, COLOR_RED, "Erfolgreicher Kick des Spielers");
    return 1;
    }


    Jetzt ist nur noch die Frage welche Funktion hiervon fehlt :huh:


    //edit: Ok. "IsPlayerConnected" war in keiner Include enthalten.
    Ich habe jetzt die Include "a_players.inc" eingefügt. Aber das Problem besteht weiterhin.

    Hi Breadfisher,


    ich habe heute angefangen ein wenig Pawn zu lernen und habe mich ein wenig in DCMD und sscanf eingelesen.
    Nun habe ich das mal in den Originalen "Rivershell.pwn" eingebaut.
    Das Problem ist wenn ich nun den Server starte kommt immer die Fehlermeldung "Error 19: File or Function not found".


    Eigentlich sollte ich alles richtig gemacht haben :(
    Beim Compilieren bringt er mir nur den Warning den er mich auch sonst immer bei Rivershell gibt.


    An was kann das denn liegen ?
    Hier mal den Serverlog:



    Ich bin einige Threds durchgegangen die auch den Error bekommen.
    Nur leider haben diese ihr Problem durch das "Streamer Plugin" behoben, oder sie haben gar keine Antwort bekommen.


    Ich danke euch für eure Hilfe.