Horus | Date: Friday, 25-12-2020, 4:52 PM | Message # 1 |
Generalissimo
Group: Administrators
Messages: 14
Status: Offline
| Оригинален урок: Alex_Gordon Изходен код: Spirit of Half-Life
И така, представете си ситуацията: правите мод за GoldSRC. Във вашия мод има тонове настройки както и шейдъри, подробни текстури, светещи, размазване в движение и т.н. Но в мода има една тъмна карта, на която всички тези ефекти са безполезни и само консумират памет. Как мога да ги деактивирам? Да се покаже съобщение като „Потребител, въведете това и онова в конзолата!“? Но някои потребители са толкова зле, че не знаят какво е конзола. Оставянето на тези ефекти върху тази карта = по-ниска производителност безплатно. Или може би се откажете от мода и отидете да четете Шекспир? Хм, добър вариант, но модът също е нещо добро. И така, системата MapConfig от SoHL ни идва на помощ. Той е подреден по следния начин: в папката mod се създава папка mapconfigи създава cfg файлове, съответстващи на имената на картите. При превключване от предишната карта към посочения cfg се изпълнява и се изпълняват всички команди, записани в нея. Такава система беше не само в SoHL, но и в HLFX. Сега как да го приложим. На сървъра отворете файла client.cpp и слезете до функцията void ParmsChangeLevel (void) . Той е отговорен за това, което се случва, когато потребителят премине през trigger_changelevel. SoHL има следния код:
Code if(!(pEntity->v.flags & FL_FAKECLIENT)) // Check that client isn't a bot, for future using { // load mapname.cfg char szCommand[128]; sprintf(szCommand, "exec mapconfig/%s.cfg\n", STRING(gpGlobals->mapname)); CLIENT_COMMAND(pEntity, szCommand); }
Но първо, той е във функцията ClientConnect и не ни устройва. И второ, ако го натиснете във функцията void ParmsChangeLevel (void) без промени, компилаторът ще генерира грешка. И така, нека го трансформираме в следната форма:
Code // load mapname.cfg char szCommand[128]; sprintf(szCommand, "exec mapconfig/%s.cfg\n", STRING(gpGlobals->mapname)); SERVER_COMMAND(szCommand);
И го вмъкнете в void ParmsChangeLevel (void) . Ние компилираме, създаваме конфигурации и се радваме!
https://u.to/n5GjGg
|
|
| |