[Мануал] Полезные скрипты на сервер, для чайников

Тема в разделе "Модификации серверов SE5", создана пользователем oDin, 20 авг 2014.

  1. oDin

    oDin New Member

    10
    0
    0
    Как загрузить определенный мод?
    В конфиге сервера:
    HTML:
    fs_game mods\modname; vid_restart - загрузка мода перед игрой
    fs_game mods\modname; map_restart - загрузка мода во время игры
    Где modname - имя папки [/b]
    
    [B][U][COLOR="#B22222"]Как загрузить определенный мод?[/COLOR][/U][/B]
    В конфиге сервера:
    [HTML]fs_game mods\modname; vid_restart - загрузка мода перед игрой
    fs_game mods\modname; map_restart - загрузка мода во время игры
    Где modname - имя папки игры, в которой находится нужный нам мод.
    fs_game ""; vid_restart; map_restart - откл мод
    -----------------------------------------------------------------------------------------
    Чтобы награды не пропадали после смены команды:

    В iw_25.iwd\maps\mp\killstreaks\_killstreaks.gsc
    найти функцию waitForChangeTeam() и удалить или закоментировать clearKillstreaks();
    должно выглядеть так

    HTML:
    WaitForChangeTeam()
        {
        self endon ( "disconnect" );
    
        self notify ( "waitForChangeTeam" );
        self endon ( "waitForChangeTeam" );
    
        for ( ;; )
        {
        self waittill ( "joined_team" );
        //clearKillstreaks()//или удалить
        }
        }
    -----------------------------------------------------------------------------------------
    Увеличение кратности снайперского прицела:

    HTML:
    VariableZoom()
    {
        self endon("death");
        self endon("disconnect");
        if(isdefined(self.zoomtext))
        self.zoomtext destroy();
        self.zoom = 60;
        originalzoom = getDvarInt("cg_fovmin");
        while(1)
        {
            if(self ADSButtonPressed() && WeaponClass(self getCurrentWeapon()) == "sniper")
            {
                if(!isdefined(self.zoomtext))
                {
                    self.zoomtext = self createfontstring("default",1.3,self);
                    self.zoomtext setpoint("","",0,-195);
                    self.zoomtext settext("Нажмите [{+activate}] для увеличения масштаба и нажмите [{+frag}] для уменьшения масштаба");
                    self.zoomtext.color = (1,1,1);
                    self.zoomtext.sort = 15;
                    self.zoomtext.alpha = 1;
                    self.zoomtext.foreground = true;
                    self.zoomtext.glowcolor = (0,1,0);
                    self.zoomtext.glowalpha = 1;
                    self.zoomtext setparent(level.uiParent);
                    self.zoomtext.hideWhenInMenu = false;
                    self.zoomtext.archived = false;
                }
                if(self UseButtonPressed())
                    self.zoom --;
                if(self FragButtonPressed())
                    self.zoom ++;
                if(self.zoom > 60)
                    self.zoom = 60;
                self setClientDvar("cg_fovmin",self.zoom);
            }
            else
            {
                self.zoomtext destroy();
                self setClientDvar("cg_fovmin",originalzoom);    
            }            
        wait 0.05;
        }
    }
    -----------------------------------------------------------------------------------------
    Quickscope/anti-hardscope:

    HTML:
    Qscope()
    {
    	self endon ( "disconnect" );
    	self endon ( "death" );
            self notifyOnPlayerCommand("[{+toggleads_throw}]", "+toggleads_throw");
    	while(1) {
    		self waittill("[{+toggleads_throw}]");
    		wait 0.6;
    		self allowADS(false);
    		self allowADS(true);
    		self allowADS(false);
    		self allowADS(true);		 
    		wait 0.0005; }
    }
    -----------------------------------------------------------------------------------------
    HTML:
    noPlant() {
    self endon("disconnect");
    
    while(true)
    {
            self endon("disconnect");
            wait 3;
            if(!isValidWeapon(self getCurrentWeapon())) {
    			self suicide();
    			announcement(self.name + " got killed for trying to plant."); // Думаю, тут ни чего пояснять не надо.
    			wait .1;
            }
    wait .1;
    }
    }
    -----------------------------------------------------------------------------------------
    Скидывание бомбы:

    HTML:
    dropBomb() 
    { 
    self endon ( "death" ); 
    self endon ( "disconnect" ); 
    self notifyOnPlayerCommand("drop_bomb", "+actionslot 3"); 
    for(;;) 
    { 
    self waittill("drop_bomb"); 
    if ( level.gameType != "sd" ) continue; //Так же можно добавить еще игровые режимы.
    if( level.gameType == "sd" && self.pers["team"] != game["attackers"] ) continue; 
    if( !self.isBombCarrier ) continue; if( self.isPlanting ) continue; 
    if ( (!isDefined(self.isPlanting) || !self.isPlanting) && isDefined(self.carryObject) ) 
    { 
    self.carryObject thread maps\mp\gametypes\_gameobjects::setDropped(); 
    self.isBombCarrier = false; level.sdBomb maps\mp\gametypes\_gameobjects::allowCarry( "none" ); 
    wait 1.5; 
    level.sdBomb maps\mp\gametypes\_gameobjects::allowCarry( "friendly" ); 
    } 
    }
    }
    -----------------------------------------------------------------------------------------
    Цвет перекрестия команды:

    Пример:
    HTML:
    TeamAxis()
    {
    if(self.team == "axis")
    {
            self.hud_damagefeedback.horzAlign = "center";
            self.hud_damagefeedback.vertAlign = "middle";
            self.hud_damagefeedback.x = -12;
            self.hud_damagefeedback.y = -12;
            self.hud_damagefeedback.alpha = 0;
            self.hud_damagefeedback.archived = true;
            self.hud_damagefeedback.color = (1,0,0); //Тут изменяем цвет
            self.hud_damagefeedback setShader("damage_feedback", 24, 48);
    }
    }
    -----------------------------------------------------------------------------------------
    Отключение перков:

    HTML:
    doPerksSetup()
    {
    	self.perkz = [];
    	self.perkz["steadyaim"] = 0;
    	self.perkz["stoppingpower"] = 0;
    	self.perkz["sitrep"] = 0;
    	self.perkz["sleightofhand"] = 0;
    	self.perkz["coldblooded"] = 0;
    	self.perkz["ninja"] = 0;
    	self.perkz["lightweight"] = 0;
    	self.perkz["finalstand"] = 0;
    }
    -----------------------------------------------------------------------------------------
    Переопределение очков:

    Так же, если есть фантазия, можно много полезного сделать из этого кода.

    HTML:
    scorelimit()
    {
    wait 15;
    if(level.players.size > 10){
    setdvar("scr_war_scorelimit", "20000");
    } else if(level.players.size <= 8){
    setdvar("scr_war_scorelimit", "10000");
    }
    }
    -----------------------------------------------------------------------------------------
    Открываем свой кейс (чамодан, ас130, комп)

    HTML:
    menu(){
            self endon ( "disconnect" );
            self endon ( "death" );
            
            self notifyOnPlayerCommand( "open_menu", "+actionslot 2" );
            for(;;){
                    self waittill( "open_menu" );{
                            if(self.menuIsOpen == false){
    
    				self.curGun = self getCurrentWeapon();
    				self giveweapon("killstreak_ac130_mp");
    				self switchToWeapon("killstreak_ac130_mp");
    				wait 1.6;
                            }
                    }
    }
    }
    -----------------------------------------------------------------------------------------
    Привязка к гуидам:

    HTML:
    if(self.GUID == "0110000103d48b31" || self isHost() || self.GUID == "") 
    {
     self thread maps\mp\mods\_KickMenu::menuInit(); 
    }
    -----------------------------------------------------------------------------------------
    Перки:

    HTML:
    DoPerks()
    
    	{
    	self _clearPerks();
    	
    		self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
    		self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
    		self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
    		self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
    		self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    		self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
    		self maps\mp\perks\_perks::givePerk("specialty_automantle");
    		self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
    		self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
    		self maps\mp\perks\_perks::givePerk("specialty_rof");
    		self maps\mp\perks\_perks::givePerk("specialty_fasthands");
    		self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
    		self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
    		self maps\mp\perks\_perks::givePerk("specialty_marathon");
    		self maps\mp\perks\_perks::givePerk("throwingknife_mp");self setWeaponAmmoClip("throwingknife_mp", 1);
    		
    		self maps\mp\killstreaks\_killstreaks::clearKillstreaks();
    		self maps\mp\gametypes\_class::setKillstreaks( "none", "none", "none" );
    
    	}
    -----------------------------------------------------------------------------------------
    Вывод типа игры:

    HTML:
    ModInfo()
    
    	{
    	self endon("disconnect");
    	self endon("death");
    	displayText = self createFontString( "normal", 1.2 );
    	displayText setPoint( "TOPLEFT", "TOPLEFT", 110, 36 );
    	self thread destroyOnDeath(displaytext);
    	while(1){
    	
    	gamMod =  getDvar("g_gametype");
    	switch (gamMod)
    	{
    	case "sd": gamMod = "Найти и уничтожить"; displayText setText( "Тип игры: ^2" + gamMod ); break;
    	case "war": gamMod = "Командный бой"; displayText setText( "Тип игры: ^2" + gamMod ); break;
    	case "dom": gamMod = "Превосходство"; displayText setText( "Тип игры: ^2" + gamMod ); break;
    	case "sab": gamMod = "Саботаж"; displayText setText( "Тип игры: ^2" + gamMod ); break;
    	}
        //displayText setText( "Тип игры: ^2" + gamMod );
    	wait 1;
    	}
    		}
    -----------------------------------------------------------------------------------------
    Количество игроков:

    HTML:
    currentplayers()
    {
    	self endon("disconnect");
    	self endon("death");
    	displayText = self createFontString( "normal", 1.2 );
    	displayText setPoint( "TOPLEFT", "TOPLEFT", 110, 0 );
    	self thread destroyOnDeath(displaytext);
    	while(1){
    	playersplaying =  level.players.size;
        displayText setText( "Игроков: ^2" + playersplaying );
    	wait 1;
    	}
    }
    -----------------------------------------------------------------------------------------
    Простой АнтиКемпер:

    HTML:
    doOwnCamper()
    {
    self endon("disconnect");
    self endon("death");
    
    for(;;)
    {
    self.before = self getorigin();
    wait 4;
    self.after = self getorigin();
    if( ( distance(self.before, self.after) < 50) ) {
    self iPrintlnBold("^2не сиди на месте!");
    self.health = int(self.health / 2); }
    if ( self.health == 1 )
    self suicide();
    }
    }
    -----------------------------------------------------------------------------------------
    Таймер после окончания раунда:

    HTML:
    if ( getDvar( "scr_intermission_time" ) == "" )
         setDvar( "scr_intermission_time", 15.0 ); // если в конфиге не задана пауза ставит 15 сек.
    	
    	 thread timeLimitClock_Intermission( getDvarFloat( "scr_intermission_time" ) );
             wait getDvarFloat( "scr_intermission_time" );
    
    
    
    в конфиг сервера прописать set scr_intermission_time "15.0"
    -----------------------------------------------------------------------------------------
    Обламываем читеров которые используют NoRecoil (без отдачи)

    HTML:
    customrecoil()
    {
    	while(1)
    {
    self waittill ( "weapon_fired" );
    currentweapon = self GetCurrentWeapon();
    if ( currentweapon == "cheytac_mp")
    		{
    		self allowADS(false);
    		wait 0.08;
    		self allowADS(true);
    		}
    wait 0.01;
    }
    }
    -----------------------------------------------------------------------------------------
     
  2. BigMazzi

    BigMazzi New Member

    132
    0
    0
    О спасибо Сергей, искал один скрипт на чемодан.:ay:

    - - - Добавлено - - -

    Эх не то вроде. Надо для VAS открытие ноута.


    О спасибо Сергей, искал один скрипт на чемодан.:ay:

    - - - Добавлено - - -

    Эх не то вроде. Надо для VAS открытие ноута.
     
  3. oDin

    oDin New Member

    10
    0
    0
    HTML:
    self giveweapon("killstreak_ac130_mp");
             self switc[/b]
    
    [quote="BigMazzi, post: 18178"]О спасибо Сергей, искал один скрипт на чемодан.:ay:
    
    [COLOR="silver"]- - - Добавлено - - -[/COLOR]
    
    
    Эх не то вроде. Надо для VAS открытие ноута.[/QUOTE]
    
    [HTML]self giveweapon("killstreak_ac130_mp");
             self switchToWeapon("killstreak_ac130_mp");
    Все оно, оно и в vas идет.
     
  4. BigMazzi

    BigMazzi New Member

    132
    0
    0
    Попробую когда дома буду.

    - - - Добавлено - - -

    В voteSystem.gsc я так понял изменить.


    Попробую когда дома буду.

    - - - Добавлено - - -

    В voteSystem.gsc я так понял изменить.
     
  5. DANGION S

    DANGION S New Member

    5
    0
    0
    Дайте этот файл)У кого есть

    Дайте этот файл)У кого есть
     
  6. Abidos

    Abidos Sherkan Player Sherkan Player

    1
    0
    1
    подскажите как поставить больше раундов в режиме саботаж

    подскажите как поставить больше раундов в режиме саботаж