lxb1101 发表于 2022-11-5 05:05:31

诛仙抽奖脚本编辑

1首先想添加抽奖箱子,必须加的两段代码 以神木宝箱为例,就是那个抽神木法宝的

-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function LotteryType6576SelectNumber(list, max_count)   --- Lottery   Used@20070618   (神木宝盒)   请注意这里的数字 6576这个是el物品id 脚本就是通过这个id控制
local NumList={1,2,3,4}                                                             --- 这里设置的是列表,相信反映快点马上就知道是干什么的了
local NumChance={360,360,360,180}                                 --- 这行本人比较愚钝 不知道干吗的 也期望别的大大知道的给我补上                        
return NumList
end
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
各位看清上面这段必加加的位置 相信只要稍微用点脑的人都马上就能看出来的




下面我们找该文件的另外一处 这一处也是必须添加的
---------------------------------------------------- 完美的分割线 -----------------------------------------
-------------------------------------------------------------------------------------------------------------
function LotteryType6576Cashing(cur_list) ---(神木宝盒) 修改这里的id数值 改为el自己的
---fmax_count为该彩票的有效位数
local cp
local nowcurlist={}
local fmax_count=table.getn(cur_list)
nowcurlist=""
for cp=1,fmax_count do
nowcurlist=nowcurlist..cur_list
end

local lot_prize={}
local lot_prizechance={}
local prizeout
local Out_Prize={}
Out_Prize={}
Out_Prize={}
Out_Prize={}
Out_Prize={}
-----------------------------------------------------------------------------------------------------------这下面一段是控制抽奖物品id的 修改
Out_Prize=100 --神木骰

Out_Prize=100 --月华之灵

Out_Prize=100 --回城符
Out_Prize=100
Out_Prize=100
Out_Prize=100
Out_Prize=100
Out_Prize=100

Out_Prize=100 --太一轮

local i,v,k

for k=1,4 do
lot_prize={}
lot_prizechance={}
end

for k=1,4 do
for i,v in pairs(Out_Prize) do
table.insert(lot_prize,i)
table.insert(lot_prizechance,v)
end
end
if nowcurlist=="444" then
prizeout=lot_prize)]
return 1,0,prizeout,1,0,0
elseif ZLottery_FindSameNum(cur_list,4)==2 or nowcurlist=="333" or nowcurlist=="222" or nowcurlist=="111" then
prizeout=lot_prize)]
return 2,0,prizeout,1,0,0
elseif ZLottery_FindSameNum(cur_list,4)==1 then
prizeout=lot_prize)]
return 3,0,prizeout,2,0,0
else
return 4,0,1807,1,0,0
end
return 4,0,1807,1,0,0
end
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------


以上两端内容缺一不可 分别复制在lottery.lua的不同位置中。修改好后上传 然后再el里面添加物品 将这些文件传入服务器 就开服自己试试吧


有关轮盘抽奖几率的猜想

在lottery.lua文件中有两次方式调整几率 不过这些只是我的个人猜想 毕竟我不精通java

-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function LotteryType24343SelectNumber(list, max_count)   --- Lottery Used@20090211(天衮靛石:獬豸)
local PriceChance = {25,450,4000}                      -- 一二三等奖概率(单位:万分之)

☆☆☆☆☆☆从这里往下倒end 都可以调整几率我认为完美真黑

PriceChance = 10000 - PriceChance - PriceChance - PriceChance--   四等奖概率(单位:万分之)   ☆☆☆☆☆☆这一行是中奖总几率
subChance = {}
local subSum = {}
☆☆☆☆☆☆从这里往下4行大括号内数值我认为也是只不过分属作用不同

subChance = {100}      -- 一等奖内部相对概率(1号)
subChance = {2,1,1,1,1,1,2}   -- 二等奖内部相对概率(3号,5号,7号,9号,11号,13号,15号)
subChance = {25,25,25,25}    -- 三等奖内部相对概率(4号,6号,12号,14号)
subChance = {2,5,5,8}      -- 四等奖内部相对概率(2号,8号,10号,16号)

for j=1,4 do
subSum = 0
for i,_ in pairs(subChance) do
   subSum = subSum + subChance
end
end

local NumList = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
local NumChance =
{
PriceChance,            PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
PriceChance*subChance/subSum, PriceChance*subChance/subSum,
}
return NumList
end
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------

以上这种抽奖模式诛仙2的因为422以后的很多抽奖盒我都没见过 ☆☆☆☆☆☆[size=5五角星的位置都是可能需要修改点

而另外一种是原诛仙的   在程序最开头处
目前我就发现这两种调整抽奖几率的代码
我认为这两种模式 一个是总控 一个是单控 而单控灵活是诛仙2的 更加灵活(也更加黑)
我把总控的这个发出来下面的就是
说实话下面代码没看太懂就不做啥品论了有人能看懂的补贴或者发我这里论坛的邮箱都成
----出现几率正态化-------------------------------------------------------------------------------------------
function ZLottery_Chance_Norm(n1)
local n1_size=table.getn(n1)
local Total_Chance=0
local i,k,m
---先求和
for i=1,n1_size do
   Total_Chance=n1+Total_Chance         
end
---生成概率组序列
local nx={}
for k=1,n1_size do
   if k==1 then
    nx=n1
   else
      nx=n1+nx            
    end
end
---再生产标准化的概率组序列
local n2={}
for m=1,n1_size do
   if Total_Chance==0 then               ---对于全0序列的处理,返回{1,0,0...}
   n2=0
    n2=1
   else
    n2=nx/ Total_Chance
   end
end
---返回一个概率序列
---ZLuaTal_Special_Print(n2)       ---$$$$测试用$$$$-----
return n2
end
-------------------------------------------------------------------------------------------------------------
----按照出现概率随机应该选取的位置---------------------------------------------------------------------------
function ZLottery_Get_RanPoint(s1)
local js,ron1
ron1= math.random()               
---print("---------------------------")   ---$$$$测试用$$$$-----
---print("Now the random Num is:",ron1)---$$$$测试用$$$$-----
local p1=ZLottery_Chance_Norm(s1)
for js=1,table.getn(p1) do
          if ron1<=p1 then
       ---print("So We Choose:",js)   ---$$$$测试用$$$$-----
         return js
      end
end
return 1
end
-------------------------------------------------------------------------------------------------------------
---找到S1中a数字的个数---------------------------------------------------------------------------------------
function ZLottery_FindSameNum(s1,a)
local i,j
j=0
for i=1,table.getn(s1) do
if s1==a then
j=j+1
end
end
return j
end

tuoeroo 发表于 2022-11-5 07:51:50

淡定,淡定,淡定……

58421604 发表于 2022-11-6 01:32:04

我只是路过打酱油的。

myselfjo 发表于 2022-11-7 18:04:54

真是被感动的痛哭流涕……

cbkfun 发表于 2022-11-8 00:35:10

强烈支持楼主ing……

124875772 发表于 2022-11-8 15:41:41

楼主加油,我们都看好你哦。

qusi1nide4t 发表于 2022-11-8 17:35:30

真是难得给力的帖子啊。

jhc 发表于 2022-11-8 22:07:53

感恩无私的分享与奉献 :)

mikeshinoda 发表于 2022-11-9 17:08:06

太生气了,无法HOLD啦 >_<......

kuake2002 发表于 2022-11-10 12:56:46

看到这帖子真是高兴!
页: [1] 2
查看完整版本: 诛仙抽奖脚本编辑