首页 教程资料文章正文

TGS2011—lua语句解析(二)

教程资料 2021年01月14日 11:08 1259 admin
【 本文内容提供给千年技术热爱者学习使用!QQ群:296880811 唯一网址:www.1000yGM.com 】

【 源码端或脚本请自行安装调试,除商业版以外,功能不做保证同时不提示技术支持!扫地僧QQ:7028518】

本站所有资料和相关软件均来自互联网搜集,请下载后24小时内进行删除!当你下载资料或者软件,将视为同意本条要求!一切的支持都以单机学习为基础!

千年技术中文社区

//怪物调用脚本以下有效,其他调用无效

Monster.GetName(MopP);    //P是函数参数里面 

Monster.Say(MopP, SayStr, SayTick);    //间隔多久说某内容



//Npc调用脚本以下有效,其他调用无效

Npc.GetName(NpcP);    //P是函数参数里面 

Npc.Say(NpcP, SayStr, SayTick);    //间隔多久说某内容

Npc.ShowTradeWindow(NpcP, PlayP, iIndex);  //交易窗口 iIndex 是买卖之类的值



//Manager

Manager.GetRaceByP(PlayP);         //返回玩家种族 1玩家 3怪物 4NPC

        RegenMapTickByIndex(MapId); //离开刷新MapId 地图 

DelMapMonsterByName(MapId, MonsterName);  //删除地图某名字的所有怪物 判断用 if Manager.DelMapMonsterByName(1, '太极公子') == true then 如果删除太极公子成功

AddMonsterToMap(MapId, MonsterName, X, Y, W, ScriptIndex, true); //返回为 == 0就是失败  true表示死亡会刷新 

GetMapRemainTickById(MapId);   //取得地图剩余时间 

MoveByServerId(MapId, TargetMapId, X, Y); //将某地图玩家送到其他地图的指定坐标

        GetItemInfo(物品名字,物品数量,物品段数,物品黄字属性); //返回字符串

        IsGUIldSysOp(门派名字, 玩家名字); 返回1 表示门主 2表示副门 3 普通成员 0 不是门派成员或者门派不存在     

GetLevelByExp(Exp); 返回等级  exp指经验值

GetExpByLevel(Level); 返回经验值 level指等级

        ChangeDynObjState(MapId, DynObjName, Boolean); //参数是 地图ID,动态物品名字,进退(true 或 false)

MapAddObjByName(MapId, Race, Param1, Param2, Param3, Param4, Param5, Param6); //参数MapId是地图编号 Race = 'Npc','Monster', 'Dynamicobject'

//当为monster时 Param1..Param6参数分别是 名字,x,y,w,脚本索引,布尔值(true 或 false)表示是否死亡刷新

//Npc时  Param1..Param6参数分别是 名字,x,y,w,脚本索引,bookname  --参考createnpcxx.sdb

//Dyn时  Param1..Param4参数分别是 名字,x,y,脚本索引 param5,param6无参数


CheckItemRegen(MapId,名字,x,y,w,数量); //w是刷的范围 MapId = 地图编号

SetAllowDelete(地图编号, 类别, 名字); //类别是 'Npc', 'Monster', 'Dynamicobject'   名字就是对应的名字

        GetSdbInfo(sdb文件名字, 索引名字, 字段) //返回对应字段的值   local aStr = GetSdbInf('NewScript\\1.sdb', '测试帐号', '称号');

        SetSdbInfo(sdb文件名字, 索引名字, 字段, 字段值) 无返回

        DelNameInSdb(sdb文件名字, 索引名字);  //用于删除sdb里面不需要记录的玩家名字


        GetGuildSdbInfo(门武名字,sdb字段名字); //返回字符串

        SetGuildSdbInfo(门武名字,sdb字段名字,字段设定字符串);

    //    CheckAliveMonsterCount(地图ID, 种族类型, 名字); //返回数字  调整到 BasicObj里面

CheckObjectAlive(地图标题, 种族类型, 对象名字); //返回布尔型 true or false //种族类型是字符 'MONSTER', 'NPC', 'DYNAMICOBJECT'

        

        SendZoneEffectMessage(名字);//无返回

        SendSound(声音名字字符串, 地图编号数字); //无返回

        CheckEnterMap(地图数字编号); //返回布尔类型  true 或者 false

        GetDistance(OtherP, NewP);  //返回 数字 2个目标之间距离

        

AddItemToMap(地图id,物品名字字符串,等级数字,金字数字,x,y,范围,数量)

        Random(100); //返回随机值 整数


GetNewMap(地图名字, 新地图索引, 地图新名字); //返回布尔值  地图名字指Map.Sdb里面的名字 新地图索引必须是Map.sdb中没的 也没被创建过的 否则返回失败 

//GetNewMap如果有跳点 那么跳点目标地图的索引必须跟当前地图索引差值是一致的 比如 6生成1000 + 6 6原来跳转到7 那么对应的7必须也是 1000+7

//包含submap的索引


        SetMonsterWeakByMapId(地图索引, 百分比); //无返回 百分比大于100就是增加 小于100就是减弱

        SetGuildMemerMaxCount(门派名字, 最大人数);//无返回

        ScriptOpenGuildWar(是否战争); //参数是布尔值 没返回值

        DeleteGuild(门派名字); //无返回 删除门派功能


        CrossServerSay(前景色,背景色,发送内容); //返回布尔类型  跨服喊话 

//玩家信息

Player.GetServerId(PlayP);  //返回玩家地图ID

       GetCharId(PlayP);  //返回数字 获取玩家的ID

       GetAccount(PlayP);  //返回帐号

       GetMapName(PlayP);   //返回玩家地图名字

       SendChatMsg(PlayP, aStr, iCol); //给玩家发独立消息 iCol是色彩索引

       SendChatMsgByCol(PlayP, aStr, FCol, BCol); //给玩家发独立消息 FCol是字色彩值 BCol 背景色色彩值

       MoveToServer(PlayP, MapId, X, Y); //移动玩家到某地图某坐标

       GetPos(PlayP); //返回玩家坐标 local  X, Y = Player.GetPos(PlayP);

       GetName(PlayP); //返回玩家名字

       GetGuildName(PlayP) //玩家门派

       GetGroupKey(PlayP); //团队

       GetAge(PlayP); //返回年龄

       GetMaxLife(PlayP); //活力最大值

       GetCurLife(PlayP); //活力当前值

       GetSex(PlayP); //性别

       GetItemExistence(PlayP, ItemStr, Option); //返回 true 或者 false (非字符) 检查物品是否存在 ItemStr格式 名字:数量:段数:黄字:强化次数:强化值1:强化值2:强化值3:强化值4  Option 为0就检查段数和黄字 其他就不检查

       GetFreeSpace(PlayP); //返回物品空格数

       GetMagicSkillLevel(PlayP, MagicName); //返回等级

       GetCurUseMagic(PlayP, MagicIndex); //返回当前使用武功的名字 MagicIndex 为 0 攻击性武功 1 护体 2步法 3心法 4辅助 5 特别武功

       DelMagicByName(PlayP, MagicName); //返回0失败 1成功  -1是有密码保护  删除武功

       GetItemCountByName(PlayP, ItemName); //返回物品数量

       GetWearItemName(PlayP, WearPos); //返回穿戴位置装备名字 --1 护腕 2上衣 3鞋子 4 内裤 6外套 7头发 8帽子  9武器

       ChangeCurDuraByName(PlayP, 物品名字, 持久数字); //无返回


       SendSideMsg(PlayP, aStr); //无返回

       SetWeaponLight(PlayP, 色彩数字); //无返回


       GetOnlineTick(PlayP);  //返回玩家本次登录时间

       GetSysopScope(PlayP);  //返回权限值 GM的大于99 玩家0

       GetItemPassWord(PlayP); //返回密码 字符串

       GetAttribTotal(PlayP); //返回属性总和 用于呐喊判断

       SendLetter(PlayP, 纸条内容); //无返回 发送纸条消息

       CheckBoLetter(PlayP, Name);  //检查目标是否接受自己的纸条

       BoLetter(PlayP);           //检查自己是否接受纸条


       AddItemToBag(PlayP, ItemData); //返回布尔类型  local ItemData = {Name = '', Count =0, UpGrade = 0, AddType = 0, ItemId = 0, BoAddAttrib = true }

       AddWearItemByPos(PlayP, ItemData, 发放名字, 发放种族); //返回布尔类型 true 或者 false local ItemData = {Name = '', Count =0, UpGrade = 0, AddType = 0, ItemId = 0, BoAddAttrib = true, Color = 0 }

       AddItemToWear(PlayP, ItemData, 发放名字, 发放种族); //返回布尔类型 true 或者 false local ItemData = {Name = '', Count =0, UpGrade = 0, AddType = 0, ItemId = 0, BoAddAttrib = true, Color = 0 }


       SetNewShapeByItemId(PlayP, 物品id, 新外形Id, 新外形对应色彩); //无返回

       GetNewShapeByItemId(物品id); //返回新外形ID



       GetExpInfo(PlayP); //返回表 {ExpNum=0, ExpTick= 0}  例子 local Exp = Player.GetExpInfo(PlayP);    然后判断 if Exp ~= nil then n = Exp.ExpNum; <这个是经验倍数>

       GetHaveItemInfoByPos(PlayP, Index);//获取物品栏第几个物品 返回表 {Name = '',Shape = 0, Color = 0, Count =0, Sex = 0, UpGrade = 0, AddType = 0, Kind = 0, LockState = 0, boNotExchange = true, Attribute= 1, GradeLevel = 0, GradeInfo = '', EquipSet = 0}最后2个是 段数 黄字   GradeLevel是强化等级

       GetWearItemInfoByPos(PlayP, Index); //同上 是获得身上装备 

       DelHaveItemByPos(PlayP, Index);  //删除物品栏第几个物品 返回 true or false 是是否删除成功

       SetViewName(PlayP, ViewName); //设定蒙面人

       ChangeToMonster(PlayP, 怪物名字); //设定成怪物形象

       GetChangeMonsterName(PlayP);  //返回当前变身的怪物名字

       RestoreToHuman(PlayP); //取消变身

       InitEffect(PlayP, 特效编号, 特效持续时间, 特效显示延迟); //如果要持续效果 特效持续时间设定为 2147483647

       UnInitEffect(PlayP, 特效编号);  //关闭特效


       AddMagicByIndex(PlayP, 武功名字, 武功等级, 武功页面); //返回布尔类型 true 或者 false 

       //武功面板ID索引  0 武功 1 上层 2 掌风 3 三层

       ShowGuildMagicWindow(PlayP); //无返回 显示门派武功申请窗口

       AddMagicAndLevel(PlayP, MagicName, MagicLevel); //没返回 

       Putmagicitem(PlayP, ItemStr, SendName, Race); //给玩家物品 无返回 ItemStr格式 名字:数量:段数:黄字 SendName 交易记录里面记录的名字 Race 一般为4 指NPC

       DelMagicItem(PlayP, ItemStr); //返回布尔类型 false or true 删除物品  ItemStr格式 名字:数量

       DelAllItemByName(PlayP, ItemName); //返回布尔类型 false or true 删除指定名字的 所有物品 无返回 

       CommandIce(PlayP, iceIndex);   //挑战公子 玩家进去被定住的那个

       ShowWindow(PlayP, NpcP, FileName, ShowIndex); // ShowIndex为 1,帮助界面模式 2交易界面模式  如果不是点击npc使用 请设定 NpcP = 0;

       ShowWindowByStr(PlayP, NpcP, aStr, ShowIndex);//ShowIndex为 1,帮助界面模式 2交易界面模式  如果不是点击npc使用 请设定 NpcP = 0;

       DelWearItemByPos(PlayP, WearPos); //删除某穿戴位置装备    装备不会在窗口打开回档 所以没返回

       ShowInputWindow(PlayP, NpcP, InputId,'寄卖', '价格'); //显示输入框

       SetExpInfo(PlayP, ExpNum, ExpTick);  //设定多倍倍数和时间

       SetAckEffect(PlayP, AckEffect); //设定攻击特效

                      出现几率,百分比,特效数字,显示字符,... 总共3个

        // AckEffect = {50, 30, 7011, '强击', 50, 30, 7011, '回血', 50, 30, 7011, '抵抗', }

       GetLifeData(PlayP); //返回 LifeData格式 返回玩家本身的属性值 

       GetAddLifeData(PlayP, iIndex); //返回 LifeData格式 iIndex 是服务器第几个额外属性数据

       SetAddLifeData(PlayP, iIndex, LifeData; 时间值); //无返回 LifeData格式 iIndex 是服务器第几个额外属性数据 时间值是 100=1秒 设定0就表示没时间限制


       GetAttrib(PlayP);  返回格式是 {'Age' =0, 'InPower' = 0, 'OutPower' = 0, 'Magic' = 0, 'Life' = 0, Energy = 0}

       SetAttrib(PlayP, AttribData); 无返回. 参数是 AttribData = {'Age' =0, 'InPower' = 0, 'OutPower' = 0, 'Magic' = 0, 'Life' = 0,  Energy = 0} 第2参数请用上面语句返回在调整


       ChangeMagicLevel(PlayP, MagicName, MagicLevel);  无返回 , MagicLevel指100-9999

       ControlPlayByName(PlayP, Name); //控制其他玩家自己操作,返回是 false or true 如果Name为空 就是返回自己 如果控制对方成功就返回 true 其他的都是false

       GetARoundPlayName(PlayP, aStr); //返回字符串 aStr格式是 '%s' 或者 'show-%s'; 准备在控制玩家的列表获取使用 支持N个%s 都会被替换成玩家名字

       GetEquipLevelByIndex(PlayP, iIndex); 返回身上装备强化等级 --1 护腕 2上衣 3鞋子 4 内裤 6外套 7头发 8帽子  9武器


       SetEquipAttribByIndex(PlayP, iIndex, iNum1, iNum2, iNum3, iNum4); //返回布尔 true or false  iIndex是装备位置 iNum 是强化属性  Sql版本不支持

       SetEquipAttribByIndex(PlayP, iIndex, LifeData, 装备等级); //返回布尔型 LifeData格式 iIndex 是装备位置 LifeData是属性 Sql版本支持 装备等级如果不设定就是系统自动+1 设定就是等于设定的

       GetEquipAttribByIndex(PlayP, iIndex); //返回 LifeData的表 iIndex是装备位置 Sql版本支持 


       ClearEquipAttribByIndex(PlayP, iIndex); //清除index位置的装备强化属性

       SLogItemWindow(PlayP);                  //显示福袋

    //参数格式  见新脚本系统相关

 

       //----ShowWindowByStr例子----

         function GetWindowStr(NpcName, ShowStr)

           local WinStr = "<Quest><head><title>"..NpcName.."</title><text>嗨,你好!</text></head>"..

               "<command send='close'>好的</command><body>"..ShowStr.."</body></Quest>";


           return WinStr;

         end;


        Player.ShowWindowByStr(PlayP, NpcP, GetWindowStr(Npc_Name, "\r这只是个示范。\r\r<a send='yesa'>(好的)"), 0);

        //----end ShowWindowByStr例子----


