Beiträge von [PeL]Smiley

    Hallo Liebe Leute,
    ich wollte euch mal nachfragen welche Befehle alle in so einem Adminsystem gehören,
    wäre nett wenn ihr hier mal ein paar auflisten könntet.
    Ich habe bis jetzt die alle:


    • /aduty
    • /a
    • /unfreeze
    • /goto
    • /kick
    • /tban
    • /gethere
    • /freeze
    • /ban
    • /setarmor
    • /sethp
    • /o
    • /setvw
    • /cc
    • /givemoney
    • /setlevel
    • /getip
    • /soff
    • /makeleader
    • /makeadmin
    • /rserver

    Funktioniert soweit alles,bis auf das ich ,wenn der jenige im Aduty geht einen Skin setze:
    SetPlayerSkin(playerid,278);


    Wie kann ich dann wenn er wieder raus geht,den alten Skin setzen der er vorher hatte?
    mysql_SetInt(Tabelle_Spieler,"Skin",SpielerInfo[playerid][pSkin],"Name",GetName(playerid));

    ocmd:aduty(playerid,params[]) {
    new stringlabel[128]; //WTF 512 ist bei weitem zuviel
    if(SpielerInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 1");
    new tn[32];
    switch(SpielerInfo[playerid][pAdminlevel])
    {
    case 1:tn = "Probe Supporter";
    case 2:tn = "Supporter";
    case 3:tn = "Moderator";
    case 4:tn = "Adminstrator";
    case 5:tn = "Manager";
    case 6:tn = "Manager";
    }
    format(stringlabel, sizeof(stringlabel), "%s ist im Dienst.", tn);
    setlabel[playerid] = Create3DTextLabel(stringlabel, ROT, 30.0, 40.0, 50.0, 40.0, 0, 0);
    Attach3DTextLabelToPlayer(setlabel[playerid], playerid, 0.0, 0.0, 0.7);
    return 1;
    }



    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(634) : error 017: undefined symbol "setlabel"
    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(634) : warning 215: expression has no effect
    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(634) : error 001: expected token: ";", but found "]"
    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(634) : error 029: invalid expression, assumed zero
    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(634) : fatal error 107: too many error messages on one line


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



    4 Errors.


    Und wie mache ich das dann mit dem /aduty Befehl?

    Kann ich in diesem Befehl
    ocmd:aduty(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 1");
    new Text3D:label = Create3DTextLabel("Server Admin", 0xB4B4B4FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.3);
    return 1;
    }


    Ein string einbauen das dann über dem Spieler Steht mit ALevel Rank 1 : "Supporter im Dienst" Rank 2: Moderator im Dienst"
    Wenn ja wie?
    Und dem Spieler einen Skin setzen und beim erneuten Befehleingabe /aduty alles löschen und den vorherigen Skin wieder geben.
    Danke im voraus :)

    Entschuldigung ich habe mich vertan, es ist nicht beim Ausloggen und einlogge,sondern beim Restart des Servers:


    Bilder :
    Vor dem Restart

    Nach dem Restart:


    Restartbefehl:
    ocmd:rserver(playerid,params[]){
    new reason[128],string[128];
    if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 6");
    if(sscanf(params,"s",reason)) return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/rserver [Grund]");
    format(string,sizeof(string),""COLO"[%s] %s "COLR" hat den Server neugestartet"COLO" Grund: "COLR"%s.",adminrang(playerid),GetName(playerid),reason);
    SendClientMessageToAll(Rot,string);
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))SavePlayer(i);
    }
    SendRconCommand("gmx");
    return 1;
    }
    Und das ist SavePlayer:
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    SpielerInfo[playerid][ pGeld ] = GetPlayerMoney(playerid);
    SpielerInfo[playerid][ pLevel ] = GetPlayerScore(playerid);
    SpielerInfo[playerid][ pSkin ] = GetPlayerSkin(playerid);
    mysql_SetInt(Tabelle_Spieler,"Level",SpielerInfo[playerid][pLevel],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Adminlevel",SpielerInfo[playerid][pAdminlevel],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Skin",SpielerInfo[playerid][pSkin],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Geld",SpielerInfo[playerid][pGeld],"Name",GetName(playerid));
    mysql_SetString(Tabelle_Spieler,"Registrierungsdatum",SpielerInfo[playerid][ pRegDate], "Name", GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Leader",SpielerInfo[playerid][pLeader],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Fraktion",SpielerInfo[playerid][pFraktion],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Rang",SpielerInfo[playerid][pRang],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Perso",SpielerInfo[playerid][pPerso],"Name",GetName(playerid));
    mysql_SetInt(Tabelle_Spieler,"Ban",SpielerInfo[playerid][pBan],"Name",GetName(playerid));
    }
    return 1;
    }

    Ok,jetzt funktioniert das schonmal,allerdings wenn ich mich relogge
    und in den /stats gucke steht bei Fraktion die Frak ID obwohl da der Name stehen soll:


    ocmd:stats(playerid,params[])
    {
    new string[512];
    format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|\n"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\n"COLO"Fraktion:"COLW"%s\n"COLO"Rang:"COLW"%d\n"COLO"Perso:"COLW"%s",
    GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel],GetFrakName(SpielerInfo[playerid][pFraktion]),SpielerInfo[playerid][pRang],(SpielerInfo[playerid][pPerso]==1) ? ("Ja") : ("Nein") );
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"[4YR]Statistiken",string,"Ok","");
    return 1;
    }


    stock GetFrakName(fID)
    {
    new name[256];
    switch(fID)
    {
    case 0: name = "Zivilist";
    case 1: name = "Los Santos Police Department";
    case 2: name = "Bundeswehr";
    case 3: name = "Los Santos News Children's";
    default: name = "Zivilist";
    }
    return name;
    }

    Jetzt funktioniert alles,außer das der Spieler bei einem invite vorher abgefragt wird ob er rein möchte oder nicht mit /accept invite
    So sieht jetzt meine Befehle aus:


    ocmd:invite(playerid,params[])
    {
    new pID;
    new fID = SpielerInfo[playerid][pFraktion];
    if(SpielerInfo[playerid][pRang] < 6) return SendClientMessage(playerid,Rot,""COLO"[4YR]Du bist kein Leader");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/invite [playerid] ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
    new frak = SpielerInfo[playerid][pFraktion];
    SpielerInfo[pID][pFraktion] = frak;
    SpielerInfo[pID][pRang] = 1;
    SendClientMessage(pID, Rot,"Zum akzeptieren /accept invite eingeben.");
    SetPVarInt(pID, "inv_fraktid", fID);
    SetPVarInt(pID, "inv_inviter", playerid);
    return 1;
    }
    ocmd:accept(playerid, params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid, Rot, "INFO: /accept [invite]");
    if(!strcmp(item, "invite", false))
    {
    if(GetPVarInt(playerid, "inv_fraktid") == 0)return SendClientMessage(playerid, Rot, "Du wurdest in keine Fraktion eingeladen.");
    new fID = GetPVarInt(playerid, "inv_fraktid");
    SpielerInfo[playerid][pFraktion] = fID;
    SpielerInfo[playerid][pRang] = 1;
    new string[128];
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.",fInfo[fID][f_name]);
    SendClientMessage(playerid, Rot, string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten.",GetName(playerid));
    new frak = SpielerInfo[playerid][pFraktion];
    SetPlayerPos(playerid,fInfo[frak][f_x],fInfo[frak][f_y],fInfo[frak][f_z]);
    SetPlayerInterior(playerid,fInfo[frak][f_inter]);
    SetPlayerVirtualWorld(playerid,fInfo[frak][f_world]);
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"), Rot,string);
    SetPVarInt(playerid, "inv_fraktid", 0);
    return 1;
    }
    return 1;
    }

    Ich meine beim makeleader Befehl sollte ,wenn man den User Zivilist macht, auf Rank 0 gestellt werden. Weil dann in den /stats steht Fraktion: Zivilist Rang: 6.


    Beim /f chat gebe ich ein /f test und dann kommt:
    INFO: /f [nachricht]

    Hallo Liebe Leute,
    wenn ich mit meinem Frak System eingebe /invite ID wird dieser sofort invitet ohner vorher gefragt zuwerden ob man das überhaupt will.
    Und der Rank wird jeweils auf der Fraktions ID gesetzt also sprich: Bundeswehr ist Frakid 2 wird der Rank auf 2 gesetzt
    Bei News Reporter auf 3.
    Unteranderem geht der /f Chat nicht.
    Und beim Makeleader befehlt sollte man(Wenn man /makeleader ID 0 eingibt (FRAKID 0 ist Zivil) der Rank in den Stats auch auf 0 gesetzt werden)
    Unteranderem speichert er den Namen der Fraktion in meinem Stats befehl nicht und nach einem Relogg steht da nur noch die Frak ID..



    Pastebin:
    http://pastebin.com/F7tVjrTh


    Danke im voraus :)


    Jeffry