Descriere plugin cerut: Cu ajutorul acestui plugin puteti pune cufere pe server care contin arme / grenade si bani
Alte informatii: Vreau sa imi faceti ca , comanda amx_dm_items_menu sa mearga doar la adminii cu flagul "abcdefghijklmnopqrstu"
MULTUMESC
- | Afiseaza codul
/* Plugin generated by AMXX-Studio */ #include <amxmisc> #include <cstrike> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #define PLUGIN "DM Item's" #define VERSION "0.1.2" #define AUTHOR "PomanoB" #define OFFSET_FLASH_AMMO 387 #define OFFSET_HE_AMMO 388 #define OFFSET_SMOKE_AMMO 389 native give_Balrog3(id); native give_Plasma(id); native give_oicw(id); new g_Menu new g_MapFile[64] new const item_class_name[] = "dm_item" new g_models[][] = {"models/cufere/box1.mdl", "models/cufere/box2.mdl", "models/cufere/box3.mdl", "models/cufere/box4.mdl", "models/cufere/box5.mdl"} new const g_desription[9][] = {"Ai primit NIGHT VIZION", "Ai primit bonus HP", "BONUS 20 pachete de munitie", "BONUS armor 200", "BONUS pachetul de grenade", "BONUS item XM1014!", "BONUS item Deagle!", "BONUS item m249!", "EXTRA ITEM, ANTIDOTE"} public plugin_precache() { for (new i = 0; i < sizeof g_models; i++) precache_model(g_models) } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_forward(FM_Touch, "fwd_Touch") register_event("HLTV", "round_start", "a", "1=0", "2=0") register_clcmd("amx_dm_items_menu", "display_items_menu", ADMIN_CFG, " - display item's menu") g_Menu = menu_create("DM Item's Menu","menu_item") menu_additem(g_Menu, "Add Item", "1") menu_additem(g_Menu, "Delete Item", "2") menu_additem(g_Menu, "Delete All Items", "3") menu_additem(g_Menu, "Respawn All", "4") menu_additem(g_Menu, "Save All Coordinats", "5") } public plugin_cfg() { new map[32], config[32] get_mapname(map, 31) get_configsdir(config, 31) format(g_MapFile, 63, "%s/dm_items",config, map) if (!dir_exists(g_MapFile)) mkdir(g_MapFile) format(g_MapFile, 63, "%s/%s.cfg",config, map) if (file_exists(g_MapFile)) if (file_exists(g_MapFile)) { new data[124], len new line = 0 new coord[3][8] new origin[3] while((line = read_file(g_MapFile , line , data , 123 , len))) { if (len < 2 || data[0] == ';' || data[0] == '/') continue parse(data, coord[0], 7, coord[1], 7, coord[2], 7) origin[0] = str_to_num(coord[0]) origin[1] = str_to_num(coord[1]) origin[2] = str_to_num(coord[2]) addItem(origin) } } else log_amx("Can't find cfg file for this map") } public display_items_menu(id, level, cid) { if (cmd_access(id, level, cid, 0)) menu_display(id, g_Menu, 0) return PLUGIN_HANDLED } public menu_item(id, menu, item) { if( item < 0 ) return PLUGIN_CONTINUE new cmd[3] new maccess, callback menu_item_getinfo(menu, item, maccess, cmd,2,_,_, callback) new iChoice = str_to_num(cmd) switch(iChoice) { case 1: { new origin[3] get_user_origin(id, origin, 3) addItem(origin) } case 2: deleteItem(id) case 3: deleteAllItems() case 4: round_start() case 5: saveAll() } menu_display(id, g_Menu, 0) return PLUGIN_CONTINUE } public addItem(origin[3]) { new ent = fm_create_entity("info_target") set_pev(ent, pev_classname, item_class_name) engfunc(EngFunc_SetModel,ent, g_models[random_num(0, sizeof g_models - 1)]) set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0}) set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0}) set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0}) engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0}) set_pev(ent,pev_solid,SOLID_BBOX) set_pev(ent,pev_movetype,MOVETYPE_FLY) new Float:fOrigin[3] IVecFVec(origin, fOrigin) set_pev(ent, pev_origin, fOrigin) set_pev(ent,pev_renderfx,kRenderFxGlowShell) switch(random_num(1,4)) { case 1: set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0}) case 2: set_pev(ent,pev_rendercolor,Float:{0.0,255.0,0.0}) case 3: set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0}) case 4: set_pev(ent,pev_rendercolor,Float:{255.0,255.0,255.0}) } } public deleteItem(id) { new ent, a_body get_user_aiming(id, ent, a_body) if (!pev_valid(ent)) return PLUGIN_CONTINUE new class[32] pev(ent, pev_classname, class, 31) if (!equal(class, item_class_name)) return PLUGIN_CONTINUE set_pev(ent, pev_flags, FL_KILLME) return PLUGIN_CONTINUE } public deleteAllItems() { new ent = FM_NULLENT static string_class[] = "classname" while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, item_class_name))) set_pev(ent, pev_flags, FL_KILLME) delete_file(g_MapFile) } public saveAll() { delete_file(g_MapFile) new ent = FM_NULLENT static string_class[] = "classname" new origin[3], Float:fOrigin[3], line[64] while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, item_class_name))) { pev(ent, pev_origin, fOrigin) FVecIVec(fOrigin, origin) formatex(line, 63, "%d %d %d", origin[0], origin[1], origin[2]) write_file(g_MapFile, line) } } public fwd_Touch(toucher, touched) { if (!is_user_alive(toucher) || !pev_valid(touched)) return FMRES_IGNORED new classname[32] pev(touched, pev_classname, classname, 31) if (!equal(classname, item_class_name)) return FMRES_IGNORED give_item(toucher) set_pev(touched, pev_effects, EF_NODRAW) set_pev(touched, pev_solid, SOLID_NOT) return FMRES_IGNORED } public removeEntity(ent) { if (pev_valid(ent)) engfunc(EngFunc_RemoveEntity, ent) } public give_item(id) { new i = random_num(1, 7) switch (i) { case 1: if (!user_has_weapon(id, CSW_M249)) { fm_give_item(id, "weapon_m249") fm_give_item(id, "weapon_m249") fm_give_item(id, "weapon_m249") fm_give_item(id, "weapon_m249") fm_give_item(id, "weapon_m249") client_print(id, print_center, "Ai primit arma M249 !") chat_color(id,"!g[ZE.WATF.RO] !yAi primit arma !gM249"); } case 2: add_money(id, 3000) case 3: if (!user_has_weapon(id, CSW_XM1014)) { fm_give_item(id, "weapon_m4a1") fm_give_item(id, "weapon_m4a1") fm_give_item(id, "weapon_m4a1") fm_give_item(id, "weapon_m4a1") fm_give_item(id, "weapon_m4a1") client_print(id, print_center, "Ai primit arma M4a1 !") chat_color(id,"!g[ZE.WATF.RO] !yAi primit arma !gM4a1"); } case 4: { fm_give_item(id, "weapon_flashbang") fm_give_item(id, "weapon_smokegrenade") fm_give_item(id, "weapon_hegrenade") chat_color(id,"!g[ZE.WATF.RO] !yAi primit !gHE , Flash , Smoke"); client_print(id, print_center, "Ai primit He , Flash , Smoke !") set_pdata_int(id, OFFSET_FLASH_AMMO, 3) set_pdata_int(id, OFFSET_HE_AMMO, 3) set_pdata_int(id, OFFSET_SMOKE_AMMO, 3) } case 5: if (!user_has_weapon(id, CSW_XM1014)) { give_Balrog3(id); client_print(id, print_center, "Ai primit arma Balrog3 !") chat_color(id,"!g[ZE.WATF.RO] !yAi primit arma !gBalrog3"); } case 6: if (!user_has_weapon(id, CSW_DEAGLE)) { give_Plasma(id); client_print(id, print_center, "Ai primit arma Plasma Gun !") chat_color(id,"!g[ZE.WATF.RO] !yAi primit arma !gPlasma Gun"); } case 7: if (!user_has_weapon(id, CSW_M249)) { give_oicw(id); client_print(id, print_center, "Ai primit arma OICW !") chat_color(id,"!g[ZE.WATF.RO] !yAi primit arma !gOICW"); } } } public round_start() { new ent = FM_NULLENT static string_class[] = "classname" while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, item_class_name))) { set_pev(ent, pev_effects, 0) set_pev(ent, pev_solid, SOLID_BBOX) } } public add_money(id, count) { cs_set_user_money(id, cs_get_user_money(id) + count) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */ stock chat_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!team", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players) write_byte(players); write_string(msg); message_end(); } return PLUGIN_CONTINUE } } return 0; }