Results 1 to 7 of 7

Thread: Skin Checker

  1. #1

    Default Skin Checker

    anyway to have it so only stock skins are allowed , maybe on off setting in reborn.cfg?

  2. #2
    Purple Developer Purple Elephant1au's Avatar
    Join Date
    Feb 2012
    Location
    Australia
    Posts
    1,269

    Default

    This for a TDM or OBJ gametype, I have a mod for an obj gametype that checks players skins against a list, then 3 warnings and they are kicked.
    But i could change it to work for TDM matches aswell if you want

    Anyway ,,,, This one will do both
    Just add exec global/skin.scr from dmprecache.scr

    NOTE: If it is an objective match, it will use the spawn event, reason it is different is because you have to respawn to change skins, so it checks every spawn and objective rounds generally arnt that long. Whereas in TDM or FFA, you can stay alive the entire map without changing skins , so it checks every 10 seconds, and if found to have a non stock skin, gives you 30 seconds to die and change skins.

    Has a list at the bottom of allowed skins, just add or take away as you please.
    Uses cvar pe_skinwarnings to set the number of warnings a player gets before kicking them.

    Code:
    main:
    
    if(level.skinrun)
    end
    
    level.skinrun = 1
    
    local.gametype = getcvar "g_gametype"
    
    //If gametype is obj, register spawn event
    if(local.gametype == "4"){
    local.result = registerev "spawn" global/skin.scr::spawn
    }
    else
    {
    thread scan_players
    }    
    
    end
    
    spawn local.player:
    
    if(local.scan)
    end
    
    local.scan = 1
    
    waitthread get_settings
    
    waitframe
    
    //Get name
    local.player.name = netname local.player
    
    if(local.player.warned == NIL)
    {
    local.player.warned = 0
    }
    
    local.player.allowed = 0
    
    //Checks player model against list of stock and/or allowed skins///
    
    for(local.i=1;local.i<=level.allowed.size;local.i++)
    {
         local.allowed_skin = level.allowed[local.i][1] 
          
         if(local.player.model == local.allowed_skin)
         local.player.allowed = 1
         
    } 
      if(local.player.allowed != 1)   
            {
                //Warn Player of their Skin
                local.player.warned++ 
                local.player iprint ("Your Current Skin is not allowed, Please change to a stock skin to play on this server, Warning " + local.player.warned + " of " + level.maxwarnings) 1
                
                    if(local.player.warned >= level.maxwarnings  && local.player.kicking != 1)
                    {                                        
                    thread kickplayer local.player
                    local.player.kicking = 1
                    local.player.warned = 0
                    local.scan = 0
                    waitframe    
                    end            
                     }           
            }                     
    end
    
    scan_players:
    
    while(1)
    {
    
        waitthread get_settings
        
        for(local.i = 1; local.i <= $player.size; local.i++)
        {
            local.player= $player[local.i]
            
            waitframe
            if(local.player != NULL && local.player.dmteam != "spectator" && isAlive(local.player))
            { 
                    
                //Get name
                local.player.name = netname local.player
                
                if(local.player.warned == NIL)
                {
                local.player.warned = 0
                }
                
                local.player.allowed = 0
                
                //Checks player model against list of stock and/or allowed skins///    
                for(local.i=1;local.i<=level.allowed.size;local.i++)
                {
                     local.allowed_skin = level.allowed[local.i][1] 
                      
                     if(local.player.model == local.allowed_skin)
                     local.player.allowed = 1             
                } 
                if(local.player.allowed != 1)   
                    {
                    //Warn Player of their Skin
                    local.player.warned++ 
                    local.player iprint ("Your Current Skin is not allowed, Please change to a stock skin to play on this server, Warning " + local.player.warned + " of " + level.maxwarnings) 1
                    
                    if(local.player.warned >= level.maxwarnings  && local.player.kicking != 1)
                    {                                        
                        thread kickplayer local.player
                        local.player.kicking = 1
                        local.player.warned = 0
                        local.scan = 0
                        waitframe    
                        end            
                    }     
                         wait 30    /// Time allowed for player to change skins and die  
                }  
            }
        }
    wait 10 // Time between scans
    }
    
    end
    
    kickplayer local.player:
        if(local.player != NIL)
        {
            waitframe
            //print messages to console
            stuffsrv ("say Kicking " + local.player.name + " for Non Stock Skin")
            //print message to log
            println ("say Kicking " + local.player.name + " for Non Stock Skin")
                                    
            wait 5
            if (local.player != NIL)
            {
                local.player.kicking = 0
                local.player stufftext ("set com_errormessage " + "You were Kicked for Non Stock Skin")
                local.player stufftext "disconnect;pushmenu main;wait 200;pushmenu errormessage"
                waitframe
            }
        }
    end
    
    get_settings:
    
    level.allowed = makeArray
    
    "models/player/allied_airborne.tik"
    "models/player/allied_manon.tik"
    "models/player/allied_pilot.tik"
    "models/player/allied_sas.tik"
    "models/player/american_army.tik"
    "models/player/american_ranger.tik"
    "models/player/german_afrika_officer.tik"
    "models/player/german_afrika_private.tik"
    "models/player/german_elite_officer.tik"
    "models/player/german_elite_sentry.tik"
    "models/player/german_kradshutzen.tik"
    "models/player/german_panzer_grenadier.tik"
    "models/player/german_panzer_obershutze.tik"
    "models/player/german_panzer_shutze.tik"
    "models/player/german_panzer_tankcommander.tik"
    "models/player/german_scientist.tik"
    "models/player/german_waffenss_officer.tik"
    "models/player/german_waffenss_shutze.tik"
    "models/player/german_wehrmacht_officer.tik"
    "models/player/german_wehrmacht_soldier.tik"
    "models/player/german_winter_1.tik"
    "models/player/german_winter_2.tik"
    "models/player/german_worker.tik"
    "models/player/german_waffen_officer.tik"
    "models/player/german_waffen_shutze.tik"
    
    endArray
    
    //Number of Warnings before Kicking
        if(int(getcvar("pe_skinwarnings")) == NIL || (getcvar("pe_skinwarnings")) == "")
        {
            level.maxwarnings = 3
            setcvar "pe_skinwarnings" "3" //set default
        }
        else
        {    
        level.maxwarnings = int(getcvar("pe_skinwarnings"))    
        }
        
    
    end
    Last edited by Purple Elephant1au; September 6th, 2013 at 05:24 PM.

    Purple's Playground
    OBJ :
    103.29.85.127:12203
    xfire: purpleelephant1au
    email: purpleelephant1au@gmail.com
    skydrive: PurpleElephantSkydrive




  3. #3

    Default

    cool thanks was going to run obj to tdm maps anyway...lol so it should work good.

  4. #4

    Default

    ok I did it but server will not run with it on it. the restart for server loops 5 times and tells me to stop server.

  5. #5

    Default

    Oldschool programs like MoH:AA CI & Delator would probably work for this.. though not sure if they'd run on any OS above WinXP.

  6. #6

    Default

    u know what sucks on stock skins?.... if u are allies u force axis in a snowskin..... when u are axis u cant give the allies a white skin, so its hard to see an allied....everyone wants to be allies

  7. #7

    Default

    To be fair, people that use force models are in a major disadvantage and will never become really good players, so I say let them use it

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •