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

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

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

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

Забрать оружие(c4), а не выбросить

Статус пользователя coolman
сообщение 25.9.2014, 14:10
Сообщение #1


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

кусок кода:
new players[32], pnum
get_players(players, pnum ,"ae", "TERRORIST")

for(new i=0; i<pnum; i++)
{
if(user_has_weapon(players[i], CSW_C4))
{
client_print(players[i], print_chat, "Максимальное колличество установленных бомб достигнуто!")
cs_set_user_plant(players[i], 0, 0) //запрещает повторно плендить, не понимаю почему не отрабатывает (((
fm_strip_user_gun(players[i], CSW_C4)

}
при данном коде должно забрать у всех c4 и все
а происходит следующие, бомба просто выкидывается на землю игрок ее подбирает и снова может плендить, а мне нужно, что бы только одну бомбу можно было заплендить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя coolman
сообщение 28.9.2014, 11:01
Сообщение #2


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

видимо сложное что то спросил.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 28.9.2014, 11:26
Сообщение #3
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

coolman,
Удаляет бомбу у игрока

Цитата
engclient_cmd(id, "weapon_c4")
cs_set_user_bpammo(id, CSW_C4, 0)
engclient_cmd(id, "lastinv")
// удаляем HUD иконку бомбы
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id)
write_byte(0)
write_string("c4")
message_end()


Удаляет бомбу на земле
Цитата
new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers())
{
dllfunc(DLLFunc_Think, weapbox) // удаляет объекты weaponbox + weapon_c4
// удаляет красную точку на радаре
message_begin(MSG_ALL, get_user_msgid("BombPickup"))
message_end()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя coolman
сообщение 28.9.2014, 18:34
Сообщение #4


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

Цитата(Orty_Hart @ 28.9.2014, 14:26) *
coolman,
Удаляет бомбу у игрока



Удаляет бомбу на земле

вот такой код получился:

Скрытый текст

public bomb_planted(id) //Функция вызывается после установки бомбы или отлов события установки бомбы
{
bombs += 1
if(bombs >= get_cvar_num("amx_max_bombs"))
{

new players[32], pnum
get_players(players, pnum ,"ae", "TERRORIST")

for(new i=0; i<pnum; i++)
{
if(user_has_weapon(players[i], CSW_C4))
{
engclient_cmd(players[i], "weapon_c4")
cs_set_user_bpammo(players[i], CSW_C4, 0)
engclient_cmd(players[i], "lastinv")
// удаляем HUD иконку бомбы
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, players[i])
write_byte(0)
write_string("c4")
message_end()

}


}

new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers())
{
dllfunc(DLLFunc_Think, weapbox) // удаляет объекты weaponbox + weapon_c4
// удаляет красную точку на радаре
message_begin(MSG_ALL, get_user_msgid("BombPickup"))
message_end()
}






}
}



но не сработал (((

Отредактировал: coolman, - 28.9.2014, 18:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 28.9.2014, 18:51
Сообщение #5
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Part of code of GunGame 2.13 plugin by Avalanche.

Код:
// takes a weapon from a player efficiently
stock ham_strip_weapon(id,const weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0;

new wId = get_weaponid(weapon);
if(!wId) return 0;

new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0;

if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);

if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill,wEnt);

set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));

if(wId == CSW_C4)
{
cs_set_user_plant(id,0,0);
cs_set_user_bpammo(id,CSW_C4,0);
}
else if(wId == CSW_SMOKEGRENADE || wId == CSW_FLASHBANG || wId == CSW_HEGRENADE)
cs_set_user_bpammo(id,wId,0);

return 1;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя coolman
сообщение 28.9.2014, 19:03
Сообщение #6


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

все спасибо нашел решение через:
new bomb = -1;
while( ( bomb = find_ent_by_model( bomb, "weaponbox", "models/w_backpack.mdl" ) ) )
{
remove_entity( bomb );
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя coolman
сообщение 29.9.2014, 11:23
Сообщение #7


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

осталось решить проблему: если игрока с бомбой убьют, бомба валяется, если еще одного убьют, то уже 2 бомбы валяются, а должна только одна быть )))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 29.9.2014, 16:49
Сообщение #8
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

coolman,
Не придумывайте.

Скрытый текст
Код:
#include <cstrike>

public bomb_planted(id)
{
bombs += 1
if(bombs >= get_cvar_num("amx_max_bombs"))
{
new players[32], pnum
get_players(players, pnum ,"ae", "TERRORIST")

for(new i=0; i<pnum; i++)
{
if(user_has_weapon(players[i], CSW_C4))
{
engclient_cmd(players[i], "weapon_c4")
cs_set_user_bpammo(players[i], CSW_C4, 0)
engclient_cmd(players[i], "lastinv")

message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, players[i])
write_byte(0)
write_string("c4")
message_end()

}
}
}
}


Источник
http://amx-x.ru/viewtopic.php?f=9&t=55


Отредактировал: Orty_Hart, - 29.9.2014, 16:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: