搜索
查看: 2626|回复: 13

求助 谁说明一下这个插件怎么用

[复制链接]
发表于 2010-10-10 17:04:38 | 显示全部楼层 |阅读模式 来自 上海
这是一个添加VIP和OP的插件
 楼主| 发表于 2010-10-10 17:05:50 | 显示全部楼层 来自 上海
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admins Manager"
#define VERSION "1.3"
#define AUTHOR "Alka"

#define STR_LEN 64

#define MENU_ACCESS_FLAG ADMIN_RCON

new gConfigsDir[STR_LEN];
new gAdminsFile[STR_LEN];

new const gAdminFlags[][] = {
       
        "a", "b", "c", "d",
        "e", "f", "g", "h",
        "i", "j", "k", "l",
        "m", "n", "o", "p",
        "q", "r", "s", "t",
        "u"
};
new const gAdminAccessFlags[][] = {
       
        "a", "b", "c", "d", "e"
};       
new const gAdminFlagsDetails[][] = {
       
        "Immunity",
        "Reservation",
        "Kick",
        "Ban / Unban",
        "Slay / Slap",
        "Change Map",
        "Cvar change",
        "Cfg exec",
        "Chat messages",
        "Vote",
        "Server Password",
        "Rcon",
        "Custom A",
        "Custom B",
        "Custom C",
        "Custom D",
        "Custom E",
        "Custom F",
        "Custom G",
        "Custom H",
        "Amxx Menu"
};
new const gAdminAccessFlagsDetails[][] = {
       
        "Disconnect on invalid password",
        "Clan tag",
        "For SteamId / WonId",
        "For Ip",
        "Password is not checked"
};
new gAdminTargetId[33];
new gAdminTargetFlags[33][32];
new gAdminTargetPassword[33][STR_LEN];
new gAdminTargetAccessFlags[33][32];
new gAdminTargetAccount[33][32];
new gAdminTargetDetails[33][4][STR_LEN];
new gAdminSaveMode[33];
new bool:gAccessFromEditMenu[33];

public plugin_init() {
       
        register_plugin(PLUGIN, VERSION, AUTHOR);
       
        register_saycmd("adminsmanager", "cmdAdminsManage", -1, "");
       
        register_concmd("amx_adminpassword", "cmdAdminPassword", MENU_ACCESS_FLAG, "<password> - Save / change this password for specified admin.");
        register_concmd("amx_adminaccount", "cmdAdminAccount", MENU_ACCESS_FLAG, "<name / ip / steam id> - Save / change this account info for specified admin.");
       
        get_configsdir(gConfigsDir, sizeof gConfigsDir - 1);
        formatex(gAdminsFile, sizeof gAdminsFile - 1, "%s/users.ini", gConfigsDir);
       
        if(!file_exists(gAdminsFile))
                set_fail_state("Non-existent file.");
}

public cmdAdminsManage(id)
{
        static iMenu, iCallBack;
        iMenu = menu_create("\y管理员经理人 (\w主菜单\y):", "MainMenuHandler");
        iCallBack = menu_makecallback("MainMenuCallBack");
       
        menu_additem(iMenu, "\w增加管理员", "1", 0, iCallBack);
        menu_additem(iMenu, "\w移除管理员", "2", 0, iCallBack);
        menu_additem(iMenu, "\w编辑管理员", "3", 0, iCallBack);
       
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public MainMenuCallBack(id, menu, item)
        return access(id, MENU_ACCESS_FLAG) ? ITEM_ENABLED : ITEM_DISABLED;

public MainMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
                return 1;
       
        static iAccess, iCallback;
        static sData[6];
        menu_item_getinfo(menu, item, iAccess, sData, sizeof sData - 1, _, _, iCallback);
       
        static iKey;
        iKey = str_to_num(sData);
       
        switch(iKey)
        {
                case 1: { cmdAdminAdd(id); }
                case 2: { cmdAdminRemove(id); }
                case 3: { cmdAdminEdit(id); }
        }
        return 1;
}

public cmdAdminAdd(id)
{
        static iMenu;
        iMenu = menu_create("\y管理员经理人 (\w增加管理员\y):", "AddMenuHandler");
       
        static sPlayers[32], iNum;
        get_players(sPlayers, iNum, "ch");
       
        for(new i = 0 ; i < iNum ; i++)
        {
                static sName[32];
                get_user_name(sPlayers[i], sName, sizeof sName - 1);
               
                menu_additem(iMenu, sName, "", 0, -1);
        }
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public AddMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminsManage(id);
                return 1;
        }
       
        static iAccess, iCallback;
        static sBuffer[32];
        menu_item_getinfo(menu, item, iAccess, "", 0, sBuffer, sizeof sBuffer - 1, iCallback);
       
        static iTarget;
        iTarget = get_user_index(sBuffer);
       
        gAdminTargetId[id] = iTarget;
       
        cmdAdminAddSubMenu(id);
        return 1;
}

public cmdAdminAddSubMenu(id)
{       
        static sTemp[STR_LEN], sName[32];
        get_user_name(gAdminTargetId[id], sName, sizeof sName - 1);
       
        formatex(sTemp, sizeof sTemp - 1, "\y管理员经理人 (\w增加管理员 \r%s\y):", sName);
       
        static iMenu;
        iMenu = menu_create(sTemp, "AddSubMenuHandler");
       
        menu_additem(iMenu, "\w增加 / 移除类型", "1", 0, -1);
        menu_additem(iMenu, "\w重新设定类型", "2", 0, -1);
        menu_addblank(iMenu, 0);
       
        static sBuffer[STR_LEN];
        switch(gAdminSaveMode[id])
        {
                case 0: { formatex(sBuffer, sizeof sBuffer - 1, "\w储存管理员方法: \rIp"); }
                case 1: { formatex(sBuffer, sizeof sBuffer - 1, "\w储存管理员方法: \rSteam Id"); }
                case 2: { formatex(sBuffer, sizeof sBuffer - 1, "\w储存管理员方法: \rName + Password"); }
        }
       
        menu_additem(iMenu, sBuffer, "3", 0, -1);
        menu_additem(iMenu, "\w储存管理员", "4", 0, -1);
        menu_addblank(iMenu, 0);
       
        menu_display(id, iMenu, 0);
}

public AddSubMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminAdd(id);
                return 1;
        }
       
        static iAccess, iCallback;
        static sData[6];
        menu_item_getinfo(menu, item, iAccess, sData, sizeof sData - 1, _, _, iCallback);
       
        static iKey;
        iKey = str_to_num(sData);
       
        switch(iKey)
        {
                case 1: { cmdAdminAddFlags(id); }
                case 2: { cmdAdminAddResetFlags(id); }
                case 3: { cmdAdminSaveMode(id); }
                case 4: { cmdAdminAddSave(id); }
        }
        return 1;
}

public cmdAdminAddFlags(id)
{
        static iMenu;
        iMenu = menu_create("\y管理员经理人 (\w增加管理员类型):", "AddFlagsMenuHandler");
回复

使用道具 举报

 楼主| 发表于 2010-10-10 17:06:44 | 显示全部楼层 来自 上海
static sTemp[128];
       
        for(new i = 0 ; i < sizeof gAdminFlags ; i++)
        {
                formatex(sTemp, sizeof sTemp - 1, "%s - \y%s", gAdminFlags[i], gAdminFlagsDetails[i]);
                menu_additem(iMenu, sTemp, "", 0, -1);
        }
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public AddFlagsMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                if(gAccessFromEditMenu[id])
                {
                        cmdAdminEditSubMenu(id);
                        gAccessFromEditMenu[id] = false;
                       
                        return 1;
                }
                else
                {
                        cmdAdminAddSubMenu(id);
                        return 1;
                }
        }
       
        static iAccess, iCallback;
        static sTemp[32], sBuffer[10];
        menu_item_getinfo(menu, item, iAccess, "", 0, sTemp, sizeof sTemp - 1, iCallback);
       
        strtok(sTemp, sBuffer, sizeof sBuffer - 1, sTemp, sizeof sTemp - 1, '-', 1);
       
        if(containi(gAdminTargetFlags[id], sBuffer) != -1)
                replace(gAdminTargetFlags[id], sizeof gAdminTargetFlags[] - 1, sBuffer, "");
        else
                format(gAdminTargetFlags[id], sizeof gAdminTargetFlags[] - 1, "%s%s", gAdminTargetFlags[id], sBuffer);
       
        set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
        show_hudmessage(id, "增加管理员类型 : ^"%s^"", gAdminTargetFlags[id]);
       
        menu_display(id, menu, 0);
        return 1;
}

public cmdAdminAddResetFlags(id)
{
        formatex(gAdminTargetFlags[id], sizeof gAdminTargetFlags[] - 1, "");
       
        set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
        show_hudmessage(id, "增加管理员类型 : 类型重新设定");
       
        cmdAdminAddSubMenu(id);
        return 1;
}

public cmdAdminSaveMode(id)
{
        static iNum;
        iNum++;
       
        if(iNum > 2)
                iNum = 0;
       
        gAdminSaveMode[id] = iNum;
       
        if(iNum == 2)
        {
                set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
                show_hudmessage(id, "增加管理员密码: 在控制台上打上新的管理密码^n指令: amx_adminpassword");
        }
        cmdAdminAddSubMenu(id);
        return 1;
}

public cmdAdminAddSave(id)
{
        static iFile;
        iFile = fopen(gAdminsFile, "at+");
       
        if(!gAdminTargetFlags[id][0])
        {
                set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
                show_hudmessage(id, "你必须选择一些类型在储存^n管理员之前。");
               
                cmdAdminAddSubMenu(id);
                return 1;
        }
        static UserInfo[32];
       
        switch(gAdminSaveMode[id])
        {
                case 0: { get_user_ip(gAdminTargetId[id], UserInfo, sizeof UserInfo - 1, 1); }
                case 1: { get_user_authid(gAdminTargetId[id], UserInfo, sizeof UserInfo - 1); }
                case 2:
                {
                        if(!gAdminTargetPassword[id][0])
                        {
                                set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
                                show_hudmessage(id, "在控制台上打上新的管理密码^n指令: amx_adminpassword <password>");
                               
                                cmdAdminAddSubMenu(id);
                                return 1;
                        }
                        get_user_name(gAdminTargetId[id], UserInfo, sizeof UserInfo - 1);       
                }
        }
       
        static sTemp[128];
        new iLine;
       
        while(!feof(iFile))
        {
                fgets(iFile, sTemp, sizeof sTemp - 1);
               
                iLine++;
               
                if((containi(sTemp, UserInfo) != -1) && sTemp[0] != ';')
                {
                        client_print(id, print_chat, "对不起,管理员帐号的帐号资讯已经存在!");
                        return 1;
                }
        }
       
        static sBuffer[128];
        switch(gAdminSaveMode[id])
        {
                case 0: { formatex(sBuffer, sizeof sBuffer - 1, "^n^"%s^" ^"^" ^"%s^" ^"de^"", UserInfo, gAdminTargetFlags[id]); }
                case 1: { formatex(sBuffer, sizeof sBuffer - 1, "^n^"%s^" ^"^" ^"%s^" ^"ce^"", UserInfo, gAdminTargetFlags[id]); }
                case 2: { formatex(sBuffer, sizeof sBuffer - 1, "^n^"%s^" ^"%s^" ^"%s^" ^"a^"", UserInfo, gAdminTargetPassword[id], gAdminTargetFlags[id]); }
        }
       
        fprintf(iFile, sBuffer);
       
        fclose(iFile);
        client_print(id, print_chat, "成功在线上增加 ^"%s^" 到管理员列表 %d!", UserInfo, iLine + 1);
        server_cmd("amx_reloadadmins");
       
        formatex(gAdminTargetFlags[id], sizeof gAdminTargetFlags[] - 1, "");
        formatex(gAdminTargetPassword[id], sizeof gAdminTargetPassword[] - 1, "");
        gAdminTargetId[id] = 0;
       
        return 1;
}

public cmdAdminPassword(id, level, cid)
{
        if(!cmd_access(id, level, cid, 2))
                return 1;
       
        static sArg[64];
        read_argv(1, sArg, sizeof sArg - 1);
       
        if(!sArg[0])
                return 1;
       
        formatex(gAdminTargetPassword[id], sizeof gAdminTargetPassword[] - 1, sArg);
       
        console_print(id, "成功储存密码 : ^"%s^" 对指定的管理员!", gAdminTargetPassword[id]);
        return 1;
}

