Zh/CS:GO VScript Examples
< Zh
Jump to navigation
Jump to search
以下是适用于Counter-Strike: Global Offensive 的 vscripts 脚本 .
找到离一个已知实体实体最近的玩家
buttonReference <- Entities.FindByName( null, "button_01" ); // 找到一个叫 "button_01" 的实体并且储存它的targetname(名字)
player <- Entities.FindByClassnameNearest( "player", buttonReference.GetOrigin(), 512 ); // 在距离按钮中心 512 Hammer单位(英寸) 的范围内寻找玩家并且储存为一个变量.
会原地爆炸爆的诱弹
//以下的脚本需要附加到一个类似logic_script之类的实体上
EXPLOSION_SOUND <- "c4.Explode"; //这个可以在Hammer的声音浏览器里找到
function Precache() /如果这个函数定义了那么他会在脚本执行时自动执行
{
self.PrecacheScriptSound( EXPLOSION_SOUND );
}
//以下脚本的作用是每间隔 0.1 秒检查地图上有没有 decoy_projectiles 这个实体
//当地图上有这个实体的时候检测他的速度是否为 0,0,0
//如果是的那么诱弹就是停下来了然后就可以运行剩下的部分:
//创建一个 env_explosion 并且移动到诱弹的中心点
//然后触发这玩意,随后kill掉诱弹
function Think()
{
ent <- null;
while ((ent = Entities.FindByClassname(ent, "decoy_projectile")) != null)
{
if(ent.GetVelocity().Length() == Vector(0,0,0).Length())
{
owner <- ent.GetOwner();
origin <- ent.GetOrigin();
exp <- Entities.CreateByClassname("env_explosion");
exp.__KeyValueFromInt("iMagnitude", 2000);
ent.EmitSound(EXPLOSION_SOUND);
exp.SetOrigin(origin);
exp.SetOwner(owner);
EntFireByHandle(exp, "Explode", "", 0.1, owner,owner);
ent.Destroy();
DispatchParticleEffect("explosion_c4_500", origin, origin);
}
}
}
一把始终瞄准着玩家的枪
//以下脚本需要以下在hammer里放好以下实体:
//一个叫hurt的func_brush,并且将origin球拖动到玩家头部
//一个叫sentry_main的的枪模型
//然后运行StartAimBot
function StartAimBot() {
sentry <- Entities.FindByName(null,"sentry_main");
hurt <- Entities.FindByName(null,"hurt");
}
function Think() {
local Target = Entities.FindByClassnameNearest( "player", buttonReference.GetOrigin(), 512 );
if(Target != null) {
local m_targetVector = Target.EyePosition();
local m_sentryOrigin = sentry.GetOrigin();
local m_dir = m_targetVector - m_sentryOrigin;
local UCSX = sqrt(pow(m_dir.x,2)+pow(m_dir.y,2));
local pitch = asin(m_dir.z / sqrt( pow(UCSX,2) + pow(m_dir.z,2) )) * 180 / PI * -1;
local yaw = asin(m_dir.y / sqrt( pow(m_dir.x,2) + pow(m_dir.y,2) )) * 180 / PI;
if(m_dir.x < 0)
yaw = 180 - yaw;
sentry.SetAngles(pitch,yaw,0);
hurt.SetOrigin(Target.EyePosition());
}
}
在hud上显示消息
_msg <- null
//如何调用?
//ShowMsg(activator,"<font color='#FFFF00'>这是一条红色的消息");
function ShowMsg(player, message)
{
if(_msg == null)
_msg <- Entities.CreateByClassname("env_message");
_msg.__KeyValueFromString("message", message);
_msg.SetOwner(player);
EntFireByHandle(_msg, "showmessage", "", 0, player, player);
}
待完善: 求更多大佬完善这个界面
看一下这些吧
外部链接
- Squirrel (programming language) - Wikipedia Article on Squirrel
Squirrel: The Programming Language - Documentation and Sample Code