战神引擎胖妞脚本修改版
2021-9-24

{娱乐中心 
作者:开心就好
内容:☆☆本中心只供娱乐,严禁用于赌博,一切后果自负☆☆
人机对赌模式  该版能够更好控制输赢率
SetG(73,1,90)为输赢率总开关,GetG(73,1)取值0到99。通过控SetG来控制输赢,
如例取90则玩家胜率为 10%不到,取99玩家100%输
}
PROGRAM Mir2;
var 
str :string;
num,num1 , ya , zhong ,color :integer;
i : Integer;
j : Integer;
k : Integer;
h : Integer;
Procedure _doexit;
begin
   This_Npc.CloseDialog(This_Player);
end;
procedure domain;
var
jiangci :integer;
 
begin
ya := GetG(73,5);
zhong := GetG(73,6);
jiangci:= (ya - zhong);
 if jiangci*0.8 <= 0 then jiangci:= 100000+Random(100000);
 if jiangci*0.8 > 0 then jiangci:= jiangci*8/10;
 
if This_Player.GMLevel > 0  then
begin 
h := GetG(73,1);
SetG(73,1,h);//90为可更改数字,范围0-99,如取90则玩家胜率为10%不到,取99玩家100%输
This_Player.SetV(0, 1, (Random(6) + 1));
This_Player.SetV(0, 2, (Random(6) + 1));
This_Player.SetV(0, 3, (Random(6) + 1)); 
i:=This_Player.GetV(0, 1);
j:=This_Player.GetV(0, 2);
k:=This_Player.GetV(0, 3);
num:= i+j+k ;
    str := This_NPC.InputStr;
    This_NPC.NpcDialog(This_Player,
	'总压:' + inttostr(ya) + ' 中:' + inttostr(zhong) + '  盈利:' + inttostr(jiangci) + '\'
      +'|☆☆☆☆☆☆欢迎光临娱乐中心☆☆☆☆☆☆\'
      +'|☆           <每次投注至少需要100金币/c=red>          ☆\'
      +'|☆☆☆☆☆☆☆☆祝君中奖☆☆☆☆☆☆☆☆\'
      +'|当前玩家中奖机率为:' + inttostr(100 - h) + '%  <注:豹子无效/c=red>\'
     +'|{cmd}<10%中奖率/@yishi> ^<50%中奖率/@wushi> ^<80%中奖率/@bashi>\' 
     +'|{cmd}<我要买大/@md> ^<我要买小/@mx> ^<我要买豹子/@mbz>\' 
     +'|{cmd}<买定开骰/@DoPlayDice>^<关闭/@doexit>^<清空盈利/@qingkong>\'
	 +'{cmd}<清除下注/@333>\'
      );
end
else
begin 
h := GetG(73,1);
SetG(73,1,h);//90为可更改数字,范围0-99,如取90则玩家胜率为10%不到,取99玩家100%输
This_Player.SetV(0, 1, (Random(6) + 1));
This_Player.SetV(0, 2, (Random(6) + 1));
This_Player.SetV(0, 3, (Random(6) + 1)); 
i:=This_Player.GetV(0, 1);
j:=This_Player.GetV(0, 2);
k:=This_Player.GetV(0, 3);
num:= i+j+k ;
    str := This_NPC.InputStr;
    This_NPC.NpcDialog(This_Player,
	  +'|规则:奖池少于中奖数者赢大几率为 45%\'
	  +'| 	奖池大于中奖数量,几率为65%\' 
	  +'| 	奖池大于1亿金币,几率为95%\'
	  +'|说明:图片显示跟对话框不一样,\'
	  +'|		以对话框为准。\'
	  +'|奖池:<'+inttostr(jiangci) + '/c=red>\'
      +'|☆☆☆☆☆☆☆☆祝君中奖☆☆☆☆☆☆☆☆\'
	  +'|\'
	  +'{cmd}<我要买大/@md> ^<我要买小/@mx> ^<我要买豹子/@mbz>\|' 
      +'{cmd}<买定开骰/@DoPlayDice>^<清除下注/@333>^<关闭/@doexit>'
	
      );
end;
end;
procedure zhidong();
begin
ya := GetG(73,5);
zhong := GetG(73,6);
	begin
		if (ya - zhong)*0.8 <= 0 then
		begin
		This_Player.CallOut(This_NPC, 1, 'yishi');
		end
		else
		if ((ya - zhong)*0.8 >  0)and((ya - zhong)*0.8 < 50000000)  then
		begin	
		This_Player.CallOut(This_NPC, 1, 'wushi');
		end
		else
		if (ya - zhong)*0.8 > 100000000  then
		begin
		This_Player.CallOut(This_NPC, 1, 'bashi');
		end
		else
		if  ((ya - zhong)*0.8 > 50000000 )and((ya - zhong)*0.8 < 100000000 ) then
		begin
		This_Player.CallOut(This_NPC, 1, 'bei');
		end;
		
	
	
	end;
end;	
procedure _333;
begin
This_Player.setv(74,1,0);
end;
procedure _qingkong;
begin
SetG(73,5,0);
SetG(73,6,0);
        This_NPC.NpcDialog(This_Player,
        '清理成功!\|'
        +'{cmd}<返回/@main>');
		
		
end;
procedure bei;
begin
SetG(73,1,40);     //中奖概率9% 
end;
procedure yishi;
begin
SetG(73,1,60);     //中奖概率9% 
end;
procedure wushi;
begin
SetG(73,1,53);   //中奖概率49%
end;
procedure  bashi;
begin
SetG(73,1,20);   //中奖概率79%
end;
procedure _mx;
begin
 begin
  if This_Player.GetV(74,1)< 1  then 
  begin    
        This_NPC.InputDialog(This_Player,'请输入你要买的数额',0,111) ;
  end else This_NPC.NpcDialog(This_Player,'你已经投过注了!'+'{cmd}<返回/@main>') ;
 end;
end;
procedure p111;
begin
   num1 :=  StrToIntDef(This_NPC.InputStr,-1);//输入非阿拉伯数字的字符都返回-1
   if This_NPC.InputOK  then             
    begin
        if (num1 < 100) or  (num1 > 29999999)  then 
       begin 
       This_NPC.NpcDialog(This_Player,'投注必须使用大于100小于29999999的阿拉伯数字!') ;
       end 
        else if (num1 >= 100) and (num1 < 30000000) then
         begin
           if  This_Player.GoldNum >= num1 then 
           begin
                This_Player.DecGold(num1);
                This_NPC.NpcDialog(This_Player,'你买了'+inttostr(num1)+'金币的小!'+'{cmd}<返回/@main>') ;
				SetG(73,5,ya+num1)
                This_Player.setv(74,1,1);   //限定能投骰子的玩家,及只能在3个选项中同一时间选一个
                This_Player.setv(73,1,1); // 限定选择的下注的类型,改类型为选了小
				
           end else
           This_NPC.NpcDialog(This_Player,'你没有足够的金币买'+inttostr(num1)+'的小!' +'{cmd}<返回/@main>') ;
         end;
    end; 
 end;
procedure _md;
 begin
  if This_Player.GetV(74,1)< 1  then 
  begin    
        This_NPC.InputDialog(This_Player,'请输入你要买的数额',0,112) ;
  end else This_NPC.NpcDialog(This_Player,'你已经投过注了!'+'{cmd}<返回/@main>') ;
 end;
procedure p112;
begin 
    num1 :=  StrToIntDef(This_NPC.InputStr,-1);//输入非阿拉伯数字的字符都返回-1
   if This_NPC.InputOK  then 
        if (num1 < 100) or  (num1 > 29999999) then 
       begin 
       This_NPC.NpcDialog(This_Player,'投注必须使用大于100小于29999999的阿拉伯数字!') ;
       end 
        else if (num1 >= 100) and (num1 < 30000000) then
         begin
           if  This_Player.GoldNum >= num1 then 
           begin
                This_Player.DecGold(num1);
                This_NPC.NpcDialog(This_Player,'你买了'+inttostr(num1)+'金币的大!'+'{cmd}<返回/@main>') ;
				SetG(73,5,ya+num1)
                This_Player.setv(74,1,1);   //限定能投骰子的玩家,及只能在3个选项中同一时间选一个
                This_Player.setv(73,2,1); // 限定选择的下注的类型,改类型为选了大 
           end else
           This_NPC.NpcDialog(This_Player,'你没有足够的金币买'+inttostr(num1)+'的大!' +'{cmd}<返回/@main>') ;
         end;
    end;
procedure _mbz;
 begin
  if This_Player.GetV(74,1)< 1  then 
  begin    
        This_NPC.InputDialog(This_Player,'请输入你要买的数额',0,113) ;
  end else This_NPC.NpcDialog(This_Player,'你已经投过注了!'+'{cmd}<返回/@main>') ;
 end;
