[TUT] Делаем отдельную модель VIP игроку

[TUT] Делаем отдельную модель VIP игроку

Для того, чтобы сделать отдельную модель VIP игроку делайте всё, как я.
Итак, начнём.
Для начала скачаем плагин:
Скачать файл: zp_addon_vip_model.sma [1.11 Kb] (cкачиваний: 1306)

Просто установкой плагина вы ничего не измените т.к. в вашем исходнике мода, нету кое-какой функции.
Добавлением этой функции мы сейчас и займёмся.
1.Открываем исходник вашего мода, и ищем
public plugin_natives()

После строки
register_native("zp_force_buy_extra_item", "native_force_buy_extra_item", 1)

Добавляем
register_native("zp_override_user_model", "native_override_user_model", 1)

Должно получиться так:


Шаг №2. Ищем
// Native: zp_force_buy_extra_item
public native_force_buy_extra_item(id, itemid, ignorecost)
{
	// ZP disabled
	if (!g_pluginenabled)
		return -1;
	
	if (itemid < 0 || itemid >= g_extraitem_i)
		return 0;
	
	buy_extra_item(id, itemid, ignorecost)
	return 1;
}


И чуток ниже добавляем данный код:
// Native: zp_override_user_model
public native_override_user_model(id, const newmodel[], modelindex)
{
	// ZP disabled
	if (!g_pluginenabled)
		return false;
	
	if (!is_user_valid_connected(id))
	{
		log_error(AMX_ERR_NATIVE, "[%s] Invalid Player (%d)", ZP_PREFIX, id)
		return false;
	}
	
	// Strings passed byref
	param_convert(2)
	
	// Remove previous tasks
	remove_task(id+TASK_MODEL)
	
	// Custom models stuff
	static currentmodel[32]
	
	if (g_handle_models_on_separate_ent)
	{
		// Set the right model
		copy(g_playermodel[id], charsmax(g_playermodel[]), newmodel)
		if (g_set_modelindex_offset && modelindex) fm_cs_set_user_model_index(id, modelindex)
		
		// Set model on player model entity
		fm_set_playermodel_ent(id)
	}
	else
	{
		// Get current model for comparing it with the current one
		fm_cs_get_user_model(id, currentmodel, charsmax(currentmodel))
		
		// Set the right model, after checking that we don't already have it
		if (!equal(currentmodel, newmodel))
		{
			copy(g_playermodel[id], charsmax(g_playermodel[]), newmodel)
			if (g_set_modelindex_offset && modelindex) fm_cs_set_user_model_index(id, modelindex)
			
			// An additional delay is offset at round start
			// since SVC_BAD is more likely to be triggered there
			if (g_newround)
				set_task(5.0 * g_modelchange_delay, "fm_user_model_update", id+TASK_MODEL)
			else
				fm_user_model_update(id+TASK_MODEL)
		}
	}
	return true;
}


Должно получиться так


Шаг №3. Идём в scripting/include и находим файлик zombieplague.inc
В конце или в начале вписываем:
/**
 * Overrides ZP player model with a different custom model.
 *
 * Note: This will last until player's next infection/humanization/respawn.
 *
 * Note: Don't call more often than absolutely needed.
 *
 * @param id		Player index.
 * @param newmodel	Model name.
 * @param modelindex	Modelindex (optional).
 */
native zp_override_user_model(id, const newmodel[], modelindex = 0)


После этого компилируем оба плагина, и устанавливаем их :)
На этом всё.

Ах да, самое главное чуть не забыл.
1.Данный плагин работает только в связке с VIP системой by aarnaas
2.Флаг (vips.ini) по которому доступна моделька - e

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

  1. DEN67 от 27 декабря 2014 00:31
    Ппц, не проще через зп?
  2. FasTIK73rus3 от 27 декабря 2014 01:15
    Да ну в гл моде лутче система арнаса бесит все способности вип я делал отдельними плагинами но не системой
  3. adidas71rus3 от 27 декабря 2014 10:47
    Ахахах,

    Шаг №2. Ищем
    // Native: zp_force_buy_extra_item
    public native_force_buy_extra_item(id, itemid, ignorecost)
    {
    // ZP disabled
    if (!g_pluginenabled)
    return -1;

    if (itemid < 0 || itemid >= g_extraitem_i)
    return 0;

    buy_extra_item(id, itemid, ignorecost)
    return 1;
    }
    а это зачем?
  4. akaki.electro от 27 декабря 2014 11:03
    --------------------
    skype : akaki.electro
  5. Just a Boy от 27 декабря 2014 11:19
    Цитата: TitanDay
    Какая разница между отдельной и той которая есть???

    В смысле? Если ты сейчас говоришь о той, что прописана в zombieplague.ini, то там для админа модель)
    А этот плагин позволяет установить модель випу
    Цитата: DEN67
    Ппц, не проще через зп?

    Может и проще, но я не знаю как
    Цитата: adidas71rus3
    Ахахах,

    Шаг №2. Ищем
    // Native: zp_force_buy_extra_item
    public native_force_buy_extra_item(id, itemid, ignorecost)
    {
    // ZP disabled
    if (!g_pluginenabled)
    return -1;

    if (itemid < 0 || itemid >= g_extraitem_i)
    return 0;

    buy_extra_item(id, itemid, ignorecost)
    return 1;
    }
    а это зачем?

    Ну типо чтоб показать куда вставлять...
    Цитата: akaki.electro

    Да-да, забыл источник указать

    P.S. Выложил для того, чтобы не было тем на форуме с данным вопросом:)
  6. Pechenechko от 27 декабря 2014 21:47
    Кхм...
    zp_override_user_model - стандартный натив зп! :02:
  7. Just a Boy от 27 декабря 2014 23:22
    Цитата: Pechenechko


    в fix5a да
    А в чистом zp 4.3 нету его...
  8. sergiu123sergiu от 28 декабря 2014 14:47
    пожалуста помогите как доавить в zombie_plague40.sma урон для NEMESIS урон на вторую кнопку MOUSE штобы убивал с 1 удара
  9. KOKOH от 7 января 2015 17:42
    Лучше бы ввидео снял как его добавить новичкам бы "ОЧЕНЬ" помогло :06:
  10. J6rawch1k от 29 января 2015 01:11
    Цитата: sergiu123sergiu
    пожалуста помогите как доавить в zombie_plague40.sma урон для NEMESIS урон на вторую кнопку MOUSE штобы убивал с 1 удара

    пиши в лс [в]контакте : vk.com/xD981005
  11. defoulpro от 29 августа 2016 11:05
    Цитата: KOKOH
    Лучше бы ввидео снял как его добавить новичкам бы "ОЧЕНЬ" помогло :06:

    Да вот именно
  12. Winloker_bulder от 18 ноября 2016 08:28
    ПОМОЕМУ ЧЕРЕЗ ZP ЛЕГЧЕ СДЕЛАТЬ ЧЕМ СОВАТЬ РАЗНУЮ ХРЕНЬ В СЕРВЕР
    ПРИМЕР
    НЕ ПОЛУЧИЛОСЬ НАПИСАТЬ КИНУ СЫЛКУ НА ЯНДЕКС ДИСК ТЕКСТОВЫЙ ДОКУМЕНТ
    https://yadi.sk/i/SG3ZthoqxcLig
  13. OlimpiuS7 от 30 июня 2017 15:34
    Нехватает инклюда.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.