adva, много лишнего
можно так
Код:
public func_transfer_bomb(id)
{
if (user_has_weapon(id, CSW_C4)) //проверяем есть ли у игрока С4, если есть то выполняем код
{
new iPlayers[32], pNum
get_players(iPlayers, pNum, "ae", "TERRORIST")
if (pNum < 2) // если в команде терористов меньше 2 игроков, то просто выбрасываем С4
{
engclient_cmd(id, "drop", "weapon_c4")
return
}
new vCarrier[3], vRecipient[3], iRecipient, iDistance, iMinDistance = 999999
get_user_origin(id, vCarrier)
for (new p = 0; p < pNum; p++){
if (g_iAFKTime[iPlayers[p]] < 2){
get_user_origin(iPlayers[p], vRecipient)
iDistance = get_distance(vCarrier, vRecipient)
if (iDistance < iMinDistance){
iMinDistance = iDistance
iRecipient = iPlayers[p]
}
}
}
if (!iRecipient) return
// Bombe transferieren
engclient_cmd(id, "drop", "weapon_c4")
new iC4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4")
if (is_user_alive(id) & pev_valid(iC4)){
new iBackpack = pev(iC4, pev_owner)
if (iBackpack > g_iMaxPlayers){
set_pev(iBackpack, pev_flags, pev(iBackpack, pev_flags) | FL_ONGROUND)
dllfunc(DLLFunc_Touch, iBackpack, iRecipient)
}
}
//тут можно создать сообщение кому передаем С4
//можно сделать сообщение в чат или в худ сообщении
new szRecipient[32] //переменная для имени игрока
// iRecipient - это айди игрока кому передана С4
get_user_name(iRecipient, szRecipient, 31) // получаем имя игрока кому будет передана С4
set_hudmessage(255, 255, 0, -1.0, 0.8, 0, 3.0, 6.0, 0.1, 0.2, -1)
show_hudmessage(iRecipient, "С4 передана^n%s",szRecipient)
}
}
как то так, использовал код с предыдущего поста, с телефона неудобно много печатать но суть понятна)
извините за выравнивание кода) + проверте закрытие
}но функцыя должна работать, разве что компилятор будет выводить предупреждение 217 за выравниевание кода, на предупреждение 217 можно не обращать внимания, оно не влияет на работоспособность плагина
Отредактировал: MiXa, - 19.1.2015, 16:28