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

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

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

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

2 страниц V   1 2

Блокировка выдачи usp/glock18 в начале раунда

, Заблокировать выдачу станд. пистолетов
Статус пользователя lalochka1337
сообщение 4.6.2016, 16:11
Сообщение #1
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

В начале раунда ведь определенной команде даётся стандартный пистолет (КТ - usp, TT - glock18), так? Так.
Мне нужно что бы эти пистолеты не выдавались.

Подскажите код.

На amx-x(точка)ru предложили костыль (клик)
Знает кто как иначе заблокировать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 17:01
Сообщение #2
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Вообще, заблокировать их не просто, если речь идет о полном блоке всего, включая патроны, без использования костылей. Такой код юзаю у себя в ЗП. Если есть желание, за пару сотен портирую его в отдельный плагин.

Отредактировал: iShot, - 4.6.2016, 17:44
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 17:15
Сообщение #3
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

game_player_equip просто удалить энтити подсказали.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 17:43
Сообщение #4
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(lalochka1337 @ 4.6.2016, 19:15) *
game_player_equip просто удалить энтити подсказали.


Тоже не плохое решение, правда надо ещё отдельно смотреть, к чему приведет его удаление.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 18:02
Сообщение #5
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

SISA, у меня почему-то не удаляет эту энтити. Ничего не меняется.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 18:04
Сообщение #6
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(lalochka1337 @ 4.6.2016, 20:02) *
SISA, у меня почему-то не удаляет эту энтити. Ничего не меняется.


А чем вы проверяете факт её удаления ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 18:10
Сообщение #7
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

SISA, Код:
while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", "game_player_equip"))) {
engfunc(EngFunc_RemoveEntity, iEnt);
log_amx("game_player_equip удалена");
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 18:24
Сообщение #8
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

lalochka1337,

Ну как бэ смотри сам... Я хотел тебе изначально помочь, за что мне вкатили варн. Теперь я уже не испытываю желания помогать...

Эта энтити game_player_equip она задается разработчиком карты. Если её в карте нет, то удалять просто нечего. Используется она очень редко.

В коде движка это выглядит так:

while ((pWeaponEntity = UTIL_FindEntityByClassname(pWeaponEntity, "game_player_equip")) != NULL)
{
pWeaponEntity->Touch(pPlayer);
addDefault = FALSE;
}

если на карте присутствует эта энтити, то сервер блокирует выдачу пистолетов, а её удаление, наоборот, приведет к выдаче пистолетов и патрон:

if (addDefault || pPlayer->m_bIsVIP)
pPlayer->GiveDefaultItems(); // тута выдаем базовое оружие

Т.е. тебе нужно или создавать эту энтити при старте карты в init или прекеш (или где там ещё) или придумывать ещё какой-то костыль.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 4.6.2016, 18:33
Сообщение #9
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

угу https://forums.alliedmods.net/showpost.php?...mp;postcount=10
еще один способ можно установить m_fHasBeenKilledLastRound на 0 (в pre)
p.s нож тоже убирается.

Отредактировал: Unknown, - 4.6.2016, 18:34


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 18:39
Сообщение #10
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(Unknown @ 4.6.2016, 20:33) *
угу https://forums.alliedmods.net/showpost.php?...mp;postcount=10
еще один способ можно установить m_fHasBeenKilledLastRound на 0 (в pre)
p.s нож тоже убирается.


Способ с WEAPON_SUIT старый, но он, зараза, самый костыльный из всех, что можно придумать. Тут и оффсеты и переменные и массивы...

m_fHasBeenKilledLastRound а такого оффсета не существует. Ты имел ввиду m_bNotKilled, но его зануление приведет к куче сопутствующих багов, судя по коду.

Отредактировал: SISA, - 4.6.2016, 18:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 4.6.2016, 18:45
Сообщение #11
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

SISA, Существует https://wiki.alliedmods.net/CBasePlayer_(CS) (хотя называй его как хочешь. Важно только значение)
Да только ты здесь умный. Но нет никаких багов.)

p.s архив cstrike_pdatas.zip не только у тебя :D

Отредактировал: Unknown, - 4.6.2016, 18:50


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 18:51
Сообщение #12
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Unknown,

К сожалению не существует. Это не я его называл, а разработчики игры:

Цитата
bool m_bNotKilled;


Это во первых.

Во вторых, по твоей ссылке, мало того, что сам оффсет назван не верно, так ещё и его тип указан ТОЖЕ не верно:

Цитата
int


а на самом деле это bool и номер оффсета 452, хотя его можно использовать как int с номером 113

Так что вот такие пироги =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 18:59
Сообщение #13
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

Код:
create_entity("game_player_equip");
log_amx("game_player_equip создан");

??? логи выводит, но ничего не меняется
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 4.6.2016, 19:04
Сообщение #14
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

SISA, С этим согласен. Да ссылка устарело. В архиве cstrike_pdatas.zip всё правильно указано.


lalochka1337, кто ее спавнит будет?


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 19:06
Сообщение #15
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

Unknown, всм?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 4.6.2016, 19:09
Сообщение #16
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

lalochka1337,
Код:
new iEnt = create_entity("game_player_equip")
DispatchSpawn(iEnt)

не?


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Host
сообщение 4.6.2016, 19:10
Сообщение #17


Стаж: 9 лет
Город: Киев

Сообщений: 199
Благодарностей: 5
Полезность: 30

expert-server.ru
Мод поставь кнайф. И не будет оружия. Или блокер на оружие через amxmodmenu
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lalochka1337
сообщение 4.6.2016, 19:11
Сообщение #18
Стаж: 12 лет

Сообщений: 15
Благодарностей: 1
Полезность: 0

Unknown, упс. туплю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2016, 19:11
Сообщение #19
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

public plugin_precache()
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "game_player_equip"))

if (pev_valid(ent))
dllfunc(DLLFunc_Spawn, ent)
}

Код из двух строк =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 4.6.2016, 19:19
Сообщение #20
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

SISA, ну это для людей "i love Fakemeta"

if(pev_valid(ent)) необязателен.
Можно просто if(ent) пффф.


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: