RSSy MYGO.pl Opublikowano Grudzień 10, 2020 o 22:04 RSSy Udostępnij Opublikowano Grudzień 10, 2020 o 22:04 I don't know where's the error ... CAN SOMEONE HELP ME PLS PHP Code: /* ZP Dev Team & AlferD Point System Version 1.0 */ /* | */ /* Thanks for ZP Dev Team */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <cromchat> #include <nvault> #include <hamsandwich> #include <fakemeta> #include <ad_points> #define UPDATE_HUD 1.0 #define KILL_POINTS 3 #define PLUGIN "Points System" #define VERSION "1.0" #define AUTHOR "AlferD&ZP Dev Team" #define POINTS ADMIN_IMMUNITY #define SHOW_MENU ADMIN_KICK #define ADP_INVALID_ITEM -1 #define ADP_ITEM_AVAILABLE 0 #define ADP_ITEM_NOT_AVAILABLE 1 #define ADP_ITEM_DONT_SHOW 2 #define ADP_PLUGIN_HANDLED 97 #define LIBRARY_ITEMS "adp_items" #define MENU_PAGE_ITEMS g_menu_data[id] #define MAX_PLAYERS 32 new const ITEM_FILE[] = "adp_items.ini" new g_menu_data[MAX_PLAYERS+1] enum _:TOTAL_FORWARDS { FW_ITEM_SELECT_PRE = 0, FW_ITEM_SELECT_POST, FW_EXTRA_ITEM_SELECTED } new g_Forwards[TOTAL_FORWARDS] new g_ForwardResult new Array:g_ItemRealName new Array:g_ItemName new Array:g_ItemPoint new Array:g_ItemID new g_ItemCount new g_AdditionalMenuText[32] const OFFSET_CSMENUCODE = 205 const MAX_NAME = 32 new g_Point[64], g_VaultKey[64],g_VaultData[256], szAuth[64], szPlayerPoint[64], szPlayerName[64], szAdminName[64], szPlayerAuth[32], szAdminAuth[32], szTime[32], szLog[128], gidPlayer[33]; new g_nVault, gHudSync new const szLogFile[ ] = "addons/amxmodx/configs/AD-Points/Points_log-%s.log" new const szLogFile_Donate[ ] = "addons/amxmodx/configs/AD-Points/Donate_log-%s.log" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("amx_give_points", "GivePoint", POINT, "<nick> <value>"); register_clcmd("amx_take_points", "TakePoint", POINT, "<nick> <value>"); register_clcmd("donate_points", "DonatePoint", 0, "<nick> <value>"); register_clcmd("say /donatepoints", "DonatePoint_Menu"); register_clcmd("say /donatep", "DonatePoint_Menu"); register_clcmd("say /dpm", "DonatePoint_Menu"); register_clcmd("_playerpoint", "PlayerPoint"); register_clcmd("say /showpoints", "ShowPoints", SHOW_MENU); register_clcmd("say /sp", "ShowPoints", SHOW_MENU); register_clcmd("say /items", "Shop_Item"); register_clcmd("say /ps", "Shop_Item"); register_clcmd("say /pshop", "Shop_Item"); mkdir("addons/amxmodx/configs/AD-Point"); register_event("DeathMsg", "Kill", "a"); g_nVault = nvault_open("AD_Point"); set_task(UPDATE_HUD, "UpdatePoint", _, _, _, "b"); gHudSync = CreateHudSyncObj(); CC_SetPrefix("&x07[&x04AD-Point&x07]"); g_Forwards[FW_EXTRA_ITEM_SELECTED] = CreateMultiForward("adp_extra_item_selected", ET_CONTINUE, FP_CELL, FP_CELL); g_Forwards[FW_ITEM_SELECT_PRE] = CreateMultiForward("adp_fw_items_select_pre", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL); g_Forwards[FW_ITEM_SELECT_POST] = CreateMultiForward("adp_fw_items_select_post", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL); } public plugin_natives() { register_library("adp_items"); // ZP Dev Team register_native("ad_get_user_points", "native_get_user_points", 1); register_native("ad_set_user_points", "native_set_user_points", 1); register_native("adp_items_register", "native_items_register"); // ZP Dev Team register_native("adp_items_get_id", "native_items_get_id"); // ZP Dev Team register_native("adp_items_get_name", "native_items_get_name"); // ZP Dev Team register_native("adp_items_get_real_name", "native_items_get_real_name"); // ZP Dev Team register_native("adp_items_get_point", "native_items_get_point"); // ZP Dev Team register_native("adp_items_show_menu", "native_items_show_menu"); // ZP Dev Team register_native("adp_items_force_buy", "native_items_force_buy"); // ZP Dev Team register_native("adp_items_menu_text_add", "native_items_menu_text_add"); // ZP Dev Team register_native("adp_register_extra_item", "native_register_extra_item"); // ZP Dev Team g_ItemRealName = ArrayCreate(32, 1); // ZP Dev Team g_ItemName = ArrayCreate(32, 1); // ZP Dev Team g_ItemPoint = ArrayCreate(1, 1); // ZP Dev Team } public client_putinserver(id) { g_Point[id] = 0 LoadPoint(id) } public Kill() { new attacker = read_data( 1 ) new victim = read_data( 2 ) if( cs_get_user_team( attacker ) != cs_get_user_team( victim ) ) { g_Point[ attacker ] += KILL_POINT } return PLUGIN_HANDLED; } public ShowPoints(id) { new iPlayers[32], iPnum get_players(iPlayers, iPnum, "a") new iMenu = menu_create("Show Player Points", "Handled_Menu") for(new szItem[128], zName[MAX_NAME], iPlayer, i; i < iPnum; i++) { iPlayer = iPlayers[i] get_user_name(iPlayer, zName, charsmax(zName)) formatex(szItem, charsmax(szItem), "%s [ %d Points ]", zName, g_Point[iPlayer]) menu_additem(iMenu, szItem) } menu_display(id, iMenu) return PLUGIN_HANDLED } public Handled_Menu(id, wMenu, item) { menu_destroy(wMenu) return PLUGIN_HANDLED } public DonatePoint_Menu(id) { new Item[512] new szItem[128] formatex(Item, charsmax(Item), "\rDonate \yPoints \wMenu^nYour Points: \r%d\y^n", g_Point[id]) new wMenu = menu_create(Item, "Handled_Menu_Donate") new Pos[3] new iPlayers[MAX_PLAYERS], iPnum get_players(iPlayers, iPnum); for (new szName[MAX_NAME_LENGTH], iPlayer, i; i < iPnum; i++) { iPlayer = iPlayers[i] num_to_str(iPlayer, Pos, charsmax(Pos)) get_user_name(iPlayer, szName, charsmax(szName)) formatex(szItem, charsmax(szItem), "\w%s \r[ \y%d Points \r]", szName, g_Point[iPlayer]) menu_additem(wMenu, szItem, Pos) } menu_setprop(wMenu, MPROP_EXIT, szItem) menu_display(id, wMenu, 0) } public Handled_Menu_Donate(id, wMenu, item) { if (item == MENU_EXIT) { menu_destroy(wMenu) return PLUGIN_HANDLED } new Data[6], Name[64] new Access, Callback menu_item_getinfo(wMenu, item, Access, Data, sizeof(Data)-1, Name, sizeof(Name)-1, Callback) new key = str_to_num(Data) gidPlayer[key] = id client_cmd(id, "messagemode _playerpoint") menu_destroy(wMenu) return PLUGIN_HANDLED } public DonatePoint(id) { new arg[32], arg2[32] read_argv(1,arg,32) read_argv(2,arg2,31) new name = cmd_target(id,arg,2) if(!name) return PLUGIN_HANDLED new value = str_to_num(arg2) get_user_name(name, szPlayerName, charsmax(szPlayerName)) get_user_name(id, szAdminName, charsmax(szAdminName)) get_user_authid(name, szPlayerAuth, charsmax(szPlayerName)) get_user_authid(id, szAdminAuth, charsmax(szAdminName)) get_time("%Y%d%m", szTime, charsmax(szTime)) formatex(szLog, charsmax(szLog), szLogFile_Donate, szTime) if(g_Point[id] >= 0) { g_Point[id] -= value g_Point[name] += value log_to_file(szLog, "Donate Points: Name: [ %s ] | SteamID: [ %s ] |Donate| Name: [ %s ] SteamID: [ %s ] %i Points", szAdminName, szAdminAuth, szPlayerName, szPlayerAuth, value) CC_SendMessage(id, " &x04You Give &x01%s &x05%i &x04Points", szPlayerName, value) CC_SendMessage(name, " &x04%s &x05Give You &x04%i &x01Points", szAdminName, value, szPlayerName) } else { CC_SendMessage(id, " &x04You Have No Points") } return PLUGIN_HANDLED; } public GivePoint(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED; new arg[32], arg2[32] read_argv(1,arg,32) read_argv(2,arg2,31) new name = cmd_target(id,arg,2) if(!name) return PLUGIN_HANDLED new value = str_to_num(arg2) g_Point[name] += value get_user_name(name, szPlayerName, charsmax(szPlayerName)) get_user_name(id, szAdminName, charsmax(szAdminName)) get_user_authid(name, szPlayerAuth, charsmax(szPlayerName)) get_user_authid(id, szAdminAuth, charsmax(szAdminName)) get_time("%Y%d%m", szTime, charsmax(szTime)) formatex(szLog, charsmax(szLog), szLogFile, szTime); log_to_file(szLog, "Give Points: Name: [ %s ] | SteamID: [ %s ] |Give| Name: [ %s ] SteamID: [ %s ] %i Points", szAdminName, szAdminAuth, szPlayerName, szPlayerAuth, value) CC_SendMessage(0, "ADMIN %s Give %i Points a %s", szAdminName, value, szPlayerName) return PLUGIN_HANDLED; } public TakePoint(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED; new arg[32], arg2[32] read_argv(1,arg,32) read_argv(2,arg2,31) new name = cmd_target(id,arg,2) if(!name) return PLUGIN_HANDLED new value = str_to_num(arg2) g_Point[name] -= value get_user_name(name, szPlayerName, charsmax(szPlayerName)) get_user_name(id, szAdminName, charsmax(szAdminName)) get_user_authid(name, szPlayerAuth, charsmax(szPlayerName)) get_user_authid(id, szAdminAuth, charsmax(szAdminName)) get_time("%Y%d%m", szTime, charsmax(szTime)) formatex(szLog, charsmax(szLog), szLogFile, szTime); log_to_file(szLog, "Take Points: Name: [ %s ] | SteamID: [ %s ] |Take| Name: [ %s ] SteamID: [ %s ] %i Points", szAdminName, szAdminAuth, szPlayerName, szPlayerAuth, value) CC_SendMessage(0, "ADMIN %s Take %i Points a %s", szAdminName, value, szPlayerName) return PLUGIN_HANDLED } public SavePoint(id) { new szAuth[32] get_user_authid(id, szAuth, charsmax(szAuth)) format(g_VaultKey, charsmax(g_VaultKey), "%s", szAuth) format(g_VaultData,charsmax(g_VaultData),"%i#",g_Point[id]) nvault_set(g_nVault, g_VaultKey, g_VaultData) } public LoadPoint(id) { get_user_authid(id, szAuth, charsmax(szAuth)) format(g_VaultKey, charsmax(g_VaultKey),"%s", szAuth) format(g_VaultData, charsmax(g_VaultData),"%i#", g_Point[id]) nvault_get(g_nVault, g_VaultKey, g_VaultData,charsmax(g_VaultData)) replace_all(g_VaultData, charsmax(g_VaultData), "#", " ") parse(g_VaultData, szPlayerPoint, charsmax(szPlayerPoint)) g_Point[id] = str_to_num(szPlayerPoint) } public UpdatePoint(id) { new iPlayers[ 32 ], iNum, id; get_players( iPlayers, iNum ); for( new i; i < iNum; i++ ) { id = iPlayers[ i ] if (is_user_alive( id ) ) { set_hudmessage( 209, 167, 0, 0.42, 0.0, 0, 6.0, UPDATE_HUD + 0.1 ); ShowSyncHudMsg( id, gHudSync, "Your Points: %d", g_Point[id] ); SavePoint(id); } } return PLUGIN_HANDLED; } public PlayerPoint(id) { new say[300] read_args(say, charsmax(say)) remove_quotes(say) if(!is_str_num(say) || equal(say, "")) return PLUGIN_HANDLED PointPlayer(id, say) return PLUGIN_CONTINUE } public PointPlayer(id, say[]) { new value = str_to_num(say) new name = gidPlayer[id] get_time("%Y%d%m", szTime, charsmax(szTime)) formatex(szLog, charsmax(szLog), szLogFile_Donate, szTime) if( name > 0 ) { new name1[32], name2[32] new auth1[32], auth2[32] get_user_name(id, name1, charsmax(name1)) get_user_name(name, name2, 31) get_user_authid(id, auth1, charsmax(auth1)) get_user_authid(name, auth2, charsmax(auth2)) if(g_Point[id] >= 1) { g_Point[id] -= value g_Point[name] += value CC_SendMessage(id, " &x04You Give &x01%s &x05%i &x04Points", name2, value) CC_SendMessage(name, " &x04%s &x05Give You &x04%i &x01Points", name1, value) log_to_file(szLog, "Donate Points: Name: [ %s ] | SteamID: [ %s ] |Donate| Name: [ %s ] SteamID: [ %s ] %i Points", name1, auth1, name2, auth2, value) } else { CC_SendMessage(id, " &x04You Dont Have Enough Points") client_cmd(id, "messagemode _playerpoint") } } else { return PLUGIN_HANDLED } return PLUGIN_HANDLED } public native_get_user_points(id) { return g_Point[id] } public native_set_user_points(id, PointNum) { g_Point[id] = PointNum } public adp_fw_items_select_post(id, itemid) { ExecuteForward(g_Forwards[FW_EXTRA_ITEM_SELECTED], g_ForwardResult, id, itemid) if (g_ForwardResult >= ADP_PLUGIN_HANDLED) { new item_point = adp_items_get_point(itemid) g_Point[id] += item_point } } public native_register_extra_item(plugin_id, num_params) { new name[32] get_string(1, name, charsmax(name)) new point = get_param(2) new itemid = adp_items_register(name, point) if (itemid < 0) return itemid; ArrayPushCell(g_ItemID, itemid) return itemid; } public native_items_register(plugin_id, num_params) { new name[32], point = get_param(2) get_string(1, name, charsmax(name)) if (strlen(name) < 1) { log_error(AMX_ERR_NATIVE, "[AD-Points] Can't register item with an empty name") return ADP_INVALID_ITEM; } new index, item_name[32] for (index = 0; index < g_ItemCount; index++) { ArrayGetString(g_ItemRealName, index, item_name, charsmax(item_name)) if (equali(name, item_name)) { log_error(AMX_ERR_NATIVE, "[AD-Points] Item already registered (%s)", name) return ADP_INVALID_ITEM; } } new real_name[32] copy(real_name, charsmax(real_name), name) ArrayPushString(g_ItemRealName, real_name) if (!amx_load_setting_string(ITEM_FILE, real_name, "NAME", name, charsmax(name))) amx_save_setting_string(ITEM_FILE, real_name, "NAME", name) ArrayPushString(g_ItemName, name) if (!amx_load_setting_int(ITEM_FILE, real_name, "POINTS", point)) amx_save_setting_int(ITEM_FILE, real_name, "POINTS", point) ArrayPushCell(g_ItemPoint, point) g_ItemCount++ return g_ItemCount - 1; } public native_items_get_id(plugin_id, num_params) { new real_name[32] get_string(1, real_name, charsmax(real_name)) new index, item_name[32] for (index = 0; index < g_ItemCount; index++) { ArrayGetString(g_ItemRealName, index, item_name, charsmax(item_name)) if (equali(real_name, item_name)) return index; } return ADP_INVALID_ITEM; } public native_items_get_name(plugin_id, num_params) { new item_id = get_param(1) if (item_id < 0 || item_id >= g_ItemCount) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid item id (%d)", item_id) return false; } new name[32] ArrayGetString(g_ItemName, item_id, name, charsmax(name)) new len = get_param(3) set_string(2, name, len) return true; } public native_items_get_real_name(plugin_id, num_params) { new item_id = get_param(1) if (item_id < 0 || item_id >= g_ItemCount) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid item id (%d)", item_id) return false; } new real_name[32] ArrayGetString(g_ItemRealName, item_id, real_name, charsmax(real_name)) new len = get_param(3) set_string(2, real_name, len) return true; } public native_items_get_point(plugin_id, num_params) { new item_id = get_param(1) if (item_id < 0 || item_id >= g_ItemCount) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid item id (%d)", item_id) return -1; } return ArrayGetCell(g_ItemPoint, item_id); } public native_items_show_menu(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid Player (%d)", id) return false; } Shop_Item(id) return true; } public native_items_force_buy(plugin_id, num_params) { new id = get_param(1) if (!is_user_connected(id)) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid Player (%d)", id) return false; } new item_id = get_param(2) if (item_id < 0 || item_id >= g_ItemCount) { log_error(AMX_ERR_NATIVE, "[AD-Points] Invalid item id (%d)", item_id) return false; } new ignorepoint = get_param(3) buy_item(id, item_id, ignorepoint) return true; } public native_items_menu_text_add(plugin_id, num_params) { static text[32] get_string(1, text, charsmax(text)) format(g_AdditionalMenuText, charsmax(g_AdditionalMenuText), "%s%s", g_AdditionalMenuText, text) } #if AMXX_VERSION_NUM < 190 public client_disconnect(id) #else public client_disconnected(id) #endif { MENU_PAGE_ITEMS = 0 } public Shop_Item(id) { if (!is_user_alive(id)) return; show_items_menu(id) } show_items_menu(id) { static menu[128], name[32], point, transkey[64] new menuid, index, itemdata[2] menuid = menu_create("\rADP \yItem \dMenu", "menu_itemss") for (index = 0; index < g_ItemCount; index++) { g_AdditionalMenuText[0] = 0 ExecuteForward(g_Forwards[FW_ITEM_SELECT_PRE], g_ForwardResult, id, index, 0) if (g_ForwardResult >= ADP_ITEM_DONT_SHOW) continue; ArrayGetString(g_ItemName, index, name, charsmax(name)) point = ArrayGetCell(g_ItemPoint, index) formatex(transkey, charsmax(transkey), "ITEMNAME %s", name) if (GetLangTransKey(transkey) != TransKey_Bad) formatex(name, charsmax(name), "%L", id, transkey) if (g_ForwardResult >= ADP_ITEM_NOT_AVAILABLE) formatex(menu, charsmax(menu), "\d%s %d %s", name, point, g_AdditionalMenuText) else formatex(menu, charsmax(menu), "%s \y%d \w%s", name, point, g_AdditionalMenuText) itemdata[0] = index itemdata[1] = 0 menu_additem(menuid, menu, itemdata) } if (menu_items(menuid) <= 0) { CC_SendMessage(id, " &x04No Item.") menu_destroy(menuid) return; } formatex(menu, charsmax(menu), "\yBack") menu_setprop(menuid, MPROP_BACKNAME, menu) formatex(menu, charsmax(menu), "\yNext") menu_setprop(menuid, MPROP_NEXTNAME, menu) formatex(menu, charsmax(menu), "\rExit") menu_setprop(menuid, MPROP_EXITNAME, menu) MENU_PAGE_ITEMS = min(MENU_PAGE_ITEMS, menu_pages(menuid)-1) set_pdata_int(id, OFFSET_CSMENUCODE, 0) menu_display(id, menuid, MENU_PAGE_ITEMS) } public menu_itemss(id, menuid, item) { if (item == MENU_EXIT) { MENU_PAGE_ITEMS = 0 menu_destroy(menuid) return PLUGIN_HANDLED; } MENU_PAGE_ITEMS = item / 7 if (!is_user_alive(id)) { menu_destroy(menuid) return PLUGIN_HANDLED; } new itemdata[2], dummy, itemid menu_item_getinfo(menuid, item, dummy, itemdata, charsmax(itemdata), _, _, dummy) itemid = itemdata[0] buy_item(id, itemid) menu_destroy(menuid) return PLUGIN_HANDLED; } buy_item(id, itemid, ignorepoint = 0) { ExecuteForward(g_Forwards[FW_ITEM_SELECT_PRE], g_ForwardResult, id, itemid, ignorepoint) if (g_ForwardResult >= ADP_ITEM_NOT_AVAILABLE) return; ExecuteForward(g_Forwards[FW_ITEM_SELECT_POST], g_ForwardResult, id, itemid, ignorepoint) } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi