Primo
типа серьёзный тип
- Сообщения
- 1,532
- Реакции
- 759
Вообще, это плохой вариант... Лучше Kill-ять.
Разве он не "kill-яет" объект?
Вообще, это плохой вариант... Лучше Kill-ять.
С пятым слотом я намудрил, ибо изначально запутался вообще, что 0 — это Primary, а не 1… :) Удалять нужно все ИМХО, но так и быть, удалю нож.Да с чего?
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