Русское сообщество по скриптингу

Hi, Custom Crosshair

Scripting help for english speaking users. While not very active, you still have a chance to get help here.
Правила форума
We cannot maintain english version version of our forum rules, but shortly (it's simple) - Don't be a dick. If you really want to know our rules you should check appropriate thread.

Hi, Custom Crosshair

Сообщение batu07040 » 08 авг 2017, 02:10

Код: Выделить всё
#include <amxmodx>
#include <cstrike>

/*

Kodlayan : F O R ; Batu07040


*/

#define HUD_HIDE_CROSS (1<<6)
#define HUD_DRAW_CROSS (1<<7)

new crosshair_gizle[64];

new 
iMsgCrosshairg_msgHideWeapon;
new 
csgo_aktif;

public 
plugin_precache()
{
    
precache_generic("sprites/csgocrosshair.txt");
    
precache_generic("sprites/csgo_crosshair_32.spr");
    
precache_generic("sprites/csgo_crosshair_64.spr");
    
}


public 
plugin_init()
{

    
register_clcmd("say /crosshair""cros_stat");
    
register_event("CurWeapon""Event_CurWeapon""be""1=1");
    
csgo_aktif register_cvar("csgo_aktif""1");
    
iMsgCrosshair get_user_msgid("Crosshair");
    
g_msgHideWeapon get_user_msgid("HideWeapon");
    

}






public 
client_putinserver(id)
{
    
    
    
crosshair_gizle[id] = 0

    
    
}



public 
Event_CurWeapon(id)
{
    
    new 
cvar;
    
cvar get_pcvar_num(csgo_aktif);
    
    if ( 
cvar >= )
    {
        
        if ( 
crosshair_gizle[id] == // Kapatır
        
{
            
            
Hide_NormalCrosshair(id0)
            
show_crosshair(id0)
            
            
        }
        if ( 
crosshair_gizle[id] == // Açar
        
{
            
            
Hide_NormalCrosshair(id1)
            
show_crosshair(id1)    
            
        }
    }
    else
    {
        
    }
    
    
}





public 
cros_stat(id)
{
    
    if(
is_user_alive(id))
    {
        
        new 
Menu menu_create("Crosshair Secenekleri","cros_devam")
        
        if(
crosshair_gizle[id] == 0)
        {
            
            
menu_additem(Menu,"CSGO Gorunumunu Kapat","1")
            
        }
        else if(
crosshair_gizle[id] == 1)
        {
            
            
menu_additem(Menu,"CSGO Gorunumunu Ac","2")
            
        }
        
        
menu_setprop(MenuMPROP_EXITMEXIT_ALL);
        
menu_display(idMenu0);
        
    }
    
}

public 
cros_devam (idmenuitem)
{
    
    new 
access,callback,data[6],iname[64]
    
    
menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
    
    new 
key str_to_num(data)
    
    switch(
key)
    {
        case 
1:
        {
            
crosshair_gizle[id] = 1
            client_cmd
(id"+attack")
            
set_task(0.1"dur"id)
        }
        case 
2:
        {
            
crosshair_gizle[id] = 0
            client_cmd
(id"+attack")
            
set_task(0.1"dur"id)
        }
    }
}

public 
dur(id)
    
{

client_cmd(id"-attack")

}

stock Hide_NormalCrosshair(idflag)
{
if(
flag == 1)
{
    
message_begin(MSG_ONEg_msgHideWeapon_id);
    
write_byte(HUD_HIDE_CROSS);
    
message_end();
}
else
{
    
message_begin(MSG_ONEg_msgHideWeapon_id);
    
write_byte(HUD_DRAW_CROSS);
    
message_end();
}
}

stock show_crosshair(idflag)
{
message_begin(MSG_ALLiMsgCrosshair_id); // MSG_ALL ile Crosshair Tekleme Sorununu Giderdim.
write_byte(flag);
message_end();
}
 


Not working cannot read the file csgocrosshair.txt

csgocrosshair.txt =

Код: Выделить всё


3
crosshair      320 crosshairs      24   0   24   24
crosshair      640 csgo_crosshair_32   0   0   32   32
crosshair      640 csgo_crosshair_64   0   0   32   32

Последний раз редактировалось batu07040 08 авг 2017, 19:42, всего редактировалось 1 раз.
Аватара пользователя
batu07040
 
Сообщения: 5
Зарегистрирован: 08 авг 2017, 02:04
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Hi, Custom Crosshair

Сообщение артист666 » 08 авг 2017, 18:33

Very clear description of the problem.
Particularly pleasing is the format of the code.

Вы должны зарегистрироваться, чтобы видеть ссылки.

+

Method without change Set_Fov, by KORD_12.7

Код: Выделить всё
new g_msg_set_fov

public plugin_init
()
{
    register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
    
    g_msg_set_fov 
= get_user_msgid("SetFOV")
}
public message_cur_weapon(msgid, dest, id)
{
    message_begin(MSG_ONE, g_msg_set_fov, _, id)
    write_byte(89)
    message_end()
                                    
    message_begin
(dest, msgid, _, id)
    write_byte(1)
    write_byte(get_msg_arg_int(2))
    write_byte(get_msg_arg_int(3))
    message_end()
    
    return PLUGIN_HANDLED
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Hi, Custom Crosshair

Сообщение batu07040 » 08 авг 2017, 19:41

I do not understand write byte
Последний раз редактировалось batu07040 09 авг 2017, 20:27, всего редактировалось 1 раз.
Аватара пользователя
batu07040
 
Сообщения: 5
Зарегистрирован: 08 авг 2017, 02:04
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Hi, Custom Crosshair

Сообщение batu07040 » 09 авг 2017, 06:54

update +
Аватара пользователя
batu07040
 
Сообщения: 5
Зарегистрирован: 08 авг 2017, 02:04
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Hi, Custom Crosshair

Сообщение batu07040 » 10 авг 2017, 06:04

I do not know how coding can be done for this. Do you know ?
Аватара пользователя
batu07040
 
Сообщения: 5
Зарегистрирован: 08 авг 2017, 02:04
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: Hi, Custom Crosshair

Сообщение batu07040 » 15 авг 2017, 04:12

артист666 писал(а):Very clear description of the problem.
Particularly pleasing is the format of the code.

Вы должны зарегистрироваться, чтобы видеть ссылки.

+

Method without change Set_Fov, by KORD_12.7

Код: Выделить всё
new g_msg_set_fov

public plugin_init
()
{
    register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
    
    g_msg_set_fov 
= get_user_msgid("SetFOV")
}
public message_cur_weapon(msgid, dest, id)
{
    message_begin(MSG_ONE, g_msg_set_fov, _, id)
    write_byte(89)
    message_end()
                                    
    message_begin
(dest, msgid, _, id)
    write_byte(1)
    write_byte(get_msg_arg_int(2))
    write_byte(get_msg_arg_int(3))
    message_end()
    
    return PLUGIN_HANDLED



How do i make ?

Код: Выделить всё

#include <amxmodx> 
#include <hamsandwich> 
#include <fakemeta> 



#define HUD_HIDE_CROSS (1<<6)
#define HUD_DRAW_CROSS (1<<7)

new crosshair_gizle[64], iMsgCrosshair, g_msgHideWeapon,csgo_aktif,MsgIndexWeaponList; 

public plugin_precache() 

   precache_generic( "sprites/csgo_crosshair.txt" ); 
   precache_generic( "sprites/csgo_crosshair_32.spr" ); 
   precache_generic( "sprites/csgo_crosshair_64.spr" ); 


public plugin_init() 

   RegisterHam( Ham_Item_AddToPlayer, "weapon_knife", "OnAddToPlayerKnife", .Post = true ); 
   RegisterHam( Ham_Item_ItemSlot, "weapon_knife", "OnItemSlotKnife" ); 
   
   register_clcmd( "csgo_crosshair", "ClientCommand_SelectFlare" ); 
   
   MsgIndexWeaponList = get_user_msgid( "WeaponList" ); 
   
   register_clcmd("say /crosshair", "cros_stat");
   register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
   csgo_aktif = register_cvar("csgo_aktif", "1");
   iMsgCrosshair = get_user_msgid("Crosshair");
   g_msgHideWeapon = get_user_msgid("HideWeapon");


public ClientCommand_SelectFlare( const client ) 

engclient_cmd( client, "weapon_knife" ); 


public client_putinserver(id)
{
   
   
   crosshair_gizle[id] = 0
   
   
   
}

public Event_CurWeapon(id)
{
   
   new cvar;
   cvar = get_pcvar_num(csgo_aktif);
   
   if ( cvar >= 1 )
   {
      
      if ( crosshair_gizle[id] == 1 ) // Kapatır
      {
         
         Hide_NormalCrosshair(id, 0)
         show_crosshair(id, 0)
         
         
      }
      if ( crosshair_gizle[id] == 0 ) // Açar
      {
         
         Hide_NormalCrosshair(id, 1)
         show_crosshair(id, 1)   
         
      }
   }
   else
   {
      
   }
   
   
}




public cros_stat(id)
{
   
   if(is_user_alive(id))
   {
      
      new Menu = menu_create("Crosshair Secenekleri","cros_devam")
      
      if(crosshair_gizle[id] == 0)
      {
         
         menu_additem(Menu,"CSGO Gorunumunu Kapat","1")
         
      }
      else if(crosshair_gizle[id] == 1)
      {
         
         menu_additem(Menu,"CSGO Gorunumunu Ac","2")
         
      }
      
      menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
      menu_display(id, Menu, 0);
      
   }
   
}

public cros_devam (id, menu, item)
{
   
   new access,callback,data[6],iname[64]
   
   menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
   
   new key = str_to_num(data)
   
   switch(key)
   {
      case 1:
      {
         crosshair_gizle[id] = 1
         client_cmd(id, "+attack")
         set_task(0.1, "dur", id)
      }
      case 2:
      {
         crosshair_gizle[id] = 0
         client_cmd(id, "+attack")
         set_task(0.1, "dur", id)
      }
   }
}

public dur(id)
   
{

client_cmd(id, "-attack")

}

stock Hide_NormalCrosshair(id, flag)
{
if(flag == 1)
{
   message_begin(MSG_ONE, g_msgHideWeapon, _, id);
   write_byte(HUD_HIDE_CROSS);
   message_end();
}
else
{
   message_begin(MSG_ONE, g_msgHideWeapon, _, id);
   write_byte(HUD_DRAW_CROSS);
   message_end();
}
}

stock show_crosshair(id, flag)
{
message_begin(MSG_ALL, iMsgCrosshair, _, id); // MSG_ALL ile Crosshair Tekleme Sorununu Giderdim.
write_byte(flag);
message_end();
}



public OnAddToPlayerKnife( const item, const player ) 


message_begin( MSG_ONE, MsgIndexWeaponList, .player = player ); 

write_string( "csgo_crosshair" );  // WeaponName 
write_byte( -1 );                   // PrimaryAmmoID 
write_byte( -1 );                   // PrimaryAmmoMaxAmount 
write_byte( -1 );                   // SecondaryAmmoID 
write_byte( -1 );                   // SecondaryAmmoMaxAmount 
write_byte( 0 );                    // SlotID (0...N) 
write_byte( 1 );                    // NumberInSlot (1...N) 
write_byte( -1 );            // WeaponID 
write_byte( 1 );                    // Flags 

message_end();   


public OnItemSlotKnife( const item ) 

SetHamReturnInteger( 5 ); 
return HAM_SUPERCEDE; 
}

Аватара пользователя
batu07040
 
Сообщения: 5
Зарегистрирован: 08 авг 2017, 02:04
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Scripting

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2