CS GO Нужно пару плагинов + пару вопросов
| |
cod
|
Дата: Четверг, 19.11.2015, 01:15:41 | Сообщение # 1 |
|
Сообщений: 14
Репутация: 0 [ +/- ]
|
|
Здравствуйте , у меня есть сервер CS GO
Режим стоит соревновательный так вот как сделать чтобы можно было в соревновательном режиме я мог наблюдать за игроками с противоположной команды? Жду вашего ответа.
Список плагинов которые нужны: Кто-то может сделать Двойной прыжок? и чтобы он выдавался по флагу к примеру Z
А так-же Может кто-то сделать чтобы урон увеличивался к примеру на 10% так-же по флагу к примеру Z
ЖДУ комментариев .
Сообщение отредактировал cod - Четверг, 19.11.2015, 01:16:27 |
|
| |
BarD
|
Дата: Четверг, 19.11.2015, 12:42:23 | Сообщение # 2 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Цитата cod ( ) А так-же Может кто-то сделать чтобы урон увеличивался к примеру на 10% так-же по флагу к примеру Z
Код public OnClientPostAdminCheck(client) { if (IsClientInGame(client) && client) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) { if (attacker && IsClientInGame(attacker)) { decl flags; flags = GetUserFlagBits(attacker); if (flags & ADMFLAG_ROOT) { damage+=damage*0.1; // или damage*=1.1, не важно. return Plugin_Changed; } } return Plugin_Continue; }
Добавлено (19.11.2015, 12:42:23) ---------------------------------------------
Цитата cod ( ) Режим стоит соревновательный так вот как сделать чтобы можно было в соревновательном режиме я мог наблюдать за игроками с противоположной команды? В server.cfg покопайся. Там есть, наверное, квар, отвечающий за это.
Сообщение отредактировал BarD - Четверг, 19.11.2015, 12:37:37 |
|
| |
cod
|
Дата: Четверг, 19.11.2015, 13:04:56 | Сообщение # 3 |
|
Сообщений: 14
Репутация: 0 [ +/- ]
|
|
Цитата BarD ( ) public OnClientPostAdminCheck(client) { if (IsClientInGame(client) && client) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) { if (attacker && IsClientInGame(attacker)) { decl flags; flags = GetUserFlagBits(attacker); if (flags & ADMFLAG_ROOT) { damage+=damage*0.1; // или damage*=1.1, не важно. return Plugin_Changed; } } return Plugin_Continue; } Можешь скомпилировать? Чтобы работал по флагам Z и A
Цитата BarD ( ) В server.cfg покопайся. Там есть, наверное, квар, отвечающий за это. Смотрел не нашел!
|
|
| |
pro-health
|
Дата: Четверг, 19.11.2015, 13:24:52 | Сообщение # 4 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Сообщение отредактировал pro-health - Четверг, 19.11.2015, 13:26:31 |
|
| |
BarD
|
Дата: Четверг, 19.11.2015, 14:01:12 | Сообщение # 5 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Пробуй.
Гости не могут скачивать файлы
|
|
|
| |
TEIN
|
Дата: Четверг, 19.11.2015, 14:51:46 | Сообщение # 6 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
бард, смотри, клиент подключается к игре, значит он уже в игре и это точно игрок, ведь 0 подключиться не может, так? ну и потом еще проверяешь каждый раз игрока на админа..
|
|
| |
BarD
|
Дата: Четверг, 19.11.2015, 15:26:45 | Сообщение # 7 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Цитата TEIN ( ) ведь 0 подключиться не может Понимаю, но Sm может все, что угодно выкинуть) У меня уже паранойя на этой почве)
Цитата TEIN ( ) проверяешь каждый раз игрока на админа Согласен.
Код #include <sourcemod> #include <sdkhooks>
new IsAdmin[MAXPLAYERS+1];
public OnClientPostAdminCheck(client) { if (client) { IsAdmin[client] = 0; SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION) IsAdmin[client] = 1; } }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) { if (attacker && IsClientInGame(attacker) && IsAdmin[attacker]) { damage+=damage*0.1; // или damage*=1.1, не важно. return Plugin_Changed; } return Plugin_Continue; } Исправлено. Спасибо, TEIN :)
|
|
| |
pro-health
|
Дата: Четверг, 19.11.2015, 15:52:26 | Сообщение # 8 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Цитата BarD ( ) IsAdmin[client] = 0; SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION) IsAdmin[client] = 1;
Цитата BarD ( ) if (attacker && IsClientInGame(attacker) && IsAdmin[attacker])
А зачем хукать не админа, если можно его и не трогать?
|
|
| |
BarD
|
Дата: Четверг, 19.11.2015, 16:01:04 | Сообщение # 9 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
pro-health, Хук на получение урона.
|
|
| |
pro-health
|
Дата: Четверг, 19.11.2015, 16:03:24 | Сообщение # 10 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Цитата BarD ( ) pro-health, Хук на получение урона. Я не про это, можно-же сделать так:
Вариант №1
Код #include <sourcemod> #include <sdkhooks>
new IsAdmin[MAXPLAYERS+1];
public OnClientPostAdminCheck(client) { if (client) { IsAdmin[client] = 0; new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION) { IsAdmin[client] = 1; SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } } }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) { if (attacker && IsClientInGame(attacker) && IsAdmin[attacker]) { damage+=damage*0.1; // или damage*=1.1, не важно. return Plugin_Changed; } return Plugin_Continue; }
Вариант №2
Код #include <sourcemod> #include <sdkhooks>
// new IsAdmin[MAXPLAYERS+1];
public OnClientPostAdminCheck(client) { if (client) { // IsAdmin[client] = 0; new flags = GetUserFlagBits(client); if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION) { // IsAdmin[client] = 1; SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } } }
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) { if (attacker && IsClientInGame(attacker) /*&& IsAdmin[attacker]*/) { damage+=damage*0.1; // или damage*=1.1, не важно. return Plugin_Changed; } return Plugin_Continue; }
|
|
| |
cod
|
Дата: Четверг, 19.11.2015, 18:55:58 | Сообщение # 11 |
|
Сообщений: 14
Репутация: 0 [ +/- ]
|
|
Спасибо что помогли)) Но Кто-то может все же скинуть готовый SM плагин?
|
|
| |
TEIN
|
Дата: Четверг, 19.11.2015, 19:55:04 | Сообщение # 12 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
над смотреть все конечные события, я к тому, что вроде SDKHook должен быть при подключении любого клиента (не только админа)
|
|
| |
pro-health
|
Дата: Четверг, 19.11.2015, 20:16:04 | Сообщение # 13 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
TEIN, а зачем хуккать каждого клиента? Если можно только одного (например на 64 игрока прийдётся 1 админ, и зачем нам все остальные.) Ах да ещё Unhook нужен бы.
|
|
| |
_R1KO_
|
Дата: Четверг, 19.11.2015, 21:30:21 | Сообщение # 14 |
|
Сообщений: 200
Репутация: 30 [ +/- ]
|
|
pro-health, потому что все кто не хукнут в OnTakeDamage будут иметь индекс 0. И ты не можешь проверить ни кого игрок дамажит ни кто его.
|
|
| |
BarD
|
Дата: Пятница, 20.11.2015, 14:06:01 | Сообщение # 15 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Цитата pro-health ( ) Ах да ещё Unhook нужен бы. Не нужен. Он, вроде, сам делает.
Цитата pro-health ( ) например на 64 игрока прийдётся 1 админ, и зачем нам все остальные. Потому что хук называется OnTakeDamage ("когда получаешь урон" с английского). Этим подразумевается, что тот, на ком хук, всегда victim. Если ты админов только будешь хукать, то админ всегда victim, а проверяешь ты attacker'а. Следовательно, только по админам будет проходить повышенный урон, причем от всех игроков. Поправьте, если я не прав.Добавлено (20.11.2015, 14:06:01) ---------------------------------------------
Цитата cod ( ) Но Кто-то может все же скинуть готовый SM плагин? Научись компилировать. Вот тебе урок: http://world-source.ru/forum/118-2459-1
|
|
| |
|