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

Переделываем оружие с zm мода на паблик

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

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

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

Переделываем оружие с zm мода на паблик

Сообщение TheMrFeliX » 19 авг 2014, 14:39

В этой статье я покажу как переделать оружие с zm мода на простой паблик.

Для примера я возьму скачанный из интернета плагин оружия Ethereal.

На всякий случай создайте копию .sma файла.

Начнём.

Открываем через блокнот .sma файл оружия и сразу убираем инклуд zombieplague
[pawn]
  1. #include <zombieplague>
[/pawn]

Дальше нажимаем сверху "Правка -> Найти" или сочетание клавиш CTRL+F.
У вас вылезет окно поиска там вводим "zp" проверяем чтобы не стояла галочка "С учётом регистра"
Ставим точку где написано "Вниз" и нажимаем "Найти далее".

У нас находит в register_plugin название плагина, его можно не трогать. Дальше идут квары их тоже не трогаем, а вот строчку [pawn]
  1. g_itemid_ethereal = zp_register_extra_item("Ethereal", 3549, ZP_TEAM_HUMAN)
[/pawn] мы спокойно стираем, она нам не понадобится, и ещё в самом верху
плагина где создаются переменные, мы ищем и стираем переменную g_itemid_ethereal.

Снова нажимаем найти далее и у нас находит паблик zp_user_humanized_post(id)
его, мы тоже стираем и нажимаем найти далее. Паблик zp_user_infected_post(id)
так же удаляем и ищем снова. Паблик zp_extra_item_selected тоже полностью удаляем, но сначала смотрим, что у нас здесь написано
[pawn]
  1. public zp_extra_item_selected(id, itemid)

  2. {

  3.         if(itemid == g_itemid_ethereal)

  4.         {

  5.                 drop_weapons(id, 1);

  6.                 new iWep2 = give_item(id,"weapon_ump45")

  7.                 if( iWep2 > 0 )

  8.                 {

  9.                         cs_set_weapon_ammo( iWep2, get_pcvar_num(cvar_clip_ethereal) )

  10.                         cs_set_user_bpammo (id, CSW_UMP45, get_pcvar_num(cvar_ethereal_ammo))

  11.                         UTIL_PlayWeaponAnimation(id, 2)

  12.                 }

  13.                 g_has_ethereal[id] = true;

  14.         }

  15. }
[/pawn]

Как видим здесь сразу в zp_extra_item_selected вставлена выдача оружия, так сделано не во всех плагинах в некоторых выдача может быть вот в таком виде

[pawn]
  1. public zp_extra_item_selected(id, itemid)

  2. {

  3.         if(itemid != g_itemid_ethereal)

  4.                 return

  5.  

  6.         give_ethereal(id)

  7. }
[/pawn]

Вот такой вид гораздо удобнее, чем первый
потому, что нужно просто скопировать give_ethereal(id)
и создать register_clcmd("say /give_ethereal", "give_ethereal")

Но у нас сделано по другому, поэтому делаем вот так.
Копируем всё, что находится в zp_extra_item_selected
копируем только то, что внутри, создаем новый паблик в самом конце, называем его как-нибудь типо give_ethereal и вставляем в него то, что копировали из zp_extra_item_selected вот пример
[pawn]
  1. public give_ethereal(id, itemid)

  2. {

  3.                 drop_weapons(id, 1);

  4.                 new iWep2 = give_item(id,"weapon_ump45")

  5.                 if( iWep2 > 0 )

  6.                 {

  7.                         cs_set_weapon_ammo( iWep2, get_pcvar_num(cvar_clip_ethereal) )

  8.                         cs_set_user_bpammo (id, CSW_UMP45, get_pcvar_num(cvar_ethereal_ammo))

  9.                         UTIL_PlayWeaponAnimation(id, 2)

  10.                 }

  11.                 g_has_ethereal[id] = true;

  12. }
[/pawn]

Это готово. Теперь делаем саму команду для выдачи оружия, наверху ищем public plugin_init
и в самом низу, но не после кваров пишем это
[pawn]
  1. register_clcmd("give_ethereal", "give_ethereal")
[/pawn]

Всё теперь когда игрок напишет команду в консоле give_ethereal у него в руках появится наша пушка.
Но мы ещё не закончили поэтому продолжаем.

Нажимаем найти далее и нам находит это
[pawn]
  1. replace_weapon_models(id, weaponid)

  2. {

  3.         switch (weaponid)

  4.         {

  5.                 case CSW_UMP45:

  6.                 {

  7.                         if (zp_get_user_zombie(id) || zp_get_user_survivor(id))

  8.                                 return;

  9.                        

  10.                         if(g_has_ethereal[id])

  11.                         {

  12.                                 set_pev(id, pev_viewmodel2, ethereal_V_MODEL)

  13.                                 set_pev(id, pev_weaponmodel2, ethereal_P_MODEL)

  14.                         }

  15.                 }

  16.         }

  17. }
[/pawn]

Здесь мы стираем только эту проверку
[pawn]
  1. if (zp_get_user_zombie(id) || zp_get_user_survivor(id))

  2.                                 return;
[/pawn]
И ищем далее.
Дальше нам находит сток в котором есть проверка
[pawn]
  1. if(target > 0 && target <= g_MaxPlayers && zp_get_user_zombie(target))
[/pawn]
И отсюда мы удаляем
[pawn]
  1. && zp_get_user_zombie(target)
[/pawn]
И снова нажимаем Найти далее.
Но тут нам вылазит окно "Не удаётся найти zp"
Ну что же, это значит что больше нету функций относящихся к zombieplague, и теперь это оружие можно компилировать и спокойно ставить на паблик.

Это моя первая статья, поэтому не судите строго.
Последний раз редактировалось TheMrFeliX 21 авг 2014, 09:23, всего редактировалось 1 раз.
Аватара пользователя
TheMrFeliX
 
Сообщения: 172
Зарегистрирован: 22 авг 2011, 17:07
Благодарил (а): 52 раз.
Поблагодарили: 13 раз.
Языки программирования: Counter-Strike 1.6

Re: Переделываем оружие с zm мода на паблик

Сообщение levrln » 19 авг 2014, 15:15

На статью по-моему не смахивает
Аватара пользователя
levrln
 
Сообщения: 61
Зарегистрирован: 07 июл 2014, 19:24
Благодарил (а): 9 раз.
Поблагодарили: 18 раз.

Re: Переделываем оружие с zm мода на паблик

Сообщение Шарль Перро » 19 авг 2014, 15:29

никак вообще не смахивает

Добавлено спустя 35 секунд:
На днях напишу нормальную статью с полным объяснением ,что,почему убираем и почему
NEW IRS[IN`DEX Rank System]
ГОТОВ.
[spoiler]тык
185.22.234.222:27018[/spoiler]
Аватара пользователя
Шарль Перро
 
Сообщения: 362
Зарегистрирован: 07 май 2014, 18:02
Забанен
Благодарил (а): 93 раз.
Поблагодарили: 91 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Переделываем оружие с zm мода на паблик

Сообщение Safety1st » 20 авг 2014, 22:00

FDGOD достаточно хорошо описал необходимые действия :thumbs_up

А мне мало что из 'современного творчества' нравится ;)
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Переделываем оружие с zm мода на паблик

Сообщение Шарль Перро » 20 авг 2014, 22:36

Тогда поправлю свой пост, до статьи не хватает- почему именно такую-то, такую-то строку нужно удалить, и за что она отвечает
NEW IRS[IN`DEX Rank System]
ГОТОВ.
[spoiler]тык
185.22.234.222:27018[/spoiler]
Аватара пользователя
Шарль Перро
 
Сообщения: 362
Зарегистрирован: 07 май 2014, 18:02
Забанен
Благодарил (а): 93 раз.
Поблагодарили: 91 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Переделываем оружие с zm мода на паблик

Сообщение Safety1st » 20 авг 2014, 23:09

Хах) Ничто не делается сразу идеально) К сожалению, на стадии 'бета-версии' так и остаётся. Единственная статья в последнее время, что была доведена до ума - Вы должны зарегистрироваться, чтобы видеть ссылки..

Шарль Перро писал(а):до статьи не хватает- почему именно такую-то, такую-то строку нужно удалить, и за что она отвечает

По-моему, это будет лишней инфой в данном случае. Очевидно, что тутор для новичков в скриптинге. Поставь себя на место владельца сервера, который нашёл нужный ему плагин оружия, но он для ZM. Человеку вообще не интересно, что за что там отвечает, ему важно поставить плагин на свой сервер и начать использовать. Автор разжевал на примерах процедуру выбрасывания всех zp-натив, раскрыл основную тему статьи.

Если что и улучшать, то в первую очередь прикрепить конечный результат 'портирования' и косметические правки типа:
И отсюда мы удаляем
[pawn]
  1. zp_get_user_zombie(target)
[/pawn]
-->
[pawn]
  1. && zp_get_user_zombie(target)
[/pawn]
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Переделываем оружие с zm мода на паблик

Сообщение Шарль Перро » 20 авг 2014, 23:29

по поводу словаря, я знаю, и знаю прекрасно от Влада, как долго ты ему писал про исправление темы, за что тебе респект!
NEW IRS[IN`DEX Rank System]
ГОТОВ.
[spoiler]тык
185.22.234.222:27018[/spoiler]
Аватара пользователя
Шарль Перро
 
Сообщения: 362
Зарегистрирован: 07 май 2014, 18:02
Забанен
Благодарил (а): 93 раз.
Поблагодарили: 91 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Переделываем оружие с zm мода на паблик

Сообщение gyxoBka » 20 авг 2014, 23:30

Safety1st, если владельцу сервера важен только результат, а не что почему и как работает, то косметические правки не нужны, т.к. ему важен именно РЕЗУЛЬТАТ, а как он выглядит по барабану. имхо.
Ню-ню-ню, не пишите мне в ЛС ху*ню.
В ЛС не помогаю и не просите.
Аватара пользователя
gyxoBka
Скриптер
 
Сообщения: 888
Зарегистрирован: 29 янв 2012, 18:03
Благодарил (а): 239 раз.
Поблагодарили: 249 раз.
Опыт программирования: Больше трех лет

Re: Переделываем оружие с zm мода на паблик

Сообщение Safety1st » 21 авг 2014, 00:20

'Косметические правки' не в том смысле, что ты подумал. Без удаления && в примере выше, если человек всё будет делать строго по гайду, нужный результат не получится.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Переделываем оружие с zm мода на паблик

Сообщение gyxoBka » 21 авг 2014, 00:25

Safety1st, я подумал код подравнять, нативы переименовать и тд :-D
Ню-ню-ню, не пишите мне в ЛС ху*ню.
В ЛС не помогаю и не просите.
Аватара пользователя
gyxoBka
Скриптер
 
Сообщения: 888
Зарегистрирован: 29 янв 2012, 18:03
Благодарил (а): 239 раз.
Поблагодарили: 249 раз.
Опыт программирования: Больше трех лет

След.

Вернуться в Статьи / фрагменты кода

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

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