public cmdAdminRemove(id)
{
        static iMenu;
        iMenu = menu_create("\y管理员经理人 (\w移除管理员\y):", "RemoveMenuHandler");
       
        static sBuffer[128], sTempItem[128];
        static sTemp[4][STR_LEN];
       
        static iFileP;
        iFileP = fopen(gAdminsFile, "rt");
       
        while(!feof(iFileP))
        {
                fgets(iFileP, sBuffer, sizeof sBuffer - 1);
               
                if((strlen(sBuffer) < 3) || sBuffer[0] == ';')
                        continue;
               
                parse(sBuffer, sTemp[0], sizeof sTemp[] - 1, sTemp[1], sizeof sTemp[] - 1, sTemp[2], sizeof sTemp[] - 1, sTemp[3], sizeof sTemp[] - 1);
               
                for(new j = 0 ; j < sizeof sTemp ; j++)
                {
                        remove_quotes(sTemp[j]);
                }
               
                formatex(sTempItem, sizeof sTempItem - 1, "\w%s\r|\w%s\r|\w%s\r|\w%s\r", sTemp[0], sTemp[1], sTemp[2], sTemp[3]);
               
                menu_additem(iMenu, sTempItem, "", 0, -1);
        }
        fclose(iFileP);
       
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public RemoveMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminsManage(id);
                return 1;
        }
       
        static iAccess, iCallback;
        static sBuffer[128], sTemp[STR_LEN];
        menu_item_getinfo(menu, item, iAccess, "", 0, sBuffer, sizeof sBuffer - 1, iCallback);
       
        strtok(sBuffer, sTemp, sizeof sTemp - 1, sBuffer, sizeof sBuffer - 1, '|');
       
        replace(sTemp, sizeof sTemp - 1, "\w", "");
        replace(sTemp, sizeof sTemp - 1, "\r", "");
        trim(sTemp);
       
        static iFileP;
        iFileP = fopen(gAdminsFile, "rt");
       
        static sTempAccount[STR_LEN];
        new i;
       
        while(!feof(iFileP))
        {
                fgets(iFileP, sBuffer, sizeof sBuffer - 1);
               
                i++;
               
                if((strlen(sBuffer) < 3) || sBuffer[0] == ';')
                        continue;
               
                parse(sBuffer, sTempAccount, sizeof sTempAccount - 1);
               
                remove_quotes(sTempAccount);
               
                if(equali(sTempAccount, sTemp))
                {
                        format(sBuffer, sizeof sBuffer - 1, ";%s", sBuffer);
                        write_file(gAdminsFile, sBuffer, i - 1);
                        break;
                }
        }
        fclose(iFileP);
回复

使用道具 举报

 楼主| 发表于 2010-10-10 17:07:59 | 显示全部楼层 来自 上海
client_print(id, print_chat, "成功移除 ^"%s^" 在管理员列表!", sTemp);
        server_cmd("amx_reloadadmins");
       
        return 1;
}

public cmdAdminEdit(id)
{
        static iMenu;
        iMenu = menu_create("\y管理员经理人 (\w编辑管理员\y):", "EditMenuHandler");
       
        static sBuffer[128], sTempItem[128];
        static sTemp[4][STR_LEN];
       
        static iFileP;
        iFileP = fopen(gAdminsFile, "rt");
       
        while(!feof(iFileP))
        {
                fgets(iFileP, sBuffer, sizeof sBuffer - 1);
               
                if((strlen(sBuffer) < 3) || sBuffer[0] == ';')
                        continue;
               
                parse(sBuffer, sTemp[0], sizeof sTemp[] - 1, sTemp[1], sizeof sTemp[] - 1, sTemp[2], sizeof sTemp[] - 1, sTemp[3], sizeof sTemp[] - 1);
               
                for(new j = 0 ; j < sizeof sTemp ; j++)
                {
                        remove_quotes(sTemp[j]);
                }
               
                formatex(sTempItem, sizeof sTempItem - 1, "\w%s\r|\w%s\r|\w%s\r|\w%s\r", sTemp[0], sTemp[1], sTemp[2], sTemp[3]);
               
                menu_additem(iMenu, sTempItem, "", 0, -1);
        }
        fclose(iFileP);
       
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public EditMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminsManage(id);
               
                for(new j = 0 ; j < sizeof gAdminTargetDetails[] ; j++)
                        formatex(gAdminTargetDetails[id][j], sizeof gAdminTargetDetails[][] - 1, "");
               
                return 1;
        }
       
        static iAccess, iCallback;
        static sBuffer[128];
        menu_item_getinfo(menu, item, iAccess, "", 0, sBuffer, sizeof sBuffer - 1, iCallback);
       
        str_piece(id, sBuffer, gAdminTargetDetails, sizeof gAdminTargetDetails[], sizeof gAdminTargetDetails[][] - 1, '|');
       
        for(new j = 0 ; j < sizeof gAdminTargetDetails[] ; j++)
        {
                replace(gAdminTargetDetails[id][j], sizeof gAdminTargetDetails[][] - 1, "\w", "");
                replace(gAdminTargetDetails[id][j], sizeof gAdminTargetDetails[][] - 1, "\r", "");
                trim(gAdminTargetDetails[id][j]);
        }
        cmdAdminEditSubMenu(id);
        return 1;
}

public cmdAdminEditSubMenu(id)
{
        static iMenu, sTemp[STR_LEN];
        formatex(sTemp, sizeof sTemp - 1, "\y管理员经理人(\w编辑管理员 \r%s\y):", gAdminTargetDetails[id][0]);
       
        iMenu = menu_create(sTemp, "EditSubMenuHandler");
       
        menu_additem(iMenu, "\w编辑帐号名字", "1", 0, -1);
        menu_additem(iMenu, "\w编辑密码", "2", 0, -1);
        menu_additem(iMenu, "\w编辑类型", "3", 0 , -1);
        menu_additem(iMenu, "\w编辑权限等级", "4", 0, -1);
        menu_addblank(iMenu, 0);
        menu_additem(iMenu, "\w储存修改", "5", 0, -1);
       
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public EditSubMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminEdit(id);
                return 1;
        }
       
        static iAccess, iCallback;
        static sData[6];
        menu_item_getinfo(menu, item, iAccess, sData, sizeof sData - 1, _, _, iCallback);
       
        static iKey;
        iKey = str_to_num(sData);
       
        switch(iKey)
        {
                case 1:
                {
                        set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
                        show_hudmessage(id, "在控制台打上指令: amx_adminaccount 获取详情。");
                }
                case 2:
                {
                        set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
                        show_hudmessage(id, "在控制台打上指令: amx_adminpassword 获取详情。");
                }
                case 3:
                {
                        gAccessFromEditMenu[id] = true;
                        cmdAdminAddFlags(id);
                       
                        return 1;
                }
                case 4: { cmdAdminAddAccessFlags(id); return 1; }
                case 5: { cmdSaveAdminModification(id); return 1; }
        }
        menu_display(id, menu, 0);
        return 1;
}

public cmdAdminAccount(id, level, cid)
{
        if(!cmd_access(id, level, cid, 2))
                return 1;
       
        static sArg[64];
        read_argv(1, sArg, sizeof sArg - 1);
       
        if(!sArg[0])
                return 1;
       
        formatex(gAdminTargetAccount[id], sizeof gAdminTargetAccount[] - 1, sArg);
       
        console_print(id, "成功储存帐号 : ^"%s^" 对指定的管理员。", gAdminTargetAccount[id]);
        return 1;
}

public cmdAdminAddAccessFlags(id)
{
        static iMenu;
        iMenu = menu_create("\y管理员经理人 (\w编辑管理员权限等级):", "AddAccessFlagsMenuHandler");
       
        static sTemp[128];
       
        for(new i = 0 ; i < sizeof gAdminAccessFlags ; i++)
        {
                formatex(sTemp, sizeof sTemp - 1, "%s - \y%s", gAdminAccessFlags[i], gAdminAccessFlagsDetails[i]);
                menu_additem(iMenu, sTemp, "", 0, -1);
        }
        menu_addblank(iMenu, 0);
        menu_display(id, iMenu, 0);
}

public AddAccessFlagsMenuHandler(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                cmdAdminEditSubMenu(id);
                return 1;
        }
       
        static iAccess, iCallback;
        static sTemp[32], sBuffer[10];
        menu_item_getinfo(menu, item, iAccess, "", 0, sTemp, sizeof sTemp - 1, iCallback);
       
        strtok(sTemp, sBuffer, sizeof sBuffer - 1, sTemp, sizeof sTemp - 1, '-', 1);
       
        if(containi(gAdminTargetAccessFlags[id], sBuffer) != -1)
                replace(gAdminTargetAccessFlags[id], sizeof gAdminTargetAccessFlags[] - 1, sBuffer, "");
        else
                format(gAdminTargetAccessFlags[id], sizeof gAdminTargetAccessFlags[] - 1, "%s%s", gAdminTargetAccessFlags[id], sBuffer);
       
        set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1);
        show_hudmessage(id, "增加管理员权限等级 : ^"%s^"", gAdminTargetAccessFlags[id]);
       
        menu_display(id, menu, 0);
        return 1;
}

public cmdSaveAdminModification(id)
{
        static iFileP;
        iFileP = fopen(gAdminsFile, "rt");
       
        static sBuffer[128], sTempAccount[4][STR_LEN];
        new i;
       
        while(!feof(iFileP))
        {
                fgets(iFileP, sBuffer, sizeof sBuffer - 1);
               
                i++;
               
                if((strlen(sBuffer) < 3) || sBuffer[0] == ';')
                        continue;
               
                parse(sBuffer, sTempAccount[0], sizeof sTempAccount[] - 1, sTempAccount[1], sizeof sTempAccount[] - 1, sTempAccount[2], sizeof sTempAccount[] - 1, sTempAccount[3], sizeof sTempAccount[] - 1);
               
                for(new j = 0 ; j < sizeof sTempAccount ; j++)
                {
                        remove_quotes(sTempAccount[j]);
                }
               
                if(equali(sTempAccount[0], gAdminTargetDetails[id][0]))
                {
                        formatex(sBuffer, sizeof sBuffer - 1, "^"%s^" ^"%s^" ^"%s%^" ^"%s^"", gAdminTargetAccount[id][0] ? gAdminTargetAccount[id] : sTempAccount[0], gAdminTargetPassword[id][0] ? gAdminTargetPassword[id] : sTempAccount[1], gAdminTargetFlags[id][0] ? gAdminTargetFlags[id] : sTempAccount[2], gAdminTargetAccessFlags[id][0] ? gAdminTargetAccessFlags[id] : sTempAccount[3]);
                        write_file(gAdminsFile, sBuffer, i - 1);
                        break;
                }
        }
        fclose(iFileP);
        client_print(id, print_chat, "成功编辑管理员帐号 ^"%s^"!", gAdminTargetDetails[id][0]);
        server_cmd("amx_reloadadmins");
       
        formatex(gAdminTargetFlags[id], sizeof gAdminTargetFlags[] - 1, "");
        formatex(gAdminTargetPassword[id], sizeof gAdminTargetPassword[] - 1, "");
        formatex(gAdminTargetAccessFlags[id], sizeof gAdminTargetAccessFlags[] - 1, "");
        formatex(gAdminTargetAccount[id], sizeof gAdminTargetAccount[] - 1, "");
       
        return 1;
}

stock register_saycmd(saycommand[], function[], flags = -1, info[])
{
        static sTemp[64];
        formatex(sTemp, sizeof sTemp - 1, "say /%s", saycommand);
        register_clcmd(sTemp, function, flags, info);
        formatex(sTemp, sizeof sTemp - 1, "say .%s", saycommand);
        register_clcmd(sTemp, function, flags, info);
        formatex(sTemp, sizeof sTemp - 1, "say_team /%s", saycommand);
        register_clcmd(sTemp, function, flags, info);
        formatex(sTemp, sizeof sTemp - 1, "say_team .%s", saycommand);
        register_clcmd(sTemp, function, flags, info);
}

stock str_piece(index, const input[], output[][][], outputsize, piecelen, token = '|') //Stock by purple_pixie, edited by me. :D
{
        new i = -1, pieces, len = -1;
       
        while(input[++i] != 0)
        {
                if (input[i] != token)
                {
                        if (++len < piecelen)
                                output[index][pieces][len] = input[i];
                }
                else
                {
                        output[index][pieces++][++len] = 0;
                        len = -1;
                       
                        if(pieces == outputsize)
                                return pieces;
                }
        }
回复

使用道具 举报

 楼主| 发表于 2010-10-10 17:09:06 | 显示全部楼层 来自 上海
以上是源码     请说明一下该怎么用     本人菜鸟    看不懂
回复

使用道具 举报

 楼主| 发表于 2010-10-10 18:06:34 | 显示全部楼层 来自 上海
为什么没人说明一下呢         再顶一下
回复

使用道具 举报

 楼主| 发表于 2010-10-10 18:55:30 | 显示全部楼层 来自 上海
据续顶.......
回复

使用道具 举报

发表于 2010-10-10 20:51:34 | 显示全部楼层 来自 广东珠海
你发帖就舒服,看帖的就蛋疼
回复

使用道具 举报

 楼主| 发表于 2010-10-11 18:51:11 | 显示全部楼层 来自 上海普陀区
.......    晕    那怎么发....  我试试先
回复

使用道具 举报

 楼主| 发表于 2010-10-11 18:53:24 | 显示全部楼层 来自 上海普陀区
怎么上传源码啊
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表