Как да намалим лага (обяснение с картинки) Дълъг урок!

Предишната тема Следващата тема Go down

Как да намалим лага (обяснение с картинки) Дълъг урок!

Писане by ThuG LiFe on Пон Май 30, 2011 9:31 am

Взето от: http://cs-bg.info/
Написал: The Rated R Superstar

Урокът се състои от следното:


  • Как да намалим ping-a, без да инсталираме нищо.
  • Как да намалим ping-a с инсталиране на Metamod и Ping Booster-и
  • Правене на сървър през конзола (драстично се намаля лагът).
  • Кое влияе най-много върху това, колко лаг ще има в сървъра.
    1. Вируси, червеи и т.н.
    - Как да ги премахнем?
    2. Програми, които товарят вашата оперативна памет и процесор - Skype, InterNet Browsers, Torrent програми...
    3. Поддръжка на компютъра.
    - Дефрагментиране и "почистване" на дисковете.
    - Неизползващи се програми.
    4. Плъгини, модули и т.н.
  • Rate настройки.
  • Премахване на ненужната информация от плъгините.
  • Полезни линкове
___________________________________________________________________________

1. Как да намалим лага бързо и лесно без инсталиране на нищо?

Това
става чрез Task Menager-а на Windows. Той се активира като задържите
CTRL+ALT+DEL (контрол+алт+делет). Ето ви и нагледен вариант как става
това:



2. Намаляне на лага с инсталация на Metamod и Boosters:

Препоръчвам ви да използвате Metamod-P. Можете да го изтеглите от сайта
Download: Link

Добавяне на Booster-и:

Има няколко вида буустъри:
1. WINHLBooster -- Link
2. Ping Booster -- Link
3. Booster Lite -- Link

Във всеки един от тях има упътване за инсталация.

3. Правене на сървър през конзола

Ето, Иво специално е направил тема за това:
Link

4. Кое влияе най-много върху това, колко лаг ще има в сървъра Ви

1. Вируси:

Що е вирус: Общи сведения за компютърните вируси:

Терминът “вирус”
идва от латински, означава “отровен сок” и е заимстван от биологията.
Там с този термин се обозначават микроорганизми, които се прилепват по
носителите на генния материал на живите клетки-стопани и го използват за
своето размножаване. След определено време вирусът се активизира и
болестта избухва.

Вирусологът Уинфрид Глейснър дава следното
определение: “Под компютърен вирус… се разбира последователност от
команди, чието изпълнение предизвиква репродуциране на копие или мутация
от своя код, който се намира в определена област от паметта, и което не
съдържа тази последователност. Този процес се нарича инфекция.
Поредицата от команди може освен това минимално изискване за
самовъзпроизводимост да активира и произволни други функции.”

Предполага
се, че вирусът не е самостоятелна изпълнима програма. Поредицата от
команди може да е написана на Асемблер, език от високо ниво, macro език
или смесена форма, от което зависи и платформената съвместимост на
вируса. Под копие се разбира точното възпроизвеждане на първоначалната
поредица. Евентуална мутация може да съдържа възпроизводимостта, но може
и да я отличава от оригинала. Областта от паметта може да бъде част от
съдържанието на изпълним файл, респективно програма. Тази област се
намира на външен носител, като дискета, твърд диск, CD и т.н., но може
да бъде и част от оперативната памет на компютъра.

Възпроизводимостта предполага, че вирусът може да открива дали гореспоменатата област от паметта съдържа щам или самия вирус.

Функциите
на вируса и това доколко той може да нанася щети зависи единствено от
софтуерните и/или хардуерните ограничения на средата, в която работи.
източник ggbit.info

Как да се предпазим от тях:

Съществуват доста видове антивирусни програми.
* Avast
* Nod32
* Norton AntiVirus

---> Тези са едни от най-използваните. От тях аз ви препоръчвам
Avast

Хубаво е поне веднъж в месеца да сканирате своя компютър за Вируси. Аз доста често използвам Eset Online AntiVirus scaner. На мен тя ми върши идеална работа. Всъщност вирусите може би най-много товарят машината ви.

2. Програми, които товарят вашите оперативна памет и процесор (Skype, InterNet Browsers, Torrent програми...)