GetJobKind(PlayP); //返回数字 技能类别

GetJobGrade(PlayP); //返回数字 技能等级

        GetMagicCountBySkill(PlayP, 武功类别数字, 等级数字); //返回字符串 如果存在就 'true' 没有就是'false'

RepairItem(PlayP, 位置, 装备类别);  //返回数字大于2就是成功 否则失败

DestroyItembyKind(PlayP, 位置, 装备类别); //同上

CheckPowerWearItem(PlayP); //返回身上技能物品数量 返回数字

GetCurPowerLevelName(PlayP); //返回当前境界名字 字符

GetCurPowerLevel(PlayP); //返回境界等级 数字

CheckAttribItem(PlayP, 属性类别attrib); //返回字符串 'true' or 'false' 表示找到或没

        BoFreedom(PlayP); //返回布尔值 判断玩家是否开着窗口  

        SetAddAttribData(PlayerP, 0, AttribTab);//无返回  AttribTab = {Energy = 0,      InPower = 0, OutPower = 0, Magic = 0, Life = 1000};

        

IdentWearItem(PlayP, 位置, LifeData信息); //鉴定装备 返回布尔值

        ClearItemIdent(PlayP, 位置);  //清楚鉴定信息

SetCoverFace(PlayP, 布尔变量); //无返回 设定是否蒙面 装备是斗笠+忍者弓服 装备可以设定持久使用才消耗持久


        MakeCombatPet(PlayP, 怪物名字, 是否任务); //无返回 怪物名字就是monster.sdb里面索引 是否任务是布尔星

  例: Player.MakeCombatPet(PlayP, '太极公子', true); //任务型怪 离开玩家视线就被删除


        GetCombatPet(PlayP); //返回目标读取的monster.sdb里面名字

ClearCombatPet(PlayP); //删除玩家带的目标

        SetCurLife(PlayP, 活力值);  //删除玩家血或者增加

        ChangeState(PlayP, 状态数字);  //状态数字 0站立 1战斗姿势 2坐下 3死亡

SendCenterMsg(PlayP, 字符串); //发送玩家单体中间显示  

SendTipInfo(PlayP, 信息字符);无返回

        LockExchange(PlayP, 布尔参数(true, false)); //锁定交易,同时禁止扔东西 false是可以交易 true就是禁止

        GetAdaptive(PlayP); 返回数字 获取耐性

        AddAdaptive(PlayP, 经验数字);

        GetVirtue(PlayP); 返回数字 获取浩然  

        AddVirtue(PlayP, 经验数字);

        SetPowerLevel(PlayP, 境界数字)

        //---月卡脚本---

        GetPlayInfo(PlayP);  //返回当前时间类型数字 和 时间字符串

        SetPlayInfo(PlayP, 时间类型, 分钟);  类型有 (0: 免费; 1: 3天体验, 2: 付费, 3: 试玩时间);

        GetAreaName(PlayP); //返回地图区域名称        

        SendARoundChatMsg(PlayP, 发送内容,字色彩,背景色); 这个是以PlayP为中心广播


 PlayerList.GetUserPointer(Name); //返回2个值 第一个是玩家的playP, 第2个参数是 布尔型

            GetUserPointerById(id); //同上

    GuildSay(GuildName, aStr); //发门派通告

    GetGuildUserInfo(GuildName); //类似 /who 只是返回成字符串

    SayByServerID(MapId, aStr, iCol); //发给某地图玩家信息 聊天窗显示 iCol 是色彩

    MoveByServerId(MapId, TargetId, X, Y); //移动某地图玩家到另一地图坐标

    SetActionStateByServerID(MapId, iState); //给某地图玩家上状态   iState 0 正常 1 禁止移动 2 减速

    SendSideMessageByServerID(MapId, aStr); //信息显示在左侧拾取物品那个地方

    SendSoundMessage(aSound, MapId); //给某地图所有玩家播放一个声音

    SendNoticeMessage(aStr, iCol); //发一条信息给所有玩家  聊天窗显示

    SendCenterMessage(aStr);   //游戏中间显示信息

    SendCenterMessagebyMapID(aStr, MapId);//给某地图玩家发中间公告

    SendTopMessage(aStr);  //左上角信息

    SendTopLetterMessage(aName, aStr1, aStr2);

    SendScreenEffectToAll(特效编号, 特效延迟); //给所有人发特效

    GetUserList(); //返回所有玩家名字

    GetUserCountByManager(MapId)  //返回某地图玩家数量

    AddItemAllUserByMapId(MapId, 发放着名字, 物品:数量:等级:黄字); //给某地图所有玩家发物品

    AddItemUserByGroupAndMapID(MapId, 团队色, 发放者名字,物品:数量:等级:黄字); //指定地图和团队发放

    DeleteItemAllUserbyMapId(MapId, 物品); //某地图所有玩家删除某物品

    GetRemainGuildUserbyServerId(MapId, 门派名字); //返回某地图 某门派 玩家数量

    GetUserCount(); //返回总人数

            SendNoticeMessageByCol(aStr, FCol, BCol); //群发聊天信息 自定义色彩


【千年技术站推荐QQ交流群:296880811 欢迎加入!】

资源仅提供学习,请勿用于商业!如网盘过期,请联系管理员处理。

千年技术社区微信公众号【千年圈、qnyouxi】上线,感谢关注获得更多资源!

本站所有资料和相关软件均来自互联网搜集,请下载后24小时内进行删除!当你下载资料或者软件,将视为同意本条要求!一切的支持都以单机学习为基础!

发表评论

千年技术中文网- Copyright 1000ygm.com 千年游戏技术网 Rights Reserved. 备案号:皖ICP备2021006367号 1000YGM强力驱动 站长QQ:7028518

本站资料来自互联网搜集整理,仅供学习交流,请支持正版游戏,切勿用于非法途径。如有发生侵权等行为,联系理删除。