Beiträge von Nils24

    habe das mal nach vielem hin und her umgesetzt.


    möchte dem Admin der versucht zu unbannen eine Nachricht senden wenn der Spieler nicht Existiert oder nicht gebannt ist wie mache ich das jetzt?


    danke für eure hilfe


    der jetzige CODE

    Spoiler anzeigen
    ocmd:unban(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=5)
    {
    new name[128],query[128],string[128];
    if(sscanf(params,"s",name))return SendClientMessage(playerid,CL_HGRÜN,"Info: /unban [SpielerName] versuche es erneut.");
    {

    format(query,sizeof(query),"UPDATE `Benutzer` SET `BANED` = '0' WHERE `Name` = '%s' AND `BANED` = 1 LIMIT 1 ",name);
    mysql_function_query(dbhandle,query,false,"","");
    format(string,sizeof(string),"Der Spieler %s wurde von %s geunbannt!",name,SpielerName(playerid));
    SendAdminAnsage(string);
    //hier alle namen abrufen die eingegeben wurden=1 name
    return 1;
    }
    }
    //Ansonsten
    return 1;
    }


    DANKE DANKE

    danke erstmal habe es jetzt mal so probiert aber fraglich ob das funktioniert


    ocmd:unban(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=5)
    {
    new name[128],query[128],wert;

    if(sscanf(params,"s",name))return SendClientMessage(playerid,CL_HGRÜN,"Info: /unban [SpielerName] versuche es erneut.");
    {
    format(query,sizeof(query),"SELECT 'BANED' FROM `Benutzer` WHERE `Name`='%s'",name);
    mysql_function_query(dbhandle,query,true,"BANED","is",wert,name);
    //hier alle namen abrufen die eingegeben wurden=1 name
    return 1;
    }
    }
    //Ansonsten
    return 1;
    }





    forward BANED(playerid,wert,name);
    public BANED(playerid,wert,name)
    {
    new num_rows;
    if(num_rows==1)
    {
    new query[128];
    if(wert==0)return SendClientMessage(playerid,CL_KNALLROT,"Der Spieler ist nicht gebannt.");
    format(query,sizeof(query),"UPDATE 'BANED'='0' FROM `Benutzer` WHERE `Name`='%s'",name);
    mysql_function_query(dbhandle,query,false,"","");

    return 1;
    }
    else if(num_rows==0)
    {
    SendClientMessage(playerid,CL_KNALLROT,"Der Spieler existiert nicht");
    return 1;
    }
    return 1;
    }


    danke schonmal für die erste hilfe


    MFG Nils


    edit aktueller code ohne funktion bzw wir bekommen gar keine meldung...

    Hallo Communuty,


    ich möchte gerne einen Unban befehl machen.
    ich kann den spieler schon bannen und auch wird er beim nächsten login vom server geschmissen wenn er gebannt ist nun ist die frage.
    wie unbanne ich ihn also ich möchte ja alle namen abrufen die im (inputtext) eingegeben wurden also /unban [XYNAME] wenn dieser existiert soll dieser unbanned werden ansonsten soll kommen dieser spieler existiert nicht und wenn er nicht gebannt ist. dieser spieler ist nicht gebannt
    habe mal angefangen komme aber nicht ganz weiter...
    ocmd:unban(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=5)
    {
    new name[128];
    if(sscanf(params,"s",name))return SendClientMessage(playerid,CL_HGRÜN,"Info: /unban [SpielerName] versuche es erneut.");
    {
    //hier alle namen abrufen die eingegeben wurden=1 name
    return 1;
    }

    }
    //Ansonsten
    return 1;
    }


    mal schauen ob ihr mir helfen könnt


    MFG Nils




    PS: rechtschreibung kostet geld also entschuldigt bitte

    ja die clickedid wird ja aus dem public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(sInfo[playerid][alevel]==0)return 1;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    ShowPlayerDialog(playerid,DIALOG_CLICK_FROM_ADMIN,DIALOG_STYLE_LIST,name,"Goto\nGethere\nKick\nBan\nHealth","OK","Abbrechen");
    clickedid = clickedplayerid;
    return 1;
    }


    genommen und gespeichert wenn das dann funktioniert?

    Hallo Communuty,


    ich habe versucht ein kleines Dynamisches und einfaches Teleportsystem für Admins zu Creaieren.
    Es scheiterte an dem problem das ich mich(id = 0) zuerst versuche zu jemand anderen zu porten (id=1) aber dahin komme und anschlissend versuche mich zu mir selber zu porten ich aber zu id 1 komme


    hier der Code



    new Float:X,Float:Y,Float:Z,pID;
    clickedid = pID;
    GetPlayerPos(pID,Float:X,Float:Y,Float:Z);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    SetPlayerPosFindZ(playerid,Float:X+1,Float:Y,Float:Z);
    new nachricht[129];
    format(nachricht,sizeof(nachricht),"ADMCMD: Du hast dich zu %s Teleportiert.",SpielerName(clickedid));
    SendClientMessage(playerid,CL_HROT,nachricht);
    new nachricht2[127];
    format(nachricht2,sizeof(nachricht2),"ADMCMD: Admin %s hat sich zu dir Teleportiert. ",SpielerName(playerid));
    SendClientMessage(pID,CL_HROT,nachricht2);
    printf("ID=%i",clickedid);

    return 1;


    Danke im vorraus


    zudem habe ich keine errors und warnings

    also so habe ich es beim speichern....
    saveplayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0) return 1;
    //Speichern level,money,(alevel)
    new query[128];
    sInfo[playerid][geld] = GetPlayerMoney(playerid);
    format(query,sizeof(query),"UPDATE Benutzer SET LEVEL='%i', GELD='%i',ALEVEL=%i WHERE DB_ID='%i' ",sInfo[playerid][level],sInfo[playerid][geld],sInfo[playerid][alevel],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");

    return 1;
    }


    abgesehen das bei dir andere sachen stehen



    viel Glück

    ich sage nur ich habe angefangen was zu machen am nächsten tag vergessen weiter zu machen


    das
    format(query,sizeof(query),"UPDATE user SET level='%i',Money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo,sInfo[playerid][db_id]);


    zu
    format(query,sizeof(query),"UPDATE user SET level='%i',Money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);


    und jetzt findet den fehler




    auflösung es war ein ,sInfo, und da hatte ich nicht weitergemacht aber danke


    MFG Nils

    Mein Problem ist, dass ich ingame zwar z.B geld bekommen kann, diese aktualisierung aber nicht in die DB geschrieben wird. bitte um Hilfe


    Danke vorerst



    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //Speichern level,money
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',Money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],
    GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    printf("savePlayer Wurde aufgerufen");
    printf("Level = %i, Money = %i,alevel = %i, fraktion=%i",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion]);
    return 1;
    }


    in der Console wird das aktualiesierte bereits geprintet aber es liegt am UPDATE....


    MFG


    Nils24 :P

    hier ma der komplette Code der damit zu tun hat
    Bei OnPlayerClickPlayer
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(PlayerInfo[playerid][pAdmin] == 0 || PlayerInfo[playerid][pAdmin] == 1) return 1;
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
    ShowPlayerDialog(playerid,DIALOG_CLICKEN_PLAYER_ADMIN,DIALOG_STYLE_LIST,PlayerInfo[playerid][pName],"Goto\nGethere\nKick\nBan\nHealth\nSlap\nTV\nInterior","OK","Abbrechen");
    pClicked[playerid] = clickedplayerid;
    return 1;
    }
    return 1;
    }


    Dann bei OnDialogResponse
    new sendername[MAX_PLAYER_NAME];
    new Float:leben;
    GetPlayerName(playerid,sendername,sizeof(sendername));


    if(dialogid == DIALOG_CLICKEN_PLAYER_ADMIN)
    {
    switch(listitem)
    {
    case 0:
    {
    new Float:X,Float:Y,Float:Z;
    new nachricht[129];
    new string[128];
    new pID;
    new pname[128];
    GetPlayerName(pID,pname,sizeof(pname));
    GetPlayerPos(pClicked[playerid],X,Y,Z);
    SetPlayerPos(playerid,X+1,Y+1,Z);
    format(string,sizeof(string),"ADMCMD: Du hast dich zu %s Teleportiert. ",pname);
    SendClientMessage(playerid,knallrot,string);
    format(nachricht,sizeof(nachricht),"ADMCMD: Admin %s hat sich zu dir teleportiert!",PlayerInfo[playerid][pName]);
    SendClientMessage(pClicked[playerid],knallrot,nachricht);
    return 1;
    }
    case 1:
    {

    new Float:X,Float:Y,Float:Z;
    new nachricht[129];
    new string[128];
    new pname[MAX_PLAYER_NAME];
    new name[128];
    new pID;
    if(PlayerInfo[playerid][pAdmin] < PlayerInfo[pID][pAdmin]) return SendClientMessage(pID,knallrot,"ADMCMD-Fehler: Du hast dazu keine berechtigung !");
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,pname,sizeof(pname));
    GetPlayerPos(playerid,X,Y,Z);
    SetPlayerPos(pClicked[playerid],X+1,Y+1,Z);
    format(string,sizeof(string),"ADMCMD: Du hast %s zu dir Teleportiert. ",pname);
    SendClientMessage(playerid,knallrot,string);
    format(nachricht,sizeof(nachricht),"ADMCMD: Du wurdest von dem Admin %s zu sich teleportiert !",name);
    SendClientMessage(pClicked[playerid],knallrot,nachricht);
    return 1;
    }
    case 2: return ShowPlayerDialog(playerid,DIALOG_KICKINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Kicken zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
    case 3:
    {
    }
    case 4:
    {
    }
    case 5:
    {
    }
    case 6:
    {
    }
    case 7:
    {
    }


    }
    return 1;
    }


    und den Kick Dialog der eig nichts damit zu tun hat
    if(dialogid == DIALOG_KICKINPUT)
    {
    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_KICKINPUT,DIALOG_STYLE_INPUT,"Gebe einen Grund an:","Um den Spieler Kicken zu können, musst du zunächst einen Grund angeben!","Kicken","Abbrechen");
    new kicktext[200];
    format(kicktext, 200, "ADMCMD: %s wurde von %s vom Server gekickt! Grund: %s", PlayerInfo[pClicked[playerid]][pName],PlayerInfo[playerid][pName],inputtext);
    SendClientMessage(playerid, COLOR_ORANGE, kicktext);
    KickedPlayer(pClicked[playerid]);
    return 1;
    }


    Danke schonmal