Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Не реагирует на команду
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
Код
new g_cash[32]

Зарегистрировал  натив
 
Код
register_native( "get_war3ft_cash", "native_get_war3ft_cash", 1 )    
    register_native( "set_war3ft_cash", "native_set_war3ft_cash", 1 )

Добавил начальное значение в client_connect(главный плагин cssb)
Код
g_cash [id]= 5;

Зарегистрировал команду для вывода
Код
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, Переменную можно опустить.

Код
public casht(id)

Код
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

Код
new g_BP[32]

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пасибо, все заработало, вы мне помогли, и я нашел свою ошибочку. smile
Можете еще глянуть мою одну тему?
http://perfect-soft.su/forum/56-2279-1
 
  • Страница 1 из 1
  • 1
Поиск: