Не реагирует на команду
|
|
Moder | Дата: Понедельник, 30.12.2013, 14:55 | Сообщение # 1 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Добрый день, делаю новую валюту для сервера, сделал вроде все как положено, но по каким-то странным причинам она не работает. Создал файл newcash.h Код native get_war3ft_cash(id); native set_war3ft_cash(id, amount);
Файл newcash.inl Код public native_get_war3ft_cash(id) { return g_cash[id]; } public native_set_war3ft_cash(id, amount) { g_cash [id]= amount; }
Добавил .h и .inl в инклюд.
Создал константу в constant.inl Зарегистрировал натив Код register_native( "get_war3ft_cash", "native_get_war3ft_cash", 1 ) register_native( "set_war3ft_cash", "native_set_war3ft_cash", 1 ) Добавил начальное значение в client_connect(главный плагин cssb) Зарегистрировал команду для вывода Код register_clcmd( "/cash" , "cash");
Пытаюсь вывести в clientcommand.inl Код public casht(id) { set_dhudmessage(random_num(1,255), random_num(1,255), random_num(1,255), -1.0, 0.0, 1, 10.0, 10.0) show_dhudmessage(id,"^n ^n ^n YOU %d BLOOD_POINTS",get_war3ft_cash(id)) }
0 внимания, в чем может быть проблема?
|
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 15:26 | Сообщение # 2 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder, Связь какая переменной g_cash в файле newcash.inl и в constant.inl ?
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 15:30 | Сообщение # 3 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Не множко не понял, если честно
|
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 15:49 | Сообщение # 4 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder, Переменную можно опустить.
Код register_clcmd( "/cash" , "cash");
Вот тут и ошибочка: casht отличается от cash
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 15:52 | Сообщение # 5 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Это моя опечатка, в исходниках все в порядке
|
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 16:02 | Сообщение # 6 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder, new g_cash[32] объявлена так понимаю в плагине где натив регается. И в плагине объявил new g_cash[32] который вызывает. Так?
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 16:04 | Сообщение # 7 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Нет, g_cash объявлена была только в constant.inl
|
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 16:07 | Сообщение # 8 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder, Подробнее нужно что где регается и вызывается. Так-то по коду все норм.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 16:11 | Сообщение # 9 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
SMaster, глянь сюда пожалуйста, KinD писал, я делал по его принципу, но не работает. http://perfect-soft.su/forum/17-846-1#6173
Сообщение отредактировал Moder - Понедельник, 30.12.2013, 16:12 |
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 16:19 | Сообщение # 10 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder, выложи файлы что и где выполняется. Если код секретный можешь почистить и оставить только главное,чтобы понять можно было. А так гадать не вижу смысла.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 16:31 | Сообщение # 11 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Constants.inl War3ft_blood_points.inl Код public native_get_war3ft_blood_points(id) { return g_BP[id]; } public native_set_war3ft_blood_points(id, amount) { g_BP [id]= amount; }
war3ft_blood_points.h Код native get_war3ft_blood_points(id); native set_war3ft_blood_points(id, amount);
cssbwar3ftmod.sma Код #include "war3ft/war3ft_blood_points.h" #include "war3ft/war3ft_blood_points.inl"
Код public plugin_natives() { WC3_DetermineGame();
set_module_filter( "module_filter" ); set_native_filter( "native_filter" ); set_error_filter( "error_filter" );
register_native("cssb_get_user_race", "native_get_user_race", 1); register_native("cssb_get_user_race_name", "native_get_user_race_name", 1); register_native("get_war3ft_blood_points", "native_get_war3ft_blood_points", 1 ); register_native("set_war3ft_blood_points", "native_set_war3ft_blood_points", 1 ); }
Код public client_connect( id ) { if ( !WC3_Check() ) { return; }
// Initialize this player WC3_PlayerInit( id );
client_cmd( id, "hud_centerid 0" );
p_data[id][P_RESPAWNBY] = 0; p_data[id][P_SPECMODE] = 0;
p_data_b[id][PB_ISBURNING] = false; p_data_b[id][PB_JUSTJOINED] = true; p_data_b[id][PB_CAN_RENDER] = true; p_data_b[id][PB_HAS_SPAWNED] = false; p_data_b[id][PB_SKINSWITCHED] = false;
// User should have no items on connect... g_iShopMenuItems[id][0] = -1; g_iShopMenuItems[id][1] = -1;
g_BP [id]= 10;
// Automatically set their XP if it's enabled if ( get_pcvar_num( CVAR_wc3_xp_auto_average ) && !get_pcvar_num( CVAR_wc3_save_xp ) ) { new iTotalXP; new iNum, i; for( i = 1; i <= MAXPLAYERS; i++ ) { if ( p_data[i][P_XP] > 0 ) { iNum++; iTotalXP += p_data[P_XP]; } } if ( iNum > 0 && iTotalXP > 0 ) { p_data[id][P_XP] = iTotalXP/iNum; } }
if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO ) { p_data[id][P_HECOUNT] = 0; p_data[id][P_FLASHCOUNT] = 0; }
// Reset the "cheat" variables new j; for ( j = 0; j < MAX_RACES; j++ ) g_bGivenLevel10 [id][j]= false;
return; } ClientsCommand.inl Код public blood_point(id) { set_dhudmessage(random_num(1,255), random_num(1,255), random_num(1,255), -1.0, 0.0, 1, 10.0, 10.0) show_dhudmessage(id,"^n ^n ^n YOU %d BLOOD_POINTS",get_war3ft_blood_points(id)) }
Сообщение отредактировал Moder - Понедельник, 30.12.2013, 16:35 |
|
| |
SMaster | Дата: Понедельник, 30.12.2013, 16:42 | Сообщение # 12 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Moder,
В сма варика добавь нормальную команду если в нем тестишь, а еще проще свой код вставь в любую существующую. Код register_clcmd( "blood_point" , "CMD_Handler" , -1 );
В ClientsCommand.inl Код else if ( CMD_Equal( id, szCmd, "blood_point" ) ) { set_dhudmessage(random_num(1,255), random_num(1,255), random_num(1,255), -1.0, 0.0, 1, 10.0, 10.0) show_dhudmessage(id,"^n ^n ^n YOU %d BLOOD_POINTS",get_war3ft_blood_points(id)) }
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
Moder | Дата: Понедельник, 30.12.2013, 16:55 | Сообщение # 13 |
- Сообщения: 37
- Награды: 0
- Замечания:
|
Cпасибо, все заработало, вы мне помогли, и я нашел свою ошибочку. Можете еще глянуть мою одну тему? http://perfect-soft.su/forum/56-2279-1
|
|
| |