Когато
сървърът ви е пуснат, гледайте да не държите програми, които товарят
компютъра ви пуснати, поради простата причина, че сървърът се
затормозява, latency-то се качва и FPS-то пада... Ако много държите да
си чатите с някого по Скайп, изтеглете си по-старичка версия, защото
по-новите "хабят" от процесора ви и се предизвиква повече лаг. Аз ви
препоръчвам да използвате Skype 3.6 или 3.2

3.6
3.2

3. Поддръжка на компютъра

Дефрагментирайте твърдия си диск по-честичко (на 3-4 седмици)
Какво означава това:



Когато
се съхранява някакъв файл на твърдия диск, системата може да се опита
да го постави на място в диска, което е много малко. Ако това се случи,
системата ще раздели файла на части и ще го сложи на няколко места по
твърдия диск. Този процес се нарича "фрагментиране на файл".


Когато отворите такъв файл, системата трябва да вземе тези части на
файла от различните места по твърдия диск и да го сглоби. Представете си
грамофонна плоча, на която е записана част от песен в началото, края на
песента в средата и и друга част от песента накрая. Песента определено
няма да звучи добре.

Процесът на дефрагментация се състои в
събирането на частите на фрагментирания файл и поставянето им заедно на
твърдия диск. Тогава, за да отвори системата файла, е необходимо да
достъпи само едно място на твърдия диск. Дефрагментацията на твърдия
диск подобрява бързодействието на дисковите операции в компютъра и от
там на компютъра като цяло.

Трябва да се има впредвид, че твърдите дискове и CDROM устройствата са механични и са най-бавните компоненти в компютъра.
Източник http://www.pcservbg.com

Ако не сте извършвали тази процедура отдавна или никога не сте го правили, може да отнеме дори и 24 часа.

Как да дефрагментираме твърдия си диск:

Отидете в My Computer/Моя компютър > цъкнете десен бутон на диска, който ще дефрагментирате > Properties/Tools/Defragment Now > Горе избирате диска и натискате Defragment

-2. Почистване на диска:

Отново Десен бутон на диска, който ще почистите > Properties/Tools/Check Now
Има редчета за отметки. Сложете тикчета и на двете и после натиснете Старт

P.S Тези процедури не са толкова от голямо значение за намаляването на лага. Те просто "ъпгрейдват" вашето PC.

3. Почистване от ненужните програми
Това
е доста проста процедура. Просто дайте Start-Control Panel-Add and
Remove Programs. Ще започне зареждане, което отнема около 10-15 секунди,
и ще ви се покажат всичките ви програми. Разглеждате и ако има някоя,
която не я използвате или вече не ви служи за нищо, просто я премахнете с
бутончето Remove.

4. Плъгини, модули и други..


  • За да избегнете бъгове и недоволства, използвайте най-новата версия на AMXX MOD - Download AMX Mod X 1.8.1
  • Изключвайте модулите, които не използвате.
  • Ако сте решили да махнете плъгин, не го махайте само от plugins.ini, а и от папката plugins. Също така махайте и неговите компоненти - модели, звуци и т.н.

  • Не ви препоръчвам да слагате анти-чийт системи! Освен, че черпят от
    ресурсите на вашият компютър, забавят и работата на сървъра ви.
  • Махайте НЕНУЖНИТЕ коментари от плъгините. Ако не ви е ясно, го пропуснете..
  • Използвайте командата sv_downloadurl - играчите ще свалят файловете по-бързо от вас. Питате се с какво ще ви помогне това да намалите лага?
    -
    Когато играч се свързва към сървъра и тегли някакви файлове, то той
    веднага ще ви намали скоростта и ще докара допълнителен лаг на сървъра.

  • Няма нужда да правите сървъра си с много слотове (места). Не за друго, а
    защото те също хабят ресурси. Колкото по-малко, толкова по-добре..

5. Rate настройки

Това са настройки, които за всеки компютър и интернет са различни.

Отворете server.cfg, който се намира в < gamedir >/cstrike . На нов ред добавете:

Код: Избери целия кодfps_max 101
fps_modem 101
cl_rate 2500
cl_updaterate 100 (това са rate настройки, които са подходящи за всички).
А сега нека се заемем с оптималните за вашата машина и Интернет. За целта:

1. Свалете си програмата Half-Life Server Rates (в по-долу посочения линк)
Нужно
е само да въведете скоростта на вашия процесор, обем RAM памет, за
колко играчи е сървърът ви, upload скорост в килобит/секунда.

Download: Link
____
Знам, че има доста такива теми, но аз реших да направя една по-обширна. Надявам се да съм ви бил полезен.

6. Премахване на ненужната информация от плъгините.


Здравейте. Това е поредната тема, с която искам да ви помогна, за да намалите лага в сървъра си. Това ще стане като премахнем излишната информация по лъгините. Питате се как става това?! Ами сега ще разберете.

------------------------------------------------------------------------

1. Какво ще рече излишна информация?

Това
са всички писания (така да ги наречем) по плъгините, които натоварват
сървъра. Като например автор, версия, пояснение.... За да олекотим
работата на сървъра, е препоръчително да махнем тази информация. Как ще
го направим? Вж. Стъпка 2!

2. Премахване на информацията от .sma файла.

Ще ви дам за пример Admin Chatcolor плъгина. След като сте го изтеглили и разархивирали отворете .sma файла с някаква текстообработваща програма. (Notepad/++ ; Word ; WordPad...)

Ето го и самия файл:

/* * * * * * * * * * * * * * * * * * * * * * * *
* Admin_chatcolor, by BlueRaja (AMX Mod X) *
* *
* Special thanks to Damaged Soul *
* - not just for helping me when I needed it, *
* but for putting up with all my shit ^_^ *
* *
*************I hate asterisks.*****************
* *
* (c) Copyright 2005 *
* This file is provided as is (no warranties) *
* * * * * * * * * * * * * * * * * * * * * * * */

//Use !T for team-color (sorry, can't use red when on CT, and vice-versa)
//!G for green, and !W for normal (it's more of a tan than a white...)



//Includes
#include
#include

//Defines
#if defined ACCESS_LEVEL
#undef ACCESS_LEVEL
#endif
//#define ACCESS_LEVEL ADMIN_CHAT //UNCOMMENT THIS LINE to allow only admins (with ADMIN_CHAT) to use colors

//Messages
new gmsgSayText

//Globals


//Initialization
public plugin_init()
{
gmsgSayText = get_user_msgid("SayText")
register_clcmd("say", "CatchSay")
register_clcmd("say_team", "CatchSay")
register_plugin("Admin Chat Color","1.0","BlueRaja")
return PLUGIN_CONTINUE
}

//Functions
public CatchSay(id)
{
#if defined ACCESS_LEVEL
if( !(get_user_flags(id)&ACCESS_LEVEL) ) return PLUGIN_CONTINUE
#endif

new message[129]
read_argv(1,message,128)

if ( containi(message,"!t")==-1 &&
containi(message,"!w")==-1 &&
containi(message,"!g")==-1 )
{
return PLUGIN_CONTINUE
}

new szCommand[9]
read_argv(0,szCommand,Cool

new CsTeams:team = cs_get_user_team(id)
new isAlive = is_user_alive(id)

new playerList[32]//players to send message to
new playerCount

new message_to_send[129] = "^x01"

new szFlags[4] = ""
if(isAlive){
add(szFlags,3,"a")//Only alive players
} else {
add(szFlags,3,"b")//Only dead players
add(message_to_send,128,"*DEAD*")
}
add(szFlags,3,"c")//skip bots

if(equal(szCommand,"say_team")) {
add(szFlags,3,"e")//Match with passed teamname
if(team==CS_TEAM_T){
get_players(playerList,playerCount,szFlags,"TERRORIST")
add(message_to_send,128,"(Terrorist) ^x03")
} else if(team==CS_TEAM_CT) {
get_players(playerList,playerCount,szFlags,"CT")
add(message_to_send,128,"(Counter-terrorist) ^x03")
} else { //assume Spectator
get_players(playerList,playerCount,szFlags,"SPECTATOR")
add(message_to_send,128,"(Spectator) ^x03")
}
} else { //assume "say"
get_players(playerList,playerCount,szFlags)
if(isAlive)
{
add(message_to_send,128,"^x03")
} else {
add(message_to_send,128," ^x03")
}
}

new username[129]
get_user_name(id,username,128)
add(message_to_send,128,username)
add(message_to_send,128,"^x01 : ")

add( message_to_send,128,message,(128-strlen(message_to_send)) )

while(containi(message_to_send,"!t") != -1)
{
replace(message_to_send,128,"!T","^x03")
replace(message_to_send,128,"!t","^x03")
}
while(containi(message_to_send,"!g") != -1)
{
replace(message_to_send,128,"!G","^x04")
replace(message_to_send,128,"!g","^x04")
}
while(containi(message_to_send,"!w") != -1)
{
replace(message_to_send,128,"!W","^x01")
replace(message_to_send,128,"!w","^x01")
}


for(new i=0; i {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, playerList[i])
write_byte(playerList[i])
write_string(message_to_send)
message_end()
}

return PLUGIN_HANDLED
}

Това, което е в червено е ненужно. Следователно го изтрийте! И ще се получи:

Код: Избери целия код//Includes
#include
#include

//Defines
#if defined ACCESS_LEVEL
#undef ACCESS_LEVEL
#endif
//#define ACCESS_LEVEL ADMIN_CHAT //UNCOMMENT THIS LINE to allow only admins (with ADMIN_CHAT) to use colors

//Messages
new gmsgSayText

//Globals


//Initialization
public plugin_init()
{
gmsgSayText = get_user_msgid("SayText")
register_clcmd("say", "CatchSay")
register_clcmd("say_team", "CatchSay")
register_plugin("Admin Chat Color","1.0","BlueRaja")
return PLUGIN_CONTINUE
}

//Functions
public CatchSay(id)
{
#if defined ACCESS_LEVEL
if( !(get_user_flags(id)&ACCESS_LEVEL) ) return PLUGIN_CONTINUE
#endif

new message[129]
read_argv(1,message,128)

if ( containi(message,"!t")==-1 &&
containi(message,"!w")==-1 &&
containi(message,"!g")==-1 )
{
return PLUGIN_CONTINUE
}

new szCommand[9]
read_argv(0,szCommand,Cool

new CsTeams:team = cs_get_user_team(id)
new isAlive = is_user_alive(id)

new playerList[32]//players to send message to
new playerCount

new message_to_send[129] = "^x01"

new szFlags[4] = ""
if(isAlive){
add(szFlags,3,"a")//Only alive players
} else {
add(szFlags,3,"b")//Only dead players
add(message_to_send,128,"*DEAD*")
}
add(szFlags,3,"c")//skip bots

if(equal(szCommand,"say_team")) {
add(szFlags,3,"e")//Match with passed teamname
if(team==CS_TEAM_T){
get_players(playerList,playerCount,szFlags,"TERRORIST")
add(message_to_send,128,"(Terrorist) ^x03")
} else if(team==CS_TEAM_CT) {
get_players(playerList,playerCount,szFlags,"CT")
add(message_to_send,128,"(Counter-terrorist) ^x03")
} else { //assume Spectator
get_players(playerList,playerCount,szFlags,"SPECTATOR")
add(message_to_send,128,"(Spectator) ^x03")
}
} else { //assume "say"
get_players(playerList,playerCount,szFlags)
if(isAlive)
{
add(message_to_send,128,"^x03")
} else {
add(message_to_send,128," ^x03")
}
}

new username[129]
get_user_name(id,username,128)
add(message_to_send,128,username)
add(message_to_send,128,"^x01 : ")

add( message_to_send,128,message,(128-strlen(message_to_send)) )

while(containi(message_to_send,"!t") != -1)
{
replace(message_to_send,128,"!T","^x03")
replace(message_to_send,128,"!t","^x03")
}
while(containi(message_to_send,"!g") != -1)
{
replace(message_to_send,128,"!G","^x04")
replace(message_to_send,128,"!g","^x04")
}
while(containi(message_to_send,"!w") != -1)
{
replace(message_to_send,128,"!W","^x01")
replace(message_to_send,128,"!w","^x01")
}


for(new i=0; i {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, playerList[i])
write_byte(playerList[i])
write_string(message_to_send)
message_end()
}

return PLUGIN_HANDLED
}

Ето сега вече излишното е премахнато. За да активирате новите настройки ще трябва да компилирате .sma файла.

Компилация:

За целта ще ви трябва програмата AMXX-Studio, която си върви с всяка инсталация на AMX Mod X.

Първо да я настроим така, че да е готова да компилира .sma файлове.

1. Кликате Tools, след това Settings както е показано на картинката
2. Вляво избирате страница Compiler (виж картинката)
3. В полето Compiler (amxxpc.exe) трябва да укажете пътя до въпросния файл (amxxpc.exe), който се намира в папка cstrike\addons\amxmodx\scripting (виж картинката)
4. Сега в полето Default Output Directory посочвате папката, където да отиват компилираните .amxx файлове. Аз съм го нагласил да ги праща на десктопа.

Приключихме
с настройките. Сега отворете .sma файла на въпросния плъгин, който
искате да редактирате. След като нанесете необходимите промени, от
менюто на програмата изберете Compile -> Compile (виж картинката).

Сега остава само да сложите новия .amxx файл в папка \plugins\ и да си го добавите в plugins.ini

7. Оптимизация на мода.

Гледам
из форума доста модове, които не са оптимизирани и са адски претрупани и
с излишни модели/звуци/плъгини/модули. И за това реших да направя тази
тема. Нека започваме:


За плъгините.


  • Когато
    не използвате даден плъгин не слагайте само ; пред името му в
    plugins.ini, но го трийте и от папката plugin и също така
    моделите/звуците, които вървят с него. За предпочитане е и да гасите
    модулите, които не използва плъгина, защото те хабят много ресурси.

  • Не претоварвайте сървъра си с излишни плъгини (както повечето
    потребители правят). Те не правят сървъра ви по-хубав, ами точно
    обратното- по-натоварен и съответно повече лагва.
  • Не слагайте оптимизирани плъгини (освен ако те не са с оправен бъг), защото те са по-големи и натоварващи

За модовете


  • Избягвайте да слагате модове, които натоварват машината ви ако тя е слаба. (Zombie, predator, GG)
  • Махайте излишната информация по модовете си (вж. по-долу)!
  • За оптимално намаляне на лага използвайте програмата HL Server Rates. Има го и в online вариянт, който според мен е по-удобен. Link
  • След като сте калкулирали рейтовете спрямо вашата машина и интернет ги сложете в cstrike/server.cfg

Премахване на излишната информация
Малко разяснение: Това е цялата информация по .cfg и .ini файловете. Давам ви един пример:

Код: Избери целия код; AMX Mod X plugins

; Admin Base - Always one has to be activated
admin.amxx ; admin base (required for any admin-related)
;admin_sql.amxx ; admin base - SQL version (comment admin.amxx)

; Basic
admincmd.amxx ; basic admin console commands
adminhelp.amxx ; help command for admin console commands
adminslots.amxx ; slot reservation
multilingual.amxx ; Multi-Lingual management

; Menus
menufront.amxx ; front-end for admin menus
cmdmenu.amxx ; command menu (speech, settings)
plmenu.amxx ; players menu (kick, ban, client cmds.)
;telemenu.amxx ; teleport menu (Fun Module required!)
mapsmenu.amxx ; maps menu (vote, changelevel)
pluginmenu.amxx ; Menus for commands/cvars organized by plugin

; Chat / Messages
adminchat.amxx ; console chat commands
antiflood.amxx ; prevent clients from chat-flooding the server
scrollmsg.amxx ; displays a scrolling message
imessage.amxx ; displays information messages
adminvote.amxx ; vote commands

; Map related
nextmap.amxx ; displays next map in mapcycle
mapchooser.amxx ; allows to vote for next map
timeleft.amxx ; displays time left on map

; Configuration
pausecfg.amxx ; allows to pause and unpause some plugins
statscfg.amxx


  • Съвсем спокойно можете да напишете само името_на_плъгина.amxx вместо куп разяснения по него. Те много натоварват сървъра ви.
  • Просто оставете празни plugins.ini и users.ini (освен плъгините и юзерите) [като за идиоти ]
avatar
ThuG LiFe
Админ
Админ

Брой мнения : 363
Точки : 943
Репутация : 0
Join date : 22.05.2011
Местожителство : България, Димитровград

Вижте профила на потребителя http://cstrike.sos4um.com

Върнете се в началото Go down

Предишната тема Следващата тема Върнете се в началото


 
Permissions in this forum:
Не Можете да отговаряте на темите