15 12
发新话题
打印

[问题] pawn新手2个小问题- -

1.如何使玩家只能在一定的范围内活动?(就像DM一样)
2.如何使玩家进入DM后输入其他指令无效?
如果方便的话把代码发上来也行- -

TOP

新号抢点SF
本帖最近评分记录
  • 狙击 金钱 -5 看你分不多…就扣到0吧……别在此区灌水ok? ... 2012-2-26 21:30

TOP

尼玛……我要扣你分……SF是为高手准备的……

TOP

参考未来世界开源版
限制区域用OBJ挡住凑合一下
判断是否在DM就用bool凑合一下

[ 本帖最后由 Scarlet_Tatroe 于 2012-2-26 21:46 编辑 ]
本帖最近评分记录
  • 狙击 金钱 +5 thx 2012-2-26 22:22

TOP

bool是什么…用obj的话我想做的是大型dm基本不可能……我去看看开源版的代码去…

TOP

狙击开始写脚本啦...

TOP

是啊…表示刚才才知道不用重启服务器就可以用rcon重载脚本…

TOP

引用:
原帖由 狙击 于 2012-2-26 20:48 发表
1.如何使玩家只能在一定的范围内活动?(就像DM一样)
2.如何使玩家进入DM后输入其他指令无效?
如果方便的话把代码发上来也行- -
1.http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds
空气墙效果
2.
常用做法一:
//Top of File
bool PlayerDM[MAX_PLAYERS];
//callback OnPlayerCommandText
OnPlayerCommandText(...)
{
//begining of callback
    if(PlayerDM[playerid] == true)
    {
        SendClientMessage(playerid,0xFFFFFF,"[错误]正在DM,无法使用其他指令!");
        return 1;
    }
//other part of callback
}
常用做法二:
//Top of File
bool PlayerDM[MAX_PLAYERS];
//callback OnPlayerCommandText
OnPlayerCommandText(...)
{
//begining of callback
    if(DMStatusCheck(playerid) == true)
    {
        SendClientMessage(playerid,0xFFFFFF,"[错误]正在DM,无法使用其他指令!");
        return 1;
    }
}
DMStatusCheck(playerid)
{
    if(PlayerDM[playerid] == true)
        return true;
    return false;
}
求补分,新号赚分不易
欢迎提问。

[ 本帖最后由 _Luck_ 于 2012-2-26 22:26 编辑 ]

TOP

表示代码错误- -空气墙求翻译- -

TOP

引用:
原帖由 狙击 于 2012-2-27 12:53 发表
表示代码错误- -空气墙求翻译- -
代码肯定只是起演示说明作用,要弄进scripts得根据需求修改。
空气墙:
SetPlayerWorldBounds(playerid,max_x,min_x,max_y,min_y);
playerid - 要设置的玩家ID
max_x | min_x - 最大和最小x坐标
max_y | min_y - 最大和最小y坐标
关于坐标,貌似是以矩形展开,忘记了。
另,要取消边界,后四个参数设置成20000.0000, -20000.0000, 20000.0000, -20000.0000即可。
本帖最近评分记录
  • mk124 金钱 +10 正确回答 2012-2-28 17:28

TOP

 15 12
发新话题