引用 | 编辑
z2352671213
2014-02-15 16:50 |
楼主
▼ |
||
![]() 插件来源:原创 使用指令:按Y输入: charge|卡号|卡密码 安装路径:*.amxx放到 addons/amxmodx/plugins || *.sma喜欢放哪就放哪 【插件介绍】 NAG 插件系列 NO.8 PS:RCS = Recharge Card System的缩写 写这个插件的缘由是有人想买,于是就写了,可惜后来他不要了,所以我就发了上来。使用本插件需要具备一定的基础。 PS: 1.使用本插件需要安装SQL数据库并且在AMXX中启用相关功能。(必须) 2.需要对SQL数据库有初步了解。(非必须) 3.需要对编程有初步了解。(非必须) 原作者 NAG (kyo亦对本插件的编写有贡献) 繁化者 NAG(照顾不是大陆的童鞋们,特地繁化了) 请不要侵犯原作者的版权,转载请说明,谢谢合作! 先来简单的介绍下这个插件。这个插件的功能有点类似于我们现在的点卡,或者说充值卡,玩家在输入指定的卡号和密码后,可以获取相应的奖励(比如大量子弹包,权限,经验等等),而伺服器管理员可以通过出售卡号和卡密码来获利。玩家购买卡号和卡密码,可以赠送给亲朋好友,也可以自己使用,每个卡号和卡密码使用一次后自动作废。(玩家对于SQL数据库的查询操作将会被记录到LOG中,充值成功的信息也会被记录) 插件原理: 1.在SQL DB中建立特定的表和字段,用于存储卡信息 2.判断玩家是否有充值意向 3.将玩家提交的卡信息与SQLDB中的卡信息比较 4.反馈比较结果 5.信息符合则给予奖励,并删除DB中的卡信息 如何获利? 1.手动向SQL DB中插入随机卡号和卡密码 2.将卡号和卡密码卖给玩家,你可以做成真的卡片卖出去,也可以只把号码卖出去,此时你就可以赚钱 3.玩家亦可以把卡信息转让或赠送给其他人 4.这样以来你就可以赚钱,无本万利,相当于你是买点卡的,这样你的伺服器除了卖会员以外,还可以卖点卡,是不是商机无限呢? SQL 参数,请按照以下内容填写: amx_sql_host "127.0.0.1" amx_sql_user "帐户名" amx_sql_pass "密码" amx_sql_db "ilovekyo" amx_sql_table "test1" amx_sql_type "mysql" 你必须建立一个叫ilovekyo的数据库,再建立一个叫test1的表,再建立2个字段,分别是uid和pw,类型均为int(11)。当然如果你懂SMA的话你可以在SMA中修改。 关于充值成功的奖励,你必须在如下内容中修改: 复制程式 public reward(id) //以下为奖励部分,请认真修改 { //请在这里编写充值成功的奖励 //例如: cs_set_user_money(id,16000) //金钱已满 //可以改成奖励子弹包或者奖励权限,通过文件操作相关函数,在users.ini里添加玩家信息 //比如zp_set_user_ammo_pakcs(id,zp_get_user_ammo_packs(id) + 5000) 需要接口,亦可以与升级插件接口 } 请告知玩家,充值卡的使用方式为: charge|卡号|卡密码 例如: charge|140101|123456 务必为数字!!! 有图有真相 ![]() 如上图,现在数据库中插入卡信息 ![]() 玩家乱输卡信息肯定充不了 ![]() 输对就显示充值成功 ![]() LOG中会记录玩家的操作 ![]() 充值成功后卡信息会被自动删除,防止二次充值 [此文章售价 3 雅币已有 86 人购买]若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID! ![]()
|
引用 | 编辑
z2352671213
2014-02-15 17:00 |
2楼
▲ ▼ |
引用 | 编辑
z2352671213
2014-02-15 17:05 |
3楼
▲ ▼ |
引用 | 编辑
z2352671213
2014-02-16 10:59 |
5楼
▲ ▼ |
引用 | 编辑
z2352671213
2014-02-16 16:10 |
7楼
▲ ▼ |
下面是引用 e1242656 于 2014-02-16 15:29 发表的 : 复制程式 #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("\yAdmins manager (\wMain Menu\y):", "MainMenuHandler"); iCallBack = menu_makecallback("MainMenuCallBack"); menu_additem(iMenu, "\wAdd Admin", "1", 0, iCallBack); menu_additem(iMenu, "\wRemove Admin", "2", 0, iCallBack); menu_additem(iMenu, "\wEdit Admin", "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("\yAdmins manager (\wAdd Admin\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, "\yAdmins manager (\wAdd Admin \r%s\y):", sName); static iMenu; iMenu = menu_create(sTemp, "AddSubMenuHandler"); menu_additem(iMenu, "\wAdd / Remove flags", "1", 0, -1); menu_additem(iMenu, "\wReset flags", "2", 0, -1); menu_addblank(iMenu, 0); static sBuffer[STR_LEN]; switch(gAdminSaveMode[id]) { case 0: { formatex(sBuffer, sizeof sBuffer - 1, "\wSave admin mode: \rIp"); } case 1: { formatex(sBuffer, sizeof sBuffer - 1, "\wSave admin mode: \rSteam Id"); } case 2: { formatex(sBuffer, sizeof sBuffer - 1, "\wSave admin mode: \rName + Password"); } } menu_additem(iMenu, sBuffer, "3", 0, -1); menu_additem(iMenu, "\wSave admin", "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("\yAdmins manager (\wAdd Admin flags):", "AddFlagsMenuHandler"); 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, "Add Admin flags : ^"%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, "Add Admin flags : Flags reseted"); 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, "Add Admin Password: Type on console the new admin password^ncommand: 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, "You must select some flags before save^nthe admin."); 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, "Type on console the new admin password^ncommand: 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, "Sorry but an admin account with this account info already exists!"); 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, "Successfuly added ^"%s^" to admins list on line %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, "Successfuly saved password : ^"%s^" for specified admin!", gAdminTargetPassword[id]); return 1; } public cmdAdminRemove(id) { static iMenu; iMenu = menu_create("\yAdmins manager (\wRemove Admin\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); client_print(id, print_chat, "Successfuly removed ^"%s^" from admins list!", sTemp); server_cmd("amx_reloadadmins"); return 1; } public cmdAdminEdit(id) { static iMenu; iMenu = menu_create("\yAdmins manager (\wEdit Admin\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, "\yAdmins Manager(\wEdit Admin \r%s\y):", gAdminTargetDetails[id][0]); iMenu = menu_create(sTemp, "EditSubMenuHandler"); menu_additem(iMenu, "\wEdit account name", "1", 0, -1); menu_additem(iMenu, "\wEdit password", "2", 0, -1); menu_additem(iMenu, "\wEdit flags", "3", 0 , -1); menu_additem(iMenu, "\wEdit access flags", "4", 0, -1); menu_addblank(iMenu, 0); menu_additem(iMenu, "\wSave modification", "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, "Type on console command: amx_adminaccount for details."); } case 2: { set_hudmessage(255, 255, 255, -1.0, 0.8, 0, 1.0, 2.0, 0.2, 0.1, 1); show_hudmessage(id, "Type on console command: amx_adminpassword for details."); } 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, "Successfuly saved account : ^"%s^" for specified admin.", gAdminTargetAccount[id]); return 1; } public cmdAdminAddAccessFlags(id) { static iMenu; iMenu = menu_create("\yAdmins manager (\wEdit Admin access flags):", "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, "Add Admin access flags : ^"%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, "Successfuly edited admin account ^"%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; } } return pieces + 1; } ![]() |
引用 | 编辑
p62104821
2014-02-16 16:36 |
8楼
▲ ▼ |
很棒的插件
在其他伺服器有见过类似的插件,但是上网找并没有相关的插件 ![]() 不过我SQL差得要死....... ![]() 比较希望有稍微完整的交学...... ![]() 对了,你使用的SQL数据库是哪种的? MySQL么? ![]() |
引用 | 编辑
z2352671213
2014-02-18 09:24 |
11楼
▲ ▼ |
引用 | 编辑
dog91311
2014-02-18 10:17 |
12楼
▲ ▼ |
不好意思...请问一下....
ilovekyo是什么档案 test1是什么档案 可以说明一下这2个是什么档案吗?谢谢. ![]() |
引用 | 编辑
z2352671213
2014-02-18 14:49 |
13楼
▲ ▼ |
引用 | 编辑
yeungchun2
2014-02-21 16:29 |
14楼
▲ ▼ |
有什么用途
![]() ![]() |
引用 | 编辑
z2352671213
2014-02-21 22:11 |
16楼
▲ ▼ |
引用 | 编辑
1661066267
2014-03-15 19:18 |
17楼
▲ ▼ |
看看支持下...........
![]() |
引用 | 编辑
a543658883
2014-03-16 13:48 |
18楼
▲ ▼ |
我还以为会自动生成卡密和卡号 看了SMA发现就只有判断|有点水平
![]() |
引用 | 编辑
z2352671213
2014-03-18 14:53 |
19楼
▲ ▼ |
引用 | 编辑
z2352671213
2014-03-25 14:54 |
21楼
▲ ▼ |
引用 | 编辑
zxzyman
2014-05-01 10:06 |
22楼
▲ ▼ |
除值的条件是什么.
就是如何得到卡号 和密码.... 用在zp上 要怎么让插件 读取人类的道具 就是我希望 除值后 能购买"人类道具" (像是我发得改良AK ↓ ) 好像有点困难XD ![]() |
引用 | 编辑
z2352671213
2014-05-01 15:36 |
23楼
▲ ▼ |
下面是引用 zxzyman 于 2014-05-01 10:06 发表的 Re:0威】[SQL]充值卡系统的完美设想!!原创~: 我觉得并不困难。如果是在ZP上,也可以轻松获得道具。 比如使用接口。 判断玩家输入正确的卡ID和PW后,通过与其他武器插件的接口来让玩家获得指定的武器,或者用随机数加上swtich -- case来随机选择,然后不同的case里是对应不同的武器的接口。这样显得更加真实。不过如果是武器的话,可能不太值得(除非是永久使用权),如果是经验的话会更好。 ![]() |
引用 | 编辑
dengjacky123
2014-05-15 17:53 |
24楼
▲ ▼ |
好想下载试一下
![]() |
引用 | 编辑
a23107971a
2016-05-10 11:30 |
26楼
▲ ▼ |
原来这个也可以写的出来,我学程才到一滴就快不能理解了说。
![]() |