导航:首页 > 源码编译 > hud源码

hud源码

发布时间:2022-06-27 05:25:32

① 僵尸模式升级插件源码 "源码" (CS源码)

#include <amxmodx>
#include <umitem>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <fun>

#define MAXMINES 3
#define MINE_DAMAGE 20
#define MINE_HEALTH 1000
#define MINE_INT_TEAM EV_INT_iuser1
#define MINE_OWNER EV_INT_iuser3
#define DMG_BULLET (1<<1)

new PLUGIN_NAME[] = "UM Item: Laser Mine"
new PLUGIN_AUTHOR[] = "Cheap_Suit"
new PLUGIN_VERSION[] = "1.1"

new Float:Delay[33]
new g_PlayerMines[33]
new boom, beam
new bool:g_lasermine[33]
new g_msgDeathMsg
new g_msgScoreInfo
new g_msgDamage
new bool:g_Dropped[33]

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_item("Laser Mine", "Hold out your knife and press e to plant", 3900)

register_think("lasermine","Lasermine_Think")
register_event("DeathMsg", "Event_DeathMsg", "a")
register_event("ResetHUD", "Event_ResetHUD", "be")
register_event("TextMsg", "Event_GameRestart", "a", "2=#Game_will_restart_in")
register_event("SendAudio", "Event_RoundEnd", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")

g_msgDeathMsg = get_user_msgid("DeathMsg")
g_msgScoreInfo = get_user_msgid("ScoreInfo")
g_msgDamage = get_user_msgid("Damage")
}

public plugin_precache()
{
precache_sound("weapons/mine_deploy.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_activate.wav")
precache_sound("debris/beamstart9.wav")
precache_model("models/v_tripmine.mdl")
beam = precache_model("sprites/laserbeam.spr")
boom = precache_model("sprites/zerogxplode.spr")
}

public Event_RoundEnd() {
set_task(2.0, "remove_mines")
}

public Event_GameRestart()
{
new Float:fRestartCvar = get_cvar_float("sv_restart")
set_task((fRestartCvar - 0.5), "Event_RoundEnd")
}

public client_connect(id)
{
g_lasermine[id] = false
g_PlayerMines[id] = 0
}

public Event_DeathMsg()
{
g_PlayerMines[read_data(2)] = 0
g_Dropped[read_data(2)] = false
}

public Event_ResetHUD(id)
{
if(g_lasermine[id])
{
g_Dropped[id] = false
g_PlayerMines[id] = MAXMINES
}
}

public Enable_Item(id)
{
if(g_Dropped[id]) {
g_PlayerMines[id] = 0
} else {
g_PlayerMines[id] = MAXMINES
}
g_lasermine[id] = true
}

public Disable_Item(id)
{
g_lasermine[id] = false
g_Dropped[id] = true
}

public client_PreThink(id)
{
if(!is_user_connected(id) || !is_user_alive(id)) {
return PLUGIN_CONTINUE
}

if(!g_lasermine[id]) {
return PLUGIN_CONTINUE
}

new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
if(weapon == CSW_KNIFE)
{
if(get_user_button(id) & IN_USE)
{
if((Delay[id] + 1.3) < get_gametime())
{
if(g_PlayerMines[id] < 1) {
client_print(id, print_chat, "No more mines")
} else {
Create_Mine(id)
}
Delay[id] = get_gametime()
}
}
}
return PLUGIN_CONTINUE
}

public remove_mines()
{
new ent = find_ent_by_class(-1, "lasermine")
while(ent)
{
remove_entity(ent)
ent = find_ent_by_class(ent, "lasermine")
}
}

Create_Mine(id)
{
new Mine = create_entity("info_target")
if(is_valid_ent(Mine))
{
entity_set_string(Mine, EV_SZ_classname, "lasermine")
entity_set_int(Mine, EV_INT_movetype, MOVETYPE_FLY)
entity_set_int(Mine, EV_INT_solid, SOLID_NOT)
entity_set_model(Mine, "models/v_tripmine.mdl")

entity_set_float(Mine, EV_FL_frame, 0.0)
entity_set_int(Mine, EV_INT_body, 3)
entity_set_int(Mine, EV_INT_sequence, 7)
entity_set_float(Mine, EV_FL_framerate, 0.0)

entity_set_float(Mine, EV_FL_takedamage, 1.0)
entity_set_float(Mine, EV_FL_dmg, 100.0)
entity_set_float(Mine, EV_FL_health, float(MINE_HEALTH))

entity_set_int(Mine, EV_INT_iuser2, 0)

new Float:MinBox[3] = {-8.0, -8.0, -8.0}
new Float:MaxBox[3] = {8.0, 8.0, 8.0}
entity_set_size(Mine, MinBox, MaxBox)

new Float:vOrigin[3]
entity_get_vector(id, EV_VEC_origin, vOrigin)

new Float:flVelocity[3]
VelocityByAim(id, 64, flVelocity)

new Float:vTraceEnd[3]
vTraceEnd[0] = flVelocity[0] + vOrigin[0]
vTraceEnd[1] = flVelocity[1] + vOrigin[1]
vTraceEnd[2] = flVelocity[2] + vOrigin[2]

new Float:vTraceResult[3]
trace_line(id, vOrigin, vTraceEnd, vTraceResult)

new Float:vNormal[3]
if(trace_normal(id, vOrigin, vTraceEnd, vNormal) < 1)
{
remove_entity(Mine)
client_print(id, print_chat, "You must plant the Laser mine on a wall")
return PLUGIN_HANDLED_MAIN
}

new Float:vNewOrigin[3]

vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 8.0)
vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 8.0)
vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 8.0)

entity_set_origin(Mine, vNewOrigin)

new Float:vMineAngles[3]
vector_to_angle(vNormal, vMineAngles)
entity_set_vector(Mine, EV_VEC_angles, vMineAngles)

new Float:vBeamEnd[3]

vBeamEnd[0] = vNewOrigin[0] + (vNormal[0] * 8192)
vBeamEnd[1] = vNewOrigin[1] + (vNormal[1] * 8192)
vBeamEnd[2] = vNewOrigin[2] + (vNormal[2] * 8192)

new Float:vTracedBeamEnd[3]
trace_line(-1, vNewOrigin, vBeamEnd, vTracedBeamEnd)
entity_set_vector(Mine, EV_VEC_vuser1, vTracedBeamEnd)

emit_sound(Mine, CHAN_WEAPON, "weapons/mine_deploy.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
emit_sound(Mine, CHAN_ITEM, "weapons/mine_charge.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

new PlayerTeam = get_user_team(id)
entity_set_int(Mine, MINE_INT_TEAM, PlayerTeam)
entity_set_int(Mine, MINE_OWNER, id)

client_print(id, print_chat, "Planted mine")
client_print(id, print_chat, "%d mines left", g_PlayerMines[id] - 1)
g_PlayerMines[id] -= 1

new param[1]
param[0] = Mine
set_task(3.5, "Mine_Activate", 0, param, 1)
}
return PLUGIN_HANDLED_MAIN
}

