Из ZP4.3 в ZP5.0(Extra Items/Экстра вещи)


Из ZP4.3 в ZP5.0(Extra Items/Экстра вещи)

Одна из последующей серии статей затрагивающих \”трансформацию\” из ZP4.3 в ZP5.0

Из ZP4.3 в ZP5.0(Extra Items/Экстра вещи)

Вступление:
Первые две просьбы поступили с просьбой написать статью как переписывать плагины из ZP4.3 для ZP5.0, собственно, разработчики данных модов позаботились об этом и создали поддержку плагинов из ZP4.3 и Biohazard для ZP5.0, но, видимо, раз люди просят, значит им это нужно, и поэтому я написал эту статью.
Поскольку это не определенно обособленная тема касающегося маленького круга нативов и форвардов в ZP5.0, а конкретно, что бы переписывать плагины нужно будет знать все нативы и форварды в ZP5.0, в 1 урок это будет глупо все изучать, поэтому я разбил все уроки на темы определенные(зомби Классы, Экстра вещи, дополнения и т.д.), сегодня, я поясню как переписывать зомби классы

\”Путь\” урока:
1.Объясняю нативы и форварды
2.Наглядно переписываю 1 класс

Быстро пройдемся по всем нативам и форвардам из \”zp50_class_zombie.inc\”

1.Возвращает ID(индекс) текущего зомби класса

native zp_class_zombie_get_current(id)

id - индекс игрока

2.Возвращает ID(индекс) зомби класса выбранного игроком на следующее заражение

native zp_class_zombie_get_next(id)

id - индекс игрока

3. Назначает зомби класс игроку на следующее заражение(по ID(индексу))

native zp_class_zombie_set_next(id, classid)

id - индекс игрока
classid - индекс зомби класса

4. Возвращает максимальное количество жизней(указывается при регистрации зомби класса)для определенного зомби класса

native zp_class_zombie_get_max_health(id, classid)

id - индекс игрока
classid - индекс зомби класса

5.Регистрирует зомби класс

native zp_class_zombie_register(const name[], const description[], health, Float:speed, Float:gravity)

const name[] - Название зомби класса в меню
const descriptionp[] - Описание зомби класса в меню
health - максимальное количество жизней
Float:speed - скорость
Float:gravity - гравитация

6. Регистрирует модель зомби класса

native zp_class_zombie_register_model(classid, const model[])

classid - индекс зомби класса
const model[] - короткое название модели(расположение в папке player, например, если модель лежит по директории "cstrike/model/player/zombie/zombie.mdl", то просто пишите "zombie"

7. Регистрирует модель рук зомби класса

native zp_class_zombie_register_claw(classid, const clawmodel[])

classid - индекс зомби класса
const clawmodel[] - полное название или директория где лежит эта модель

8. Регистрирует собственный отскок для зомби класса

native zp_class_zombie_register_kb(classid, Float:knockback)

classid - индекс зомби класса
Float:knockback - дробное значение отскока

9. Получает ID(индекс) зомби класса по его истинному названию(то, которые было записано в исходник)

native zp_class_zombie_get_id(const real_name[])

const real_name[] - название зомби класса

10. Получает название зомби класса по его ID

native zp_class_zombie_get_name(classid, name[], len)

classid - индекс зомби класса
name[] - Массив, куда будет записываться это название
len - длина

11. Получает истинное название зомби класса по его ID

native zp_class_zombie_get_real_name(classid, real_name[], len)

classid - индекс зомби класса
real_name[] - Массив, куда будет записываться это название
len - длина

12.Получает описание зомби класса по его ID

native zp_class_zombie_get_desc(classid, description[], len)

classid - индекс зомби класса
description[] - Массив, куда будет записываться описание
len - длина

12. Получает собственный отскок зомби класса по его ID

native Float:zp_class_zombie_get_kb(classid)

classid - индекс зомби класса

13.Получает количество зарегистрированных зомби классов

native zp_class_zombie_get_count()

14. Показывает меню с доступными зомби классами игроку

native zp_class_zombie_show_menu(id)

id - индекс игрока

15.Позволяет дописывать дополнительные текст в названии зомби класса(то может быть счетчик количества зомби классов или еще что-либо)
Примечание: используйте это в select pre forward(момент перед выбором класса)

native zp_class_zombie_menu_text_add(const text[])

const text[] - добавляемый текст

16. Момент перед выбором зомби класса, позволяет сделать некие доп. функции
В ZP5.0 для этого форварда добавлены следующие возвращающие значения


* - ZP_CLASS_AVAILABLE (Позволяет выбрать зомби класс)
* - ZP_CLASS_NOT_AVAILABLE (зомби класс становится серым цветом и он недоступен)
* - ZP_CLASS_DONT_SHOW (зомби класс исчезает из меню, попросту не показывается)

forward zp_fw_class_zombie_select_pre(id, classid)

id - индекс игрока
classid - индекс зомби класса

17.Вызывается после того, как игрок выбрал зомби класс

forward zp_fw_class_zombie_select_post(id, classid)

id - индекс игрока
classid - индекс зомби класса

Вот так вот, и это только 1 инклюд касающийся зомби классов

Сейчас я наглядно и с комментариями перепишу класс Heal, класс не новый, вот ссылка на него
Zombie Mod

Изначально отключите инклюд \”zombieplague\” и подключите \”zp50_class_zombie\”, \”zp50_core\” и \”zp50_class_nemesis\”
Cразу идем к public plugin_precache, там видим следующее:

public plugin_precache()
{
g_zclass_heal = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)

precache_sound(heal_sound)
}

Далее пишем следующее:

g_zclass_heal = zp_class_zombie_register(zclass_name, zclass_info, zclass_health, zclass_speed, zclass_gravity)//Регистрируем основу зомби класса
zp_class_zombie_register_kb(g_zclass_heal, zclass_knockback)//Регистрация отскока
zp_class_zombie_register_model(g_zclass_heal, zclass_model)//Регистрация модели
zp_class_zombie_register_claw(g_zclass_heal, zclass_clawmodel)//Регистрация модели рук

Прочитав мои объяснения выше, вы сможете понять данные строки

И заменяем

g_zclass_heal = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)

на вышеуказанный код.

Идем к public

zp_user_infected_post(id, infector)

Сразу же заменяем это на

zp_core_infect_post(id, infector)

Данный форвард является аналогом \”zp_user_infected_post\”, мы это позже пройдем, наверное

Замечаем натив

zp_get_user_zombie_class(id)

, он из ZP4.3 и он получает индекс зомби класса по индексу игрока, меняем его на

zp_class_zombie_get_current(id)

Далее во всем плагине лучше сразу заменить

zp_get_user_zombie

на

zp_core_is_zombie

и

zp_get_user_nemesis

на

zp_class_nemesis_get

А так же , как я и раньше сказал,

zp_get_user_zombie_class

на

zp_class_zombie_get_current

.

На 45 строке видим следующее содержание

if((pev(id, pev_health) < float(zp_get_zombie_maxhealth(id))) && (last_use[id] + 20.0 <= get_gametime()))

Поскольку в ZP5.0 максимальное здоровье определяется для отдельно взятых классов зомби и нужно индекс зомби класса ввести, то делаем так, меняем

zp_get_zombie_maxhealth()

на

native zp_class_zombie_get_max_health(id, g_zclass_heal)

Точно так же мы меняем наш натив на аналог из ZP5.0 на 49 строке.

Вроде все, класс переписан, быть честным, я утомился что-то с этим классом.
Я мог где-то ошибиться, описаться, или у меня могло быть не правильное суждение, так что, по-желанию, поправьте меня, если что.
Не спрашивайте к чему тут такая картинка. Много писанины вышло, надеюсь, что хоть кому-то помог
Еще раз повторюсь, что делал данную статью только из-за того, что попросили 2 человека, возможно, кому-то еще нужно будет


Комментарии:


Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Zombie-Mod.com — крупнейший игровой портал по Counter Strike