<div>First, sorry if my English is bad, but did not speak good English and am using Google Translate,<br /><br />Well, today I bring My First Plugin<br /><br />This Plugin I think because I needed in my Zombie Server<br /><br />This Plugin serves good Zombie Mode <br /><br />Well I show how Zombie <br /><br />For the Zombie Mode, it has 2 way to work,<br /><br />1. Earn AmmoPacks By Combos<br />2. Earn experience Combos<br /><br />Well here Showing How-To Zombie, Winning AmmoPacks<br /><br />Zombie and winning AmmoPacks By way Combos<br /><div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Code:</div>
<hr /><code style="margin:0px" dir="ltr" style="text-align:left">#include <amxmodx><br />#include <colorchat><br />#include <hamsandwich><br />#include <zombieapocalypse><br /><br />#define PLUGIN "PJF Party"<br />#define VERSION "1.0"<br />#define AUTHOR "[R]ak"<br /><br />// Use #define TAG "Example: MYSERVER"<br />#define TAG "Pedro_Josef |"<br />#define ID_HUD (taskid - TASK_HUD)<br />#define TASK_COMBO 5546<br />#define TASK_COMBOP 5546<br /><br />enum (+= 77) <br />{<br /> TASK_HUD = 777,<br /> TASK_ACEPT<br />}<br /><br />enum <br />{<br /> NONE = -1,<br /> Master,<br /> Start_Amount<br />}<br /><br />enum _:pdata <br />{<br /> In_Party,<br /> Position,<br /> Amount_In_Party,<br /> Block_Party,<br /> UserName[32]<br />}<br /><br />enum _:DataCallBack<br />{<br /> MASTER,<br /> USER<br />}<br /><br />new g_PartyData[33][pdata], Array:Party_Ids[33], g_maxplayers, g_MenuCallback[DataCallBack], g_MsgSayText<br /><br />new cvar_time_acept, cvar_max_players, cvar_allow_bots<br /><br />new g_combo[33], g_damage[33], g_Hits[33] // Combos Agregados<br />new g_combop[33], g_damagep[33], g_Hitsp[33] // Combos Party Agregados<br />new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2 // Bullet Dmg, Mysing Combo<br /><br />public plugin_init() <br />{<br /> <br /> register_plugin(PLUGIN, VERSION, AUTHOR)<br /> <br /> // Event<br /> register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")<br /> register_event("HLTV", "on_new_round", "a", "1=0", "2=0")<br /> register_event("HLTV","event_newround", "a","1=0", "2=0")<br /> <br /> g_type = register_cvar("amx_bulletdamage","1")<br /> g_recieved = register_cvar("amx_bulletdamage_recieved","1")<br /> <br /> register_clcmd("say /party", "cmdParty")<br /> register_clcmd("say_team", "cmdSayTeam")<br /> <br /> RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")<br /> <br /> cvar_time_acept = register_cvar("party_time_acept","15")<br /> cvar_max_players = register_cvar("party_max_players","5")<br /> cvar_allow_bots = register_cvar("party_allow_bots","1")<br /> <br /> g_hudmsg1 = CreateHudSyncObj()<br /> g_hudmsg2= CreateHudSyncObj()<br /> <br /> g_maxplayers = get_maxplayers()<br /> g_MsgSayText = get_user_msgid("SayText")<br /> <br /> g_MenuCallback[MASTER] = menu_makecallback("check_master")<br /> g_MenuCallback[USER] = menu_makecallback("check_user")<br />}<br /><br />public event_newround()<br />{<br /> for(new player = 0; player <= 32; player++) <br /> {<br /> g_combo[player] = g_combop[player] = 1<br /> g_damage[player] = g_damagep[player] = 0<br /> g_Hits[player] = g_Hitsp[player] = 0<br /> }<br />}<br /><br />public plugin_cfg()<br /> for(new i = 1; i <= g_maxplayers; i++)<br /> Party_Ids[i] = ArrayCreate(1, 1)<br /><br />public client_connect(id)<br />{<br /> g_combo[id] = g_combop[id] = 1<br /> g_damage[id] = g_damagep[id] = 0<br /> g_Hits[id] = g_Hitsp[id] = 0<br />}<br />public client_disconnect(id) <br />{ <br /> if(g_PartyData[id][In_Party])<br /> g_PartyData[id][Position] ? g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id) : destoy_party(id)<br /> <br /> g_PartyData[id][UserName][0] = 0<br /> g_PartyData[id][Block_Party] = false<br />}<br /><br />// Ham Take Damage Forward<br />public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)<br />{<br /> // Attacker is human...<br /> if (!zp_get_user_zombie(attacker))<br /> {<br /> if(!g_PartyData[attacker][In_Party]) // Combos Sin Party<br /> {<br /> // Combos Agregados<br /> g_damage[attacker] += floatround(damage)<br /> g_Hits[attacker]++<br /> while(g_damage[attacker]>=(power(g_combo[attacker], 1)*330))<br /> {<br /> g_combo[attacker]++<br /> }<br /> remove_task(attacker+TASK_COMBO)<br /> set_task(0.1, "task_combo", attacker+TASK_COMBO)<br /> set_task(4.0, "reset_combo", attacker+TASK_COMBO) <br /> }<br /> else // Combos Del Party<br /> {<br /> new Players[32], user<br /> get_party_index(attacker, Players)<br /> for(new i; i < g_PartyData[attacker][Amount_In_Party]; i++)<br /> {<br /> user = Players[i]<br /> g_damagep[user] += floatround(damage) / g_PartyData[user][Amount_In_Party]<br /> g_Hitsp[user]++<br /> while(g_damagep[user]>=(power(g_combop[user], 1)*430))<br /> {<br /> g_combop[user]++<br /> }<br /> remove_task(user+TASK_COMBOP)<br /> set_task(0.1, "task_party_combo", user+TASK_COMBOP)<br /> set_task(4.0, "reset_party_combo", user+TASK_COMBOP)<br /> }<br /> }<br /> }<br />}<br /><br />public on_new_round()<br />{<br /> g_enabled = get_pcvar_num(g_type)<br /> if(get_pcvar_num(g_recieved)) g_showrecieved = true <br />}<br /><br />public on_damage(id)<br />{<br /> if(g_enabled)<br /> {<br /> static damage; damage = read_data(2)<br /> if(g_showrecieved && zp_get_user_zombie(id)) <br /> { <br /> set_hudmessage(255, 0, 0, 0.3, 0.0, 2, 0.1, 4.0, 0.1, 0.1, -1)<br /> ShowSyncHudMsg(id, g_hudmsg2, "[Daño]= %i^n", damage) <br /> } <br /> }<br />}<br /><br />public task_combo(attacker)<br />{<br /> attacker -= TASK_COMBO<br /> static flags<br /> flags = get_user_flags(attacker)<br /> <br /> if(g_combo[attacker]>0)<br /> {<br /> set_hudmessage(0, 200, 200, 0.0, 0.5, 1, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(attacker, g_hudmsg1, "[Normal Combos]^nDamage: %d^n%d | %d^nTotal de Combos: %d^nTu Ganas: %d AmmoPacks", <br /> g_damage[attacker], g_damage[attacker], (power(g_combo[attacker], 1)*330), g_combo[attacker], g_combo[attacker] * 1+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0)))<br /> }<br /> <br />}<br /><br />public task_party_combo(i)<br />{<br /> i -= TASK_COMBOP<br /> <br /> static flags<br /> flags = get_user_flags(i)<br /> <br /> if(g_combop[i]>0 && !zp_get_user_zombie(i) && is_user_alive(i))<br /> {<br /> if(g_PartyData[i][In_Party])<br /> {<br /> set_hudmessage(0, 200, 200, 0.0, 0.5, 1, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(i, g_hudmsg1, "[PJF Party]^nDamage: %d^n%d | %d^nTotal de Combos: %d^nTu Ganas: %d AmmoPacks", <br /> g_damagep[i], g_damagep[i], (power(g_combop[i], 4)*430), g_combop[i], g_combop[i] * 4+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0)))<br /> }<br /> }<br />}<br /><br />public reset_combo(id)<br />{<br /> id -= TASK_COMBO<br /> static flags<br /> flags = get_user_flags(id)<br /> <br /> static ganancia; ganancia = g_combo[id] * 1+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0))<br /> if (g_combo[id]>0)<br /> {<br /> set_hudmessage(120, 120, 120, -1.0, 0.25, 0, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(id, g_hudmsg1, "^n^n^n^n Combo Terminado (%d)^nGanancia: %d AmmoPacks", g_combo[id], ganancia)<br /> ColorChat(id, TEAM_COLOR, "^x04[PJF Party]^x01 Combo Total:^x04 %d^x01 | Damage Total:^x04 %d^x01 | Hits Echos:^x04 %d^x01 | Ganancia:^x04 %d", g_combo[id], g_damage[id], g_Hits[id], ganancia)<br /> zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + ganancia)<br /> }<br /> <br /> g_damage[id] = 0<br /> g_Hits[id] = 0<br /> g_combo[id] = 0<br />}<br />public reset_party_combo(i)<br />{<br /> i -= TASK_COMBOP<br /> static flags<br /> flags = get_user_flags(i)<br /> <br /> static gananciap; gananciap = g_combop[i] * 4+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0))<br /> if(g_PartyData[i][In_Party])<br /> {<br /> if(!zp_get_user_zombie(i))<br /> {<br /> set_hudmessage(120, 120, 120, -1.0, 0.25, 0, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(i, g_hudmsg1, "^n^n^n^n Combo Party Terminado (%d)^nGanancia: %d AmmoPacks", g_combop[i], gananciap)<br /> ColorChat(i, TEAM_COLOR, "^x04[PJF Party]^x01 Combo party Total:^x04 %d^x01 | Damage Total:^x04 %d^x01 | Hits Echos:^x04 %d^x01 | Ganancia:^x04 %d", g_combop[i], g_damagep[i], g_Hitsp[i], gananciap)<br /> }<br /> zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + gananciap)<br /> }<br /> <br /> g_damagep[i] = 0<br /> g_Hitsp[i] = 0<br /> g_combop[i] = 0<br />}<br /><br />public cmdParty(id) <br />{<br /> <br /> if(g_PartyData[id][In_Party])<br /> show_party_info_menu(id)<br /> else<br /> show_party_menu(id)<br /> <br /> return PLUGIN_HANDLED<br />}<br /><br />public show_party_menu(id) {<br /> <br /> new iMenu = menu_create("[PJF Party] - rMenu Party:","party_menu"), BlockParty[50]<br /> <br /> menu_additem(iMenu, "yCrear Party", "0")<br /> <br /> formatex(BlockParty, charsmax(BlockParty), "yBloquear Invitaciones De Party: w%s",g_PartyData[id][Block_Party] ? "Si" : "No")<br /> <br /> menu_additem(iMenu, BlockParty, "1")<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu, 0)<br />}<br /><br />public show_party_info_menu(id) {<br /> <br /> new iMenu = menu_create("[PJF Party] - rMenu Party:","party_info_menu")<br /> <br /> menu_additem(iMenu, "Agregar Integrante", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Expulsar Integrande", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Destruir Party", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Salir del Party", .callback = g_MenuCallback[USER])<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_add_menu(id) {<br /> <br /> new iMenu = menu_create(g_PartyData[id][In_Party] ? "rAgregar Integrante:" : "rCrear Party:", "party_create_menu"), Poss[3], Name[32]<br /> <br /> for(new i = 1; i <= g_maxplayers; i++) {<br /> <br /> if(!is_available_to_party(i) || id == i)<br /> continue;<br /> <br /> get_user_name(i, Name, charsmax(Name))<br /> num_to_str(i, Poss, charsmax(Poss))<br /> menu_additem(iMenu, Name, Poss)<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_kick_menu(id) {<br /> <br /> new iMenu = menu_create("rKick Party Menu:","party_kick_menu"), Players[32], Poss[3], user<br /> <br /> get_party_index(id, Players)<br /> <br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {<br /> user = Players[i]<br /> num_to_str(user, Poss, charsmax(Poss))<br /> menu_additem(iMenu, g_PartyData[user][UserName], Poss)<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_invite_menu(id2, MasterId) {<br /> <br /> new MenuTitle[128], iMenu, Str_MasterId[3]<br /> <br /> set_player_party_name(MasterId)<br /> set_player_party_name(id2)<br /> <br /> client_print(MasterId, print_chat, "%s Solicitud enviada a %s", TAG, g_PartyData[id2][UserName])<br /> <br /> formatex(MenuTitle, charsmax(MenuTitle), "%s te mando una invitacion para %s Party", g_PartyData[MasterId][UserName], g_PartyData[MasterId][In_Party] ? "unirte al" : "crear un")<br /> <br /> new UserTaskArgs[3]<br /> <br /> UserTaskArgs[0] = iMenu = menu_create( MenuTitle , "party_invite_menu")<br /> UserTaskArgs[1] = MasterId<br /> <br /> num_to_str(MasterId, Str_MasterId, charsmax(Str_MasterId))<br /> <br /> menu_additem( iMenu , "Aceptar", Str_MasterId)<br /> menu_additem( iMenu , "Rechazar", Str_MasterId)<br /> <br /> if(is_user_bot(id2) && get_pcvar_num(cvar_allow_bots)) {<br /> party_invite_menu(id2, iMenu, 0)<br /> return<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_NEVER)<br /> <br /> menu_display(id2, iMenu)<br /> <br /> remove_task_acept(id2)<br /> <br /> set_task(get_pcvar_float(cvar_time_acept), "Time_Acept", id2+TASK_ACEPT, UserTaskArgs, 2)<br />}<br /> <br /><br />public party_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> if(item) {<br /> g_PartyData[id][Block_Party] = g_PartyData[id][Block_Party] ? false : true<br /> show_party_menu(id)<br /> }<br /> else<br /> show_party_add_menu(id)<br /> <br /> menu_destroy(menu)<br /> <br />}<br /><br />public party_create_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id2<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id2 = str_to_num(iKey)<br /> <br /> if(!is_available_to_party(id2))<br /> return<br /> <br /> show_party_invite_menu(id2, id)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_invite_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> remove_task_acept(id)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id_master<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id_master = str_to_num(iKey)<br /> <br /> switch(item) {<br /> case 0: {<br /> <br /> if(!g_PartyData[id_master][In_Party]) {<br /> create_party(id_master, id)<br /> set_task_party_hud(id_master)<br /> set_task_party_hud(id)<br /> }<br /> else {<br /> if(g_PartyData[id_master][Amount_In_Party] == get_pcvar_num(cvar_max_players)) {<br /> <br /> client_print(id, print_chat, "%s Ya se alcanzo el numero maximo de integrantes en la party", TAG)<br /> client_print(id_master, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)<br /> <br /> remove_task_acept(id)<br /> <br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> add_party_user(id_master, id)<br /> set_task_party_hud(id)<br /> }<br /> <br /> client_print(id_master, print_chat, "%s %s fue agregado al Party", TAG, g_PartyData[id][UserName])<br /> }<br /> case 1: client_print(id_master, print_chat, "%s %s cancelo la invitacion de Party", TAG, g_PartyData[id][UserName])<br /> }<br /> <br /> remove_task_acept(id)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_kick_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id2<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id2 = str_to_num(iKey)<br /> <br /> if(is_user_connected(id2))<br /> g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id2)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_info_menu(id, menu,item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> switch(item) {<br /> case 0: {<br /> if(g_PartyData[id][Amount_In_Party] < get_pcvar_num(cvar_max_players))<br /> show_party_add_menu(id)<br /> else<br /> client_print(id, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)<br /> }<br /> case 1: show_party_kick_menu(id)<br /> case 2: destoy_party(id)<br /> case 3: remove_party_user(id)<br /> }<br /> <br /> menu_destroy(menu)<br />}<br /><br />public PartyHud(taskid) {<br /> <br /> static id<br /> id = ID_HUD<br /> <br /> if(!is_user_connected(id)) {<br /> remove_task(taskid)<br /> return<br /> }<br /> <br /> static CountParty, PartyMsg[256], Players[32], id2<br /> <br /> CountParty = 0<br /> PartyMsg[0] = 0<br /><br /> get_party_index(id, Players)<br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {<br /> <br /> id2 = Players[i]<br /> <br /> if(CountParty)<br /> add(PartyMsg, charsmax(PartyMsg), "^n")<br /> <br /> format(PartyMsg, charsmax(PartyMsg), "%s%s", strlen(PartyMsg) ? PartyMsg : "^t^t^t[PJF Party] PARTY^n", g_PartyData[id2][UserName])<br /> CountParty++<br /> }<br /> <br /> <br /> set_hudmessage(255, 255, 255, 0.6, 0.7, 0, 6.0, 1.0);<br /> show_hudmessage(id, PartyMsg)<br />}<br /><br />public Time_Acept(UserTaskArgs[], taskid) {<br /> <br /> taskid -= TASK_ACEPT;<br /> <br /> if(!g_PartyData[taskid][In_Party]) {<br /> <br /> client_print(UserTaskArgs[1], print_chat, "%s %s cancelo la invitacion de party", TAG, g_PartyData[taskid][UserName])<br /> menu_destroy(UserTaskArgs[0])<br /> show_menu(taskid, 0, "^n", 1)<br /> }<br />}<br /><br />stock create_party(master, guest) {<br /> <br /> set_party_member(master, master)<br /> set_party_member(master, guest)<br /> set_party_member(guest, master)<br /> set_party_member(guest, guest)<br /> <br /> set_party_vars(master, Start_Amount)<br /> set_party_vars(guest, ++g_PartyData[master][Amount_In_Party])<br />}<br /><br />stock add_party_user(master, guest) {<br /> <br /> new Players[32], member, amount = g_PartyData[master][Amount_In_Party]<br /> <br /> get_party_index(master, Players)<br /> <br /> for(new i; i < amount; i++) {<br /> <br /> member = Players[i]<br /> <br /> set_party_member(guest, member)<br /> set_party_member(member, guest)<br /> g_PartyData[member][Amount_In_Party]++<br /> <br /> }<br /> <br /> set_party_member(guest, guest)<br /> set_party_vars(guest, amount+1) <br />}<br /><br />stock set_party_member(id, id2)<br /> ArrayPushCell(Party_Ids[id], id2)<br /><br />stock set_party_vars(id, amount) {<br /> <br /> g_PartyData[id][In_Party] = true<br /> g_PartyData[id][Position] = amount-1<br /> g_PartyData[id][Amount_In_Party] = amount<br /> <br />}<br /><br />stock destoy_party(id) {<br /> <br /> new Players[32], id2, Amount = g_PartyData[id][Amount_In_Party]<br /> get_party_index(id, Players)<br /> <br /> for(new i; i < Amount; i++) {<br /> id2 = Players[i]<br /> clear_party_user(id2)<br /> client_print(id2, print_chat, "%s La party fue destruida", TAG)<br /> <br /> }<br />}<br /><br />stock remove_party_user(user) {<br /> <br /> new Players[32], id, Amount = g_PartyData[user][Amount_In_Party]<br /> <br /> get_party_index(user, Players)<br /> <br /> clear_party_user(user)<br /> <br /> for(new i; i < Amount; i++) {<br /> <br /> id = Players[i]<br /> <br /> if(id != user) {<br /> <br /> ArrayClear(Party_Ids[id])<br /> <br /> for(new z; z < Amount; z++) <br /> if(Players[z] != user)<br /> set_party_member(id, Players[z])<br /> <br /> g_PartyData[id][Position] = i<br /> g_PartyData[id][Amount_In_Party] = Amount-1<br /> client_print(id, print_chat, "%s %s salio del party", TAG, g_PartyData[user][UserName])<br /> }<br /> }<br />}<br /><br />stock clear_party_user(id) {<br /> <br /> ArrayClear(Party_Ids[id])<br /> g_PartyData[id][In_Party] = false<br /> g_PartyData[id][Position] = NONE<br /> g_PartyData[id][Amount_In_Party] = NONE<br /> remove_task_party_hud(id)<br /> <br />}<br /><br />stock set_task_party_hud(id)<br /> set_task(1.0, "PartyHud", id+TASK_HUD, _, _, "b")<br /> <br />stock remove_task_party_hud(id)<br /> remove_task(id+TASK_HUD)<br /><br />stock remove_task_acept(id)<br /> if(task_exists(id+TASK_ACEPT))<br /> remove_task(id+TASK_ACEPT)<br /> <br /><br />stock set_player_party_name(id) {<br /> <br /> if(g_PartyData[id][UserName][0])<br /> return 0<br /> <br /> get_user_name(id, g_PartyData[id][UserName], charsmax(g_PartyData[][UserName]))<br /> <br /> return 1<br />}<br /><br />stock is_available_to_party(id) {<br /> <br /> if(!is_user_connected(id) || g_PartyData[id][In_Party] || g_PartyData[id][Block_Party])<br /> return false<br /> <br /> return true<br />} <br /> <br />stock get_party_index(id, players[]) {<br /> <br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++)<br /> players[i] = ArrayGetCell(Party_Ids[id], i)<br /> <br /> return players[0] ? 1 : 0<br />}<br /><br />public check_master(id)<br /> return g_PartyData[id][Position] ? ITEM_DISABLED : ITEM_ENABLED<br /> <br />public check_user(id)<br /> return g_PartyData[id][Position] ? ITEM_ENABLED : ITEM_DISABLED<br /><br />public cmdSayTeam(id) {<br /> <br /> static Text[192]<br /> read_args(Text, charsmax(Text))<br /> remove_quotes(Text)<br /> <br /> replace_all(Text, charsmax(Text), "%", "")<br /> <br /> if(!ValidMessage(Text) || !g_PartyData[id][In_Party]) {<br /> <br /> client_print(id, print_chat,"%s Tu Mensaje es invalido o no te encuentras en un Party", TAG)<br /> return PLUGIN_HANDLED;<br /> }<br /> <br /> static Message[192], Players[32], id2, Amount <br /> Amount = g_PartyData[id][Amount_In_Party]<br /> <br /> get_party_index(id, Players)<br /> <br /> formatex(Message, charsmax(Message), "^x04%s ^x03%s^x01 : %s", TAG, g_PartyData[id][UserName], Text)<br /> <br /> for(new i; i < Amount; i++) {<br /> <br /> id2 = Players[i]<br /> <br /> message_begin(MSG_ONE_UNRELIABLE, g_MsgSayText, _, id2)<br /> write_byte(id)<br /> write_string(Message)<br /> message_end()<br /> }<br /> <br /> return PLUGIN_HANDLED;<br />}<br /><br />ValidMessage(text[]) {<br /> static len, i<br /> len = strlen(text)<br /> <br /> if(!len)<br /> return false<br /> <br /> for(i = 0; i < len; i++) {<br /> if( text[i] != ' ' ) {<br /> return true<br /> }<br /> }<br /><br /> return false<br />}</code><hr />
</div><br />Zombie mode and gaining experience for Combos<br /><div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Code:</div>
<hr /><code style="margin:0px" dir="ltr" style="text-align:left">#include <amxmodx><br />#include <colorchat><br />#include <hamsandwich><br />#include <zombieapocalypse><br /><br />#define PLUGIN "PJF Party"<br />#define VERSION "1.0"<br />#define AUTHOR "[R]ak"<br /><br />// Use #define TAG "Example: MYSERVER"<br />#define TAG "Pedro_Josef |"<br />#define ID_HUD (taskid - TASK_HUD)<br />#define TASK_COMBO 5546<br />#define TASK_COMBOP 5546<br /><br />enum (+= 77) <br />{<br /> TASK_HUD = 777,<br /> TASK_ACEPT<br />}<br /><br />enum <br />{<br /> NONE = -1,<br /> Master,<br /> Start_Amount<br />}<br /><br />enum _:pdata <br />{<br /> In_Party,<br /> Position,<br /> Amount_In_Party,<br /> Block_Party,<br /> UserName[32]<br />}<br /><br />enum _:DataCallBack<br />{<br /> MASTER,<br /> USER<br />}<br /><br />new g_PartyData[33][pdata], Array:Party_Ids[33], g_maxplayers, g_MenuCallback[DataCallBack], g_MsgSayText<br /><br />new cvar_time_acept, cvar_max_players, cvar_allow_bots<br /><br />new g_combo[33], g_damage[33], g_Hits[33] // Combos Agregados<br />new g_combop[33], g_damagep[33], g_Hitsp[33] // Combos Party Agregados<br />new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2 // Bullet Dmg, Mysing Combo<br /><br />public plugin_init() <br />{<br /> <br /> register_plugin(PLUGIN, VERSION, AUTHOR)<br /> <br /> // Event<br /> register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")<br /> register_event("HLTV", "on_new_round", "a", "1=0", "2=0")<br /> register_event("HLTV","event_newround", "a","1=0", "2=0")<br /> <br /> g_type = register_cvar("amx_bulletdamage","1")<br /> g_recieved = register_cvar("amx_bulletdamage_recieved","1")<br /> <br /> register_clcmd("say /party", "cmdParty")<br /> register_clcmd("say_team", "cmdSayTeam")<br /> <br /> RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")<br /> <br /> cvar_time_acept = register_cvar("party_time_acept","15")<br /> cvar_max_players = register_cvar("party_max_players","5")<br /> cvar_allow_bots = register_cvar("party_allow_bots","1")<br /> <br /> g_hudmsg1 = CreateHudSyncObj()<br /> g_hudmsg2= CreateHudSyncObj()<br /> <br /> g_maxplayers = get_maxplayers()<br /> g_MsgSayText = get_user_msgid("SayText")<br /> <br /> g_MenuCallback[MASTER] = menu_makecallback("check_master")<br /> g_MenuCallback[USER] = menu_makecallback("check_user")<br />}<br /><br />public event_newround()<br />{<br /> for(new player = 0; player <= 32; player++) <br /> {<br /> g_combo[player] = g_combop[player] = 1<br /> g_damage[player] = g_damagep[player] = 0<br /> g_Hits[player] = g_Hitsp[player] = 0<br /> }<br />}<br /><br />public plugin_cfg()<br /> for(new i = 1; i <= g_maxplayers; i++)<br /> Party_Ids[i] = ArrayCreate(1, 1)<br /><br />public client_connect(id)<br />{<br /> g_combo[id] = g_combop[id] = 1<br /> g_damage[id] = g_damagep[id] = 0<br /> g_Hits[id] = g_Hitsp[id] = 0<br />}<br />public client_disconnect(id) <br />{ <br /> if(g_PartyData[id][In_Party])<br /> g_PartyData[id][Position] ? g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id) : destoy_party(id)<br /> <br /> g_PartyData[id][UserName][0] = 0<br /> g_PartyData[id][Block_Party] = false<br />}<br /><br />// Ham Take Damage Forward<br />public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)<br />{<br /> // Attacker is human...<br /> if (!zp_get_user_zombie(attacker))<br /> {<br /> if(!g_PartyData[attacker][In_Party]) // Combos Sin Party<br /> {<br /> // Combos Agregados<br /> g_damage[attacker] += floatround(damage)<br /> g_Hits[attacker]++<br /> while(g_damage[attacker]>=(power(g_combo[attacker], 1)*330))<br /> {<br /> g_combo[attacker]++<br /> }<br /> remove_task(attacker+TASK_COMBO)<br /> set_task(0.1, "task_combo", attacker+TASK_COMBO)<br /> set_task(4.0, "reset_combo", attacker+TASK_COMBO) <br /> }<br /> else // Combos Del Party<br /> {<br /> new Players[32], user<br /> get_party_index(attacker, Players)<br /> for(new i; i < g_PartyData[attacker][Amount_In_Party]; i++)<br /> {<br /> user = Players[i]<br /> g_damagep[user] += floatround(damage) / g_PartyData[user][Amount_In_Party]<br /> g_Hitsp[user]++<br /> while(g_damagep[user]>=(power(g_combop[user], 1)*430))<br /> {<br /> g_combop[user]++<br /> }<br /> remove_task(user+TASK_COMBOP)<br /> set_task(0.1, "task_party_combo", user+TASK_COMBOP)<br /> set_task(4.0, "reset_party_combo", user+TASK_COMBOP)<br /> }<br /> }<br /> }<br />}<br /><br />public on_new_round()<br />{<br /> g_enabled = get_pcvar_num(g_type)<br /> if(get_pcvar_num(g_recieved)) g_showrecieved = true <br />}<br /><br />public on_damage(id)<br />{<br /> if(g_enabled)<br /> {<br /> static damage; damage = read_data(2)<br /> if(g_showrecieved && zp_get_user_zombie(id)) <br /> { <br /> set_hudmessage(255, 0, 0, 0.3, 0.0, 2, 0.1, 4.0, 0.1, 0.1, -1)<br /> ShowSyncHudMsg(id, g_hudmsg2, "[Daño]= %i^n", damage) <br /> } <br /> }<br />}<br /><br />public task_combo(attacker)<br />{<br /> attacker -= TASK_COMBO<br /> static flags<br /> flags = get_user_flags(attacker)<br /> <br /> if(g_combo[attacker]>0)<br /> {<br /> set_hudmessage(0, 200, 200, 0.0, 0.5, 1, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(attacker, g_hudmsg1, "[Normal Combos]^nDamage: %d^n%d | %d^nTotal de Combos: %d^nTu Ganas: %d AmmoPacks", <br /> g_damage[attacker], g_damage[attacker], (power(g_combo[attacker], 1)*330), g_combo[attacker], g_combo[attacker] * 1+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0)))<br /> }<br /> <br />}<br /><br />public task_party_combo(i)<br />{<br /> i -= TASK_COMBOP<br /> <br /> static flags<br /> flags = get_user_flags(i)<br /> <br /> if(g_combop[i]>0 && !zp_get_user_zombie(i) && is_user_alive(i))<br /> {<br /> if(g_PartyData[i][In_Party])<br /> {<br /> set_hudmessage(0, 200, 200, 0.0, 0.5, 1, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(i, g_hudmsg1, "[PJF Party]^nDamage: %d^n%d | %d^nTotal de Combos: %d^nTu Ganas: %d AmmoPacks", <br /> g_damagep[i], g_damagep[i], (power(g_combop[i], 4)*430), g_combop[i], g_combop[i] * 4+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0)))<br /> }<br /> }<br />}<br /><br />public reset_combo(id)<br />{<br /> id -= TASK_COMBO<br /> static flags<br /> flags = get_user_flags(id)<br /> <br /> static ganancia; ganancia = g_combo[id] * 1+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0))<br /> if (g_combo[id]>0)<br /> {<br /> set_hudmessage(120, 120, 120, -1.0, 0.25, 0, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(id, g_hudmsg1, "^n^n^n^n Combo Terminado (%d)^nGanancia: %d AmmoPacks", g_combo[id], ganancia)<br /> ColorChat(id, TEAM_COLOR, "^x04[PJF Party]^x01 Combo Total:^x04 %d^x01 | Damage Total:^x04 %d^x01 | Hits Echos:^x04 %d^x01 | Ganancia:^x04 %d", g_combo[id], g_damage[id], g_Hits[id], ganancia)<br /> za_set_user_experience(id, za_get_user_experience(id) + ganancia)<br /> }<br /> <br /> g_damage[id] = 0<br /> g_Hits[id] = 0<br /> g_combo[id] = 0<br />}<br />public reset_party_combo(i)<br />{<br /> i -= TASK_COMBOP<br /> static flags<br /> flags = get_user_flags(i)<br /> <br /> static gananciap; gananciap = g_combop[i] * 4+((flags & ADMIN_LEVEL_D ? 7: flags & ADMIN_LEVEL_A ? 5: flags & ADMIN_LEVEL_B ? 3 : 0))<br /> if(g_PartyData[i][In_Party])<br /> {<br /> if(!zp_get_user_zombie(i))<br /> {<br /> set_hudmessage(120, 120, 120, -1.0, 0.25, 0, 0.1, 4.0, 0.01, 0.01, -1)<br /> ShowSyncHudMsg(i, g_hudmsg1, "^n^n^n^n Combo Party Terminado (%d)^nGanancia: %d AmmoPacks", g_combop[i], gananciap)<br /> ColorChat(i, TEAM_COLOR, "^x04[PJF Party]^x01 Combo party Total:^x04 %d^x01 | Damage Total:^x04 %d^x01 | Hits Echos:^x04 %d^x01 | Ganancia:^x04 %d", g_combop[i], g_damagep[i], g_Hitsp[i], gananciap)<br /> }<br /> za_set_user_experience(i, za_get_user_experience(i) + gananciap)<br /> }<br /> <br /> g_damagep[i] = 0<br /> g_Hitsp[i] = 0<br /> g_combop[i] = 0<br />}<br /><br />public cmdParty(id) <br />{<br /> <br /> if(g_PartyData[id][In_Party])<br /> show_party_info_menu(id)<br /> else<br /> show_party_menu(id)<br /> <br /> return PLUGIN_HANDLED<br />}<br /><br />public show_party_menu(id) {<br /> <br /> new iMenu = menu_create("[PJF Party] - rMenu Party:","party_menu"), BlockParty[50]<br /> <br /> menu_additem(iMenu, "yCrear Party", "0")<br /> <br /> formatex(BlockParty, charsmax(BlockParty), "yBloquear Invitaciones De Party: w%s",g_PartyData[id][Block_Party] ? "Si" : "No")<br /> <br /> menu_additem(iMenu, BlockParty, "1")<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu, 0)<br />}<br /><br />public show_party_info_menu(id) {<br /> <br /> new iMenu = menu_create("[PJF Party] - rMenu Party:","party_info_menu")<br /> <br /> menu_additem(iMenu, "Agregar Integrante", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Expulsar Integrande", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Destruir Party", .callback = g_MenuCallback[MASTER])<br /> menu_additem(iMenu, "Salir del Party", .callback = g_MenuCallback[USER])<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_add_menu(id) {<br /> <br /> new iMenu = menu_create(g_PartyData[id][In_Party] ? "rAgregar Integrante:" : "rCrear Party:", "party_create_menu"), Poss[3], Name[32]<br /> <br /> for(new i = 1; i <= g_maxplayers; i++) {<br /> <br /> if(!is_available_to_party(i) || id == i)<br /> continue;<br /> <br /> get_user_name(i, Name, charsmax(Name))<br /> num_to_str(i, Poss, charsmax(Poss))<br /> menu_additem(iMenu, Name, Poss)<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_kick_menu(id) {<br /> <br /> new iMenu = menu_create("rKick Party Menu:","party_kick_menu"), Players[32], Poss[3], user<br /> <br /> get_party_index(id, Players)<br /> <br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {<br /> user = Players[i]<br /> num_to_str(user, Poss, charsmax(Poss))<br /> menu_additem(iMenu, g_PartyData[user][UserName], Poss)<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXITNAME, "Salir")<br /> <br /> menu_display(id, iMenu)<br />}<br /><br />public show_party_invite_menu(id2, MasterId) {<br /> <br /> new MenuTitle[128], iMenu, Str_MasterId[3]<br /> <br /> set_player_party_name(MasterId)<br /> set_player_party_name(id2)<br /> <br /> client_print(MasterId, print_chat, "%s Solicitud enviada a %s", TAG, g_PartyData[id2][UserName])<br /> <br /> formatex(MenuTitle, charsmax(MenuTitle), "%s te mando una invitacion para %s Party", g_PartyData[MasterId][UserName], g_PartyData[MasterId][In_Party] ? "unirte al" : "crear un")<br /> <br /> new UserTaskArgs[3]<br /> <br /> UserTaskArgs[0] = iMenu = menu_create( MenuTitle , "party_invite_menu")<br /> UserTaskArgs[1] = MasterId<br /> <br /> num_to_str(MasterId, Str_MasterId, charsmax(Str_MasterId))<br /> <br /> menu_additem( iMenu , "Aceptar", Str_MasterId)<br /> menu_additem( iMenu , "Rechazar", Str_MasterId)<br /> <br /> if(is_user_bot(id2) && get_pcvar_num(cvar_allow_bots)) {<br /> party_invite_menu(id2, iMenu, 0)<br /> return<br /> }<br /> <br /> menu_setprop(iMenu, MPROP_EXIT, MEXIT_NEVER)<br /> <br /> menu_display(id2, iMenu)<br /> <br /> remove_task_acept(id2)<br /> <br /> set_task(get_pcvar_float(cvar_time_acept), "Time_Acept", id2+TASK_ACEPT, UserTaskArgs, 2)<br />}<br /> <br /><br />public party_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> if(item) {<br /> g_PartyData[id][Block_Party] = g_PartyData[id][Block_Party] ? false : true<br /> show_party_menu(id)<br /> }<br /> else<br /> show_party_add_menu(id)<br /> <br /> menu_destroy(menu)<br /> <br />}<br /><br />public party_create_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id2<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id2 = str_to_num(iKey)<br /> <br /> if(!is_available_to_party(id2))<br /> return<br /> <br /> show_party_invite_menu(id2, id)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_invite_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> remove_task_acept(id)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id_master<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id_master = str_to_num(iKey)<br /> <br /> switch(item) {<br /> case 0: {<br /> <br /> if(!g_PartyData[id_master][In_Party]) {<br /> create_party(id_master, id)<br /> set_task_party_hud(id_master)<br /> set_task_party_hud(id)<br /> }<br /> else {<br /> if(g_PartyData[id_master][Amount_In_Party] == get_pcvar_num(cvar_max_players)) {<br /> <br /> client_print(id, print_chat, "%s Ya se alcanzo el numero maximo de integrantes en la party", TAG)<br /> client_print(id_master, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)<br /> <br /> remove_task_acept(id)<br /> <br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> add_party_user(id_master, id)<br /> set_task_party_hud(id)<br /> }<br /> <br /> client_print(id_master, print_chat, "%s %s fue agregado al Party", TAG, g_PartyData[id][UserName])<br /> }<br /> case 1: client_print(id_master, print_chat, "%s %s cancelo la invitacion de Party", TAG, g_PartyData[id][UserName])<br /> }<br /> <br /> remove_task_acept(id)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_kick_menu(id, menu, item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> new iKey[6], iAccess, iCallback, id2<br /> <br /> menu_item_getinfo(menu, item, iAccess, iKey, charsmax(iKey), _, _, iCallback)<br /> <br /> id2 = str_to_num(iKey)<br /> <br /> if(is_user_connected(id2))<br /> g_PartyData[id][Amount_In_Party] == 2 ? destoy_party(id) : remove_party_user(id2)<br /> <br /> menu_destroy(menu)<br />}<br /><br />public party_info_menu(id, menu,item) {<br /> <br /> if(item == MENU_EXIT) {<br /> menu_destroy(menu)<br /> return<br /> }<br /> <br /> switch(item) {<br /> case 0: {<br /> if(g_PartyData[id][Amount_In_Party] < get_pcvar_num(cvar_max_players))<br /> show_party_add_menu(id)<br /> else<br /> client_print(id, print_chat, "%s Ya alcanzaste el numero maximo de integrantes en la party", TAG)<br /> }<br /> case 1: show_party_kick_menu(id)<br /> case 2: destoy_party(id)<br /> case 3: remove_party_user(id)<br /> }<br /> <br /> menu_destroy(menu)<br />}<br /><br />public PartyHud(taskid) {<br /> <br /> static id<br /> id = ID_HUD<br /> <br /> if(!is_user_connected(id)) {<br /> remove_task(taskid)<br /> return<br /> }<br /> <br /> static CountParty, PartyMsg[256], Players[32], id2<br /> <br /> CountParty = 0<br /> PartyMsg[0] = 0<br /><br /> get_party_index(id, Players)<br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++) {<br /> <br /> id2 = Players[i]<br /> <br /> if(CountParty)<br /> add(PartyMsg, charsmax(PartyMsg), "^n")<br /> <br /> format(PartyMsg, charsmax(PartyMsg), "%s%s", strlen(PartyMsg) ? PartyMsg : "^t^t^t[PJF Party] PARTY^n", g_PartyData[id2][UserName])<br /> CountParty++<br /> }<br /> <br /> <br /> set_hudmessage(255, 255, 255, 0.6, 0.7, 0, 6.0, 1.0);<br /> show_hudmessage(id, PartyMsg)<br />}<br /><br />public Time_Acept(UserTaskArgs[], taskid) {<br /> <br /> taskid -= TASK_ACEPT;<br /> <br /> if(!g_PartyData[taskid][In_Party]) {<br /> <br /> client_print(UserTaskArgs[1], print_chat, "%s %s cancelo la invitacion de party", TAG, g_PartyData[taskid][UserName])<br /> menu_destroy(UserTaskArgs[0])<br /> show_menu(taskid, 0, "^n", 1)<br /> }<br />}<br /><br />stock create_party(master, guest) {<br /> <br /> set_party_member(master, master)<br /> set_party_member(master, guest)<br /> set_party_member(guest, master)<br /> set_party_member(guest, guest)<br /> <br /> set_party_vars(master, Start_Amount)<br /> set_party_vars(guest, ++g_PartyData[master][Amount_In_Party])<br />}<br /><br />stock add_party_user(master, guest) {<br /> <br /> new Players[32], member, amount = g_PartyData[master][Amount_In_Party]<br /> <br /> get_party_index(master, Players)<br /> <br /> for(new i; i < amount; i++) {<br /> <br /> member = Players[i]<br /> <br /> set_party_member(guest, member)<br /> set_party_member(member, guest)<br /> g_PartyData[member][Amount_In_Party]++<br /> <br /> }<br /> <br /> set_party_member(guest, guest)<br /> set_party_vars(guest, amount+1) <br />}<br /><br />stock set_party_member(id, id2)<br /> ArrayPushCell(Party_Ids[id], id2)<br /><br />stock set_party_vars(id, amount) {<br /> <br /> g_PartyData[id][In_Party] = true<br /> g_PartyData[id][Position] = amount-1<br /> g_PartyData[id][Amount_In_Party] = amount<br /> <br />}<br /><br />stock destoy_party(id) {<br /> <br /> new Players[32], id2, Amount = g_PartyData[id][Amount_In_Party]<br /> get_party_index(id, Players)<br /> <br /> for(new i; i < Amount; i++) {<br /> id2 = Players[i]<br /> clear_party_user(id2)<br /> client_print(id2, print_chat, "%s La party fue destruida", TAG)<br /> <br /> }<br />}<br /><br />stock remove_party_user(user) {<br /> <br /> new Players[32], id, Amount = g_PartyData[user][Amount_In_Party]<br /> <br /> get_party_index(user, Players)<br /> <br /> clear_party_user(user)<br /> <br /> for(new i; i < Amount; i++) {<br /> <br /> id = Players[i]<br /> <br /> if(id != user) {<br /> <br /> ArrayClear(Party_Ids[id])<br /> <br /> for(new z; z < Amount; z++) <br /> if(Players[z] != user)<br /> set_party_member(id, Players[z])<br /> <br /> g_PartyData[id][Position] = i<br /> g_PartyData[id][Amount_In_Party] = Amount-1<br /> client_print(id, print_chat, "%s %s salio del party", TAG, g_PartyData[user][UserName])<br /> }<br /> }<br />}<br /><br />stock clear_party_user(id) {<br /> <br /> ArrayClear(Party_Ids[id])<br /> g_PartyData[id][In_Party] = false<br /> g_PartyData[id][Position] = NONE<br /> g_PartyData[id][Amount_In_Party] = NONE<br /> remove_task_party_hud(id)<br /> <br />}<br /><br />stock set_task_party_hud(id)<br /> set_task(1.0, "PartyHud", id+TASK_HUD, _, _, "b")<br /> <br />stock remove_task_party_hud(id)<br /> remove_task(id+TASK_HUD)<br /><br />stock remove_task_acept(id)<br /> if(task_exists(id+TASK_ACEPT))<br /> remove_task(id+TASK_ACEPT)<br /> <br /><br />stock set_player_party_name(id) {<br /> <br /> if(g_PartyData[id][UserName][0])<br /> return 0<br /> <br /> get_user_name(id, g_PartyData[id][UserName], charsmax(g_PartyData[][UserName]))<br /> <br /> return 1<br />}<br /><br />stock is_available_to_party(id) {<br /> <br /> if(!is_user_connected(id) || g_PartyData[id][In_Party] || g_PartyData[id][Block_Party])<br /> return false<br /> <br /> return true<br />} <br /> <br />stock get_party_index(id, players[]) {<br /> <br /> for(new i; i < g_PartyData[id][Amount_In_Party]; i++)<br /> players[i] = ArrayGetCell(Party_Ids[id], i)<br /> <br /> return players[0] ? 1 : 0<br />}<br /><br />public check_master(id)<br /> return g_PartyData[id][Position] ? ITEM_DISABLED : ITEM_ENABLED<br /> <br />public check_user(id)<br /> return g_PartyData[id][Position] ? ITEM_ENABLED : ITEM_DISABLED<br /><br />public cmdSayTeam(id) {<br /> <br /> static Text[192]<br /> read_args(Text, charsmax(Text))<br /> remove_quotes(Text)<br /> <br /> replace_all(Text, charsmax(Text), "%", "")<br /> <br /> if(!ValidMessage(Text) || !g_PartyData[id][In_Party]) {<br /> <br /> client_print(id, print_chat,"%s Tu Mensaje es invalido o no te encuentras en un Party", TAG)<br /> return PLUGIN_HANDLED;<br /> }<br /> <br /> static Message[192], Players[32], id2, Amount <br /> Amount = g_PartyData[id][Amount_In_Party]<br /> <br /> get_party_index(id, Players)<br /> <br /> formatex(Message, charsmax(Message), "^x04%s ^x03%s^x01 : %s", TAG, g_PartyData[id][UserName], Text)<br /> <br /> for(new i; i < Amount; i++) {<br /> <br /> id2 = Players[i]<br /> <br /> message_begin(MSG_ONE_UNRELIABLE, g_MsgSayText, _, id2)<br /> write_byte(id)<br /> write_string(Message)<br /> message_end()<br /> }<br /> <br /> return PLUGIN_HANDLED;<br />}<br /><br />ValidMessage(text[]) {<br /> static len, i<br /> len = strlen(text)<br /> <br /> if(!len)<br /> return false<br /> <br /> for(i = 0; i < len; i++) {<br /> if( text[i] != ' ' ) {<br /> return true<br /> }<br /> }<br /><br /> return false<br />}</code><hr />
</div><br />I'm sure they operate if they use the Zombie Apocalypse 4.3 Raulitop<br />I use that Zombie and Anda me 100% error-free</div>
Wyświetl pełny artykuł
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse

Party System 1.0
Temat rozp. Adminek AMXX.PL, 12.02.2016 02:58
Brak odpowiedzi do tego tematu
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych