Raised This Month: $51 Target: $400
 12% 

Hilfe bei umschreibung eines Plugins


  
 
 
Thread Tools Display Modes
Author Message
straffi
Member
Join Date: Feb 2010
Old 06-16-2011 , 10:29   Hilfe bei umschreibung eines Plugins
#1

Hier mal den inhalt der SMA.

Ich brauche cl_updaterate 50 mindestens
rate 20000 mindestens

Alles darüber ist ok aber darunter alles Verboten wie mache ich das am besten oder kann mir einer das fix machen für euch sollte das evlt. 5 min Arbit sein Währe nett.

MFG
Straffi

PHP Code:
/* AMX Mod script.
*
*
* AMX Rate Manager (rate_manager)
*
* (c) Copyright 2003 by Marach ([email protected], ICQ: 242122535, AIM: marach24, MSN IM: [email protected])
*
* This file is provided as is (no warranties).
*
*
* This plugin will allow you to restrict clients' cl_updaterate and rate CVARs. You can set maximum and minimum
* cl_updaterate and rate values a client can use when playing on your server. Plugin checks clients' CVARs and
* corrects exceeded CVARs to the limits you set. Local players playing from LAN, players with specific IP and
* players with specific WonID can be excluded from plugin calculations (by ping, IP and WonID). Plugin is able
* to exclude all players belonging to the same network subnet (192.168.15.x for example) if you want to. Exclusion
* by ping, IP and WonID makes it possible to make two groups of clients (excluded clients and normal clients). The
* plugin can then use different bandwith limits for each group. Plugin is also able to limit bandwith of dead players
* by the percent you set. When a player is dead plugin will lower his CVARs by the set percent and restore them back
* when a new round begins. That way you can leave more server's bandwith and CPU power to alive players.
*
*
* Usage:
*        - open file addons\amx\admin.cfg
*        - add these lines to admin.cfg only if you don't like defaults:
*                rm_maxupdr <max cl_updaterate>
*                rm_minupdr <min cl_updaterate>
*                rm_maxrate <max rate>
*                rm_minrate <min rate>
*                rm_exclmaxupdr <max cl_updaterate>
*                rm_exclminupdr <min cl_updaterate>
*                rm_exclmaxrate <max rate>
*                rm_exclminrate <min rate>
*                rm_delay <delay>
*                rm_deadratio <ratio>
*                rm_localping <ping>
*                rm_ignoreip <IP> [IP] [IP] [IP] ...
*                rm_ignorewonid <WonID> [WonID] [WonID] [WonID] ...
*                rm_announce <0 or 1>
*                rm_hello <0 or 1>
*        - save the changes to file admin.cfg :)
*
*
* CVAR explanation:
*        rm_maxupdr - max cl_updaterate a normal client can have (default 36)
*        rm_minupdr - min cl_updaterate a normal client can have (default 12)
*        rm_maxrate - max rate and cl_rate a normal client can have (default 9216 = 9kb)
*        rm_minrate - min rate and cl_rate a normal client can have (default 3072 = 3kb)
*        rm_exclmaxupdr - max cl_updaterate an excluded client can have (default 60)
*        rm_exclminupdr - min cl_updaterate an excluded client can have (default 24)
*        rm_exclmaxrate - max rate and cl_rate an excluded client can have (default 15360 = 15kb)
*        rm_exclminrate - min rate and cl_rate an excluded client can have (default 6144 = 6kb)
*        rm_delay - delay in seconds between checking clients (default 20 seconds)
*        rm_deadratio - lower dead players net setting to this ratio of default net settings (default 0.4 = 40%)
*        rm_localping - plugin will exclude clients who have ping equal or lower than this value (default 0)
*        rm_ignoreip - plugin will exclude clients whose IP is listed with this command
*        rm_ignorewonid - plugin will exclude clients whose WonID is listen with this command
*        rm_announce - toggle announcing plugin actions on and off (default 1 = on)
*        rm_hello - toggle displaying plugin info to connecting players (default 1 = on)
*
* If you leave defaults (you don't add any lines to admin.cfg) then the plugin will check all clients every 20
* seconds. Plugin will announce and correct if a normal client has cl_updaterate set below 12 or over 36. Plugin
* will do the same if a normal client has rate set below 3072 or over 9216. Excluded clients (either excluded by
* ping or IP) can set their cl_updaterate between 24 and 60, and their rate between 6144 and 15360. Plugin will
* never announce excluded clients going over set limits. Plugin will lower all dead players' net settings to 40%
* of their default net settings and restore them back when new round begins. Example: if a player has cl_updaterate
* set to 30 and rate set to 8000, when he dies plugin will set his cl_updaterate to 18 and rate to 4800. On a new
* round plugin will restore that particular player's cl_updaterate back to 30 and rate back to 8000. By default,
* players with ping 0 will not be calculated (rm_localping default value is 0). By default, plugin will display
* info message to all connecting players.
*
*
* Notes:
*        - plugin has two parts that can be independently toggled on and off:
*                a) net settings restriction - toggle it off by setting rm_delay to 0
*                b) dead players bandwith saver - toggle it off by setting rm_deadratio to 1.0
*         - set rm_localping to -1 if you want the plugin to take players with ping 0 into calculations
*         - using more rm_ignoreip commands adds entries to existing ignore IP list (you won't make a fresh new list)
*        - you can add IP addresses to the ignore IP list using one rm_ignoreip with many IPs specified in one line or
*                using more rm_ignoreip commands (to make it more tidy like in below example of custom settings)
*         - you can exclude the hole subnet of IPs from plugin calculations by using a letter 'x' when specifying IP
*                with rm_ignoreip (look below example of custom settings to see how to do it)
*        - player who runs a non-dedicated server and is playing on it can be excluded from plugin calculations by
*                adding an entry named 'loopback' to ignore IP list (rm_ignoreip loopback) or by ping
*         - using more rm_ignorewonid commands only adds entries to existing ignore WonID list (you won't make a fresh
*                 new list every time use rm_ignorewonid command)
*        - you can add WonIDs to the ignore WonID list using one rm_ignorewonid with many WonIDs specified in one line
*                or using more rm_ignorewonid commands (to make it more tidy like in below example of custom settings)
*
*
* Example of custom plugin settings (admin.cfg):
*        rm_maxupdr 40
*        rm_minupdr 20
*        rm_maxrate 15000
*        rm_minrate 5000
*        rm_exclmaxupdr 70
*        rm_exclminupdr 30
*        rm_exclmaxrate 20000
*        rm_exclminrate 10000
*        rm_delay 30
*        rm_deadratio 0.8
*         rm_localping 15
*        rm_ignoreip 192.168.4.12 loopback 68.120.14.155
*        rm_ignoreip 148.122.5.x 165.12.x.x 195.4.202.15
*        rm_ignorewonid 627543 1945822 122986
*        rm_ignorewonid 445682
*        rm_announce 0
*        rm_hello 0
*
* Plugin will check clients every 30 seconds. If plugin finds cl_updaterate set below 20 or over 50, rate set below
* 5000 or over 15000 on a normal client then plugin will correct it but will not announce it. Excluded players can
* have cl_updaterate set from 30 to 70 and rate set from 10000 to 20000. Dead players will have their cl_updaterate
* and rate set to 80% of their default settings and restored back when alive again. Players with ping 15 or less will
* not be taken into calculation at all. Players having IP 192.168.4.12, 68.120.14.155, 195.4.202.15 and player playing
* from loopback (player who's running a non-dedicated server) will not be calculated. All players whose IPs starts with
* 148.122.5. and 165.12. (players belonging to subnets 148.122.5.x and 165.12.x.x) will not be taken into calculation
* at all. Players with WonIDs 627543, 1945822, 122986 and 445682 will be excluded too. No plugin info message will be
* displayed to connecting players.
*
*
*/

#include <amxmod>

new origupdr[33], origrate[33], excl[33]
#define MAX_IP 32
new ignip[MAX_IP][32], ippos=0
#define MAX_WONID 128
new ignwonid[MAX_WONID], wonidpos=0

public check_rr() {
        new 
maxupdr=get_cvar_num("rm_maxupdr")
        new 
minupdr=get_cvar_num("rm_minupdr")
        new 
maxrate=get_cvar_num("rm_maxrate")
        new 
minrate=get_cvar_num("rm_minrate")
        new 
announce=get_cvar_num("rm_announce")
        new 
players[32], npiplayername[32]
        new 
clupdr[8], clrt[16], msg[256]
        new 
tmpupdrtmpratecmdexe[32]
        
get_players(playersnp"ac")
        for(
i=0i<npi++)
                if ((
players[i]!=0)&&(!is_user_hltv(players[i]))) {
                        
get_user_ping(players[i], tmpupdrtmprate)
                        if ((
tmpupdr>get_cvar_num("rm_localping"))&&(excl[players[i]]==0)) {
                                
get_user_info(players[i], "cl_updaterate"clupdr7)
                                
get_user_info(players[i], "rate"clrt15)
                                
tmpupdr=str_to_num(clupdr)
                                
tmprate=str_to_num(clrt)
                                if (
announce)
                                        
get_user_name(players[i],playername,31)
                                if (
tmpupdr>maxupdr) {
                                        
origupdr[players[i]]=maxupdr
                                        format
(cmdexe31"cl_updaterate %i"maxupdr)
                                        
client_cmd(players[i], cmdexe)
                                        if (
announce) {
                                                
format(msg255"* [AMX_RM] %s set 'cl_updaterate' to '%i' (max '%i') - blocked by plugin !"playernametmpupdrmaxupdr)
                                                
client_print(0print_chatmsg)
                                                }
                                        }
                                if (
tmpupdr<minupdr) {
                                        
origupdr[players[i]]=minupdr
                                        format
(cmdexe31"cl_updaterate %i"minupdr)
                                        
client_cmd(players[i], cmdexe)
                                        if (
announce) {
                                                
format(msg255"* [AMX_RM] %s set 'cl_updaterate' to '%i' (min '%i') - blocked by plugin !"playernametmpupdrminupdr)
                                                
client_print(0print_chatmsg)
                                                }
                                        }
                                if (
tmprate>maxrate) {
                                        
origrate[players[i]]=maxrate
                                        format
(cmdexe31"rate %i"maxrate)
                                        
client_cmd(players[i], cmdexe)
                                        
format(cmdexe31"cl_rate %i"maxrate)
                                        
client_cmd(players[i], cmdexe)
                                        if (
announce) {
                                                
format(msg255"* [AMX_RM] %s set 'rate' to '%i' (max '%i') - blocked by plugin !"playernametmpratemaxrate)
                                                
client_print(0print_chatmsg)
                                                }
                                        }
                                if (
tmprate<minrate) {
                                        
origrate[players[i]]=minrate
                                        format
(cmdexe31"rate %i"minrate)
                                        
client_cmd(players[i], cmdexe)
                                        
format(cmdexe31"cl_rate %i"minrate)
                                        
client_cmd(players[i], cmdexe)
                                        if (
announce) {
                                                
format(msg255"* [AMX_RM] %s set 'rate' to '%i' (min '%i') - blocked by plugin !"playernametmprateminrate)
                                                
client_print(0print_chatmsg)
                                                }
                                        }
                                }
                        }
        new 
Float:freq=get_cvar_float("rm_delay")
        if (
freq 0.0set_task(freq"check_rr")
        return 
PLUGIN_CONTINUE
}

public 
alive_again(id) {
        if ((
is_user_bot(id))||(is_user_hltv(id)))
                return 
PLUGIN_CONTINUE
        
if (excl[id]==1)
                return 
PLUGIN_CONTINUE
        
new Float:ratio=get_cvar_float("rm_deadratio")
        if (
ratio==1.0)
                return 
PLUGIN_CONTINUE
        
new pingloss
        get_user_ping
(idpingloss)
        if (
ping>get_cvar_num("rm_localping")) {
                new 
cmdexe[32]
                
format(cmdexe31"cl_updaterate %i"origupdr[id])
                
client_cmd(idcmdexe)
                
format(cmdexe31"rate %i"origrate[id])
                
client_cmd(idcmdexe)
                
format(cmdexe31"cl_rate %i"origrate[id])
                
client_cmd(idcmdexe)
                if (
get_cvar_num("rm_announce")) {
                        new 
msg[256]
                        
format(msg255"* [AMX_RM] Your net settings have been restored : 'cl_updaterate' = '%i', 'rate' = '%i'"origupdr[id], origrate[id])
                        
client_print(idprint_chatmsg)
                        }
                }
        return 
PLUGIN_CONTINUE
}

public 
dead_now() {
        new 
victim=read_data(2)
        if ((
is_user_bot(victim))||(is_user_hltv(victim)))
                return 
PLUGIN_CONTINUE
        
if (excl[victim]==1)
                return 
PLUGIN_CONTINUE
        
new Float:ratio=get_cvar_float("rm_deadratio")
        if (
ratio==1.0)
                return 
PLUGIN_CONTINUE
        
new tmpupdrtmprate
        get_user_ping
(victimtmpupdrtmprate)
        if (
tmpupdr>get_cvar_num("rm_localping")) {
                new 
cmdexe[32]
                
tmpupdr=floatround(float(origupdr[victim])*ratio)
                
tmprate=floatround(float(origrate[victim])*ratio)
                
format(cmdexe31"cl_updaterate %i"tmpupdr)
                
client_cmd(victimcmdexe)
                
format(cmdexe31"rate %i"tmprate)
                
client_cmd(victimcmdexe)
                
format(cmdexe31"cl_rate %i"tmprate)
                
client_cmd(victimcmdexe)
                if (
get_cvar_num("rm_announce")) {
                        new 
msg[256]
                        
format(msg255"* [AMX_RM] Your net settings have been lowered : 'cl_updaterate' = '%i', 'rate' = '%i'"tmpupdrtmprate)
                        
client_print(victimprint_chatmsg)
                        }
                }
        return 
PLUGIN_CONTINUE
}

public 
ignore_ip(id) {
        new 
argc=read_argc()
        if (
argc<2) {
                      
console_print(id"Usage: rm_ignoreip <IP> [IP] [IP] [IP] ...")
                      return 
PLUGIN_CONTINUE
                   
}
        for(new 
i=1i<argci++)
                if (
ippos<MAX_IP) {
                        
read_argv(iignip[ippos], 31)
                        
ippos++
                }
                else {
                        
console_print(id"* [AMX_RM] Too many IP addresses added to the ignore IP list")
                        return 
PLUGIN_CONTINUE
                
}
        return 
PLUGIN_CONTINUE
}

public 
ignore_wonid(id) {
        new 
argc=read_argc()
        if (
argc<2) {
                      
console_print(id"Usage: rm_ignorewonid <WonID> [WonID] [WonID] [WonID] ...")
                      return 
PLUGIN_CONTINUE
                   
}
           new 
tmp[32]
        for(new 
i=1i<argci++)
                if (
wonidpos<MAX_WONID) {
                        
read_argv(itmp31)
                        
ignwonid[wonidpos]=strtonum(tmp)
                        
wonidpos++
                }
                else {
                        
console_print(id"* [AMX_RM] Too many WonIDs added to the ignore WonID list")
                        return 
PLUGIN_CONTINUE
                
}
        return 
PLUGIN_CONTINUE
}

public 
client_connect(id) {
        if ((
is_user_bot(id))||(is_user_hltv(id)))
                return 
PLUGIN_CONTINUE
        
new clupdr[8], clrt[16]
        
get_user_info(id"cl_updaterate"clupdr7)
        
get_user_info(id"rate"clrt15)
        
origupdr[id]=str_to_num(clupdr)
        
origrate[id]=str_to_num(clrt)
        
excl[id]=0
        
new i
        
if (ippos>0) {
                new 
userip[32]
                
get_user_ip(iduserip31)
                
copyc(userip31userip':')
                new 
len
                
for(i=0i<ipposi++) {
                        
len=containi(ignip[i],".x")
                        if (
len>-1) {
                                if (
equal(useripignip[i], len)) {
                                        
excl[id]=1
                                        
break
                                        }
                                }
                        else if (
equal(useripignip[i])) {
                                
excl[id]=1
                                
break
                                }
                        }
                }
        if ((
wonidpos>0)&&(excl[id]==0)) {
                new 
wonid=0
                wonid
=get_user_wonid(id)
                if (
wonid>0)
                        for(
i=0i<wonidposi++)
                                if (
wonid==ignwonid[i]) {
                                        
excl[id]=1
                                        
break
                                        }
                }
        if (
get_cvar_num("rm_hello")==0)
                return 
PLUGIN_CONTINUE
        
new plgver[16]
        
get_cvar_string("rate_manager"plgver15)
        
client_cmd(id"echo ======================================================================")
              
client_cmd(id"echo ^"AMX Rate Manager v%s by Marachmarach@phreaker.netICQ242122535 *^""plgver)
        new 
Float:freq=get_cvar_float("rm_delay")
        if (
freq>0.0) {
                new 
maxupdr=get_cvar_num("rm_maxupdr")
                new 
minupdr=get_cvar_num("rm_minupdr")
                new 
maxrate=get_cvar_num("rm_maxrate")
                new 
minrate=get_cvar_num("rm_minrate")
                
client_cmd(id"echo ^"   allowed 'cl_updaterate' range '%i' '%i'you have '%i'^""minupdrmaxupdrorigupdr[id])
                
client_cmd(id"echo ^"   allowed 'rate' range '%i' '%i'you have '%i'^""minratemaxrateorigrate[id])
                }
        new 
Float:ratio=get_cvar_float("rm_deadratio")
        if (
ratio<1.0)
                
client_cmd(id"echo ^"   dead players use %2.0f%%%% of their normal net settings^"", (ratio*100.0))
        
client_cmd(id"echo ======================================================================")
        return 
PLUGIN_CONTINUE
}

public 
client_disconnect(id) {
        if ((
is_user_bot(id))||(is_user_hltv(id)))
                return 
PLUGIN_CONTINUE
        origupdr
[id]=get_cvar_num("rm_minupdr")
        
origrate[id]=get_cvar_num("rm_minrate")
        
excl[id]=0
        
return PLUGIN_CONTINUE
}

public 
set_servercvars() {
        new 
tmp[16]
        
get_cvar_string("rm_exclmaxupdr"tmp15)
        
set_cvar_string("sv_maxupdaterate"tmp)
        
get_cvar_string("rm_exclminupdr"tmp15)
        
set_cvar_string("sv_minupdaterate"tmp)
        
get_cvar_string("rm_exclmaxrate"tmp15)
        
set_cvar_string("sv_maxrate"tmp)
        
get_cvar_string("rm_exclminrate"tmp15)
        
set_cvar_string("sv_minrate"tmp)
        if (
get_cvar_num("rm_announce"))
                
console_print(0"* [AMX_RM] Bandwith limits for excluded players have been set")
        return 
PLUGIN_CONTINUE
}

public 
plugin_init() {
        
register_plugin("Rate Manager""1.2""Marach")
        
register_cvar("rate_manager""1.2"FCVAR_SERVER)
        
register_event("ResetHUD""alive_again""be","1=1")
        
register_event("DeathMsg","dead_now","a")
        
register_cvar("rm_maxupdr""36")
        
register_cvar("rm_minupdr""12")
        
register_cvar("rm_maxrate""9216")
        
register_cvar("rm_minrate""3072")
        
register_cvar("rm_exclmaxupdr""60")
        
register_cvar("rm_exclminupdr""24")
        
register_cvar("rm_exclmaxrate""15360")
        
register_cvar("rm_exclminrate""6144")
        
register_cvar("rm_delay""20")
        
register_cvar("rm_deadratio""0.4")
        
register_cvar("rm_localping""0")
        
register_cvar("rm_announce""1")
        
register_cvar("rm_hello""1")
        
register_srvcmd("rm_ignoreip""ignore_ip")
        
register_srvcmd("rm_ignorewonid""ignore_wonid")
        new 
Float:freq=get_cvar_float("rm_delay")
        if (
freq>0.0) {
                
set_task(freq"check_rr")
                
set_task(5.0"set_servercvars")
                }
        return 
PLUGIN_CONTINUE

straffi is offline
vato loco [GE-S]
Veteran Member
Join Date: Oct 2006
Location: Germany
Old 06-17-2011 , 05:15   Re: Hilfe bei umschreibung eines Plugins
#2

PHP Code:
amxx.cfg
/*
*        rm_maxupdr 100
*        rm_minupdr 50
*        rm_maxrate 20000
*        rm_minrate 20000 
*/ 
__________________
vato loco [GE-S] is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:07.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode