72家族网-手游源码论坛

6.9
查看:【1647】 回复:【54】 发表于 2019-7-30 11:09
本主题由 族长 于 2020-5-24 11:22 分类
全站
18小时前
全站
1天前
全站
2天前
全站
2天前
全站
3天前
全站
4天前
全站
4天前
全站
5天前
全站
6天前
全站
6天前
全站
7天前
全站
8天前
全站
8天前
全站
10天前
全站
11天前
全站
11天前
全站
12天前
全站
13天前
全站
17天前
全站
17天前

战神引擎手游源码

GowLom2战神引擎常用脚本接口  

GowLom2战神引擎常用脚本接口
给物品 :
      This_Player.Give('屠龙',2);
      ***给物品前务必判断包裹中是否有足够的空间,否则将不能给予物品,但相应货币或者材料将会正常扣除***
空包裹:
      This_Player.FreeBagNum
      如要给玩家2个屠龙,屠龙不可堆叠,所以至少需要两个包裹空位:
     if This_Player.FreeBagNum >= 2 then
     This_Player.Give('屠龙',2);
包裹中物品数量:
     This_Player.GetBagItemCount('物品')
扣除物品
     This_Player.Take('屠龙',2');
     ***扣除物品前物品判断包裹中是否有足够的物品,切记在扣除的方法中判断***
    if This_Player.GetBagItemCount ('屠龙') >= 2 then
    This_Player.Take('屠龙',2');

随机数:
    random(x) 返回值为0到 x-1 中的随机一个整数数
    比如random(10) 返回值为0-9 中随机一个整数
*综合以上常用接口,活动为使用100个金刚石可抽取随机一个武器,1%的概率抽取屠龙档武器 19%怒斩档  80%裁决   
procedure _getRdmWP;
var Rdm_int : integer;
WpName : string;
begin
    Rdm_int := random(100);  //获取随机数,随机数为 0-99中随机一个数字
   
    if This_Player.GetBagItemCount('金刚石') >= 100 then// 查看包裹中是否有足够的金刚石
    begin
        if This_Player.FreeBagNum >=1 then// 查看是否有足够的包裹空间
        begin
            if Rdm_int < 1 then // 随机到0的概率为1%
            begin
                case random(3) of
                    0 : WpName := '屠龙';
                    1 : WpName := '嗜魂法杖';
                    2 : WpName := '逍遥扇';
                end;
            end else if Rdm_int < 20 then //随机到1-19的概率为19%
            begin
                case random(3) of
                    0 : WpName := '怒斩';
                    1 : WpName := '龙牙';
                    2 : WpName := '龙纹剑';
                end;
            end else if Rdm_int < 100 then //随机到20-99的概率为80%
            begin
                case random(3) of
                    0 : WpName := '裁决之杖';
                    1 : WpName := '骨玉权杖';
                    2 : WpName := '无极棍';
                end;
            end;
            
            This_Player.Take('金刚石',100);
            This_Player.Give(WpName , 1);
            This_NPC.NpcDialog(This_Player,
            WpName + '已放入您的包裹!\|'
            +'{cmd}<继续使用100个金刚石抽取武器/@getRdmWP>');
        end else
        This_NPC.NpcDialog(This_Player,
        '没有足够的包裹空间!\|'
        +'{cmd}<返回/@main>');
    end else
    This_NPC.NpcDialog(This_Player,
    '没有足够的金刚石,不可抽取\|'
    +'{cmd}<返回/@main>');
end;

begin  //脚本入口  使用<返回/@main> 可跳转到此处
    This_NPC.NpcDialog(This_Player,
    '巴拉巴拉巴拉一堆废话\|'
    +'{cmd}<100金刚石抽取武器/@getRdmWP>');
end.

获取时间 :
   GetYear : 返回当前年份
   GetMonth : 返回当前月份
   GetDay : 返回当前日期
   GetDayOfWeek : 返回星期几   
   GetHour : 返回当前小时数
   GetMin: 返回当前分钟数
   GetNow() : 获取当前时间浮点数,返回值为double
   GetDateNum(datatime : double) 返回值为datatime 所对应的数字
   如2019年1月1日 使用GetDateNum(GetNow)  返回值为43466  
查改变量:
    私人变量为V,S ,服务器变量为G
    使用方法详见《程序变量操作指南》
增加、查询、扣除灵符:
   增加 :This_Player.AddLF(nType,LF_NUM);
   查询 :This_Player.MyLFnum
   扣除 :This_Player.DecLF(nType, LF_NUM, false);
   LF_NUM : 灵符数量
   nType : 编号,一般为0
   ***扣除前务必查询是否有足够的灵符***
增加、查询、扣除金币:
   增加 : This_Player.AddGold(GoldNum);
   查询 :This_Player.GoldNum
   扣除 :This_Player.DecGold(GoldNum);
   GoldNum : 金币数量
   ***扣除前务必查询是否有足够的金币***
增加、查询、扣除声望:
   查询:This_Player.MyShengwan
   声望的增加和扣除直接赋值即可
   如扣除10点声望
   if This_Player.MyShengwan >= 10 then
   This_Player.MyShengwan := This_Player.MyShengwan - 10;
   增加10点声望
   This_Player.MyShengwan := This_Player.MyShengwan + 10;
   ***扣除前务必查询是否有足够的声望***
元宝购买:
   This_Player.PsYBConsum(This_NPC,'回调函数名称',交易编号,元宝数量,购买个数);
   交易编号为大于20000的整数,建议每次活动使用不同的编号,方便后期统计使用
   回调函数必须返回boolean值,回调函数名称及逻辑都需自定义编写,请参照下面例子中的 function YB_NewComeBag(price, num: Integer):boolean;
   ***调用该接口时请判断好前置条件,该接口一经调用先扣除元宝,再执行回调函数***
如:2018年10月1日至7日每天12:00-19:00 可使用2元宝或2灵符随机抽奖(优先扣除灵符),奖励为5灵符(9%)、10声望(20%)、10000经验(40%)、10万金币(30%)、2个金条(1%)


procedure giveYBprz();  //灵符和元宝抽取奖励完全一样,自定义一个方法,方便调用 ,*****自定义方法内容需要写在调用之前*****
var rmd : integer;
itemStr : string;
begin
   
    rmd := random(100);
    if rmd < 9 then
    begin
        This_Player.AddLF(0,5);
        itemStr := '5灵符';
    end else if rmd < 29 then
    begin
        This_Player.MyShengwan := This_Player.MyShengwan + 10;
        itemStr := '10声望';
    end else if rmd < 69 then
    begin
        This_Player.Give('经验',10000);
        itemStr := '1万经验';
    end else if rmd < 99 then
    begin
        This_Player.AddGold(100000);
        itemStr := '10万金币';
    end else
    begin
        This_Player.Give('金条',2);
        itemStr := '2个金条';
        This_NPC.NpcNotice('恭喜“' + This_Player.Name + ' ”参加两元宝抽奖时获得了' + itemStr + '!!!'); //系统公告红字,全服可见
    end;  
    This_Npc.NpcDialog(This_Player,
    '你获得了:' + itemStr + '\|'+
    '{cmd}<继续使用2元宝抽奖/@RdmYBPrz>'
    );
end;
procedure _RdmYBPrz;
begin
    if (GetYear = 2018) and (GetMonth = 10) and (GetDay >= 1) and (GetDay <= 7) then
    begin
        if (GetHour >= 12) and (GetHour < 19) then  //注意结束时间,19:00:00-19:59:59 GetHour均返回19
        begin
            if This_Player.FreeBagNum >= 2 then
            begin
                if This_Player.MyLFnum >= 2 then //优先使用灵符,灵符足够直接扣除灵符并给与奖励
                begin
                    This_Player.DecLF(0,2,false);
                    giveYBprz();    //直接调用给奖励方法 *****自定义方法内容需要写在调用之前*****
                end else                           //灵符不足则使用元宝
                This_Player.PsYBConsum(This_NPC,'YB_NewComeBag',20001,2,1);  //YB_NewComeBag为自定义回调函数名称, 20001为扣除编号,方便统计,2为元宝数量,1为个数(一般使用1即可)
抱歉:系统检测到您还未登陆,无法查看或下载下面的隐藏资源!
内有隐藏资源下载地址或隐藏内容,请【登录后回复】即可查看!

使用道具

关闭

72家族网欢迎您-手游源码开发者论坛上一条 /1 下一条

综合统计   资源量:697557   会员数:108531   今日活跃:52   昨日活跃:633   同时在线:211

9年老站欢迎您,已运行,感谢一路相伴

域名:72jz.com 年龄:9年 世界排名:1,091,577 日均访问[PV]:15000  创建于2011年04月20日,过期时间为2029年04月20日[待续] 皖ICP备11014237号

本站专注为新手提供手游源码、网页游戏源码、游戏一键端资源教程开发技术交流学习论坛

本站资源来自互联网搜集,仅供本地电脑单机学习和交流,请勿用于商业用途,请自觉在24小时内删除。
若有侵权与文章中不妥之处,请联系邮箱:admjz@vip.qq.com(手机随时接收邮件)并出示相关证明以便删除。敬请谅解!

2011-2020 72家族网 版权所有 Powered by Discuz!
本站部分资源系统会自动采集第三方,若不小心侵权了品牌请及时联系我们邮箱,会在第一时间删除。