procedure p113;
begin 
    num1 :=  StrToIntDef(This_NPC.InputStr,-1);//输入非阿拉伯数字的字符都返回-1
   if This_NPC.InputOK  then  
        if  (num1 < 100) or  (num1 > 29999999) then 
       begin 
       This_NPC.NpcDialog(This_Player,'投注必须使用大于100小于29999999的阿拉伯数字!') ;
       end 
        else if (num1 >= 100) and (num1 < 30000000) then
         begin
           if  This_Player.GoldNum >= num1 then 
           begin
                This_Player.DecGold(num1);
                This_NPC.NpcDialog(This_Player,'你买了'+inttostr(num1)+'金币的豹子!'+'{cmd}<返回/@main>') ;
				SetG(73,5,ya+num1)
                This_Player.setv(74,1,1);   //限定能投骰子的玩家,及只能在3个选项中同一时间选一个
                This_Player.setv(73,3,1); // 限定选择的下注的类型,改类型为选了豹子 
           end else
           This_NPC.NpcDialog(This_Player,'你没有足够的金币买'+inttostr(num1)+'的豹子!' +'{cmd}<返回/@main>') ;
         end;
    
end;
procedure _AfterPlayDice();//注意这里需要下画线
begin
	color := random(256);
     if (This_Player.getv(73,1)=1) //限定选了小的玩家并且3骰子点数在3到10包括豹子执行以下奖励代码
	 and (num >2) and (num <11)// and ((i <> j) or (i <> k) or (k <> j)) 
   then
      begin
      This_Npc.NpcDialog(This_Player,'你扔的骰子数是' + IntToStr(i) + IntToStr(j)+IntToStr(k)+'一共|\'
       +inttostr(num)+'点,恭喜你你买中了小,获得一倍赔率!'+'{cmd}<继续投注/@main>') ;
	   ServerSay('恭喜:'+This_Player.Name+'在胖妞处赢得'+inttostr(num1*2)+'金币',7*256 +  color);
       This_Player.AddGold(num1 *2);
	   SetG(73,6,zhong+(num1*2))
       This_Player.setv(74,1,0);//保险起见,所有变量初始化化,跳出
       This_Player.setv(73,1,0); 
       num1 := 0;
      This_Player.SetV(0, 1, 0);
      This_Player.SetV(0, 2, 0);
      This_Player.SetV(0, 3, 0);
      end
      else 
      if(This_Player.getv(73,2)=1)//限定选了大的玩家并且3骰子点数在11到18并且包括豹子的情况下执行以下奖励代码
	  and (num >=11) and (num <19)// and ((i <> j) or (i <> k) or (k <> j))
     then
      begin
      
       This_Player.AddGold(num1 *2);
	   SetG(73,6,zhong+(num1*2))
       This_Player.setv(74,1,0);//部分变量初始化是非必须的,保险起见所有变量初始化化
       This_Player.setv(73,2,0); 
       str:= '';
      This_Player.SetV(0, 1, 0);
      This_Player.SetV(0, 2, 0);
      This_Player.SetV(0, 3, 0);
      This_Npc.NpcDialog(This_Player,'你扔的骰子数是' + IntToStr(i) + IntToStr(j)+IntToStr(k)+'一共|\'
       +inttostr(num)+'点,恭喜你你买中了大,获得一倍赔率!'+'{cmd}<继续投注/@main>') ;
	   ServerSay('恭喜:'+This_Player.Name+'在胖妞处赢得'+inttostr(num1*2)+'金币',7*256 +  color);
      end else 
      
      if (This_Player.getv(73,3)=1) //限定选了豹子的玩家并且3骰子点数相等情况下 执行以下奖励代码
	  and ((i = j) and (i = k) and (k = j))  then 
	  
      begin
      
       This_Player.AddGold(num1 *4);
	   SetG(73,6,zhong+(num1*4))
       This_Player.setv(74,1,0);//部分变量初始化是非必须的,保险起见所有变量初始化化
       This_Player.setv(73,3,0);
       Str := '';
       This_Player.SetV(0, 1, 0);
      This_Player.SetV(0, 2, 0);
      This_Player.SetV(0, 3, 0);
        This_Npc.NpcDialog(This_Player,'你扔的骰子数是' + IntToStr(i) + IntToStr(j)+IntToStr(k)+'一共|\'
       +inttostr(num)+'点,恭喜你你买中了豹子,获得三倍赔率!'+'{cmd}<继续投注/@main>') ;
	   ServerSay('恭喜:'+This_Player.Name+'在胖妞处赢得'+inttostr(num1*4)+'金币',7*256 +  color);
      end else  
      begin
      This_Player.setv(74,1,0);//即使失败也需要变量初始化化,部分变量初始化是非必须的
       This_Player.setv(73,3,0);
       This_Player.setv(73,2,0); 
       This_Player.setv(73,1,0);
      Str := '';
      This_Player.SetV(0, 1, 0);
      This_Player.SetV(0, 2, 0);
      This_Player.SetV(0, 3, 0);
      This_Npc.NpcDialog(This_Player,'你扔的骰子数是' + IntToStr(i) + IntToStr(j)+IntToStr(k)+'一共|\'
       +inttostr(num)+'点,很抱歉你没有买中!'+'{cmd}<继续投注/@main>') ;
	   ServerSay('恭喜,恭喜:'+This_Player.Name+'在胖妞处输了'+inttostr(num1)+'金币',7*256 +  color);
      end;
end;
procedure DoPlayDice();
begin    
		
         if  This_Player.getv(73,1)=1  then   //玩家买小 
         begin 
           if num < 11 then  //出现小的概率为50%,出现了执行下面换骰子点数代码
           begin if random(100) < h  then //摇到小后有90%的机会更换骰子 ,更换后如果继续是小则继续循环90%*90%的机会更换骰子大小 
		             begin		         
           This_Player.SetV(0, 1, (Random(6) + 1));
           This_Player.SetV(0, 2, (Random(6) + 1));
           This_Player.SetV(0, 3, (Random(6) + 1));
           i:=This_Player.GetV(0, 1);
           j:=This_Player.GetV(0, 2);
           k:=This_Player.GetV(0, 3);
           num:= i+j+k ;
           This_Player.CallOut(This_NPC, 1, 'DoPlayDice'); // 
                 end else This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');	//10%机会直接得到得最初摇出的小,赢得投注   
           end else
           begin
           This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');//出现大就直接出骰子,50%机会玩家输
           end ;
         end else
         if  This_Player.getv(73,2)=1  then //玩家买大
         begin if random(100) < h  then//
         begin
           if num > 10 then
           begin
           This_Player.SetV(0, 1, (Random(6) + 1));
           This_Player.SetV(0, 2, (Random(6) + 1));
           This_Player.SetV(0, 3, (Random(6) + 1));
           i:=This_Player.GetV(0, 1);
           j:=This_Player.GetV(0, 2);
           k:=This_Player.GetV(0, 3);
           num:= i+j+k ;
           This_Player.CallOut(This_NPC, 1, 'DoPlayDice'); 
            end else This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');	
           end else
           begin
           This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');
           end;
         end else 
         if  This_Player.getv(73,3)=1  then
         begin if random(100) < h  then
         begin
           if (i=j) and (j=k) then
           begin
           This_Player.SetV(0, 1, (Random(6) + 1));
           This_Player.SetV(0, 2, (Random(6) + 1));
           This_Player.SetV(0, 3, (Random(6) + 1));
           i:=This_Player.GetV(0, 1);
           j:=This_Player.GetV(0, 2);
           k:=This_Player.GetV(0, 3);
           num:= i+j+k ;
           This_Player.CallOut(This_NPC, 1, 'DoPlayDice'); //注意这里需要@
            end else This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');	
           end else 
           begin 
           This_Npc.PlayDice(This_Player, 3, '@AfterPlayDice');
           end;
         end else  This_Player.CallOut(This_NPC, 1, 'DoPlayDice');
end;
procedure _DoPlayDice(); //扔骰子//注意这里需要下画线
begin
if This_Player.getv(74,1)=1 then 
    begin
This_Player.SetV(0, 1, (Random(6) + 1));
This_Player.SetV(0, 2, (Random(6) + 1));
This_Player.SetV(0, 3, (Random(6) + 1));
This_Player.setv(74,1,0); 
This_Player.CallOut(This_NPC, 1, 'DoPlayDice');//注意这里需要@
    end else
    This_Npc.NpcDialog(This_Player,'你没有下注不可以投骰子,请不要重复投骰子!'
	) ;
end;
function xin(price, num: Integer):boolean; 
begin
   result := true;  
end;
Begin
	zhidong;
  domain;
end.


最新回复 (0)
返回