public Mine_Activate(param[])
{
new Mine = param[0]
if(is_valid_ent(Mine))
{
entity_set_int(Mine, EV_INT_iuser2, 1)
entity_set_int(Mine, EV_INT_solid, 2)
entity_set_float(Mine, EV_FL_nextthink, halflife_time() + 0.01)
emit_sound(Mine, CHAN_ITEM, "weapons/mine_activate.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}

public Lasermine_Think(Mine)
{
if(is_valid_ent(Mine))
{
new TeamColor[3], MineTeam = entity_get_int(Mine, MINE_INT_TEAM)
switch(MineTeam)
{
case 1:
{
TeamColor[0] = 255
TeamColor[1] = 0
TeamColor[2] = 0
}
case 2:
{
TeamColor[0] = 0
TeamColor[1] = 0
TeamColor[2] = 255
}
}

new Float:vOrigin[3], Float:vEnd[3]
entity_get_vector(Mine, EV_VEC_origin, vOrigin)
entity_get_vector(Mine, EV_VEC_vuser1, vEnd)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(0)
write_coord(floatround(vOrigin[0]))
write_coord(floatround(vOrigin[1]))
write_coord(floatround(vOrigin[2]))
write_coord(floatround(vEnd[0]))
write_coord(floatround(vEnd[1]))
write_coord(floatround(vEnd[2]))
write_short(beam)
write_byte(0)
write_byte(0)
write_byte(3)
write_byte(5)
write_byte(0)
write_byte(TeamColor[0])
write_byte(TeamColor[1])
write_byte(TeamColor[2])
write_byte(255)
write_byte(0)
message_end()

if(entity_get_int(Mine, EV_INT_iuser2) == 1)
{
if(entity_get_float(Mine, EV_FL_health) <= 500) {
Detonate_Mine(Mine)
}
else
{
new Float:vOrigin[3], Float:vEnd[3]
entity_get_vector(Mine, EV_VEC_origin, vOrigin)
entity_get_vector(Mine, EV_VEC_vuser1, vEnd)

new Float:vTrace[3], id = trace_line(Mine, vOrigin, vEnd, vTrace)
if(is_user_connected(id) && is_user_alive(id))
{
new bool:doDamage
new VictimTeam = get_user_team(id)
new MineTeam = entity_get_int(Mine, MINE_INT_TEAM)
new FriendlyFire = get_cvar_num("mp_friendlyfire")
switch(FriendlyFire)
{
case 0:
{
if(VictimTeam != MineTeam) {
doDamage = true
} else {
doDamage = false
}
}
case 1: doDamage = true
}

if(doDamage)
{
new VictimHealth = get_user_health(id)
new Damage = VictimHealth - MINE_DAMAGE

if(Damage <= 0)
{
new MineOwner = entity_get_int(Mine, MINE_OWNER)
Create_Kill(id, MineOwner, "Lasermine")
}
else
{
set_user_health(id, Damage)

message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0, 0, 0}, id)
write_byte(MINE_DAMAGE)
write_byte(MINE_DAMAGE)
write_long(DMG_BULLET)
write_coord(floatround(vOrigin[0]))
write_coord(floatround(vOrigin[1]))
write_coord(floatround(vOrigin[2]))
message_end()
}
emit_sound(id, CHAN_WEAPON, "debris/beamstart9.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
}
}
}
entity_set_float(Mine, EV_FL_nextthink, halflife_time() + 0.01)
}

Detonate_Mine(Mine)
{
new Float:vOrigin[3]
entity_get_vector(Mine, EV_VEC_origin, vOrigin)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(99)
write_short(Mine)
message_end()

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(3)
write_coord(floatround(vOrigin[0]))
write_coord(floatround(vOrigin[1]))
write_coord(floatround(vOrigin[2]))
write_short(boom)
write_byte(50)
write_byte(15)
write_byte(0)
message_end()

radius_damage(vOrigin, 1, 50)
remove_entity(Mine)

return PLUGIN_CONTINUE
}

Create_Kill(id, attacker, weaponDescription[])
{
new FFon = get_cvar_num("mp_friendlyfire")
if(FFon && get_user_team(id) == get_user_team(attacker))
{
set_user_frags(attacker, get_user_frags(attacker) - 1)
client_print(attacker, print_center, "You killed a teammate")

new money = cs_get_user_money(attacker)
if(money != 0) cs_set_user_money(attacker, money - 150, 1)
}
else if(get_user_team(id) != get_user_team(attacker))
{
set_user_frags(attacker, get_user_frags(attacker) + 1)
new money = cs_get_user_money(attacker)

if(money < 16000) cs_set_user_money(attacker,money + 300,1)
}

logKill(attacker, id, weaponDescription)

//Kill the victim and block the messages
set_msg_block(g_msgDeathMsg,BLOCK_ONCE)
set_msg_block(g_msgScoreInfo,BLOCK_ONCE)
user_kill(id)

//user_kill removes a frag, this gives it back
set_user_frags(id,get_user_frags(id) + 1)

//Replaced HUD death message
message_begin(MSG_ALL,g_msgDeathMsg,{0,0,0},0)
write_byte(attacker)
write_byte(id)
write_byte(0)
write_string(weaponDescription)
message_end()

//Update killers scorboard with new info
message_begin(MSG_ALL,g_msgScoreInfo)
write_byte(attacker)
write_short(get_user_frags(attacker))
write_short(get_user_deaths(attacker))
write_short(0)
write_short(get_user_team(attacker))
message_end()

//Update victims scoreboard with correct info
message_begin(MSG_ALL,g_msgScoreInfo)
write_byte(id)
write_short(get_user_frags(id))
write_short(get_user_deaths(id))
write_short(0)
write_short(get_user_team(id))
message_end()
}

// ------- LOG KILL------------

public logKill(id, victim, weaponDescription[] )
{
new namea[32],namev[32],authida[35],authidv[35],teama[16],teamv[16]

//Info On Attacker
get_user_name(id,namea,31)
get_user_team(id,teama,15)
get_user_authid(id,authida,34)

//Info On Victim
get_user_name(victim,namev,31)
get_user_team(victim,teamv,15)
get_user_authid(victim,authidv,34)

//Log This Kill
if( id != victim )
{
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
namea,get_user_userid(id),authida,teama,namev,get_user_userid(victim),authidv,teamv, weaponDescription )
}
else
{
log_message("^"%s<%d><%s><%s>^" committed suicide with ^"%s^"",
namea,get_user_userid(id),authida,teama, weaponDescription )
}
}

坐等分

② CS1.6僵尸插件4.3如何隐藏信息栏

看到4.3的僵尸主插件源码 打开,以下内容来自插件吧MSB的一个教程

2修改生命 弹药包 僵尸类型隐藏 :
寻找// Show health, class and ammo packs

看到 set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %d - %L %s - %L %d", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD])

把ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %d - %L %s - %L %d", id, "ZOMBIE_ATTRIB1"

的"%L: %d - %L %s - %L %d" 引号里%L: %d - %L %s - %L %d 去掉 就隐藏了

③ 谁能给我CSOL加速以及快捷键 易语言的源码 和模版 发我啊 邮箱 [email protected]

玩CS的朋友对控制台应该不陌生吧,它可以帮助我们修改好多参数信息,当然在CSOL同样有控制台这样的设定,下面是CSOL中的一些控制台命令,希望可以帮助到大家。
在游戏中按“~”打开控制台,输入命令即可。
cl_showfps [0,1] 设定是否在画面左上角显示fps数据
fastsprites [0,1,2] 烟雾特效,0逼真,1像超任,2像GameBoy
fps_max X 设定游戏输出给显示卡的最大fps数,一般设定为60, 75, 85, 101,预设值是72
hud_centerid [0,1] 设定为1时,玩家ID会出现在萤幕的正中央,否则会出现在画面的左下角。
hud_fastswitch [0,1] 快速换武器,设定为1时按数字键直接换武器,不用再按鼠标左键
max_shells X 子弹的最大显示数量(太多会lag...) X=0~500,预设值是300
max_smokepuffs X 烟雾弹的最大显示数量,X=0~500,预设值是120
m_yaw X 设定鼠标左右移位的加速度,预设值是 0.022
m_pitch X 设定鼠标上下移位的加速度,预设值是 0.022
net_graph [0,1,2,3] 打开测FPS与连线速度数据的工具,设定成0 是关闭,开起此项功能多少会减少fps
net_graphpos [1,2,3] 设定FPS测量工具的显示位置
volume X 调整音量大小,预设值是 0.8

④ 路过的来留个话!!!

假设有一种编程的方法,能够克服所有的困难和改正所有的错误,而且能够避免重写代码,我相信我们都会使用这种方法。因为没有一种完美的编程方法, 我们能做的事情就只能是看我们周围的程序员是如何做的,哪些是正确
的,哪些是错误的。有一些编程的方法是我从实际工作中总结而来的,也确实感到它们能够帮助我养成良好的编程习惯。其中最重要的一件事情就是记住,当你看到这些经验的时候,不要认为他们太简单和基础,觉得一种方法是不值得学习的。很多程序员认为检查错误和写程序注释是浪费时间。而我认为,这些经验能够帮助我们节省时间和精力。在实践过程中,我了解到,我能够更快的编写代码,代码也更加的有效率。

做最坏的打算

假设你是一个超级程序员,你的代码永远都不会有错误。但是,如果你的完美的代码没有得到完美的数据,事情将会如何?你的代码假设一个指针是合法的,或者它会把一个声音文件当作一个图片来处理?基本上来说,一段代码
不能假设任何事情。C语言又一个标准的函数 assert, 它能够用来捕获错误。每次你的代码接收到用户数据,请注意要先确认数据是你所预想的。如果不是,使用assert并且打印消息来解释出现了什么错误。这是很重要的,这样你就能够让任何阅读你的程序的人了解到,什么是正确的数据,什么是错误的。百分之九十的错误都是一些简单的错误。所以,不要让这种错误影响你的程序浪费调试人员的时间,而只需要简单的在那些地方给出一个assert, 就能够避免。百分之九十的时候它能够容易的被改正。而另外百分之十的时候,它能够在变成一个大的错误之前被调试人员注意到并且改正。不论你采用哪种编程语言,你编写的第一个程序一般都是打印一条消息。把这个打印消息的功能作为你的程序中一个基本的函数,能够简单的打印任何错误。这样,程序就能分辨不明显的错误,你也能在任何错误可能出现的地方使用这个打印错误消息的函数。这样,就能够节省寻找错误的时间,从而让改正错误的时间减短。

注释

不要企图记住你的代码是用来做什么的。在你编写完一段程序几个月之后,你不会记得在编写程序的时候的想法,也不会记得什么代码是用来干什么的。所以,写注释是一个好的方法,特别是当你需要别人来阅读你的代码,或者是为了你半年之后还能记起来这段代码的目的。如果有一个同事告诉你,你的代码有一个错误,你将不得不重新检查并且改正它。如果你能够通过注释来回忆起什么代码用来做什么,你就能快一点找到并且改正错误。这个方法也是比较简单的,只需要注明你的那一段代码是做什么的,这就够了。而如果你不这么做,其他的阅读你的程序的人将看不懂它的意思,不知道变量是用来做什么的,哪些复杂的计算又是用来做什么的。如果你说明了它们的意义,就简单多了。比如,看这样的代码if "(frmp>10)", "(plist.bdown & x03)", "(plist.y > pond.y)"就比看注释要复杂的多。当你写注释的时候,你会得到两种好处。

任何人都能明白你希望一段代码去做什么,而且,如果这段代码有错误,阅读代码的人就能发现,它没有执行你在注释中希望它去做的事情,那样就能尽快的发现错误和改正它。注释是程序员最重要的工具之一。而且所有的语言都支持注释。所以,记住,要写注释。

文档

当我在写一个文档的时候,我记得我花了很多篇幅来写一段关于系统和模块的文档。这个文档是正确的,但是却是没有用的。因为,没有人读过它。很多人都忘记了还有这篇文档,而是在需要的时候来问我,让我来解释给他们。

这种方法也不错,它比查阅整个文档快多了。很少有机会有人会花上一大段时间来通读整个文档。所以说,我当时写文档的时间是浪费了。而且,如果这个系统和模块要做什么改动的话,我还必须相应的修改文档。也就是说,这文档让我的劳动加倍了。但是,这并不是说文档是不重要的。相反,如果用源代码和说明来记录文档,就简单多了。在每一个函数的开头,都用一段注释来解释函数的功能,如何使用,需要注意的问题等等。如果是一段比较复杂的代码,需要解释你所采用的方法。没有必要采用另外一个文件来记录文档,而只用在源代码中间来写文档。这样你就能够在你需要文档的时候随时找到它们。其他的程序员也会很方便的使用你的代码。而且,不象一个专门的独立的文档那样,其他的程序员将会无意识的阅读你的文档,而不会置之不理。如果有人来问你关于某一段代码的意思的时候,你就会明白,那一段代码缺少明白的注释。所以,你可以尽快的补上它,而不会有另外一个程序员来问你同样的问题。

采用工具

在编程的工作中,你也许会常常遇到这样一些繁重的体力劳动,比如,编译一个程序,然后就是等待。或者你使用了别人写的API函数,而记住这些函数的名称和参数是一个很累的活儿。这些工作并没有什么技术可言,比如说编译程序,每天晚上都会有人把新增加的程序放到库里,然后第二天上班以后你需要来重新编译它们,往往都是一些重复的工作,但是由于程序很大,编译的过程很漫长,而你就要陷入等待状态。那么,为什么不采用工具呢?或者写一些这样的工具?我就这样做过。我写过一个程序,让它每天早上3点开始,重新编译程序,到了早上8点左右,差不多就编译完成了。然后捕获错误,如果有的话,就发电子邮件给相关的人。这样,到了上班的时间,每个人都能得到一个最新的,编译好的程序。如果代码中有错误,还能最快的得到错误报告。再比如,我需要使用别人写的API函数,当然,我不能指望每个人写的函数都采用同样的命名方法和参数定义方法,也不可能每次需要使用的时候都去查看文档,那样太浪费时间而且效率太低。我写了一个工具,让它来检查我的函数调用是否正确,参数是否正确。如果有错误,则从文档中找到可能的函数,并在错误日志中给予提示。然后我就能很快的编写代码,而不用担心函数拼写,参数调用的类型和顺序了。你也可以这么做,当下次有人来问你某个函数的名称,参数类型,参数顺序的时候,你就能够告诉他,该怎么做,用什么工具了。

可复用的代码

有一个好的比方,用来描述一个引擎。有一个不是程序员的朋友问过我一个问题,什么是程序引擎?有什么作用?为什么要用引擎?我尽量的用通俗的语言回答它,一个程序引擎就像一个汽车的引擎。没有它,汽车不能启动,但是,同时,一个没有轮胎的引擎,也是没有用处的。

我想,这是一个好的例子。这个朋友说,当你的引擎不能用的时候,你可以换一个。如果传动带坏了,你可以换一个新的,同时把引擎的性能调整到最好。同样,一个引擎有相同的部分,比如,传动装置,等等。它们对于一个引擎是重要的,如果某一个部分坏了,你不能不拆开引擎来更换它。

然后我的朋友总结道:如果你从头来写一个程序引擎,你就不得不从头来写所有的传动带,所有的零件。如果你能用一些以前用过的部分,你就能简单的把它们拼装到一起而不用重新写了。

没错。他并不懂得如何去写程序,但是他道出了编程的真谛。这也是一个普通的程序员和一个高级程序员的区别。采用可复用的代码,让工作变得简单。

写通用的代码的关键是,不要让你的子程序变长,不要超过一屏。关键要把你要做的事情分解开,变成小巧的,可以复用的函数,要么完成一个功能,要么调用另外的函数来完成一个完整的功能。

比如,VectorAdd()可能包含了一段代码把两个vectors的元素合并到一起,而SceneDisplay可能包含了调用PrepRender(), Render2dObjects(), Rende
rHud()的代码。每一个函数可能都只有几行。

当你把代码分解成小的部分的时候,你将能够集中注意力到一些在其他地方可以复用的功能上。在前一个例子中,RenderHud()和RenderDebugText()可能共享了同样的一段函数调用,因为它们都是在屏幕上描画一些对象。

⑤ 怎么在苹果电脑上安装倩女幽魂手游版

ios模拟器的使用方法:
要使用ios模拟器,必须要有苹果的操作系统,无论你使用黑苹果,在虚拟机上装苹果系统或者真正的苹果电脑都行,只要能装上苹果系统就ok。
装好苹果系统之后,装上一个xcode(一个ios开发工具,可以直接到itunes上去下载,然后安装。
随便找一个ios应用的源代码,运行就可以到开xcode,并启动ios模拟器。当然你也可以对ios模拟器进行设置,3.5寸
iphone,4寸
iphone
,ipad等,都可以根据个人爱好进行,在githud上很多ios源码,应该可以从上面找到一款你喜欢的。
有了ios模拟器你就可以在下载梦幻西游手游ios版客户端,然后安装游戏,开始用电脑玩ios版。

⑥ 梦幻西游手游苹果版怎么在电脑上玩 苹果电脑版问题解答

安卓模拟器电脑版下载:

要使用ios模拟器,必须要有苹果的操作系统,无论你使用黑苹果,在虚拟机上装苹果系统或者真正的苹果电脑都行,只要能装上苹果系统就ok。

装好苹果系统之后,装上一个xcode(一个ios开发工具,可以直接到itunes上去下载,然后安装。
随便找一个ios应用的源代码,运行就可以到开xcode,并启动ios模拟器。当然你也可以对ios模拟器进行设置,3.5寸 iphone,4寸 iphone ,ipad等,都可以根据个人爱好进行,在githud上很多ios源码,应该可以从上面找到一款你喜欢的。

有了IOS模拟器你就可以在下载梦幻西游手游IOS版客户端,然后安装游戏,开始用电脑玩IOS版。

《梦幻西游》手游是由网易游戏基于原端游《梦幻西游2》开发的一款回合制角色扮演手机游戏,于2015年3月30日开启全平台公测。该游戏在中国大陆由网易游戏运营,收费模式为免费。

《梦幻西游》手游延续了端游的游戏背景与设定,6个经典角色如剑侠客、骨精灵、龙太子、虎头怪、巫蛮儿、玄彩娥和押镖、捉鬼等经典要素也都在针对智能手机特性优化后得到还原,同时端游的特色系统,如帮派、商业、师徒婚姻系统等也移植到了手游版上。

⑦ CS1.6显按键问题

你用的什么插件,是keylistener.amxx 、showkeys.amxx,还是spec用的specinfo.amxx ?showkeys.amxx 修改时say /keyscfg specinfo.amxx 修改需要源代码,客户端命令比较少,只能改颜色:si_msg_r <45|...> : HUD message red value.
si_msg_g <89|...> : HUD message green value.
si_msg_b <116|...> : HUD message blue value.

⑧ 手游梦幻西游ios怎么在电脑上玩

要使用ios模拟器,必须要有苹果的操作系统,无论你使用黑苹果,在虚拟机上装苹果系统或者真正的苹果电脑都行,只要能装上苹果系统就ok。
装好苹果系统之后,装上一个xcode(一个ios开发工具,可以直接到itunes上去下载,然后安装。
随便找一个ios应用的源代码,运行就可以到开xcode,并启动ios模拟器。当然你也可以对ios模拟器进行设置,3.5寸 iphone,4寸 iphone ,ipad等,都可以根据个人爱好进行,在githud上很多ios源码,应该可以从上面找到一款你喜欢的。
更多攻略请搜索【4399梦幻西游手游】

⑨ 率土之滨怎么在电脑上玩 率土之滨电脑版攻略

要使用ios模拟器必须要苹操作系统论使用黑苹虚拟机装苹系统或者真苹电脑都行要能装苹系统ok装苹系统装xcode(ios发工具直接itunes载安装随便找ios应用源代码运行xcode并启ios模拟器ios模拟器进行设置三.5寸iphone四寸iphoneipad等都根据进行githudios源码应该面找款喜欢攻略请搜索【四三99梦幻西游手游

⑩ CS1.6服务器的架设,包括AMX插件的加入方法

服务器完全架设手册
没有人一生出来就什么都会的,同样我也是什么都不会,自己慢慢学的。我知道Dcoo上有很多高手,如果本文有错误的地方,请不吝指正。以下基本都是偶在Dcoo等论坛上学到的服务器架设经验之谈,发出来给大家看看,让大家都从菜鸟转型为初级的服务器架设高手。言归正传,一步一步来:
一、 首先
你必须要有个高配置的电脑,如果是做服务器的话,最好内存是在512M以上的机器,至于 内存 CPU 等对架设CS服务器的影响,请查看其他帖子!然后是要了解的是,你上网的网络结构,是通过 Modem+路由+交换机 上网,还是用 代理服务器+交换机 上网,我的论坛的帖子也有介绍,在此我就不在多余重复说了。可以到我签名的地址去看看!
二、 CS的服务器端文件

由于现在CS1.6已经是比赛的版本了,所以偶就以1.6的为主,1.5的其实也一样的,但是会少了很多的特效,比如1.5就不支持中文等。这里提供的是DcOo 1.6 3213的服务器端版本。
三、开始设置服务器
完成以后,先不要运行,运行的话是进入游戏,而不是开始服务器!进入刚才安装的那个文件夹,找到Hlds.exe文件,创建一个快捷方式,如图:

然后把刚才那个快捷方式改一下名字,方便以后使用,偶改为Server,接下来是重点了。。。。请注意听了哦!
看到hlds.exe 后面那里的参数了没?

那里就是服务器运行的时候必须要用到的启动参数,参数不同,服务器运行的效果也不同!以偶的为例,
-game cstrike +servercfgfile server.cfg -nomaster -insecure -port 27016 +maxplayers 32 +map de_st2 +sv_lan 1 –console
偶一个一个解释好了:)
-game cstrike 这个就是指定以反恐精英为游戏的Mod,如果不指定的话就是半条命的模式,听说也不错很好玩的哦,没玩过

+servercfgfile server.cfg 这个就是指定服务器的配置文件,server.cfg这个文件放在cstrike下,后面偶会详细介绍一下该文件的

-nomaster 加载这个参数就是让服务器不上WON认证,避免因为出国网络不通导致的服务器问题。

-insecure 这个参数偶一下想不起来是干嘛用的了。其他知道的朋友,请指教,谢谢!

-port 27016 指定服务器运行时候的端口,范围最好是在27015-27020 之间,据我的测试,局域网列表能刷出来的就是在这个范围内,当然,如果你想用来做比赛服务器不想让其他人进的话,你可以指定任意不被占用的端口。

+maxplayers 32 这个参数是指定服务器最大进入玩家数,理论上最高能进32人,有的地图最高只能进20人,比如CS_italy 那些早期救人质的图都这样的。并不是说一定要以32人为最大,这个要和你的网络状况及服务器配置相联系的,关于CPU 内存 网络带宽 之间的联系,请在Dcoo上搜索一下,或者到我的论坛去查找一下,只有人数合适了,你的服务器才能运行在快速稳定的状态!

+map de_st2 这个参数就是当服务器一开始运行的时候,运行的第一张地图,你可以该为任意的,但是要注意,最好以 cstrike\maps 目录下的地图,不然服务器会出错!

图中,以bsp为结尾的文件都是地图文件,注意:参数不用带文件全名,例如 de_st2 就可以了, 没必要这样 de_st2.bsp

-console 控制台,如果不带这个参数的话,你架设好的服务器就不能在那个黑底白字的窗口上输入一些服务器命令

+sv_lan 1 这个参数是控制该服务器是局域网还是战网的一个重要参数,当为 0 的时候,外网玩家也可以进入,当为 1 的时候,就只有局域网的玩家才能进入。如果要做面向公网和内网(不知道什么叫公网和内网的,请自己找资料学习),这个参数建议为 0
综合以上讲解,很容易了解,

-game cstrike +servercfgfile server.cfg -nomaster -insecure -port 27016 +maxplayers 32 +map de_st2 +sv_lan 1 -console

用这些个参数架设的服务器是一个CS1.6反恐精英,不通过WON验证,游戏端口为27016,人数最多为32人,开始游戏地图为沙漠2,面向局域网的服务器!

如果要面向内外网的话,去掉 -nomaster +sv_lan 1这两个参
参数配置正确了,就可以开始运行服务器了?别急,还没配置完全呢,还有一个比较重要的文件server.cfg还没配置呢!

进入安装目录的cstrike下,你可以看到一个Server.cfg文件,这个文件是一个文本文件,但是没和任何文本编辑软件关联,也就是说,当你打开的时候,系统会提示你打开方式,你可以选择用记事本打开。打开以后你会看到如下的信息:
(注意:一下信息是毛毛虫在当时编写的时候Server.cfg文件。而我在编写的时候没有参考毛毛虫的脚本而是依照国际比赛服务器的标准而设置的,这点要千万注意!!)
rcon_password "dcoo"
hostname "迪酷网 DcOo CS1.6 Server"
sv_maxspeed 320
mp_autokick 0
mp_autocrosshair 0
mp_autoteambalance 0
mp_buytime 0.25
mp_consistency 1
mp_c4timer 35
mp_fadetoblack 1
mp_falldamage 1
mp_flashlight 1
mp_forcecamera 3
mp_friendlyfire 1
mp_freezetime 10
mp_fraglimit 0
mp_hostagepenalty 0
mp_limitteams 6
mp_logfile 1
mp_logmessages 1
mp_logdetail 3
mp_maxrounds 0
mp_playerid 0
mp_roundtime 2.5
mp_startmoney 800
mp_timelimit 60
mp_tkpunish 0
mp_winlimit 0
sv_aim 0
sv_airaccelerate 10
sv_airmove 1
sv_allowdownload 0
sv_clienttrace 1.0
sv_clipmode 0
sv_allowupload 0
sv_cheats 0
sv_gravity 800
sv_maxrate 25000
sv_maxspeed 320
sv_maxupdaterate 101
sys_ticrate 10000
decalfrequency 60
pausable 0
log on
decalfrequency 60
edgefriction 2
host_framerate 0
exec listip.cfg
exec banned.cfg

哇*,,,Dcoo的也太简单了吧,我记得以前还带解释的,现在这么都这样了呢?!

不管他,反正我也看得懂是啥意思,我来解释好了!只解释一些常用的,没解释到的推荐用默认值。一般 0 为关 1 为开

rcon_password "dcoo" 这个是进入服务器的密码,如果不改的话,就相当于是一个带密码的服务器,推荐去掉 "" 里面部分
hostname "迪酷网 DcOo CS1.6 Server" 服务器的名字,这个当然要改的了,改为你想改的名字就行了
sv_maxspeed 320 重力速度什么的,不推荐修改用默认的好了。。
mp_autokick 0 自动踢人,当某位玩家因为一些其他的因素,常时间不动或者死机等,系统就会踢除该玩家,0 为关 1为开
mp_autocrosshair 0 准心的大小自动调节,建议不要改
mp_autoteambalance 0 双方自动平衡,建议开启,否则会出现两边队伍人数不平衡
mp_buytime 0.25 购买武器时间 以60秒为单位,60*0.25=15秒
mp_c4timer 35 C4爆炸时间,国际比赛好像是35秒,推荐用这个值就行了
mp_fadetoblack 1 死后黑屏,推荐改为0
mp_falldamage 1 跌落损伤,这个不用改
mp_flashlight 1 手电筒开启
mp_forcecamera 3 死亡后视角 有0 1 2 3 三种模式,其中0 为视角固定模式 1 为仅限队友视角 2 为仅限队友第一视角 3为自由观看模式
mp_friendlyfire 1 自伤模式,自己人能打自己人,不是比赛服的话推荐关掉
mp_freezetime 10 开始买枪时候的静止不能行走的冻结时间,10秒也太夸张了。3秒就够了
mp_roundtime 2.5 每回合的时间,以分为单位,2.5为两分半钟,推荐改为3或者3.5 如果是死亡模式的话可以改为5
mp_startmoney 800 开局资金,一般都是800 最高可以改为16000 不推荐改!
mp_timelimit 60 每个地图玩的时间 60分钟合适了。如果改为0 的话就是不限制时间
mp_tkpunish 0 Team Killer 就是上局杀了自己方人的,这局就会挨惩罚,好像是死一局,开启为1 要和之前那个mp_friendlyfire 1同时开启才用用
mp_winlimit 0 当某方胜利多少局的时候换图,0 为关闭
当然还有其他比较详细的介绍,我这个只是大概介绍一下,偶发偶服的出来给大家看看:

sv_password ""
rcon_password "feilang"
hostname "南宁市飞浪网CS1.6比赛服 [CD]"
sv_maxrate 10000
sv_minrate 1000
sv_maxspeed 320
// 暂停游戏 禁止0/允许1
pausable
// 作弊模式 关闭0/开启1
sv_cheats 0

// 自动瞄准 关闭0/开启1
sv_aim 0
// 战术手电 允许1/禁止0
mp_flashlight 1
// 脚步声 开启1/关闭0
mp_footsteps 1
// 高处落下伤害 开启1/关闭0
mp_falldamage 1
// 自动踢出不动的玩家 开启1/关闭0
mp_autokick 1
// 观察员模式 开启1/关闭0
allow_spectators 1
// 服务端设定游戏复位的时间,包括杀人数、武器、金钱和得分。设0不复位。
sv_restartround 2
// 每局时间30分钟
mp_timelimit 45
// 购买武器冻结时间 (0-45)建议5秒以内。
mp_freezetime 3
// 每回合4分钟
mp_roundtime 3
//购买武器装备时间(0.25-1.5)即15秒-90秒
mp_buytime 0.25
// 炸弹倒计时时间 (15-75)
mp_c4timer 35
//开始游戏时的金钱数量(800-16000)
mp_startmoney 800
// 死亡后视角 1本队队友 2原地 0无限制
mp_forcechasecam 1
// 死亡后视角模式 0自由跟随/1固定跟随
mp_chasecam 1
// 人物死亡后屏幕 不变黑0/变黑1
mp_fadetoblack 0
// 友军误伤 关闭0/开启1
mp_friendlyfire 0
// 手雷友军伤害 关闭0/开启1
mp_friendly_grenade_damage 0
// 杀害友军惩罚 0不惩罚/惩罚:杀害队友超过(1-n)人,下一回合自动死亡
mp_tkpunish 0
// 自动调整双方队伍平衡 不调整0/调整(1-n)个人
mp_autoteambalance 1
// 双方人数差超过n人即自动调整人数差异 0关闭
mp_limitteams 2
// 杀害人质惩罚 0不惩罚/惩罚:规定时间内伤害人质超过(1-n)人自动踢出
mp_hostagepenalty 0
// 杀人数、得分上限 无0/有(1-n),超过上限就换地图。
mp_fraglimit 0
// 胜利次数上限无0/有(1-n),超过上限就换地图。
mp_winlimit 0
// 回合上限 无0/有(1-n),超过上限就换地图。
mp_maxrounds 0
// 允许下载 开启1/关闭0
sv_allowdownload 1

// 允许下载(sv_allowdownload 1)开启时控制是否允许玩家的LOGO传送 允许1/禁止0
sv_send_logos 1
// 允许下载(sv_allowdownload 1)开启时控制是否允许资源文件传送 允许1/禁止0
sv_send_resources 1
// 允许上传 关闭0/开启1
sv_allowupload 1
// 服务器重力设置 默认正常重力800,范围-999到99999
sv_gravity 800
// 投票比率(大家可以通过投票踢出作弊者和更换地图) (0.1-1)
mp_mapvoteratio 0.6
// 设定鬼魂模式刷新值(0.1-1)
mp_ghostfrequency 0.1
// 服务器高品质纹理 关闭0/开启1
sv_sendvelocity 0
// 服务器减少LAG延迟现象(对服务器要求高) 关闭0/开启1
mp_lowlag 0
// 服务器细节数据发送 默认300 ,可减低到250、200,改善速度。
mp_decals 300
// 服务器是否允许麦克风语音通讯 允许1/禁止0
sv_voiceenable 1
// 服务器是否允许客户端之间使用语音通信 允许1/禁止0
sv_alltalk 0
sv_region 4
//区域 4为亚洲

cdrequired "1"
cdrequiredversion auto
//为1 是需要CD ,第二行为自动检测CD版本
// 服务器是否记录文件 不记录0/记录1
mp_logfile 0
// 是否在记录文件里记录谈话内容 不记录0/记录1
mp_logmessages 0
// load ban files
exec listip.cfg
exec banned.cfg

红色字体部分复制下来,粘贴入你的server.cfg文件,就和我的服务器设置一样了,当然你要记得改密码和服务器名字哦!
当然,你也可以直接用cs1.6目录下那几个bat批处理文件架设的服务器!

编辑一下 setmaster add 69.28.151.178:27010 看到没有,这个肯定不是你的IP,你要做的就是改为你自己的IP 。注意哦,192.168.X.X这个不是你的公网IP,这个是你的局域网IP,如果你是网吧的技术员的话,自己想法子找到你网吧用的线路的IP,然后做好对应的端口映射,映射已经超出本帖的范围了,在此先不教。相关的请到我的论坛去看找一下各种路由的映射方法。

接下来就要解释一下其他几个个性化服务器必须要修改到的文件,这两个也是其中的一部分:

mapcycle.txt 地图列表文件,也就是当服务器运行的时候,就只会在这个文件中有的地图之间从上到下运行,
de_st2
de_inferno
de_cbble
de_train
de_nuke
de_cpl_mill
de_aztec
de_st
从第一个到最后一个,然后在循环
motd.txt 这个文件比较特殊,这个就是当玩家进入你的服务器的时候,看到的第一个欢迎logo,它是以文本文件形式存在,但是确实一个html网页的源码,如果你有网页制作的功底的话,可以做得很好看,在此我就献丑,放一下我对这个文件修改以后的效果给大家看看:

如果你没那个功底,你可以找会的朋友帮你做一个,不是很难。
接下来的就是问最多的插件问题了,点击这里下载用到的文件
解压到cstrike的addons目录下,完成后目录结构如下:

第一个amxmodx 是amx插件的主文件夹,其下的configs 是一些插件的设置amxx.cfg 是一些amx的设置,plugins.ini是插件的调用配置管理,users.ini 是用户配置文件,用户的一些权限都是在这里设置的。amxmodx\doc 里面有个帮助文件,那里可以学到更多关于amx的管理和使用,amxmodx\plugins 是一些插件的源码文件的存放位置,大致介绍各个文件夹放在什么位置,等下偶会详细解释最主要的amx.cfg 和plugins.ini还有 users.ini的配置!

addons\Booster 这个是服务器加速插件,推荐一定要开启,那样服务器才能运行在一个高速的状态下;开启于关闭我会在后面介绍;

addons\cdeath 这个是CD反作弊服务器版的文件,很多朋友都不知道怎么样使用,偶等下在介绍吧!

addons\metamod 下的 plugins.ini addons\amxmodx\configs 下的 plugins.ini 又不同,这个plugins.ini 是所有插件的基础,另外一个只是针对amx加载的插件!

所以接下来可能要花很长的时间和篇幅对以下插件进行讲解:

addons\metamod\plugins.ini
addons\amxmodx\configs\amxx.cfg
addons\amxmodx\configs\plugins.ini
addons\amxmodx\configs\users.ini

现在我开始讲解一下所有插件的根基,addons\metamod\plugins.ini 的配置吧!

win32 addons\booster\booster_mm.dll 这个是服务器的加速插件,如果不加载这个东西的话,服务器最高不超过99Fps
;win32 dlls\chicken_mm.dll 这个是一个娱乐用的,也就是变成小鸡的插件。
;win32 addons\amx\dlls\amx_mm.dll 这个是加载amx的插件,如果不加载的话,很多基于amx的插件就用不了,比如死亡
;win32 addons\amx\dlls\fun_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win32 addons\amx\dlls\csstats_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win32 addons\amx\dlls\war3_ms.dll 这个是Amx的一个子插件,魔兽插件,可以在该plugins.ini 中配置,也可以在另外那个plugins.ini (addons\amxmodx\configs\plugins.ini )中加载但是就只能加载一个,重复的不算
;win32 dlls\monster_mm.dll 这个也是Amx的一个子插件,同样可以在这里配置也可以在另外那个 plugins.ini 中配置
;win32 addons/wwcl/dlls/pcawwclconfig_mm.dll WWCL 这个是一个规则插件,某种程度上也能防到某些玩家作弊
win32 addons/cdeath/cdmod.dll 这个就是大名鼎鼎的 Cheating-Death CD反作弊的插件,不过现在最新的4.29注意加载的话,会使服务器出错,在后面我会详细介绍一下最新版本的CD如何加载!

所有的插件以“;”(半角模式下的分号) 开启和关闭 也就是说,你要开启某个插件的话,就不能在该行之前用这个符号,如果不想开启某个插件的话,就在该行 即win32的前面,加上一个这个,就能让那个插件不运行了!
比如:
我想屏蔽ChickenMod 1.0.5.1插件,只需要在win32 dlls\chicken_mm.dll这行行首加入;注释符号屏蔽掉这行即可,即将win32 dlls\chicken_mm.dll改为;win32 dlls\chicken_mm.dll
这样我们在启动服务器时,服务器就不会启动ChickenMod 1.0.5.1插件插件。如果想再次开启ChickenMod 1.0.5.1插件,只需要把此行行首的;符号去掉并保存plugins.ini文件即可。其他插件的屏蔽/开启也是如此。

也许大家这里看不是很明白,我找了张图出来,大家看看参考下:

这个图不是安装了Dcoo这个版本的时候带的,是小凡cs1.5纪念版中有的,放出来的意义是让大家更直观的了解各个命令行的意思!
该版本下的这个文件的内容太简单了,不过基本功能倒是没丢失,如下

; 说明:
; 开启某个模块请去掉前面的分号
; 关闭某个模块请在前面加上分号

;////////////////////////////////////////////////////////////
;// --------------------- Booster ------------------------ //
;////////////////////////////////////////////////////////////
; 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
win32 addons/Booster/booster_mm.dll
;win32 addons/Booster/booster_686_mm.dll

;////////////////////////////////////////////////////////////
;// ------------------- AMX Mod X ------------------------ //
;////////////////////////////////////////////////////////////
win32 addons/amxmodx/dlls/amxmodx_mm.dll
; linux 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
;linux addons/amxmodx/dlls/amxmodx_mm_amd64.so

;////////////////////////////////////////////////////////////
;// --------------- Cheating Death ----------------------- //
;////////////////////////////////////////////////////////////
; win32 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
win32 addons/CDeath/cdmod.dll
;win32 addons/CDeath/cdmod_i486.dll
;win32 addons/CDeath/cdmod_i586.dll
;win32 addons/CDeath/cdmod_k7.dll
;win32 addons/CDeath/cdmod_p4.dll
; linux 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
linux addons/CDeath/cdmod_i386.so
;linux addons/CDeath/cdmod_i586.so
;linux addons/CDeath/cdmod_i686.so
;linux addons/CDeath/cdmod_k7.so
;linux addons/CDeath/cdmod_p4.so

有点乱,大家就只要注意没分号的部分吧!linux不在本帖的讨论范围内,偶对linux的服务器不了解,虽然现在也在学习中
接下来就是amxx.cfg和plugins.ini 还有users.ini 的配置讲解了,先从amxx.cfg开始好了:)

其实amxx.cfg文件里面已经有很多的提示了,我就大概说一下吧!先来看偶安装的这个Dcoo中amxx.cfg各部分的参数:

// AMX MOD X 配置文件.
echo Executing AMX Mod X Configuration File

// 用户的默认权限,可以用此定义为普通的玩家也加上各种权限,相关权限请参考uers.ini文件的权限说明
这个就是玩家的默认权限,相关的权限在users.ini 中有设置
// AMX的远程登陆总密码(所有op都一样),首次配置时必须修改。
// setinfo信息会将密码保存在config.cfg文件里。(为了避免泄露密码,请在结束游戏后删除自己的config.cfg)
// (管理员登陆时请控制台里输入 setinfo _pw "管理员密码",或者直接写入自己的config.cfg文件中)
amx_password_field "_pw" 这个就是amx远程OP的密码,一定要改的,别和server.cfg中的密码混淆就行
// 服务器的记录模式选项
// 0 - 禁止权限登陆,所有的玩家都没有任何的权限
// 1 - 正常模式
// 2 - kick所有users.ini文件上无帐号的玩家
amx_mode 1 服务器的记录模式,一般默认就行了。
// 在op执行某个命令时是否显示op的行动
// 0 - 关闭
// 1 - 不显示OP的行动
// 2 - 显示OP的行动
amx_show_activity 2
// 服务器定时在下方滚动显示服务器信息,以秒为单位
amx_scrollmsg "欢迎来到 %hostname% -- 该服务器使用了 AMX Mod X 管理插件" 600
这里就是一些在游戏中看到的滚动的字的设置位置,可以多设置几条,但是要注意最后那里时间,不能相同,否则就只显示头一条!
// clanmod风格的服务器MOTD彩色信息,后面的颜色RGB代码可以自己修改
amx_imessage "欢迎来到 %hostname%" "000255100"
amx_imessage "这个服务器使用了 AMX Mod X 管理插件\n下载地址 http://www.amxmodx.org" "000100255"
这个就是在游戏中,时不时显示在屏幕中央的一些文字,注意是不滚动的哦!同样也可以多写几条,也要注意时间,最后那些 RGB代码 则是这里文字在游戏中显示的颜色,具体的代码我也不太了解,毕竟偶只对游戏有兴趣,偶又不是做设计一天和那些颜色打交道的。
// 信息显示的间隔时间,以秒为单位
amx_freq_imessage 180

// 这个选项聊天间隔时间的设置,防止server因聊天信息过多导致lag,以秒为单位)
amx_flood_time 0.75
// 预留的管理员通道数,没有权限的玩家进入此通道时会被kick(具体细节看插件原码)
amx_reservation 0
// 剩余时间显示的设置
// a - 以文本方式显示
// b - 用语音来提示
// c - 只使用语音,不显示文本
// d - 不显示详细的时间格式,仅用语音提示
// e - 如果时间小于现在的设置,用语音和文本进行提示
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
// 当用户使用 "say thetime" 和 "say timeleft" 时使用语音通报
amx_time_voice 1
// 两个vote事件之间的最小延迟时间,以秒为单位。(为了防止恶意投票,请将间隔设置长些)
amx_vote_delay 10
// 一个VOTE事件持续的最长时间
amx_vote_time 10
// 显示玩家投票的选择结果
amx_vote_answers 1
// 投票成功所需要的百分比数(0.40为超过40%即投票成功,以此类推)
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.02
// 最长可以延长正在游戏的地图的时间(好象是以分钟为单位)
amx_extendmap_max 90
// 每次默认延长15分钟
amx_extendmap_step 15
// 排行模式
// 0 - 昵称
// 1 - authid
// 2 - ip
csstats_rank 1
// 排行文件最大尺寸
csstats_maxsize 3500
// 显示HUD统计的持续时间
amx_statsx_ration 12.0
// HUD统计信息在冻结时间里的显示时长
// 如设为负数表示在冻结时间结束前多少秒清除HUD统计信息
amx_statsx_freeze -2.0
//设定为0时,将不允许客户端选择语言
amx_client_languages 1
// 插件调试模式
// 0 - 不调试
// 1 - 选择模式,在 plugins.ini 中需要调试的插件后加 debug
// 2 - 全部插件都在调试模式下
// 注意 - 调试模式下会影响 JIT (Just In Time)运行
amx_debug 1

基本就注意,因为这个文件本身已经带了详细的注解,偶有的解释还显得多余了呢!
现在来看看 users.ini 中的一些配置好了!

该文件和amxx.cfg在同一个目录下,目录中内容如下:

; 用户配置文件
; 文件位置: $moddir/addons/amxmodx/configs/users.ini
; 每行前的 ; 表示注释该行
; 权限标记:
; a - immunity (不能被 踢/封/处死/伤害 或者其他的命令影响)
; b - reservation (可通过预留通道加入服务器)
; c - amx_kick command (拥有KICK权限)
; d - amx_ban and amx_unban commands (拥有ban的权限)
; e - amx_slay and amx_slap commands (拥有强行杀死某人的权限)
; f - amx_map command (拥有更换地图的权限)
; g - amx_cvar command (可以设置amx的设置参数,但并不是所有的都可以)
; h - amx_cfg command (可以加载某个AMX的CFG设置文件权限)
; i - amx_chat and other chat commands (可以以管理员身份发布消息)
; j - amx_vote and other vote commands (可以发起一个投票事件)
; k - access to sv_password cvar (可以更改为服务器加密码)
; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)(可以用RCON命令来以OP身份登陆服务器)
; m - custom level A (自定义管理级别,为附加的其他插件预留的权限等级)
; n - custom level B
; o - custom level C
; p - custom level D
; q - custom level E
; r - custom level F
; s - custom level G
; t - custom level H
; u - menu access (拥有打开MENU管理菜单的权限)
; z - user (普通用户权限)
; 帐号类型:
; a - disconnect player on invalid password (此用户的id进入服务器时需要检测密码)
; b - clan tag (此用户的id带有战队标签)
; c - this is steamid/wonid (此用户*steamid/wonid进入服务器)
; d - this is ip (此用户*ip进入服务器)
; e - password is not checked (only name/ip/steamid needed)(此用户进入时不检查密码,只需要id或者ip或者steamid)
; 密码:
; 在自己的autoexec.cfg里加入: setinfo _pw "<管理员密码>"
; 此处 _pw 代表的是参数 amx_password_field 设定的密码
; 管理员帐号格式:
; <名字|ip|steamid> <管理员密码> <权限等级> <帐号类型>

阅读全文

与hud源码相关的资料

热点内容
单片机热释红外报警器 浏览:659
单片机原理及接口技术b卷 浏览:354
php链接正则表达式 浏览:964
安卓版苹果手机怎么转手 浏览:101
安卓怎么修改app的名字 浏览:135
域名服务器可将域名地址 浏览:721
广州服务器机柜怎么卖 浏览:236
转让腾讯云三年服务器 浏览:252
网易云音乐加密怎么处理 浏览:387
编译小视频软件 浏览:595
盒马app买东西怎么送 浏览:119
编译原理国产 浏览:691
在线用pdf转word 浏览:424
咪咕app怎么发表文章 浏览:209
phpsftp上传 浏览:936
php可以干嘛 浏览:879
梁箍筋加密区需要满绑扎吗 浏览:331
程序员半个月工资多少 浏览:821
云服务器租赁还是私有 浏览:752
php七牛视频上传 浏览:14