Вроде бы нельзя не как отключить скидывание, потому что это карта так сделана.Добрый вечер, может кто знает как можно убрать на некоторых surf_картах скидывание с респауна, то есть начинается раунд, проходит некоторое время и игрока скидывает на серф, интересует вопрос как убрать это "скидывание".
Вроде бы нельзя не как отключить скидывание, потому что это карта так сделана.
А можно пример плагина с произвольным ID, нужный постараюсь найти?Можно. Узнаем ID нужного trigger_teleport и удаляем его с карты.
Готовый инструментарий: http://hlmod.ru/forum/utverjdionnye-plaginy/26679-manual-cleaning-map.html.плагина с произвольным ID, нужный постараюсь найти
Удаляешь его: !cleanmap trigger_teleport -1 - по одному и проверяешь, скидывает или нет. Можно попробовать сразу все удалить, если карта будет функционировать нормально (может там и есть всего 1 объект Оффтопtrigger_teleport
А можно пример плагина с произвольным ID, нужный постараюсь найти?
Готовый инструментарий: http://hlmod.ru/forum/utverjdionnye-plaginy/26679-manual-cleaning-map.html.Удаляешь его: !cleanmap trigger_teleport -1 - по одному и проверяешь, скидывает или нет. Можно попробовать сразу все удалить, если карта будет функционировать нормально (может там и есть всего 1 объект ОффтопТакже проверяется плагином: !cleanmap trigger_teleport 0).
Нашел, причина в trigger_push:Готовый инструментарий: http://hlmod.ru/forum/utverjdionnye-plaginy/26679-manual-cleaning-map.html.Удаляешь его: !cleanmap trigger_teleport -1 - по одному и проверяешь, скидывает или нет. Можно попробовать сразу все удалить, если карта будет функционировать нормально (может там и есть всего 1 объект ОффтопТакже проверяется плагином: !cleanmap trigger_teleport 0).
Не работает, заменил в плагине trigger_teleport на trigger_push и ID вставил из цитаты выше (572).Не тестировал, вот ты и протестируешь.
Для компилирования нужна библиотека smlib.
Строчка 38: if (hammerID != 23993)
Строчка 36: if (StrEqual(current_map, "surf_map")) - название нужной тебе карты.
Нашел, причина в trigger_push:
!cleanmap trigger_push 1
Удален: №1 entity "trigger_push" (id: 572).
Теперь вопрос как удалять это постоянно, как я понял плагин не сохраняет изменения(
Не работает, заменил в плагине trigger_teleport на trigger_push и ID вставил из цитаты выше (572).
Это реальный индекс объекта. Не тот "ID".ID вставил из цитаты выше
Оффтопвсе trigger_push на нужной тебе карты
А где узнать нужный ID?
Отключение всех trigger_push не вариант, перестает работать "толчек" игрока вверх на некоторых местах карты(http://hlmod.ru/forum/showpost.php?p=222483&postcount=6
Перезалил. В этом случае будет удалять все trigger_push на нужной тебе карты, не забудь править исходник.
Добавлено через 10 минут
А где узнать нужный ID?
Отключение всех trigger_push не вариант, перестает работать толчек игрока на некоторых местах карты(
Вопрос именно в том как HammerID вообще можно определить на нужном мне объекте, есть исходник карты, открывал блокнотом, нашел нужный trigger_pushТогда возьми старый исходник trigger_teleport.
Получи HammerID нужного тебе trigger_push (не забудь изменить trigger_teleport на trigger_push) и вставь, пропиши нужную карту, где удалять и проверяй.
Можно попробовать на push_spawn1 и push_spawn2, но как реализовать это плагином?Пробей остальные push-объекты на имена. Если не совпадает, можно по нему и сносить именно нужный тебе trigger. ОффтопТо, что я "сейчас" написал, просто сносит первый попавшийся.
да, для ct и t спаунаОба надо, что ли?
для ct и t спауна
#include <sdktools>
new String:g_sMapActivate[][] = {"de_dust"};
public OnMapStart()
{
decl String:current_map[32];
GetCurrentMap(current_map, sizeof(current_map));
static bool:bActivate;
for (new i = 0; i < sizeof(g_sMapActivate); ++i)
{
if (strcmp(current_map, g_sMapActivate[i]) == 0)
{
if (!bActivate)
{
HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
bActivate = true;
}
return;
}
}
if (bActivate)
{
UnhookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
bActivate = false;
}
}
public OnRoundStart(Handle:event, String:name[], bool:dontBroadcast)
{
decl String:buffer[13];
new entity = MaxClients + 1;
while ((entity = FindEntityByClassname(entity, "trigger_push")) != -1)
{
DispatchKeyValue(entity, "targetname", buffer);
if (strcmp(buffer, "push_spawn1") == 0 || strcmp(buffer, "push_spawn2") == 0) AcceptEntityInput(entity, "Kill");
}
}
Спасибо огромное, все работает:yahoo:Пробуй, не проверял.PHP:#include <sdktools> new String:g_sMapActivate[][] = {"de_dust"}; public OnMapStart() { decl String:current_map[32]; GetCurrentMap(current_map, sizeof(current_map)); static bool:bActivate; for (new i = 0; i < sizeof(g_sMapActivate); ++i) { if (strcmp(current_map, g_sMapActivate[i]) == 0) { if (!bActivate) { HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy); bActivate = true; } return; } } if (bActivate) { UnhookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy); bActivate = false; } } public OnRoundStart(Handle:event, String:name[], bool:dontBroadcast) { decl String:buffer[13]; new entity = MaxClients + 1; while ((entity = FindEntityByClassname(entity, "trigger_push")) != -1) { DispatchKeyValue(entity, "targetname", buffer); if (strcmp(buffer, "push_spawn1") == 0 || strcmp(buffer, "push_spawn2") == 0) AcceptEntityInput(entity, "Kill"); } }
g_sMapActivate - вписать карту(ы), как указано в примере.