Beiträge von nehli

    Hei ich habe ein großes Problem mit einer Funktion. Es handelt sich um einen private Chat aktivieren bzw deaktivieren.
    Also man sollte mit dem Befehl /allowpm die anderen User erlauben können das sie mit dir mit dem Befehl /pm Chaten können. Dieser Befehl sollte aber auch zum deaktivieren gehen
    Habe es so gemacht aber das funktioniert iergendwie nicht.....:( Es ist egal ob es aktiviert ist oder nicht ich bekomm immer ne Nachricht und das sollte aber nicht sein :(


    Hier mein Script:



    ganz oben unter den includes:
    new pm[MAX_PLAYERS];


    und das mittem im Script:
    ocmd:pm(playerid,params[])
    {
    new pID, text, string[300], string2[300];
    if(sscanf(params,"us",pID,text))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /pm [Spieler][Text]");
    if(pm[pID] == 0)
    {
    format(string,sizeof(string),"*Du hast dem Spieler %s einen Persönliche Nachricht gesendet!*",SpielerName(pID));
    format(string2,sizeof(string2),"*PM von %s: %s*",SpielerName(playerid),text);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,string2);
    }
    else if(pm[pID] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Der Spieler hat den PM Chat deaktiviert!");
    }
    return 1;
    }
    das hab ich bei OnPlayerCommandText
    //=========================================================/allowpm!======================================================================
    if(strcmp("/allowpm",cmdtext,true, 10) == 0)
    {
    if(pm[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen PM Chat aktiviert!");
    pm[playerid] = 1;
    }
    else if(pm[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast deinen PM Chat deaktiviert!!");
    pm[playerid] = 0;
    }
    return 1;
    }



    Hoffe ihr könnt mir helfen 8) :P


    MfG

    Hei. ich weiß die Überschrift hört sich schlimmer an als es wirklihc ist xD, aber ich hab ein großes Problem was alle Befehle betrifft :cursing: :cursing: :cursing:


    und zwa wenn ich im Pawno bei:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0),"/ahelp",true, 11) == 0)


    {
    ..........


    }


    if(strcmp(strget(cmdtext, 0),"/a", true, 2) == 0)
    {
    ........
    }


    if(strcmp(strget(cmdtext, 0),"/ac", true, 3) == 0)
    {
    ......
    }


    zb die 3 Befele hab (adminhelp, adminchat und Admin spricht zu alle!) kommt aber immer wenn ich iergendein Befehl mit /a eingib der /a Befehl d.h es kommt immer der adminchat
    egal ob ich /adfadfasdf asdfasdfasdf oder /a Test oder /allowwhisper 0 es kommt immer nur der Admin Chat....



    Wieso?? :cursing: :cursing: :cursing: Bitte helft mir und das schnell ;)


    MfG

    wo wi zb nehli, nehlid


    und wenn ich dann bei nehlid was machen will passiert es aba bei nehli DAS mein ich mit falschen namen

    Hei


    Ich habe ein größeres Problem
    und zwa wenn zwei spieler auf meinem server sind die einen ähnlichen namen haben passiert oft das der falsche name zb im chat ist oder wenn ich ihn als admin rüstung etc gebe das wenn ich den namen und nicht di id eingebe der falsche rüstung bekommt...


    wie kann ich dieses problem beheben???



    mfg nehli

    habs so gemacht aber es kommt noch immer kein text bei [Grund]
    an was könnte das liegen?


    //edit
    habe format(msg1,sizeof(msg1),"{32CD32} Report über %s: %s",opfer,cmdtext[8]); mit deiner format zeile ausgetauscht und jetz funkt es :)


    danke für euere Hilfe :)


    //closed

    ich weiß aba wusst net wie es geht deswegen hab ich es einfach so versucht xD


    und jetz kommt aba nie der text dazu
    steht nur report über nehli:
    mehr net

    Hei
    ich weiß es gibt tausend threads mit report sachen aber es hat mir nichts weiter geholfen :cursing: :cursing:


    hier di zeilen


    if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /report [Grund]");
    return 1;
    }
    new msg1[200];
    GetPlayerName(playerid,msg1,sizeof(msg1));
    format(msg1,sizeof(msg1),"Report über %s: %s",opfer,ziel,msg1);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deinen Report abgeschickt.");
    if(SpielerInfo[playerid][admin]>= 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,msg1);
    }
    return 1;
    }
    das problem:
    nur wenn man admin is wird der report auch wirklich den admins angezeigt sonst nicht
    hoffe ihr könnt mir helfen




    mfg nehli

    Hei
    ich weiß das es schon sehr viele Themen mit admin chat gibt und ich habe auch schon die SuFu verwendet und auch einiges gefunden aber trotzdem
    funktioniert mein adminchat nicht -.-


    immer wenn ein Admin schreibt kommt zwa Admin Name: text aber es sind nie di ersten zwei buchstaben dabei
    beispiel
    Admin Nehli: llo
    und geschrieben habe ich hallo
    Hier die Zeilen:
    if(strcmp(strget(cmdtext,0),"/a",true) == 0)
    {
    if(SpielerInfo[playerid][admin] >= 1 || IsPlayerAdmin(playerid))
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /a [Text]");
    return 1;
    }
    new str[128];
    GetPlayerName(playerid,str,sizeof(str));
    format(str,sizeof(str),"* Admin {FFFFFF}%s:{FF0000} %s",str,cmdtext[5]); // wird dem admin ausgegeben
    SendClientMessageToAll(COLOR_YELLOW, str);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Nur Admins können im A schreiben"); //Wenn nicht lvl 5 oder Rcon Admin...
    }
    return 1;
    }


    ich hoffe ihr könnt mir weiter helfen



    mfg nehli

    Hier hab ich auch mal einen Teil des Script raus geschnitten. Sind alle Daten dabei die du brauchen könntest. (fraktion,loginin) also da müsste man auch meinen script fehler finden.....


    #include <a_samp>
    #include <dini>
    //Login System
    #define DIALOG_Register 0
    #define DIALOG_Login 1



    //=====FARBEN===========
    #define COLOR_WHITE 0xFFFFFFFF
    #define TEAM_GROVE_COLOR 0x007500FF
    #define COLOR_RED 0xFF0000FF
    #define COLOR_GREEN 0x00FF00FF
    #define COLOR_YELLOW 0xFFFF00FF
    #define COLOR_ORANGE 0xFF8F00FF
    #define COLOR_HELLBLUE 0x004FFFFF
    #define COLOR_LIGHTBLUE 0x33CCFFAA
    #define COLOR_BLUE 0x0000FFFF
    #define COLOR_HELLRED 0xFF4847FF
    #define COLOR_VIOLET 0xA65DFFFF
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_LIGHTRED 0xFF4230FF
    #define COLOR_BLACK 0x000000FF


    //Enum Befehle
    enum SInfo
    {
    admin,
    Fraktion,
    Rang,
    Leader,
    Geld,
    Skin,
    Wanted,
    Waffen,
    Munition
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];




    //Fraktionen
    static gTeam[MAX_PLAYERS];
    #define Team_Normal 0
    #define TEAM_FBI 1




    public OnPlayerConnect(playerid)
    {
    //Login und Register System
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Hallo/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_INPUT,"Login","Bitte geben Sie ihre Passwort ein","OK","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_Register,DIALOG_STYLE_INPUT,"Registeren","Bitte geben Sie ihr Passwort ein um sich zu registrieren.","registrieren","Abbrechen");
    }


    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    ResetVariablen(playerid);


    return 1;
    }




    public OnPlayerCommandText(playerid, cmdtext[])
    {
    //string
    new ziel = strval(strget(cmdtext,1));
    new opfer[MAX_PLAYER_NAME];
    new spieler[MAX_PLAYER_NAME];



    GetPlayerName(playerid,spieler,sizeof(spieler));
    GetPlayerName(ziel,opfer,sizeof(opfer));
    if(strcmp(strget(cmdtext,0),"/fraktionsetzen",true) == 0)
    {
    if(IsPlayerConnected(ziel))
    {
    if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,3)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /fraktionsetzen [Spielerid][Fraktionsid](1-11)[fraktionsskin]");
    return 1;
    }
    if(!SpielerInfo[ziel][Leader])
    {
    new fraktionsid = strval(strget(cmdtext,2));
    new skinid = strval(strget(cmdtext,3));
    new msg1[200];
    new msg2[200];
    SpielerInfo[ziel][Fraktion] = fraktionsid;
    SpielerInfo[ziel][Rang] = 1;
    format(msg1,sizeof(msg1),"* Du wurdest von Admin %s in die %d Fraktion gesetzt.",spieler,fraktionsid); //wird dem spieler ausgegeben
    format(msg2,sizeof(msg2),"* Du hast %s zum Leader in die %d Fraktion gesetzt.",opfer,fraktionsid); // wird dem admin ausgegeben
    SendClientMessage(playerid,COLOR_LIGHTBLUE,msg2); // Sendet die nachricht msg2 zu dem Admin...
    SendClientMessage(ziel,COLOR_LIGHTBLUE,msg1); // Sendet die nachricht msg1 zu dem ziel das zum admin gemacht wurde...
    PlayerPlaySound(ziel,1057,0.0,0.0,0.0); //spielt einen Nachrichtensound ab... return 1;
    SetPlayerSkin(ziel,skinid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist bereits Leader einer Fraktion!.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_HELLBLUE,"Dieser Spieler existiert nicht."); // Wenn Ziel nicht Connected ist wird eine Nachricht ausgegeben
    }
    return 1;
    }



    if(gTeam[playerid] == TEAM_FBI)
    {
    if(strcmp("/fbi",cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,COLOR_BLACK,"hallo");


    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"fbi geht net");
    return 1;
    }



    return 0;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //Register und Login System
    if(dialogid==DIALOG_Login)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen!");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein Passwort war nicht richtig eingegeben");
    ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_INPUT,"Login","Bitte geben Sie ihr Passwort ein um sich anzumelden.","OK","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_Register)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen!");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein Passwort war zu kurz");
    ShowPlayerDialog(playerid,DIALOG_Register,DIALOG_STYLE_INPUT,"Register","Bitte geben Sie ihr Passwort ein.","Registrierern","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }




    return 1;
    }




    //Register stock
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Hallo/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    SendClientMessage(playerid,COLOR_GREEN,"Erfolgreich registriert");
    SetPlayerScore(playerid,1);



    return 1;
    }
    //Login Stock
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Hallo/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,COLOR_GREEN,"Erfolgreich eingelogt");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"falsches Passwort!!!");
    ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_INPUT,"Register","Bitte geben Sie ihr Passwort ein.","Registrierern","Abbrechen");
    }
    return 1;
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Hallo/%s.txt",name);
    SpielerInfo[playerid][Leader]=dini_Int(Spielerdatei,"Fraktion");
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Hallo/%s.txt",name);
    dini_IntSet(Spielerdatei,"Fraktion",SpielerInfo[playerid][Fraktion]);


    return 1;
    }
    // Variablen stock
    stock ResetVariablen(playerid)
    {
    SpielerInfo[playerid][admin]=0;
    SpielerInfo[playerid][Fraktion]=0;
    SpielerInfo[playerid][Rang]=0;
    SpielerInfo[playerid][Leader]=0;
    SpielerInfo[playerid][Geld]=0;
    SpielerInfo[playerid][Skin]=0;
    SpielerInfo[playerid][Munition]=0;
    SpielerInfo[playerid][Waffen]=0;
    return 1;


    }
    //-----------------strget---------------
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }



    Hoffe ihr könnt mir helfen und sagen warum das bei mir nicht funkt....

    Der Befehl von Fraktionsetzen geht so:


    if(strcmp(strget(cmdtext,0),"/fraktionsetzen",true) == 0)
    {
    if(IsPlayerConnected(ziel))
    {
    if(SpielerInfo[playerid][admin] >= 2 || IsPlayerAdmin(playerid))
    {
    if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,3)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /fraktionsetzen [Spielerid][Fraktionsid](1-11)[fraktionsskin]");
    return 1;
    }
    if(!SpielerInfo[ziel][Leader])
    {
    new fraktionsid = strval(strget(cmdtext,2));
    new skinid = strval(strget(cmdtext,3));
    new msg1[200];
    new msg2[200];
    SpielerInfo[ziel][Fraktion] = fraktionsid;
    SpielerInfo[ziel][Rang] = 1;
    format(msg1,sizeof(msg1),"* Du wurdest von Admin %s in die %d Fraktion gesetzt.",spieler,fraktionsid); //wird dem spieler ausgegeben
    format(msg2,sizeof(msg2),"* Du hast %s zum Leader in die %d Fraktion gesetzt.",opfer,fraktionsid); // wird dem admin ausgegeben
    SendClientMessage(playerid,COLOR_LIGHTBLUE,msg2); // Sendet die nachricht msg2 zu dem Admin...
    SendClientMessage(ziel,COLOR_LIGHTBLUE,msg1); // Sendet die nachricht msg1 zu dem ziel das zum admin gemacht wurde...
    PlayerPlaySound(ziel,1057,0.0,0.0,0.0); //spielt einen Nachrichtensound ab... return 1;
    SetPlayerSkin(ziel,skinid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist bereits Leader einer Fraktion!.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_HELLBLUE,"Du musst ein 1337 Admin oder Rcon Admin sein für diesen Command!"); //Wenn nicht lvl 5 oder Rcon Admin...
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_HELLBLUE,"Dieser Spieler existiert nicht."); // Wenn Ziel nicht Connected ist wird eine Nachricht ausgegeben
    }
    return 1;
    }


    oben hab ich für die fraktion das gemacht: static gTeam[MAX_PLAYERS];
    #define Team_Normal 0
    #define TEAM_FBI 1
    #define TEAM_LSPD 2
    #define TEAM_SFPD 3
    #define TEAM_Yakuza 4


    liegt es vl an dem login script von mir muss ich dort noch zusätzlich was hin schreiben das er weiß das ich die zahl von fraktion bei gTeam haben will?
    falls das noch nicht reicht stell ich auch das login system rein ;)


    hoffe das hilft euch weiter
    mfg nehli

    Hei habe ein Problem. Habe mir ein Login Register System gescriptet und auch ein kleines admin script dazu. Jetz hab ich das Problem wenn ich zB eingib /fraktionsetzen 0(spielerid) 1(fraktionsid) bin ich zwar in der ini in der Fraktion kann aber die gTeams commands für das team 1 nicht ausführen obwohl ich in dem Team sein müsste. Ich hoffe das mir wer helfen kann.



    MFG Nehli

    Jap


    Edit: enum hab ich auch :)


    enum SInfo
    {
    Adminlevel,
    Fraktion,
    Leader
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    und kannst ruhig das Beispiel auch hier rein geben bin nicht der einzige der sich da nicht so gut auskennt :whistling: :whistling:


    mfg

    Ich bin auf der suche nach einem guten Admin Tutorial bzw nach einem Script an den ich mich halten kann... Einen Login/Register Script hab ich schon gemacht, weiß aber nicht wie man den Adminscript macht



    Die SuFu habe ich schon versucht... Auch Tutorials gefunden, aber bei denen hat immer wer gepostet falsch erklärt....


    Hoffe ihr könnt mir weiter helfen



    MFG Nehli

    Hei!!!


    Habe da eine Frage.


    Meine Skins bewegen sich wenn sie laufen sehr kommisch wie kann ich das umstellen?????
    ich hoffe ihr könnt mir weiter helfen


    Mfg Nehli