Случайная стартовая карта

garry

blink-182
Сообщения
122
Реакции
111
Можно ли сделать случайно выбранную сервером стартовую карту?
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Как вариант занести все карты в массив, из массива выбрать карту, переменную в значение true, дабы каждую смену карты не выбиралась карта
 

Vaio

Участник
Сообщения
625
Реакции
215
Если есть доступ к сроке запуска (сервер не на хостинге), то можно такое написать на bash (рандомно выбирать сроку из файла mapcycle и занести в переменную map, затем в параметрах srcds_run написать +map ${map}).
 

Impulse72

Участник
Сообщения
244
Реакции
163
The End Is Near..., зачем переменную если есть событие server_spawn?
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Impulse72
Протесть
PHP:
#include <sourcemod>

public OnPluginStart()
{
	HookEvent("server_spawn", Event_OnServerSpawn);

	RegConsoleCmd("test", CallBack);
}

public Event_OnServerSpawn(Handle:event, const String:name[], bool:silent)
{
	LogError("Server Spawn (event)");
}

public Action:CallBack(client, args)
{
	LogError("Command Enter");

	ServerCommand("changelevel de_dust2");
	return Plugin_Handled;
}
 

Impulse72

Участник
Сообщения
244
Реакции
163
Зачем тогда событие, если его нельзя отловить?
 

garry

blink-182
Сообщения
122
Реакции
111
А есть что-то типо включение на той карте, на которой упал сервер?
 

Impulse72

Участник
Сообщения
244
Реакции
163
garry, где-то видел тут. Поищи.

UPD

The End Is Near...,

PHP:
#include <sourcemod>

public OnPluginStart()
{
    HookEvent("round_start", Event_OnServerSpawn);

}

public Event_OnServerSpawn(Handle:event, const String:name[], bool:silent)
{
	ServerCommand("changelevel de_dust");
	UnhookEvent("round_start", Event_OnServerSpawn);
}
 

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
garry, где-то видел тут. Поищи.

UPD

The End Is Near...,

PHP:
#include <sourcemod>

public OnPluginStart()
{
    HookEvent("round_start", Event_OnServerSpawn);

}

public Event_OnServerSpawn(Handle:event, const String:name[], bool:silent)
{
	ServerCommand("changelevel de_dust");
	UnhookEvent("round_start", Event_OnServerSpawn);
}


Код бредовый. Получается цикл. Каждый раз при начале раунда карта будет меняться на de_dust.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
wanted241, OnPluginStart выполняется только при запуске сервера либо при обнаружении изменения плагина. При смене карты он не выполняется, если плагин не изменялся. Вроде так
 

Impulse72

Участник
Сообщения
244
Реакции
163
Код бредовый. Получается цикл. Каждый раз при начале раунда карта будет меняться на de_dust.

Жалко людей, что у тебя плагины заказывают. Преде чем умничать надо мат. часть повторять. Как так можно код из 3 строчек прочитать я хз, научите.

UnhookEvent
Syntax:
native UnhookEvent(const String:name[], EventHook:callback, EventHookMode:mode=EventHookMode_Post);

Usage:
name Name of event.
callback An EventHook function pointer.
mode Optional EventHookMode determining the type of hook.

Notes:
Removes a hook for when a game event is fired.

Return:
No return.

Version Added:
1.0.0.1946

On error / Errors:
Invalid callback function or no active hook for specified event.
 

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
Жалко людей, что у тебя плагины заказывают. Преде чем умничать надо мат. часть повторять. Как так можно код из 3 строчек прочитать я хз, научите.

Ты не умничай особо тут. Ошибся - бывает. Получше тебя SourceMod знаю. Да и вообще, я это уже прочитал. Долго ты искал инфу.
 

Impulse72

Участник
Сообщения
244
Реакции
163
Ты не умничай особо тут.
http://m.makeyourmeme.ru/3/35/1052598.jpg

Получше тебя SourceMod знаю

Всегда забавляли людишки, которые по момему нику определяют инфу. В данном слдучае о том, на сколько я знаю SourceMod. Пошла кстати инфа, что плагины пишутся не на SourceMode'e, а на SourcePawn'е.

Да и вообще, я это уже прочитал. Долго ты искал инфу.
Опять радуешь способностям Ванги. Я как увидел ответ, так ответил сам. А вкладки со всеми евентами у меня открыты и заблокированы от закрытия уже очень давно, так что я ничего не искал. Снова промах.
 
  • Мне нравится
Реакции: Vaio

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
http://m.makeyourmeme.ru/3/35/1052598.jpg



Всегда забавляли людишки, которые по момему нику определяют инфу. В данном слдучае о том, на сколько я знаю SourceMod. Пошла кстати инфа, что плагины пишутся не на SourceMode'e, а на SourcePawn'е.


Опять радуешь способностям Ванги. Я как увидел ответ, так ответил сам. А вкладки со всеми евентами у меня открыты и заблокированы от закрытия уже очень давно, так что я ничего не искал. Снова промах.


Спорить с тобой не буду. Смысла не вижу. Лучше промолчу.

А по делу. Достаточно просто в OnPluginStart() менять карту. И не надо никаких других событий задевать.
 

Impulse72

Участник
Сообщения
244
Реакции
163
Спорить с тобой не буду. Смысла не вижу. Лучше промолчу.

А по делу. Достаточно просто в OnPluginStart() менять карту. И не надо никаких других событий задевать.

Дружище, это уже третий фейл. Завязывай. За тебя скомпилил, проверь.
 

Вложения

  • Untitled Script.smx
    1.7 КБ · Просмотры: 7

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
C-подобный:
#include <sourcemod>

public OnPluginStart()
{
   new g_mapFileSerial = -1;
   new arraySize = ByteCountToCells(33);
   new Handle:g_MapList = CreateArray(arraySize);
   if (ReadMapList(g_MapList, g_mapFileSerial, "default", MAPLIST_FLAG_CLEARARRAY|MAPLIST_FLAG_MAPSFOLDER) != INVALID_HANDLE)
   {
		if (g_mapFileSerial == -1)
		{
			LogError("Unable to create a valid map list.");
		}
                decl String:sMap[256];
                GetArrayString(g_MapList, GetRandomInt(0, GetArraySize(g_MapList)-1), sMap, sizeof(sMap));
                ForceChangeLevel(sMap, "Random map!");
   }
}
 
Последнее редактирование:

Impulse72

Участник
Сообщения
244
Реакции
163
C-подобный:
#include <sourcemod>

public OnPluginStart()
{
   new g_mapFileSerial = -1;
   new arraySize = ByteCountToCells(33);
   new Handle:g_MapList = CreateArray(arraySize);
   if (ReadMapList(g_MapList, g_mapFileSerial, "default", MAPLIST_FLAG_CLEARARRAY|MAPLIST_FLAG_MAPSFOLDER) != INVALID_HANDLE)
   {
		if (g_mapFileSerial == -1)
		{
			LogError("Unable to create a valid map list.");
		}
                decl String:sMap[256];
                GetArrayString(g_MapList, GetRandomInt(0, GetArraySize(g_MapList)-1), sMap, sizeof(sMap));
                ServerCommand("changelevel \"%s\"");
   }
}

ServerCommand("changelevel \"%s\""); надо переменную в конце дописать, не?

Что если я скажу тебе, что даже если ты вот этот плагин
C-подобный:
public OnPluginStart()
{
    ServerCommand("changelevel de_dust");
}
запустишь, то будет фейл? Я думал человек, который идеально знает SourceMod, должен знать, что до того как сервер не стартанул карту на нем менять нельзя. Для полного доминирования выложу скрин.
 

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
C-подобный:
#include <sourcemod>

public OnPluginStart()
{
   new g_mapFileSerial = -1;
   new arraySize = ByteCountToCells(33);
   new Handle:g_MapList = CreateArray(arraySize);
   if (ReadMapList(g_MapList, g_mapFileSerial, "default", MAPLIST_FLAG_CLEARARRAY|MAPLIST_FLAG_MAPSFOLDER) != INVALID_HANDLE)
   {
		if (g_mapFileSerial == -1)
		{
			LogError("Unable to create a valid map list.");
		}
                decl String:sMap[256];
                GetArrayString(g_MapList, GetRandomInt(0, GetArraySize(g_MapList)-1), sMap, sizeof(sMap));
                ForceChangeLevel(sMap, "Random map!");
   }
}
 
Сверху Снизу