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

Не могу отловить убийство с гранаты.

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Не могу отловить убийство с гранаты.

Сообщение Sheigar » 16 ноя 2021, 20:52

Если игрока убили гранатой, то в сообщении показывает его оружие. Как исправить это?

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

new Killer_Name[32], Killer_WeaponKiller_HealthKiller_Armor
new const Weapon_Name[][] = {"""P228""""Scout""Grenade""MX1014""C4""MAC10""AUG""""Elite""FiveSeven""UMP45""SG550""Galil""Famas""USP""Glock""AWP""MP5Navy""M249""M3""M4A1""TMP""G3SG1""""Deagle""SG552""AK47""Knife""P90"}

public 
plugin_init() {
    
register_plugin("InfoVictim""Sheigar""1.0")
    
RegisterHam(Ham_Killed,"player","Info_Killer")
}

public 
Info_Killer(idattacker) {
    if(!
is_user_connected(id)) return
    
get_user_name(attackerKiller_Name32)
    if(!(
attacker == 0)) {
        
Killer_Weapon get_user_weapon(attacker)
    }
    
Killer_Health get_user_health(attacker)
    
Killer_Armor get_user_armor(attacker)
    if(
get_user_team(attacker) == && attacker != id 0) {
        
client_print_color(idBLUE"^4[Death]^1 Вас убил^3 %s^1, с помощью^4 %s^1. У него осталось^3 %d^4 HP^1,^3 %d^4 AP^1."Killer_NameWeapon_Name[Killer_Weapon], Killer_HealthKiller_Armor)
    } else if(
get_user_team(attacker) == && attacker != id 0) {
        
client_print_color(idRED"^4[Death]^1 Вас убил^3 %s^1, с помощью^4 %s^1. У него осталось^3 %d^4 HP^1,^3 %d^4 AP^1."Killer_NameWeapon_Name[Killer_Weapon], Killer_HealthKiller_Armor)
    } else {
        
client_print_color(id0"^4[Death]^1 Вы совершили суицид специально, или же вам повезло.")
    }
Опытный скриптер.

VK: https://vk.com/vasheigar
Discord: Sheigar#0294
Аватара пользователя
Sheigar
 
Сообщения: 109
Зарегистрирован: 03 июл 2021, 21:36
Благодарил (а): 27 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Библиотека Amxmodx.
Язык Pawn.

Re: Не могу отловить убийство с гранаты.

Сообщение RevCrew » 17 ноя 2021, 12:47

Здравствуйте, вы понимаете что написано в этой строчке?
Код: Выделить всё
attacker != id 0
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Не могу отловить убийство с гранаты.

Сообщение [N][E][M][E][C] » 30 ноя 2021, 02:17

Sheigar, зачем вы делаете проверку на команду игрока?
Код: Выделить всё
if(get_user_team(attacker) == 2)
    Если кт выполним код
if(get_user_team(attacker) == 1)
    Если т выполним код
else
    Если не т и не кт, тоесть спектра выполним код

Каким образом вы проверили если игрок убил себя??
Не так ли надо?
Код: Выделить всё
if(attacker == id)
    client_print_color(id, 0, "^4[Death]^1 Вы совершили суицид специально, или же вам повезло.")

Каким образом вы обращаетесь к массиву Weapon_Name?
Вы получили айди оружия атакуещего , записали в переменную, так?
В Weapon_Name[0] будет записана строка"ak-47", а вы уверены что айди оружия которое вы получили будет соответсвовать???
Правда если вы не подстраивались "методом тыка"
И это условие у вас не правильное
Код: Выделить всё
if(get_user_team(attacker) == && attacker != id 0
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Не могу отловить убийство с гранаты.

Сообщение Dart_Begep » 03 дек 2021, 18:03

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

  
...
  new infl = entity_get_edict(id, EV_ENT_dmg_inflictor)
  new 
model[32]
  if (killer != infl)
  {
    entity_get_string(infl, EV_SZ_model, model, 31)
    if (equal(model, "models/w_hegrenade.mdl"))
    {
      убили или убились гранатой 
    
}
  }
  ...
 

Куда вставить, думаю, сообразите.

п.с. Код не учитывает замену модели гранаты либо кастомный вариант. Думаю, теперь разберетесь.
п.с.2 . Поправочка. Допустил ошибку в коде - должно быть сравнение "if (killer != infl)"
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript


Вернуться в Скриптинг

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

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