Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Выдача модели

Статус пользователя JekaPro
сообщение 8.5.2017, 15:32
Сообщение #1


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

Добрый день, нужно помочь отредактировать плагин, мод ЗМ.
Суть в том,что появляется мини босс во время заражения,нужно что бы этому мини боссу выдавать отдельная модель которую можно вписать в плагине, но что бы после убийства мини босса модель пропадала и становилась та,которая выбрана у его класса зомби.
Код плагина
CODE
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <zombieplague>
//#include <myaddon30>
#include <fun>
#include <fakemeta>

//LOGS
#define LOGS //comment if don't wont logs
#define FILE_NAME "miniboss.txt"
//END LOGS


//ETC
#define KILL_MONEY 90 //How much money give for player when he kill boss.

new map[32]
new g_maxplayers;
new g_countminiboss;
new g_MiniBoss[33];
new count_zombieDie;

const OFFSET_LINUX = 5
const OFFSET_PAINSHOCK = 108 // ConnorMcLeod

public plugin_init()
{
register_plugin("Mini Boss", "1.0", "s0h")

RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Post", 1)

g_maxplayers = get_maxplayers()

#if defined LOGS
get_mapname(map, 31)
log_to_file(FILE_NAME, "START %s", map)
#endif
}

public plugin_natives()
register_native("szp_get_miniboss", "native_get_mboss", 1)

public native_get_mboss(id)
return g_MiniBoss[id]

public zp_round_ended()
{
for(new i = 1; i <= g_maxplayers; i++)
{
if(g_MiniBoss[i])
{
g_MiniBoss[i] = false;
g_countminiboss = 0;
}
}
}

public fw_TakeDamage_Post(id)
{
if (!is_user_alive(id) || !zp_get_user_zombie(id) || !g_MiniBoss[id])
return HAM_IGNORED

set_pdata_float(id, OFFSET_PAINSHOCK, 1.0, OFFSET_LINUX)

return HAM_IGNORED
}

public zp_user_humanized_pre(id)
{
if(g_MiniBoss[id])
{
g_MiniBoss[id] = false;
g_countminiboss = 0;
}
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(g_MiniBoss[victim])
{
g_MiniBoss[victim] = false;
g_countminiboss = 0;

zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker))

new name[32]
get_user_name(attacker, name, charsmax(name));
print_col_chat( 0,"^4[MINI-BOSS]^3 %s ^1убил ^4мини-босса^1, за что и получил^4 %s$", name, KILL_MONEY)

#if defined LOGS
log_to_file(FILE_NAME, "%s убил мини-босса [%s]",name, map)
#endif

}

if(zp_get_user_zombie(victim)) count_zombieDie++;
}


rnd_do(num1, num2, const res)
{
new rnd = random_num(num1, num2)

//client_print(0, print_chat, "DEBUG [NUM1: %d, NUM2: %d, RES: %d", num1, num2, rnd)

if(rnd == res)
{
#if defined LOGS
log_to_file(FILE_NAME, "Random true: (NUM1 - %d) (NUM2 - %d) (RES - %d) [%s]",num1,num2,res,map)
#endif

return true;
}
return false;
}

public zp_user_infected_post( id, infector, nemesis )
{
if ( nemesis ) return;

new bool:doLittleBoss = false;

if(count_zombieDie > 250)
{
if(rnd_do(0,15,15))
doLittleBoss = true;
}
else if(count_zombieDie > 100)
{
if(rnd_do(0,25,25))
doLittleBoss = true;
}
else if(count_zombieDie < 100)
{
if(rnd_do(0,35,35))
doLittleBoss = true;
}

if( doLittleBoss && (zp_get_human_count() >= 25) && g_countminiboss == 0 && zp_get_zombie_count() > 1)
{
new l_name[32];
get_user_name(id, l_name, 31);
g_MiniBoss[id] = true;
g_countminiboss++;

set_hudmessage(200, 66, 66, -1.0, 0.2, 0, 2.0, 4.0)
show_hudmessage(0, "%s стал МИНИ-БОССОМ!", l_name)

set_user_health(id, get_user_health(id) + 5000)

#if defined LOGS
log_to_file(FILE_NAME, "%s стал МИНИ-БОССОМ [%s]",l_name, map)
#endif

set_task(0.1, "aura", id, _, _, "b");
}
}


public aura(id)
{
// Not nemesis, not in zombie madness
if (!g_MiniBoss[id])
{
// Task not needed anymore
remove_task();
return;
}
// Get player's origin
static origin[3]
get_user_origin(id, origin)

// Colored Aura
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_DLIGHT) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]) // z
write_byte(12) // radius
write_byte(220) // r
write_byte(66) // g
write_byte(66) // b
write_byte(2) // life
write_byte(0) // decay rate
message_end()
}

stock print_col_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Green Color
replace_all(msg, 190, "!y", "^1"); // Default Color (󩰠湫)
replace_all(msg, 190, "!t", "^3"); // Team Color
if (id) players[0] = id; else get_players(players, count, "ch");
{
for ( new i = 0; i < count; i++ )
{
if ( is_user_connected(players[i]) )
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя jjey
сообщение 8.5.2017, 20:51
Сообщение #2
Стаж: 10 лет

Сообщений: 12
Благодарностей: 1
Полезность: 0

JekaPro,

А можно подробей что не так!
ибо нативы передаются
Код
public plugin_natives()
    register_native("szp_get_miniboss", "native_get_mboss", 1)

public native_get_mboss(id)
    return g_MiniBoss[id]


А так же когда заканчивается ранд Зомби то идет обрыв.(1 ранд 1 скин)
Код
public zp_round_ended()
            g_MiniBoss[i] = false;
            g_countminiboss = 0;


Поэтому пожалуйста поподробней опишите проблему!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JekaPro
сообщение 8.5.2017, 21:20
Сообщение #3


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

никакой проблемы в плагине нет,нужно всего лишь мини боссу сделать выдачу модели,и после смерти ее убрать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 9.5.2017, 5:28
Сообщение #4


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

есть натив zp_override_model ?

вставить код замены модели сюда. При след.спауне за зм модель сама должна смениться на ту что выбрана игроком
код
Код
    if( doLittleBoss && (zp_get_human_count() >= 25) && g_countminiboss == 0 && zp_get_zombie_count() > 1)
    {
        new l_name[32];
        get_user_name(id, l_name, 31);
        g_MiniBoss[id] = true;
        g_countminiboss++;
        
        set_hudmessage(200, 66, 66, -1.0, 0.2, 0, 2.0, 4.0)
        show_hudmessage(0, "%s стал МИНИ-БОССОМ!", l_name)

        set_user_health(id, get_user_health(id) + 5000)
        
        #if defined LOGS
            log_to_file(FILE_NAME, "%s стал МИНИ-БОССОМ [%s]",l_name, map)
        #endif
        
        set_task(0.1, "aura", id, _, _, "b");
    }

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JekaPro
сообщение 9.5.2017, 10:11
Сообщение #5


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

DeMNiX, Код напиши, я же сюда написал что б помогли отредачить плагин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 9.5.2017, 11:32
Сообщение #6


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

Цитата
есть натив zp_override_model ?


Я вроде понятно вопрос задал
есть ли у тебя в ZP этот натив? если нет, то проще дописать в моде и записать в плагине
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JekaPro
сообщение 9.5.2017, 11:46
Сообщение #7


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

DeMNiX, нет,в моде такого натива нет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 9.5.2017, 11:46
Сообщение #8


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

скинь исходник мода в лс

чтобы вшить этот натив в главный мод, чтобы смена модели проходила через него, без лишних проблем

Отредактировал: DeMNiX, - 9.5.2017, 13:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JekaPro
сообщение 9.5.2017, 14:49
Сообщение #9


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

Цитата(DeMNiX @ 9.5.2017, 11:46) *
скинь исходник мода в лс

чтобы вшить этот натив в главный мод, чтобы смена модели проходила через него, без лишних проблем

я натив сам зарегистрирую в моде,делов то, ты впиши что нужно в плагин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 9.5.2017, 15:11
Сообщение #10


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

разберешься в общем
Прикрепленные файлы:
Прикрепленный файл  override.sma ( 4,79 килобайт ) Кол-во скачиваний: 18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JekaPro
сообщение 11.5.2017, 14:16
Сообщение #11


Стаж: 10 лет
Город: Одесса

Сообщений: 724
Благодарностей: 189
Полезность: 494

Цитата(DeMNiX @ 9.5.2017, 15:11) *
разберешься в общем

трабла какая-то у тебя " ошибка" error 017: undefined symbol "zp_override_user_model"

Натив зарегистрировал
что то ты не доделал

Отредактировал: JekaPro, - 11.5.2017, 14:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 11.5.2017, 16:36
Сообщение #12


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

допиши в начало плагина
Цитата
native zp_override_user_model(id, const newmodel[], modelindex = 0)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: