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

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

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

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

Георгиевская лента на ноже ( 9 мая )

, Прошу помощи в написании кода.
Статус пользователя Starui
сообщение 19.4.2015, 0:09
Сообщение #1


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Нашел занимательную модель ножа на тему Георгиевской ленты.
Скриншот

Хотелось бы зделать под эту модель плагин.. (Что бы при заходе на сервер, все игроки скачивали данную модификацию.)
Код
Если возможно...
При отключении данного плагина, нож становился бы обычным...
То есть, данная модификация должна работать только на моём сервере.




РЕШЕНО!
Установка: Скопировать, вставить...
SMA: Компилировать по желанию. Исходник в архиве.
Нож отображается корректно, глюков с моделью нет!
При отключении плагина, нож становиться стандартным.

Маленькое украшение вашему серверу в преддверии 70-летия победы!
Ссылка на скачивание

Плагин написан не мной!

Отредактировал: Starui, - 19.4.2015, 1:20


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   Цитировать сообщение
Статус пользователя rGame
сообщение 19.4.2015, 0:11
Сообщение #2
Стаж: 12 лет

Сообщений: 390
Благодарностей: 629
Полезность: 1016

Можно заменить этим плагином - Плагин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 19.4.2015, 0:17
Сообщение #3


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Цитата(rGame @ 19.4.2015, 1:11) *
Можно заменить этим плагином - Плагин

В таком случае, прошу выделить цветом код, который будет действовать только для модели.
Звуки итд... не нужны!
Грязный код
Код
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define MAX_SOUNDS    50
#define MAX_p_MODELS    50
#define MAX_v_MODELS    50
#define MAX_w_MODELS    50

#define MAP_CONFIGS    1

new new_sounds[MAX_SOUNDS][48]
new old_sounds[MAX_SOUNDS][48]
new sounds_team[MAX_SOUNDS]
new soundsnum

new new_p_models[MAX_p_MODELS][48]
new old_p_models[MAX_p_MODELS][48]
new p_models_team[MAX_p_MODELS]
new p_modelsnum

new new_v_models[MAX_v_MODELS][48]
new old_v_models[MAX_v_MODELS][48]
new v_models_team[MAX_p_MODELS]
new v_modelsnum

new new_w_models[MAX_w_MODELS][48]
new old_w_models[MAX_w_MODELS][48]
new w_models_team[MAX_p_MODELS]
new w_modelsnum

new maxplayers

public plugin_init()
{
    register_plugin("Weapon Model + Sound Replacement","1.2","GHW_Chronic")
    register_forward(FM_EmitSound,"Sound_Hook")
    register_forward(FM_SetModel,"W_Model_Hook",1)
    register_logevent("newround",2,"1=Round_Start")
    register_event("CurWeapon","Changeweapon_Hook","be","1=1")
    maxplayers = get_maxplayers()
}

public plugin_precache()
{
    new configfile[200]
    new configsdir[200]
    new map[32]
    get_configsdir(configsdir,199)
    get_mapname(map,31)
    format(configfile,199,"%s/new_weapons_%s.ini",configsdir,map)
    if(file_exists(configfile))
    {
        load_models(configfile)
    }
    else
    {
        format(configfile,199,"%s/new_weapons.ini",configsdir)
        load_models(configfile)
    }
}

public load_models(configfile[])
{
    if(file_exists(configfile))
    {
        new read[96], left[48], right[48], right2[32], trash, team
        for(new i=0;i<file_size(configfile,1);i++)
        {
            read_file(configfile,i,read,95,trash)
            if(containi(read,";")!=0 && containi(read," ")!=-1)
            {
                strbreak(read,left,47,right,47)
                team=0
                if(containi(right," ")!=-1)
                {
                    strbreak(right,right,47,right2,31)
                    replace_all(right2,31,"^"","")
                    if(
                    equali(right2,"T") ||
                    equali(right2,"Terrorist") ||
                    equali(right2,"Terrorists") ||
                    equali(right2,"Blue") ||
                    equali(right2,"B") ||
                    equali(right2,"Allies") ||
                    equali(right2,"1")
                    ) team=1
                    else if(
                    equali(right2,"CT") ||
                    equali(right2,"Counter") ||
                    equali(right2,"Counter-Terrorist") ||
                    equali(right2,"Counter-Terrorists") ||
                    equali(right2,"CounterTerrorists") ||
                    equali(right2,"CounterTerrorist") ||
                    equali(right2,"Red") ||
                    equali(right2,"R") ||
                    equali(right2,"Axis") ||
                    equali(right2,"2")
                    ) team=2
                    else if(
                    equali(right2,"Yellow") ||
                    equali(right2,"Y") ||
                    equali(right2,"3")
                    ) team=3
                    else if(
                    equali(right2,"Green") ||
                    equali(right2,"G") ||
                    equali(right2,"4")
                    ) team=4
                }
                replace_all(right,47,"^"","")
                if(file_exists(right))
                {
                    if(containi(right,".mdl")==strlen(right)-4)
                    {
                        if(!precache_model(right))
                        {
                            log_amx("Error attempting to precache model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                        else if(containi(left,"models/p_")==0)
                        {
                            format(new_p_models[p_modelsnum],47,right)
                            format(old_p_models[p_modelsnum],47,left)
                            p_models_team[p_modelsnum]=team
                            p_modelsnum++
                        }
                        else if(containi(left,"models/v_")==0)
                        {
                            format(new_v_models[v_modelsnum],47,right)
                            format(old_v_models[v_modelsnum],47,left)
                            v_models_team[v_modelsnum]=team
                            v_modelsnum++
                        }
                        else if(containi(left,"models/w_")==0)
                        {
                            format(new_w_models[w_modelsnum],47,right)
                            format(old_w_models[w_modelsnum],47,left)
                            w_models_team[w_modelsnum]=team
                            w_modelsnum++
                        }
                        else
                        {
                            log_amx("Model type(p_ / v_ / w_) unknown for model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                    }
                    else if(containi(right,".wav")==strlen(right)-4 || containi(right,".mp3")==strlen(right)-4)
                    {
                        replace(right,47,"sound/","")
                        replace(left,47,"sound/","")
                        if(!precache_sound(right))
                        {
                            log_amx("Error attempting to precache sound: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                        else
                        {
                            format(new_sounds[soundsnum],47,right)
                            format(old_sounds[soundsnum],47,left)
                            sounds_team[soundsnum]=team
                            soundsnum++
                        }
                    }
                    else
                    {
                        log_amx("Invalid File: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                    }
                }
                else
                {
                    log_amx("File Inexistent: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                }
                if(!file_exists(left))
                {
                    log_amx("Warning: File Inexistent: ^"%s^" (Line %d of new_weapons.ini). ONLY A WARNING. PLUGIN WILL STILL WORK!!!!",left,i+1)
                }
            }
        }
    }
}

public Changeweapon_Hook(id)
{
    if(!is_user_alive(id))
    {
        return PLUGIN_CONTINUE
    }
    static model[32], i, team

    team = get_user_team(id)

    pev(id,pev_viewmodel2,model,31)
    for(i=0;i<v_modelsnum;i++)
    {
        if(equali(model,old_v_models[i]))
        {
            if(v_models_team[i]==team || !v_models_team[i])
            {
                set_pev(id,pev_viewmodel2,new_v_models[i])
                break;
            }
        }
    }

    pev(id,pev_weaponmodel2,model,31)
    for(i=0;i<p_modelsnum;i++)
    {
        if(equali(model,old_p_models[i]))
        {
            if(p_models_team[i]==team || !p_models_team[i])
            {
                set_pev(id,pev_weaponmodel2,new_p_models[i])
                break;
            }
        }
    }
    return PLUGIN_CONTINUE
}

public Sound_Hook(id,channel,sample[])
{
    if(!is_user_alive(id))
    {
        return FMRES_IGNORED
    }
    if(channel!=CHAN_WEAPON && channel!=CHAN_ITEM)
    {
        return FMRES_IGNORED
    }

    static i, team

    team = get_user_team(id)

    for(i=0;i<soundsnum;i++)
    {
        if(equali(sample,old_sounds[i]))
        {
            if(sounds_team[i]==team || !sounds_team[i])
            {
                engfunc(EngFunc_EmitSound,id,CHAN_WEAPON,new_sounds[i],1.0,ATTN_NORM,0,PITCH_NORM)
                return FMRES_SUPERCEDE
            }
        }
    }
    return FMRES_IGNORED
}

public W_Model_Hook(ent,model[])
{
    if(!pev_valid(ent))
    {
        return FMRES_IGNORED
    }
    static i
    for(i=0;i<w_modelsnum;i++)
    {
        if(equali(model,old_w_models[i]))
        {
            engfunc(EngFunc_SetModel,ent,new_w_models[i])
            return FMRES_SUPERCEDE
        }
    }
    return FMRES_IGNORED
}

public newround()
{
    static ent, classname[8], model[32]
    ent = engfunc(EngFunc_FindEntityInSphere,maxplayers,Float:{0.0,0.0,0.0},4800.0)
    while(ent)
    {
        pev(ent,pev_classname,classname,7)
        if(containi(classname,"armoury")!=-1)
        {
            pev(ent,pev_model,model,31)
            W_Model_Hook(ent,model)
        }
        ent = engfunc(EngFunc_FindEntityInSphere,ent,Float:{0.0,0.0,0.0},4800.0)
    }
}


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rGame
сообщение 19.4.2015, 0:27
Сообщение #4
Стаж: 12 лет

Сообщений: 390
Благодарностей: 629
Полезность: 1016

Цитата(Starui @ 19.4.2015, 1:17) *
В таком случае, прошу выделить цветом код, который будет действовать только для модели.
Звуки итд... не нужны!
Грязный код
Код
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define MAX_SOUNDS    50
#define MAX_p_MODELS    50
#define MAX_v_MODELS    50
#define MAX_w_MODELS    50

#define MAP_CONFIGS    1

new new_sounds[MAX_SOUNDS][48]
new old_sounds[MAX_SOUNDS][48]
new sounds_team[MAX_SOUNDS]
new soundsnum

new new_p_models[MAX_p_MODELS][48]
new old_p_models[MAX_p_MODELS][48]
new p_models_team[MAX_p_MODELS]
new p_modelsnum

new new_v_models[MAX_v_MODELS][48]
new old_v_models[MAX_v_MODELS][48]
new v_models_team[MAX_p_MODELS]
new v_modelsnum

new new_w_models[MAX_w_MODELS][48]
new old_w_models[MAX_w_MODELS][48]
new w_models_team[MAX_p_MODELS]
new w_modelsnum

new maxplayers

public plugin_init()
{
    register_plugin("Weapon Model + Sound Replacement","1.2","GHW_Chronic")
    register_forward(FM_EmitSound,"Sound_Hook")
    register_forward(FM_SetModel,"W_Model_Hook",1)
    register_logevent("newround",2,"1=Round_Start")
    register_event("CurWeapon","Changeweapon_Hook","be","1=1")
    maxplayers = get_maxplayers()
}

public plugin_precache()
{
    new configfile[200]
    new configsdir[200]
    new map[32]
    get_configsdir(configsdir,199)
    get_mapname(map,31)
    format(configfile,199,"%s/new_weapons_%s.ini",configsdir,map)
    if(file_exists(configfile))
    {
        load_models(configfile)
    }
    else
    {
        format(configfile,199,"%s/new_weapons.ini",configsdir)
        load_models(configfile)
    }
}

public load_models(configfile[])
{
    if(file_exists(configfile))
    {
        new read[96], left[48], right[48], right2[32], trash, team
        for(new i=0;i<file_size(configfile,1);i++)
        {
            read_file(configfile,i,read,95,trash)
            if(containi(read,";")!=0 && containi(read," ")!=-1)
            {
                strbreak(read,left,47,right,47)
                team=0
                if(containi(right," ")!=-1)
                {
                    strbreak(right,right,47,right2,31)
                    replace_all(right2,31,"^"","")
                    if(
                    equali(right2,"T") ||
                    equali(right2,"Terrorist") ||
                    equali(right2,"Terrorists") ||
                    equali(right2,"Blue") ||
                    equali(right2,"B") ||
                    equali(right2,"Allies") ||
                    equali(right2,"1")
                    ) team=1
                    else if(
                    equali(right2,"CT") ||
                    equali(right2,"Counter") ||
                    equali(right2,"Counter-Terrorist") ||
                    equali(right2,"Counter-Terrorists") ||
                    equali(right2,"CounterTerrorists") ||
                    equali(right2,"CounterTerrorist") ||
                    equali(right2,"Red") ||
                    equali(right2,"R") ||
                    equali(right2,"Axis") ||
                    equali(right2,"2")
                    ) team=2
                    else if(
                    equali(right2,"Yellow") ||
                    equali(right2,"Y") ||
                    equali(right2,"3")
                    ) team=3
                    else if(
                    equali(right2,"Green") ||
                    equali(right2,"G") ||
                    equali(right2,"4")
                    ) team=4
                }
                replace_all(right,47,"^"","")
                if(file_exists(right))
                {
                    if(containi(right,".mdl")==strlen(right)-4)
                    {
                        if(!precache_model(right))
                        {
                            log_amx("Error attempting to precache model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                        else if(containi(left,"models/p_")==0)
                        {
                            format(new_p_models[p_modelsnum],47,right)
                            format(old_p_models[p_modelsnum],47,left)
                            p_models_team[p_modelsnum]=team
                            p_modelsnum++
                        }
                        else if(containi(left,"models/v_")==0)
                        {
                            format(new_v_models[v_modelsnum],47,right)
                            format(old_v_models[v_modelsnum],47,left)
                            v_models_team[v_modelsnum]=team
                            v_modelsnum++
                        }
                        else if(containi(left,"models/w_")==0)
                        {
                            format(new_w_models[w_modelsnum],47,right)
                            format(old_w_models[w_modelsnum],47,left)
                            w_models_team[w_modelsnum]=team
                            w_modelsnum++
                        }
                        else
                        {
                            log_amx("Model type(p_ / v_ / w_) unknown for model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                    }
                    else if(containi(right,".wav")==strlen(right)-4 || containi(right,".mp3")==strlen(right)-4)
                    {
                        replace(right,47,"sound/","")
                        replace(left,47,"sound/","")
                        if(!precache_sound(right))
                        {
                            log_amx("Error attempting to precache sound: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                        }
                        else
                        {
                            format(new_sounds[soundsnum],47,right)
                            format(old_sounds[soundsnum],47,left)
                            sounds_team[soundsnum]=team
                            soundsnum++
                        }
                    }
                    else
                    {
                        log_amx("Invalid File: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                    }
                }
                else
                {
                    log_amx("File Inexistent: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
                }
                if(!file_exists(left))
                {
                    log_amx("Warning: File Inexistent: ^"%s^" (Line %d of new_weapons.ini). ONLY A WARNING. PLUGIN WILL STILL WORK!!!!",left,i+1)
                }
            }
        }
    }
}

public Changeweapon_Hook(id)
{
    if(!is_user_alive(id))
    {
        return PLUGIN_CONTINUE
    }
    static model[32], i, team

    team = get_user_team(id)

    pev(id,pev_viewmodel2,model,31)
    for(i=0;i<v_modelsnum;i++)
    {
        if(equali(model,old_v_models[i]))
        {
            if(v_models_team[i]==team || !v_models_team[i])
            {
                set_pev(id,pev_viewmodel2,new_v_models[i])
                break;
            }
        }
    }

    pev(id,pev_weaponmodel2,model,31)
    for(i=0;i<p_modelsnum;i++)
    {
        if(equali(model,old_p_models[i]))
        {
            if(p_models_team[i]==team || !p_models_team[i])
            {
                set_pev(id,pev_weaponmodel2,new_p_models[i])
                break;
            }
        }
    }
    return PLUGIN_CONTINUE
}

public Sound_Hook(id,channel,sample[])
{
    if(!is_user_alive(id))
    {
        return FMRES_IGNORED
    }
    if(channel!=CHAN_WEAPON && channel!=CHAN_ITEM)
    {
        return FMRES_IGNORED
    }

    static i, team

    team = get_user_team(id)

    for(i=0;i<soundsnum;i++)
    {
        if(equali(sample,old_sounds[i]))
        {
            if(sounds_team[i]==team || !sounds_team[i])
            {
                engfunc(EngFunc_EmitSound,id,CHAN_WEAPON,new_sounds[i],1.0,ATTN_NORM,0,PITCH_NORM)
                return FMRES_SUPERCEDE
            }
        }
    }
    return FMRES_IGNORED
}

public W_Model_Hook(ent,model[])
{
    if(!pev_valid(ent))
    {
        return FMRES_IGNORED
    }
    static i
    for(i=0;i<w_modelsnum;i++)
    {
        if(equali(model,old_w_models[i]))
        {
            engfunc(EngFunc_SetModel,ent,new_w_models[i])
            return FMRES_SUPERCEDE
        }
    }
    return FMRES_IGNORED
}

public newround()
{
    static ent, classname[8], model[32]
    ent = engfunc(EngFunc_FindEntityInSphere,maxplayers,Float:{0.0,0.0,0.0},4800.0)
    while(ent)
    {
        pev(ent,pev_classname,classname,7)
        if(containi(classname,"armoury")!=-1)
        {
            pev(ent,pev_model,model,31)
            W_Model_Hook(ent,model)
        }
        ent = engfunc(EngFunc_FindEntityInSphere,ent,Float:{0.0,0.0,0.0},4800.0)
    }
}

Вот установите и все - Ссылка

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


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Цитата(rGame @ 19.4.2015, 1:27) *
Вот установите и все - Ссылка

Очень жаль, но нож не тот который хотелось бы...
Поставил свою модель ножа, всё равно без изменений. Нож Вашей модификации, похож на за ногу краба.


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rGame
сообщение 19.4.2015, 0:43
Сообщение #6
Стаж: 12 лет

Сообщений: 390
Благодарностей: 629
Полезность: 1016

Цитата(Starui @ 19.4.2015, 0:36) *
Очень жаль, но нож не тот который хотелось бы...
Поставил свою модель ножа, всё равно без изменений. Нож Вашей модификации, похож на за ногу краба.

Я использовал вашу модель, которую вы прикрепили.
Скрытый текст
Помог чем смог. dntknw.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 19.4.2015, 1:03
Сообщение #7
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

Поставь этот плагин, и заменяй всё что тебе надо. Модельки, твои, будут только у тебя на сервере, вот и всё. Игроку надо будет только их скачать, стандартные не заменяет. [ New Weapons ]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 19.4.2015, 1:11
Сообщение #8


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Проблему решил самостоятельно. Нож показывается исправно.
Шапку темы обновлю!


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
airat0708
сообщение 19.4.2015, 1:15
Сообщение #9
Стаж: 14 лет

Сообщений: 119
Благодарностей: 31
Полезность: 240

Цитата(Starui @ 19.4.2015, 4:11) *
Проблему решил самостоятельно. Нож показывается исправно.
Шапку темы обновлю!

а можно модель ножа только без рекламы. а то на скрине реклама потертая
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Starui
сообщение 19.4.2015, 1:22
Сообщение #10


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Цитата(airat0708 @ 19.4.2015, 2:15) *
а можно модель ножа только без рекламы. а то на скрине реклама потертая

В игре рекламы нет. Чужие ресурсы, как и сторонние ресурсы, не рекламирую!
Можете качать, и наслаждаться!


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 19.4.2015, 1:28
Сообщение #11
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Код:
#include <amxmodx>
#include <engine>
#include <hamsandwich>

#define export public
#define PluginPrecache plugin_precache
#define PluginInit plugin_init
#define PrecacheModel precache_model
#define DeclarePrivateOffset(%0,%1,%2) const %0 = %1; \
const %0_diff = %2
#define GetPrivateCBase(%0,%1) get_pdata_cbase(%0, %1, %1_diff)
#define SetEntityViewModel(%0,%1) entity_set_string(%0, EV_SZ_viewmodel, %1)
#define SetEntityWeaponModel(%0,%1) entity_set_string(%0, EV_SZ_weaponmodel, %1)

DeclarePrivateOffset(m_pPlayer, 41, 4);

new const g_szKnifeViewModel[] = "models/v_knife_other.mdl";
new const g_szKnifePlayerModel[] = "models/p_knife_other.mdl";

export PluginPrecache() {
PrecacheModel(g_szKnifeViewModel);
PrecacheModel(g_szKnifePlayerModel);
}

export PluginInit() {
RegisterHam(Ham_Item_Deploy, "weapon_knife", "KnifeDeployPost", true);
}

export KnifeDeployPost(const nThisIndex) {
new nPlayerIndex = GetPrivateCBase(nThisIndex, m_pPlayer);

SetEntityViewModel(nPlayerIndex, g_szKnifeViewModel);
SetEntityWeaponModel(nPlayerIndex, g_szKnifePlayerModel);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Starui
сообщение 19.4.2015, 1:37
Сообщение #12


Стаж: 11 лет

Сообщений: 202
Благодарностей: 28
Полезность: 23

Цитата([WPMG]PRoSToTeM@ @ 19.4.2015, 2:28) *

Код
Код:
#include <amxmodx>
#include <engine>
#include <hamsandwich>

#define export public
#define PluginPrecache plugin_precache
#define PluginInit plugin_init
#define PrecacheModel precache_model
#define DeclarePrivateOffset(%0,%1,%2) const %0 = %1; \
const %0_diff = %2
#define GetPrivateCBase(%0,%1) get_pdata_cbase(%0, %1, %1_diff)
#define SetEntityViewModel(%0,%1) entity_set_string(%0, EV_SZ_viewmodel, %1)
#define SetEntityWeaponModel(%0,%1) entity_set_string(%0, EV_SZ_weaponmodel, %1)

DeclarePrivateOffset(m_pPlayer, 41, 4);

new const g_szKnifeViewModel[] = "models/v_knife_other.mdl";
new const g_szKnifePlayerModel[] = "models/p_knife_other.mdl";

export PluginPrecache() {
PrecacheModel(g_szKnifeViewModel);
PrecacheModel(g_szKnifePlayerModel);
}

export PluginInit() {
RegisterHam(Ham_Item_Deploy, "weapon_knife", "KnifeDeployPost", true);
}

export KnifeDeployPost(const nThisIndex) {
new nPlayerIndex = GetPrivateCBase(nThisIndex, m_pPlayer);

SetEntityViewModel(nPlayerIndex, g_szKnifeViewModel);
SetEntityWeaponModel(nPlayerIndex, g_szKnifePlayerModel);
}

Я так понимаю будет правильней....
Код
new const g_szKnifeViewModel[] = "models/v_knife.mdl"; //стандартная серверная модель
new const g_szKnifePlayerModel[] = "models/new/p_knife.mdl"; // модель заменяемая плагином

У меня не получилось ((

В целом, достаточно и того что в шапке. Тема закрыта =)

Отредактировал: Starui, - 19.4.2015, 1:45


Сделал сам, помоги другому.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 19.4.2015, 1:48
Сообщение #13
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Starui, вам достаточно было назвать соответствующие модели предложенными именами или задать свои. А еще для порядка я бы рекомендовал не кидать такие модели в общую кучу, а разделять их например:

Код:
new const g_szKnifeViewModel[] = "models/misc/v_knife_other.mdl";
new const g_szKnifePlayerModel[] = "models/misc/p_knife_other.mdl";
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 19.4.2015, 2:02
Сообщение #14
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Radius, ещё лучше отдельную папку/суффикс идентифицирующий сервер (например, название сервера).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 19.4.2015, 2:14
Сообщение #15
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

[WPMG]PRoSToTeM@, у меня так и сделано, когда моделей много, разбираться потом легче и владельцу и игроку, если вдруг он захочет почистить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default1k
сообщение 19.4.2015, 17:04
Сообщение #16
Стаж: 12 лет

Сообщений: 718
Благодарностей: 180
Полезность: 153

[WPMG]PRoSToTeM@, какую модель надо отключить, чтобы модель ножа с лентой было видно только от 1 лица? А вид со стороны был обычным
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 19.4.2015, 17:05
Сообщение #17
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

default1k, закомментируй 3 строки:
Код:
new const g_szKnifePlayerModel[] = "models/p_knife_other.mdl";
PrecacheModel(g_szKnifePlayerModel);
SetEntityWeaponModel(nPlayerIndex, g_szKnifePlayerModel);


Отредактировал: [WPMG]PRoSToTeM@, - 19.4.2015, 17:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default1k
сообщение 19.4.2015, 17:17
Сообщение #18
Стаж: 12 лет

Сообщений: 718
Благодарностей: 180
Полезность: 153

[WPMG]PRoSToTeM@, Спасибо, а то p модель не корректно отображается.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: