Русское сообщество по скриптингу

Помошь с плагином csdm-strippes

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Помошь с плагином csdm-strippes

Сообщение vertex647 » 26 июл 2012, 18:44

Всем привет еще раз! Нарыл в плагине csdm 2.12 KWO интересный плагин он блочит выдачу оружия на aim картах, т.е там где оно выдается автоматом.

[pawn]
  1. /**

  2.  * csdm_stripper.sma

  3.  * Allows for Counter-Strike to be played as DeathMatch.

  4.  *

  5.  * CSDM Stripping entities plugin

  6.  *

  7.  * By KWo

  8.  * (C)2007 KWo

  9.  *

  10.  *  Give credit where due.

  11.  *  Share the source - it sets you free

  12.  *  http://www.opensource.org/

  13.  *  http://www.gnu.org/

  14.  */

  15.  

  16. #include <amxmodx>

  17. #include <amxmisc>

  18. #include <fakemeta>

  19. #include <csdm>

  20.  

  21. #define MAX_ENT_REM 100

  22.  

  23. new bool:g_Enabled = false

  24. new EntRemClass[MAX_ENT_REM][32]

  25. new EntRemCount = 0

  26.  

  27. // page info for settings in CSDM Setting Menu

  28. new g_sett_menu = 0

  29. new g_ItemsInMenuNr = 0

  30. new g_PageStrExEn = 0

  31.  

  32. //Tampering with the author and name lines can violate the copyright

  33. new PLUGINNAME[] = "CSDM Stripper"

  34. new VERSION[] = CSDM_VERSION

  35. new AUTHORS[] = "KWo"

  36.  

  37. public csdm_Init(const version[])

  38. {

  39.         if (version[0] == 0)

  40.         {

  41.                 set_fail_state("CSDM failed to load.")

  42.                 return

  43.         }

  44. }

  45.  

  46. public csdm_CfgInit()

  47. {

  48.         csdm_reg_cfg("stripper", "read_cfg")

  49. }

  50.  

  51. public plugin_init()

  52. {

  53.         register_plugin(PLUGINNAME, VERSION, AUTHORS);

  54.  

  55.         register_forward(FM_ServerDeactivate, "forward_server_deactivate")

  56.         register_concmd("stripper_ctrl", "stripper_ctrl", ADMIN_MAP, "Stripping extra objectives Toggling")

  57.  

  58.         new main_plugin = module_exists("csdm_main") ? true : false

  59.         if (main_plugin)

  60.         {

  61.                 g_sett_menu = csdm_settings_menu()

  62.                 g_ItemsInMenuNr = menu_items(g_sett_menu)

  63.  

  64.                 new callback = menu_makecallback("hook_strip_sett_display")

  65.                 menu_additem(g_sett_menu, "Strip Extra Objectives Enabled/Disabled", "stripper_ctrl", ADMIN_MAP, callback)

  66.                 g_PageStrExEn = g_ItemsInMenuNr / 7

  67.         }

  68.         set_task(2.0, "DoMapStrips")

  69. }

  70.  

  71. public forward_server_deactivate()

  72. {

  73.         for(new i = 0; i < EntRemCount; i++)

  74.         {

  75.                 EntRemClass[i] = "\0"

  76.         }

  77.         EntRemCount = 0

  78.         return FMRES_IGNORED

  79. }

  80.  

  81.  

  82. public DoMapStrips()

  83. {

  84.         if (!csdm_active() || !g_Enabled)

  85.                 return

  86.         for(new i = 0; i < EntRemCount; i++)

  87.         {

  88.                 RemoveEntityAll(EntRemClass[i])

  89.         }

  90. }

  91.  

  92. public read_cfg(readAction, line[], section[])

  93. {              

  94.         if (readAction == CFG_READ)

  95.         {

  96.                 new setting[24], sign[3], value[32];

  97.  

  98.                 parse(line, setting, 23, sign, 2, value, 31);

  99.                

  100.                 if (equali(setting, "enabled"))

  101.                 {

  102.                         g_Enabled =  str_to_num(value) ? true : false

  103.                 }

  104.                 else if (equali(setting, "class"))

  105.                 {

  106.                         if ((EntRemCount < MAX_ENT_REM) && (!equali(value,"hostage_entity"))

  107.                                         && (!equali(value, "player")))

  108.                         {      

  109.                                 format (EntRemClass[EntRemCount], 31, value)

  110.                                 EntRemCount++

  111.                         }

  112.                 }

  113.         }

  114.         else if (readAction == CFG_RELOAD)

  115.         {

  116.                 g_Enabled = false

  117.                 for (new i = 0; i < EntRemCount; i++)

  118.                 {

  119.                         EntRemClass[i] = "\0"

  120.                 }

  121.                 EntRemCount = 0

  122.         }

  123. }

  124.  

  125. stock RemoveEntityAll(name[])

  126. {

  127.         new ent = engfunc(EngFunc_FindEntityByString, 0, "classname", name)

  128.         new temp

  129.         while (ent)

  130.         {

  131.                 temp = engfunc(EngFunc_FindEntityByString, ent, "classname", name)

  132.                 engfunc(EngFunc_RemoveEntity, ent)

  133.                 ent = temp

  134.         }

  135. }

  136.  

  137.  

  138. public stripper_ctrl(id, level, cid)

  139. {

  140.         if (!cmd_access(id, level, cid, 1))

  141.                 return PLUGIN_HANDLED

  142.        

  143.         g_Enabled = g_Enabled ? false : true

  144.  

  145.         client_print(id, print_chat, "CSDM removig extra entities from maps %s.", g_Enabled ? "enabled" : "disabled")

  146.         log_amx("CSDM removig extra entities from maps %s.", g_Enabled ? "enabled" : "disabled")

  147.  

  148.         menu_display(id, g_sett_menu, g_PageStrExEn)

  149.  

  150.         csdm_write_cfg(id, "stripper", "enabled", g_Enabled ? "1" : "0")

  151.  

  152.         client_print(id,print_chat,"CSDM - changing this setting will affect the game after changelevel command")

  153.  

  154.         return PLUGIN_HANDLED

  155. }

  156.  

  157.  

  158. public hook_strip_sett_display(player, menu, item)

  159. {

  160.         new paccess, command[24], call

  161.        

  162.         menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call)

  163.        

  164.         if (equali(command, "stripper_ctrl"))

  165.         {

  166.                 if (g_Enabled)

  167.                 {

  168.                         menu_item_setname(menu, item, "Strip Extra Objectives Enabled")

  169.                 } else {

  170.                         menu_item_setname(menu, item, "Strip Extra Objectives Disabled")

  171.                 }

  172.         }

  173. }

  174.  
[/pawn]

Скажите возможно ли оторовать его от КСДМ мода как такового?? ЧТо бы он работал отдельно, как отдельный плагин?
Аватара пользователя
vertex647
 
Сообщения: 84
Зарегистрирован: 16 июл 2011, 20:22
Благодарил (а): 5 раз.
Поблагодарили: 2 раз.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14