Иконка ресурса

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Прямее по значению это делает AcceptEntityInput(weapon, "Kill");
Оффтоп

Ну, решит уж сам разработчик данного плагина, что лучше использовать.

Оффтоп
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393

FBZA

Участник
Сообщения
58
Реакции
8
  • Автор ресурса
  • #25
Да с чего?

2 совершенно разных плагина, каждый по событию player_spawn выдаёт игроку разное кол-во хп. Какое хп будет у игрока?
Я не говорю про этот плагин. Я говорю про сам факт, что хп поставится того плагина, который последним будет загружен, или же последним будет выполнять функцию по событию.

Добавлено через 13 минут


Не поленился, посмотрел код.
Постарался, молодец. Однако, то, что я процитировал является неверным в том случае, если:

Если админ хочет, чтобы knifefight давал бонус хп за победу.
В этом случае с твоим плагином будет "конфликт". В чем он заключается? Твой плагин в любом случае ставит 35хп при респавне.
Если KnifeFight выполняет фукнцию раньше твоего плагина, то этого бонуса не будет. Поставится 35 хп. Это, кстати, может быть примером того, что я писал до этого.

Объясню на примере:

KnifeFight грузится первым, и он может выполнять SetEntityHealth(client, 120); или SetEntityHealth(client, GetClientHealth(client) + 20);, в общем, без разницы, это не играет роли.
Он в любом случае поставит 120хп, т.к. грузится самым первым, а изначально у игрока 100 хп.
Т.к. ты ставишь SetEntityHealth(client, 35); ты просто забиваешь на KnifeFight, и выставляешь свои условия, т.е. нагло выставляешь ему 35 хп.
Однако, если твой плагин будет первым грузиться, то KnifeFight будет выставлять своё хп.

Как решить эту проблему в твоём плагине?
Делай фукнцию SetEntityHealtH(client, GetClientHealth(client)-65); Логично, что со стандартным кол-ом хп у тебя будет 35. Ну а с KnifeFight будет работать бонус хп, к этим 35 хп будут добавляться те хп, которые являются дополнительными в посторонних плагинах. Однако, если будет в KnifeFight SetEntityHealth(client, 120); то этот код бессмыслен, как и твой.
Добавлено через 26 минут
PHP:
public Action:_35hp(Handle:event, const String:name[], bool:dontBroadcast)
{
    new i = GetClientOfUserId(GetEventInt(event, "userid"));
    new Slot0 = GetPlayerWeaponSlot(i, 0);
    new Slot1 = GetPlayerWeaponSlot(i, 1);
    new Slot2 = GetPlayerWeaponSlot(i, 2);
    new Slot3 = GetPlayerWeaponSlot(i, 3);
    new Slot4 = GetPlayerWeaponSlot(i, 4);
    new Slot5 = GetPlayerWeaponSlot(i, 5);
    new health = GetClientHealth(i);
    if( IsClientInGame(i) && IsPlayerAlive(i) && i != 0)
    {
        if (Slot0 > 0) RemovePlayerItem(i, Slot0);
        if (Slot1 > 0) RemovePlayerItem(i, Slot1);
        if (Slot2 > 0) RemovePlayerItem(i, Slot2);
        if (Slot3 > 0) RemovePlayerItem(i, Slot3);
        if (Slot4 > 0) RemovePlayerItem(i, Slot4);
        if (Slot5 > 0) RemovePlayerItem(i, Slot5);
        if(health > 35) SetEntityHealth(i, 35);
    }

    if (i != 0) GivePlayerItem(i, "weapon_knife"); 
}
Меняй на

PHP:
public Action:_35hp(Handle:event, const String:name[], bool:dontBroadcast)
{
    new i = GetClientOfUserId(GetEventInt(event, "userid"));
    RemoveAllWeap(i);
    SetEntityHealth(i, GetClientHealth(i)-65);
}


public RemoveAllWeap(client)
{
    new current0 = GetPlayerWeaponSlot(client, 0);

    new current1 = GetPlayerWeaponSlot(client, 1);
    if(IsValidEntity(current0) && current0 != INVALID_ENT_REFERENCE)
    {
        RemovePlayerItem(client, current0);
    }
    if(IsValidEntity(current1) && current1 != INVALID_ENT_REFERENCE)
    {
        RemovePlayerItem(client, current1);
    }
}
Поясню, почему я так предлагаю.
Зачем чистить слот ножа, если его можно оставить? Да, может быть тазер, но это в csgo, если хочешь, сделай проверку на движок игры, и очищай слот с ножом.
Гранаты? По вкусу, ну тоже очищай. А вообще, предлагаю сделать квары, чтобы угодить каждому админу :3
С пятым слотом я намудрил, ибо изначально запутался вообще, что 0 — это Primary, а не 1… :) Удалять нужно все ИМХО, но так и быть, удалю нож.

Добавлено через 24 минуты
Обновил.
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #26
Оффтоп
 

miceZipper

Learning Sourcemod Scripting...
Сообщения
4
Реакции
1
Немного пиленная версия.
+ Добавлен квар для включения/выключения мода sm_35hp_enabled
+ Добавлена улучшенная совместимость с плагином (собственно, для него все и делал): Extended Map configs v.1.0
* Исправлен баг (или убрана фича, если таковой была) с тем, что игнорируется урон от падения с высоты после первого самого падения (начального) даже после смены карты.
 

Вложения

  • 35hp_.sp
    3.7 КБ · Просмотры: 29
  • 35hp_.smx
    10.1 КБ · Просмотры: 9
Сверху Снизу