Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 26 апр 2024, 20:30

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 17 авг 2016, 01:33 
Не в сети
Аватара пользователя
Зарегистрирован:
22 окт 2014, 19:26
Последнее посещение:
23 апр 2024, 01:07
Сообщения: 1025
i found this :

Код:
stock create_death_msg(id,victim,headshot,weapon_name[])
{
   message_begin(MSG_ALL,g_msg_death_msg,{0,0,0},0)
   write_byte(id)
   write_byte(victim)
   write_byte(headshot)
   write_string(weapon_name)
   message_end()
}
and this :

Код:
public plugin_init()
{
   // Register the death message catch
   register_message(get_user_msgid("DeathMsg"), "death_message")
}

public death_message(id)
{
   new killer = get_msg_arg_int(1)
   new victim = get_msg_arg_int(2)
   new weapon = get_msg_arg_int(3)
   new headshot = get_msg_arg_int(3)
 
   new wpn_name[32]
 
   set_msg_arg_string(4, wpn_name, 31)

   return PLUGIN_CONTINUE
}
ant this :

https://forums.alliedmods.net/showpost. ... ostcount=7

idk what is the true one can any one explaind this pleas ?

_________________
https://vk.com/kgbaghl


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 17 авг 2016, 02:43 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
All of this basically correct.
There is a DeathMsg message. Game dll sends it to client dll so client can show the death list in on the screen (right upper corner by default).
Weapon name is a stripped version, i.e. instead of "weapon_crowbar" the string will contain just "crowbar". The game dll on the client will prepend "d_" before it and lookup for the death sprite in .txt files in sprites folder (hud.txt in common and weapon specific file in BugfixedHL).
You can simulate this - send message on your own wish (first code).
Intercept game dll sent message and change it as you wish (second code and the link).

In HL btw, there is no "headshot" data in this message. So it consist of:
    arg(1) - byte - killer
    arg(2) - byte - victim
    arg(3) - string - weapon name
So, there is no 4 arg in HL, so you should be careful with your code above.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 18 авг 2016, 00:22 
Не в сети
Аватара пользователя
Зарегистрирован:
22 окт 2014, 19:26
Последнее посещение:
23 апр 2024, 01:07
Сообщения: 1025
I did not understand how to replace icon to other icon
ex:
rpg_rocket icon
to ==>
corwbar icon

_________________
https://vk.com/kgbaghl


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 18 авг 2016, 02:06 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
Capture DeathMsg and change 3 argument (string) from "rpg" to "crowbar".


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 18 авг 2016, 13:52 
Не в сети
Аватара пользователя
Зарегистрирован:
22 окт 2014, 19:26
Последнее посещение:
23 апр 2024, 01:07
Сообщения: 1025
Код:
public plugin_init()
{
   register_message(get_user_msgid("DeathMsg"), "Message_DeathMsg")
}
public Message_DeathMsg(msg_id, msg_dest, id)
{
   static szTruncatedWeapon[33], iAttacker, iVictim
       
   get_msg_arg_string(3, szTruncatedWeapon, charsmax(szTruncatedWeapon))
       
   iAttacker = get_msg_arg_int(1)
   iVictim = get_msg_arg_int(2)
       
   if(!is_user_connected(iAttacker) || iAttacker == iVictim) return PLUGIN_CONTINUE
       
   new szWeapon[10];
   read_data( 4, szWeapon, charsmax( szWeapon ));
   if(equal( szWeapon, "rpg" ) && get_user_weapon(iAttacker) == HLW_CROWBAR) set_msg_arg_string(3, "crowbar")

   return PLUGIN_CONTINUE
}

typ 2 :

Код:
public plugin_init()
{
   register_message(get_user_msgid("DeathMsg"), "Message_DeathMsg")
}
public Message_DeathMsg(id)
{
   new weapon = get_msg_arg_int(3)
   
   static szMessage[32]
   
   new kr = get_msg_arg_int(1)
   new vm = get_msg_arg_int(2)
   
   if(get_msg_arg_string(18, szMessage, 32 - 1) )
   {
      if(equal(szMessage, "rpg") )//rpg_rocket i think ?
      {
         set_msg_arg_int(3, get_msg_argtype(3), weapon);
         set_msg_arg_string(3, "crowbar")
      }
   }
   return PLUGIN_CONTINUE
}

no one worked !

typ 3 : worket but 2 Msg ?

Код:
public plugin_init() {
   
   //RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")

   register_event("DeathMsg", "player_killed", "a")
   
   //RegisterHam(Ham_Killed, "player", "player_killed")

}
public player_killed(id)
{
   
   if(get_user_weapon(read_data(1)) == HLW_CROWBAR)
   {
      message_begin(MSG_ALL,get_user_msgid( "DeathMsg" ),{0,0,0},0)
   write_byte(read_data(1))
   write_byte(read_data(2))
   write_string("crowbar")
   message_end()
   }
   return PLUGIN_CONTINUE
}
Вложение:
Capture.JPG
Capture.JPG [ 9.03 КБ | Просмотров: 1972 ]

_________________
https://vk.com/kgbaghl


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 18 авг 2016, 19:05 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
You did a lot of errors, this is why they don't work.
1:
Код:
   static szTruncatedWeapon[33], iAttacker, iVictim
   get_msg_arg_string(3, szTruncatedWeapon, charsmax(szTruncatedWeapon))
first you get a weapon correctly
Код:
   new szWeapon[10];
   read_data( 4, szWeapon, charsmax( szWeapon ));
   if(equal( szWeapon, "rpg" ) && get_user_weapon(iAttacker) == HLW_CROWBAR) set_msg_arg_string(3, "crowbar")
then you try to read it in a wrong way so it will not work so.

2:
Код:
   new weapon = get_msg_arg_int(3)
3 argument is a string, not an integer (int).
Код:
   if(get_msg_arg_string(18, szMessage, 32 - 1) )
   {
argument number 18??? you will get nothing here
Код:
      if(equal(szMessage, "rpg") )//rpg_rocket i think ?
then compare nothing to "rpg". No, it is not "rpg".
Код:
         set_msg_arg_int(3, get_msg_argtype(3), weapon);
Again: argument 3 is a string!
Код:
set_msg_arg_string(3, "crowbar")
this is right.

Use debug printing while developing, you are badly need to check your code.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 19 авг 2016, 16:17 
Не в сети
Аватара пользователя
Зарегистрирован:
22 окт 2014, 19:26
Последнее посещение:
23 апр 2024, 01:07
Сообщения: 1025
Lev писал(а):
Код:
   new szWeapon[10];
   read_data( 4, szWeapon, charsmax( szWeapon ));
   if(equal( szWeapon, "rpg" ) && get_user_weapon(iAttacker) == HLW_CROWBAR) set_msg_arg_string(3, "crowbar")
then you try to read it in a wrong way so it will not work so.

can u give me true way please ?
bcz i trayed like that

Код:
public Message_DeathMsg( ) {
   
   
   new iAttacker = get_msg_arg_int( 1 );
   new iVictim = get_msg_arg_int( 2 );
   
   if(is_user_alive( iAttacker ) && get_user_weapon(iAttacker) == HLW_CROWBAR ) { // replace rpg_rocket icon
      
      set_msg_arg_string( 3, "crowbar" );//// icon crowbar remplaced (done!)
      
   }else if(!is_user_alive( iAttacker ) && iAttacker == iVictim){  //// suicide with his weapon
      
      set_msg_arg_string( 3, "crowbar" );// icon crowbar remplaced (done!)
   }
   
   return PLUGIN_CONTINUE
}

but see also icon crowbar when player ( died using kill cmd OR falled ) saw icon crowbar ? .... door and trigger i dont tested
also in my last code detect player only when get weapon crowbar ... so if player shot and change weapon the icon changed .
:unknown:

_________________
https://vk.com/kgbaghl


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 19 авг 2016, 21:25 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
abdobiskra писал(а):
can u give me true way please ?
abdobiskra писал(а):
***Do not give me a fish, but taught me how to hunt***
I gave you the correct way. But you have to walk it.

Код:
if(is_user_alive( iAttacker )
Why you require attacker to be alive? what if I throw a grenade and will kill someone with it, but will be dead already?

Код:
get_user_weapon(iAttacker) == HLW_CROWBAR
The same, why you check what I am holding right now in the hand? This is wrong.
You can get 3 argument and what weapon it specify. And then replace if you need to.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 21 авг 2016, 01:50 
Не в сети
Аватара пользователя
Зарегистрирован:
22 окт 2014, 19:26
Последнее посещение:
23 апр 2024, 01:07
Сообщения: 1025
Lev писал(а):
You can get 3 argument and what weapon it specify

Код:
if(get_msg_arg_string(3, "crowbar", 7)) { 
?

_________________
https://vk.com/kgbaghl


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: set weapon ammo icon ?
СообщениеДобавлено: 21 авг 2016, 03:03 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
Not sure whats so hard
Код:
   static sWeapon[20]
   get_msg_arg_string(3,sWeapon,19)
   if(equal(sWeapon,"rpg"))
      set_msg_arg_string(3,"crowbar")


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB