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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

winter environment

, просьба поправить исходник
Статус пользователя umbserver
сообщение 28.10.2013, 10:10
Сообщение #1
Стаж: 12 лет

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

пример плагина _http://forums.alliedmods.net/showthread.php?p=712717
Просьба помочь поправить так ,что бы было :
1)Звуков вообще нету от плагина , никаких
2)Снег идет у всех без исключения изначально , но при этом есть опция отключения , которая вызывается путём написания в чат /snow

sma

Код
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Winter Environment"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define STEP_DELAY 0.5

new const g_szBombModels[][] = {
    
    "models/ch-m/c4-christmastree2.mdl",
    "models/ch-m/c4-christmastree.mdl",
    "models/ch-m/frost_man.mdl",
    "models/ch-m/present1.mdl"
};
new const g_szBombSounds[][] = {
    
    "ch-s/bmb_planted.wav",
    "ch-s/bmb_defused.wav",
    "ch-s/bmb_defuse_failure.wav"
};
new const g_szStepSound[][] = {
    
    "player/pl_snow1.wav",
    "player/pl_snow2.wav",
    "player/pl_snow3.wav",
    "player/pl_snow4.wav",
    "player/pl_snow5.wav",
    "player/pl_snow6.wav"
};
new g_iLedSprite;

new Float:g_fNextStep[33];

public plugin_init() {
    
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_forward(FM_SetModel, "fwd_SetModel", 1);
    register_forward(FM_PlayerPreThink, "fwd_PlayerPreThink", 0);
    
    register_logevent("logevent_BombPlanted", 3, "2=Planted_The_Bomb");
    register_logevent("logevent_BombDefused", 3, "2=Defused_The_Bomb");
    register_logevent("logevent_BombExploded", 6, "3=Target_Bombed");
    
    register_message(SVC_TEMPENTITY, "message_TempEntity");
}

public plugin_precache()
{
    engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow"));
    
    new i;
    for(i = 0; i < sizeof g_szBombModels; i++)
        precache_model(g_szBombModels[i]);
    for(i = 0; i < sizeof g_szBombSounds; i++)
        precache_sound(g_szBombSounds[i]);
    for(i = 0; i < sizeof g_szStepSound; i++)
        precache_sound(g_szStepSound[i]);
    
    g_iLedSprite = precache_model("sprites/ledglow.spr");
}

public fwd_SetModel(ent, const szModel[])
{
    if(!pev_valid(ent))
        return FMRES_IGNORED;
    
    if(equal(szModel, "models/w_c4.mdl"))
    {
        static iRndModel; iRndModel = random_num(0, sizeof g_szBombModels - 1);
        engfunc(EngFunc_SetModel, ent, g_szBombModels[iRndModel]);
        
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}

public fwd_PlayerPreThink(id)
{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
    
    static Float:fGmTime; fGmTime = get_gametime();
    if(g_fNextStep[id] < fGmTime)
    {
        if(fm_get_user_speed(id) && (pev(id, pev_flags) & FL_ONGROUND) && is_user_outside(id))
        {
            set_pev(id, pev_flTimeStepSound, 999);
            engfunc(EngFunc_EmitSound, id, CHAN_AUTO, g_szStepSound[random_num(0, sizeof g_szStepSound - 1)], 0.5, ATTN_NORM, 0, PITCH_NORM);
            
            g_fNextStep[id] = fGmTime + STEP_DELAY;
        }
    }
    return FMRES_IGNORED;
}

public logevent_BombPlanted()
{
    emit_sound(0, CHAN_AUTO, g_szBombSounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

public logevent_BombDefused()
{
    client_cmd(0, "wait;stopsound");
    emit_sound(0, CHAN_AUTO, g_szBombSounds[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

public logevent_BombExploded()
{
    emit_sound(0, CHAN_AUTO, g_szBombSounds[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

public message_TempEntity(msg_id, msg_dest, msg_ent)
{
    if(get_msg_arg_int(1) == TE_GLOWSPRITE)
    {
        if(get_msg_arg_int(5) == g_iLedSprite)
            return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

stock Float:is_user_outside(id)
{
    new Float:vOrigin[3], Float:fDist;
    pev(id, pev_origin, vOrigin);
    
    fDist = vOrigin[2];
    
    while(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_EMPTY)
        vOrigin[2] += 5.0;
    
    if(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_SKY)
        return (vOrigin[2] - fDist);
    
    return 0.0;
}

stock Float:fm_get_user_speed(id)
{
    if(!is_user_connected(id))
        return 0.0;
    
    static Float:fVelocity[3];
    pev(id, pev_velocity, fVelocity);
    
    fVelocity[2] = 0.0;
    
    return vector_length(fVelocity);
}



Отредактировал: umbserver, - 28.10.2013, 10:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя winzh1
сообщение 28.10.2013, 10:35
Сообщение #2


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Проверяйте
Код:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Winter Environment"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define STEP_DELAY 0.5

new const g_szBombModels[][] = {

"models/ch-m/c4-christmastree2.mdl",
"models/ch-m/c4-christmastree.mdl",
"models/ch-m/frost_man.mdl",
"models/ch-m/present1.mdl"
};

new g_iLedSprite;

new Float:g_fNextStep[33];

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say /snow", "clcmd_snowoff")
register_forward(FM_SetModel, "fwd_SetModel", 1);
register_forward(FM_PlayerPreThink, "fwd_PlayerPreThink", 0);

register_message(SVC_TEMPENTITY, "message_TempEntity");
}

public plugin_precache()
{
engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow"));

new i;
for(i = 0; i < sizeof g_szBombModels; i++)
precache_model(g_szBombModels[i]);

g_iLedSprite = precache_model("sprites/ledglow.spr");
}

public client_putinserver(id)
{
client_cmd(id, "cl_weather 3")
}

public clcmd_snowoff(id)
{
client_cmd(id, "cl_weather 0")
}

public fwd_SetModel(ent, const szModel[])
{
if(!pev_valid(ent))
return FMRES_IGNORED;

if(equal(szModel, "models/w_c4.mdl"))
{
static iRndModel; iRndModel = random_num(0, sizeof g_szBombModels - 1);
engfunc(EngFunc_SetModel, ent, g_szBombModels[iRndModel]);

return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}

public fwd_PlayerPreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED;

static Float:fGmTime; fGmTime = get_gametime();
if(g_fNextStep[id] < fGmTime)
{
if(fm_get_user_speed(id) && (pev(id, pev_flags) & FL_ONGROUND) && is_user_outside(id))
{
g_fNextStep[id] = fGmTime + STEP_DELAY;
}
}
return FMRES_IGNORED;
}

public message_TempEntity(msg_id, msg_dest, msg_ent)
{
if(get_msg_arg_int(1) == TE_GLOWSPRITE)
{
if(get_msg_arg_int(5) == g_iLedSprite)
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

stock Float:is_user_outside(id)
{
new Float:vOrigin[3], Float:fDist;
pev(id, pev_origin, vOrigin);

fDist = vOrigin[2];

while(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_EMPTY)
vOrigin[2] += 5.0;

if(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_SKY)
return (vOrigin[2] - fDist);

return 0.0;
}

stock Float:fm_get_user_speed(id)
{
if(!is_user_connected(id))
return 0.0;

static Float:fVelocity[3];
pev(id, pev_velocity, fVelocity);

fVelocity[2] = 0.0;

return vector_length(fVelocity);
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя darko19
сообщение 28.10.2013, 10:53
Сообщение #3


Стаж: 14 лет

Сообщений: 80
Благодарностей: 5
Полезность: 46

Рановато еще снег ставить:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 28.10.2013, 11:19
Сообщение #4
Стаж: 12 лет

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

w1nzh , а можно сделать так , что бы cl_weather включался у всех , при заходе на сервер - автоматом ?
а так всё работает. спасибо большое.
еще есть ошибка L 10/28/2013 - 10:43:38: Function "logevent_BombPlanted" was not found - можно убрать её как-то ?


Цитата(darko19 @ 28.10.2013, 11:53) *
Рановато еще снег ставить:)

Ноябрь на носу psych.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 28.10.2013, 11:25
Сообщение #5


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(umbserver @ 28.10.2013, 16:19) *
w1nzh , а можно сделать так , что бы cl_weather включался у всех , при заходе на сервер - автоматом ?
а так всё работает. спасибо большое.
еще есть ошибка L 10/28/2013 - 10:43:38: Function "logevent_BombPlanted" was not found - можно убрать её как-то ?

Ошибку исправил, предыдущий пост обновил.
Снег при заходе должен работать, при входе игроку посылается команда cl_weather 3
Немного изменил отправляемые команды, проверьте сейчас.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Shur1k_ua
сообщение 28.10.2013, 12:05
Сообщение #6


Иконка группы

Стаж: 14 лет
Город: Ровно

Сообщений: 1817
Благодарностей: 919
Полезность: 1233

Цитата(darko19 @ 28.10.2013, 10:53) *
Рановато еще снег ставить:)

у меня уже полтора года падает =)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 28.10.2013, 12:15
Сообщение #7
Стаж: 12 лет

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

Цитата(winzh1 @ 28.10.2013, 12:25) *
Ошибку исправил, предыдущий пост обновил.
Снег при заходе должен работать, при входе игроку посылается команда cl_weather 3
Немного изменил отправляемые команды, проверьте сейчас.

ошибка пропала ,спасибо

сейчас если стоит изначально cl_weather 0 - при заходе на сервер снег не работает ( cl_weather 0 остается)
на config.cfg нету атрибута "только для чтения"
пробовал со стима и с нонстима

Отредактировал: umbserver, - 28.10.2013, 12:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 28.10.2013, 17:58
Сообщение #8
Стаж: 12 лет

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

Так же просьба сделать включение снега , допустим сейчас есть /snow - он тупо отключает .
Можно ли сделать так, что бы следующая команда /snow опять его включала ?
Если нет - тогда две команды , /snowON , /snowOFF
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 29.10.2013, 14:15
Сообщение #9


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(umbserver @ 28.10.2013, 22:58) *
Так же просьба сделать включение снега , допустим сейчас есть /snow - он тупо отключает .
Можно ли сделать так, что бы следующая команда /snow опять его включала ?
Если нет - тогда две команды , /snowON , /snowOFF

Код:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Winter Environment"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define STEP_DELAY 0.5

new const g_szBombModels[][] = {

"models/ch-m/c4-christmastree2.mdl",
"models/ch-m/c4-christmastree.mdl",
"models/ch-m/frost_man.mdl",
"models/ch-m/present1.mdl"
};

new g_iLedSprite;

new Float:g_fNextStep[33];

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say /snowoff", "clcmd_snowoff")
register_clcmd("say /snowon", "clcmd_snowon")
register_forward(FM_SetModel, "fwd_SetModel", 1);
register_forward(FM_PlayerPreThink, "fwd_PlayerPreThink", 0);

register_message(SVC_TEMPENTITY, "message_TempEntity");
}

public plugin_precache()
{
engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow"));

new i;
for(i = 0; i < sizeof g_szBombModels; i++)
precache_model(g_szBombModels[i]);

g_iLedSprite = precache_model("sprites/ledglow.spr");
}

public client_putinserver(id)
{
client_cmd(id, "cl_weather 3")
}

public clcmd_snowoff(id)
{
client_cmd(id, "cl_weather 0")
}

public clcmd_snowon(id)
{
client_cmd(id, "cl_weather 3")
}

public fwd_SetModel(ent, const szModel[])
{
if(!pev_valid(ent))
return FMRES_IGNORED;

if(equal(szModel, "models/w_c4.mdl"))
{
static iRndModel; iRndModel = random_num(0, sizeof g_szBombModels - 1);
engfunc(EngFunc_SetModel, ent, g_szBombModels[iRndModel]);

return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}

public fwd_PlayerPreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED;

static Float:fGmTime; fGmTime = get_gametime();
if(g_fNextStep[id] < fGmTime)
{
if(fm_get_user_speed(id) && (pev(id, pev_flags) & FL_ONGROUND) && is_user_outside(id))
{
g_fNextStep[id] = fGmTime + STEP_DELAY;
}
}
return FMRES_IGNORED;
}

public message_TempEntity(msg_id, msg_dest, msg_ent)
{
if(get_msg_arg_int(1) == TE_GLOWSPRITE)
{
if(get_msg_arg_int(5) == g_iLedSprite)
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

stock Float:is_user_outside(id)
{
new Float:vOrigin[3], Float:fDist;
pev(id, pev_origin, vOrigin);

fDist = vOrigin[2];

while(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_EMPTY)
vOrigin[2] += 5.0;

if(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_SKY)
return (vOrigin[2] - fDist);

return 0.0;
}

stock Float:fm_get_user_speed(id)
{
if(!is_user_connected(id))
return 0.0;

static Float:fVelocity[3];
pev(id, pev_velocity, fVelocity);

fVelocity[2] = 0.0;

return vector_length(fVelocity);
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 29.10.2013, 15:19
Сообщение #10
Стаж: 12 лет

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

/snow on/off работает , спасибо !
Но cl_weather 0 не меняется на 3 при входе на сервере.
Проверено как на стиме , так и на нонстиме
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 29.10.2013, 15:19
Сообщение #11
Стаж: 12 лет

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

/doublepost

Отредактировал: umbserver, - 29.10.2013, 15:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 29.10.2013, 15:25
Сообщение #12


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(umbserver @ 29.10.2013, 17:19) *
/snow on/off работает , спасибо !
Но cl_weather 0 не меняется на 3 при входе на сервере.
Проверено как на стиме , так и на нонстиме

не может быть такого)
код одинаковый
попробуй так

Код
public client_putinserver(id)
{
        client_cmd(id, "cl_weather 3")
}


на

Код
public client_putinserver(id)
{
    set_task(10.0, "clcmd_snowon",id);
}



а вот это

Код
public clcmd_snowon(id)
{
    client_cmd(id, "cl_weather 3")
}

на
Код
public clcmd_snowon(id)
{
    if(is_user_connected(id))
        client_cmd(id, "cl_weather 3")
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя umbserver
сообщение 29.10.2013, 15:59
Сообщение #13
Стаж: 12 лет

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

Цитата(Legenda @ 29.10.2013, 17:25) *
не может быть такого)
код одинаковый

ну он изначально не менялся , с первой версии кода.
сейчас попробую твою версию

update : работает,спасибо!

Отредактировал: umbserver, - 29.10.2013, 17:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Alexan23
сообщение 1.12.2013, 9:51
Сообщение #14


Стаж: 14 лет
Город: Рязань

Сообщений: 1404
Благодарностей: 624
Полезность: 803

Цитата(winzh1 @ 29.10.2013, 15:15) *
Код:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Winter Environment"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define STEP_DELAY 0.5

new const g_szBombModels[][] = {

"models/ch-m/c4-christmastree2.mdl",
"models/ch-m/c4-christmastree.mdl",
"models/ch-m/frost_man.mdl",
"models/ch-m/present1.mdl"
};

new g_iLedSprite;

new Float:g_fNextStep[33];

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say /snowoff", "clcmd_snowoff")
register_clcmd("say /snowon", "clcmd_snowon")
register_forward(FM_SetModel, "fwd_SetModel", 1);
register_forward(FM_PlayerPreThink, "fwd_PlayerPreThink", 0);

register_message(SVC_TEMPENTITY, "message_TempEntity");
}

public plugin_precache()
{
engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow"));

new i;
for(i = 0; i < sizeof g_szBombModels; i++)
precache_model(g_szBombModels[i]);

g_iLedSprite = precache_model("sprites/ledglow.spr");
}

public client_putinserver(id)
{
client_cmd(id, "cl_weather 3")
}

public clcmd_snowoff(id)
{
client_cmd(id, "cl_weather 0")
}

public clcmd_snowon(id)
{
client_cmd(id, "cl_weather 3")
}

public fwd_SetModel(ent, const szModel[])
{
if(!pev_valid(ent))
return FMRES_IGNORED;

if(equal(szModel, "models/w_c4.mdl"))
{
static iRndModel; iRndModel = random_num(0, sizeof g_szBombModels - 1);
engfunc(EngFunc_SetModel, ent, g_szBombModels[iRndModel]);

return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}

public fwd_PlayerPreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED;

static Float:fGmTime; fGmTime = get_gametime();
if(g_fNextStep[id] < fGmTime)
{
if(fm_get_user_speed(id) && (pev(id, pev_flags) & FL_ONGROUND) && is_user_outside(id))
{
g_fNextStep[id] = fGmTime + STEP_DELAY;
}
}
return FMRES_IGNORED;
}

public message_TempEntity(msg_id, msg_dest, msg_ent)
{
if(get_msg_arg_int(1) == TE_GLOWSPRITE)
{
if(get_msg_arg_int(5) == g_iLedSprite)
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

stock Float:is_user_outside(id)
{
new Float:vOrigin[3], Float:fDist;
pev(id, pev_origin, vOrigin);

fDist = vOrigin[2];

while(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_EMPTY)
vOrigin[2] += 5.0;

if(engfunc(EngFunc_PointContents, vOrigin) == CONTENTS_SKY)
return (vOrigin[2] - fDist);

return 0.0;
}

stock Float:fm_get_user_speed(id)
{
if(!is_user_connected(id))
return 0.0;

static Float:fVelocity[3];
pev(id, pev_velocity, fVelocity);

fVelocity[2] = 0.0;

return vector_length(fVelocity);
}


Проблема решена.

Отредактировал: Alexan23, - 1.12.2013, 12:15


Антискука xD [WoRlD] ® 2010-2017
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: