[水怪RPG複雜化委員會]天空鬥技場興建計劃啟動

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

aiken 寫:以下這些圖檔我也不確定是要存在哪邊~~
你可能要自己試試看喔~~
應該是在phpbb2/images/fuve或是phpbb2/rpg/images/five
弄錯的話棋盤上就是一片叉燒包~~
我弄了好幾次結果我是兩個地方都有放....^^|||
反正我的主機是在自己的電腦~~空間多的是....
圖檔 圖檔 圖檔 圖檔 圖檔
確實很亂
變成兩個地方丟要丟圖

還有你給的檔案少了 rpg_five.tpl

代碼: 選擇全部

<SCRIPT language=JavaScript>
<!--
if (self.location!=top.location) top.location=''+self.location;

ie4=(navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion)>3)?true:false;
ie3=(navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion)<4)?true:false;
\n
boardSize=15;
userSq= 1;
machSq=-1;
blinkSq="b-1";
blinkHint="b1";
myTurn=false;
winningMove=9999999;
openFour   =8888888;
twoThrees  =7777777;

if (document.images) {
 uImg=new Image(); uImg.src='images/five/s'+userSq+'.gif';
 mImg=new Image(); mImg.src='images/five/s'+machSq+'.gif';
 uIm1=new Image(); uIm1.src='images/five/sb1.gif';
 mIm1=new Image(); mIm1.src='images/five/sb-1.gif';
 bImg=new Image(); bImg.src='images/five/s0.gif';
}

f=new Array();
s=new Array();
q=new Array();

iMax=new Array();
jMax=new Array();
nMax=0;

for (i=0;i<20;i++) {
 f[i]=new Array();
 s[i]=new Array();
 q[i]=new Array();
 for (j=0;j<20;j++) {
  f[i][j]=0;
  s[i][j]=0;
  q[i][j]=0;
 }
}

iLastUserMove=0;
jLastUserMove=0;

function clk(iMove,jMove) {
 if (myTurn || autoplayOn) return; 
 hideHint();

 if (f[iMove][jMove]!=0) {alert('這一格已經有棋子了!'); return; }
 f[iMove][jMove]=userSq;
 drawSquare(iMove,jMove,userSq);
 myTurn=true;
 iLastUserMove=iMove;
 jLastUserMove=jMove;

 dly=(document.images)?10:boardSize*30;

 if (winningPos(iMove,jMove,userSq)==winningMove)
 {
  setTimeout('gameOver=1;alert("恭喜你,你贏了!")',dly);
    document.all.f.submit();
  }
 
 else
 {
  setTimeout("machineMove(iLastUserMove,jLastUserMove);",dly);
  }
}

function getBestMachMove() {
 maxS=evaluatePos(s,userSq);
 maxQ=evaluatePos(q,machSq);

 // alert ('maxS='+maxS+', maxQ='+maxQ);

 if (maxQ>=maxS) {
  maxS=-1;
  for (i=0;i<boardSize;i++) {
   for (j=0;j<boardSize;j++) {
    if (q[i][j]==maxQ) {
     if (s[i][j]>maxS) {maxS=s[i][j]; nMax=0}
     if (s[i][j]==maxS) {iMax[nMax]=i;jMax[nMax]=j;nMax++} 
    }
   }
  }
 }
 else {
  maxQ=-1;
  for (i=0;i<boardSize;i++) {
   for (j=0;j<boardSize;j++) {
    if (s[i][j]==maxS) {
     if (q[i][j]>maxQ) {maxQ=q[i][j]; nMax=0}
     if (q[i][j]==maxQ) {iMax[nMax]=i;jMax[nMax]=j;nMax++} 
    }
   }
  }
 }
 // alert('nMax='+nMax+'
iMax: '+iMax+'
jMax: '+jMax)

 randomK=Math.floor(nMax*Math.random());
 iMach=iMax[randomK];
 jMach=jMax[randomK];
}

function getBestUserMove() {
 maxQ=evaluatePos(q,machSq);
 maxS=evaluatePos(s,userSq);

 if (maxS==-1) {
  center=Math.floor(boardSize/2);
  s[center][center]=1
  maxS=1; 
 }

 if (maxS>=maxQ) {
  maxQ=-1;
  for (i=0;i<boardSize;i++) {
   for (j=0;j<boardSize;j++) {
    if (s[i][j]==maxS) {
     if (q[i][j]>maxQ) {maxQ=q[i][j]; nMax=0}
     if (q[i][j]==maxQ) {iMax[nMax]=i;jMax[nMax]=j;nMax++} 
    }
   }
  }
 }
 else {
  maxS=-1;
  for (i=0;i<boardSize;i++) {
   for (j=0;j<boardSize;j++) {
    if (q[i][j]==maxQ) {
     if (s[i][j]>maxS) {maxS=s[i][j]; nMax=0}
     if (s[i][j]==maxS) {iMax[nMax]=i;jMax[nMax]=j;nMax++} 
    }
   }
  }
 }

 // alert('nMax='+nMax+'
iMax: '+iMax+'
jMax: '+jMax)

 randomK=Math.floor(nMax*Math.random());
 iHint=iMax[randomK];
 jHint=jMax[randomK];
}

function machineMove(iUser,jUser) {
 getBestMachMove();
 f[iMach][jMach]=machSq;
 if (document.images) {
  drawSquare(iMach,jMach,blinkSq);
  setTimeout("drawSquare(iMach,jMach,machSq)",900);
 }
 else {
  drawSquare(iMach,jMach,machSq);
 }
 if (winningPos(iMach,jMach,machSq)==winningMove)
 {
  setTimeout('gameOver=1;alert("你已經輸了!");',900);

  }
 else if (drawPos)
 {
  setTimeout('gameOver=1;alert("此局平手!")',900);
  }
 else
 {
  setTimeout("myTurn=false;",950);
  }
}

function hasNeighbors(i,j) {
 if (j>0 && f[i][j-1]!=0) return 1;
 if (j+1<boardSize && f[i][j+1]!=0) return 1; 
 if (i>0) {
  if (f[i-1][j]!=0) return 1;
  if (j>0 && f[i-1][j-1]!=0) return 1;
  if (j+1<boardSize && f[i-1][j+1]!=0) return 1;
 }
 if (i+1<boardSize) {
  if (f[i+1][j]!=0) return 1;
  if (j>0 && f[i+1][j-1]!=0) return 1;
  if (j+1<boardSize && f[i+1][j+1]!=0) return 1;
 }
 return 0;
}

w=new Array(0,20,17,15.4,14,10);
nPos=new Array();
dirA=new Array();

function winningPos(i,j,mySq) {
 test3=0;
 test4=0;

 L=1;
 m=1; while (j+m<boardSize  && f[i][j+m]==mySq) {L++; m++} m1=m;
 m=1; while (j-m>=0 && f[i][j-m]==mySq) {L++; m++} m2=m;   
 if (L>4) { return winningMove; }
 side1=(j+m1<boardSize && f[i][j+m1]==0);
 side2=(j-m2>=0 && f[i][j-m2]==0);

 if (L==4 && (side1 || side2)) test3++;
 if (side1 && side2) {
  if (L==4) test4=1;
  if (L==3) test3++;
 }

 L=1;
 m=1; while (i+m<boardSize  && f[i+m][j]==mySq) {L++; m++} m1=m;
 m=1; while (i-m>=0 && f[i-m][j]==mySq) {L++; m++} m2=m;   
 if (L>4) { return winningMove; }
 side1=(i+m1<boardSize && f[i+m1][j]==0);
 side2=(i-m2>=0 && f[i-m2][j]==0);
 if (L==4 && (side1 || side2)) test3++;
 if (side1 && side2) {
  if (L==4) test4=1;
  if (L==3) test3++;
 }

 L=1;
 m=1; while (i+m<boardSize && j+m<boardSize && f[i+m][j+m]==mySq) {L++; m++} m1=m;
 m=1; while (i-m>=0 && j-m>=0 && f[i-m][j-m]==mySq) {L++; m++} m2=m;   
 if (L>4) { return winningMove; }
 side1=(i+m1<boardSize && j+m1<boardSize && f[i+m1][j+m1]==0);
 side2=(i-m2>=0 && j-m2>=0 && f[i-m2][j-m2]==0);
 if (L==4 && (side1 || side2)) test3++;
 if (side1 && side2) {
  if (L==4) test4=1;
  if (L==3) test3++;
 }

 L=1;
 m=1; while (i+m<boardSize  && j-m>=0 && f[i+m][j-m]==mySq) {L++; m++} m1=m;
 m=1; while (i-m>=0 && j+m<boardSize && f[i-m][j+m]==mySq) {L++; m++} m2=m; 
 if (L>4) { return winningMove; }
 side1=(i+m1<boardSize && j-m1>=0 && f[i+m1][j-m1]==0);
 side2=(i-m2>=0 && j+m2<boardSize && f[i-m2][j+m2]==0);
 if (L==4 && (side1 || side2)) test3++;
 if (side1 && side2) {
  if (L==4) test4=1;
  if (L==3) test3++;
 }

 if (test4) return openFour;
 if (test3>=2) return twoThrees;
 return -1;
}

function evaluatePos(a,mySq) {
 maxA=-1;
 drawPos=true;

 for (i=0;i<boardSize;i++) {
  for (j=0;j<boardSize;j++) {

   // Compute "value" a[i][j] of the (i,j) move

   if (f[i][j]!=0) {a[i][j]=-1; continue;}  
   if (hasNeighbors(i,j)==0) {a[i][j]=-1; continue;}

   wp=winningPos(i,j,mySq);
   if (wp>0) a[i][j]=wp;
   else {
    minM=i-4; if (minM<0) minM=0;
    minN=j-4; if (minN<0) minN=0;
    maxM=i+5; if (maxM>boardSize) maxM=boardSize;
    maxN=j+5; if (maxN>boardSize) maxN=boardSize;

    nPos[1]=1; A1=0;
    m=1; while (j+m<maxN  && f[i][j+m]!=-mySq) {nPos[1]++; A1+=w[m]*f[i][j+m]; m++}
    if (j+m>=boardSize || f[i][j+m]==-mySq) A1-=(f[i][j+m-1]==mySq)?(w[5]*mySq):0;
    m=1; while (j-m>=minN && f[i][j-m]!=-mySq) {nPos[1]++; A1+=w[m]*f[i][j-m]; m++}   
    if (j-m<0 || f[i][j-m]==-mySq) A1-=(f[i][j-m+1]==mySq)?(w[5]*mySq):0;
    if (nPos[1]>4) drawPos=false;

    nPos[2]=1; A2=0;
    m=1; while (i+m<maxM  && f[i+m][j]!=-mySq) {nPos[2]++; A2+=w[m]*f[i+m][j]; m++}
    if (i+m>=boardSize || f[i+m][j]==-mySq) A2-=(f[i+m-1][j]==mySq)?(w[5]*mySq):0;
    m=1; while (i-m>=minM && f[i-m][j]!=-mySq) {nPos[2]++; A2+=w[m]*f[i-m][j]; m++}   
    if (i-m<0 || f[i-m][j]==-mySq) A2-=(f[i-m+1][j]==mySq)?(w[5]*mySq):0; 
    if (nPos[2]>4) drawPos=false;

    nPos[3]=1; A3=0;
    m=1; while (i+m<maxM  && j+m<maxN  && f[i+m][j+m]!=-mySq) {nPos[3]++; A3+=w[m]*f[i+m][j+m]; m++}
    if (i+m>=boardSize || j+m>=boardSize || f[i+m][j+m]==-mySq) A3-=(f[i+m-1][j+m-1]==mySq)?(w[5]*mySq):0;
    m=1; while (i-m>=minM && j-m>=minN && f[i-m][j-m]!=-mySq) {nPos[3]++; A3+=w[m]*f[i-m][j-m]; m++}   
    if (i-m<0 || j-m<0 || f[i-m][j-m]==-mySq) A3-=(f[i-m+1][j-m+1]==mySq)?(w[5]*mySq):0; 
    if (nPos[3]>4) drawPos=false;

    nPos[4]=1; A4=0;
    m=1; while (i+m<maxM  && j-m>=minN && f[i+m][j-m]!=-mySq) {nPos[4]++; A4+=w[m]*f[i+m][j-m]; m++;}
    if (i+m>=boardSize || j-m<0 || f[i+m][j-m]==-mySq) A4-=(f[i+m-1][j-m+1]==mySq)?(w[5]*mySq):0;
    m=1; while (i-m>=minM && j+m<maxN  && f[i-m][j+m]!=-mySq) {nPos[4]++; A4+=w[m]*f[i-m][j+m]; m++;} 
    if (i-m<0 || j+m>=boardSize || f[i-m][j+m]==-mySq) A4-=(f[i-m+1][j+m-1]==mySq)?(w[5]*mySq):0;
    if (nPos[4]>4) drawPos=false;

    dirA[1] = (nPos[1]>4) ? A1*A1 : 0;
    dirA[2] = (nPos[2]>4) ? A2*A2 : 0;
    dirA[3] = (nPos[3]>4) ? A3*A3 : 0;
    dirA[4] = (nPos[4]>4) ? A4*A4 : 0;

    A1=0; A2=0;
    for (k=1;k<5;k++) {
     if (dirA[k]>=A1) {A2=A1; A1=dirA[k]}
    }
    a[i][j]=A1+A2;
   }
   if (a[i][j]>maxA) {
    maxA=a[i][j];
   }
  }
 }
 return maxA;
}

function drawSquare(par1,par2,par3) {
 if (document.images) {
  eval('self.f1.document.s'+par1+'_'+par2+'.src="images/five/s'+par3+'.gif"');
 }
 else setTimeout("writeBoard()",50);
}

hintShown=false;
iHint=jHint=6;

function showHint () {
 if (myTurn && autoplayOn) return;
 if (hintShown) {hideHint();return;}
 hintShown=1;
 getBestUserMove();

 if (document.images) {
  drawSquare(iHint,jHint,blinkHint);
 }
}

function hideHint() {
 hintShown=0;
 drawSquare(iHint,jHint,f[iHint][jHint]);
}

function autoplay() {
 if (autoplayOn) {
  if (myTurn) {
   getBestMachMove();
   f[iMach][jMach]=machSq;
   drawSquare(iMach,jMach,blinkSq);
   timerDR=setTimeout("drawSquare(iMach,jMach,machSq);",900);
   if (winningPos(iMach,jMach,machSq)==winningMove) setTimeout('gameOver=1;alert("白棋獲勝!黑棋落敗!")',900);
   else if (drawPos) setTimeout('alert("此局平手!")',900);
   else { myTurn=false; timerAP=setTimeout("autoplay()",950); }
  }
  else {
   getBestUserMove();
   f[iHint][jHint]=userSq;
   drawSquare(iHint,jHint,blinkHint);
   timerDR=setTimeout("drawSquare(iHint,jHint,userSq)",900);
   if (winningPos(iHint,jHint,userSq)==winningMove) setTimeout('gameOver=1;alert("黑棋獲勝!白棋落敗!")',900);
   else { myTurn=true; timerAP=setTimeout("autoplay()",950); }
  }
 }
}

autoplayOn=0;
timerAP=0;
function setAutoplay() {
 if (gameOver) resetGame();
 if (autoplayOn) {
  if (myTurn) { setTimeout("setAutoplay()",950); return; }
  autoplayOn=0;clearTimeout(timerAP);return;
 }
 if (document.images) setTimeout("hideHint();autoplayOn=1;autoplay();",100);
 else alert('Sorry, Autoplay Mode is not supported for your browser!');
}

buf='';

function writeBoard () {
 if (parseInt(navigator.appVersion)>3) docID=top.f1.document.open("text/html","replace");
 buf+='<html><head><title>五子棋</title>';
 if (navigator.appName=="Netscape") buf+='<base href="'+top.document.location+'">';
 buf+='</head><body leftmargin=0 topmargin=0><a name="s"></a><center><pre';
 for (i=0;i<boardSize;i++) {
  for (j=0;j<boardSize;j++) {
   buf+='
><a href="#s" onClick="top.clk('+i+','+j+');if(top.ie4)this.blur();return false;" ><img name="s'+i+'_'+j+'" src="images/five/s'+f[i][j]+'.gif" width=21 height=21 border=0></a'; 
  }
  buf+='
><br';
  if (buf.length>10000) {top.f1.document.writeln(buf); buf='';}
 }
 buf+='
></pre></center></body></html>';
 top.f1.document.writeln(buf);
 top.f1.document.close();
 buf='';
}

function resetGame() {
 if (autoplayOn) {autoplayOn=0;clearTimeout(timerAP);clearTimeout(timerDR);}
 drawPos=0;
 myTurn=0;
 autoplayOn=0;
 gameOver=0;

 for (i=0;i<20;i++) {
  for (j=0;j<20;j++) {
   f[i][j]=0;
  }
 }

 if (!top.f1.document) return;
 if (document.images) {
  if (!top.f1.document.s9_9) return;
  for (i=0;i<boardSize;i++) {
   for (j=0;j<boardSize;j++) {
    eval('self.f1.document.s'+i+'_'+j+'.src=bImg.src');  
   }
  }
 }
 else writeBoard();
}

function init() {
 if (autoplayOn) {autoplayOn=0;clearTimeout(timerAP);clearTimeout(timerDR);}
 writeBoard();
 resetGame();
}

//-->

</SCRIPT>
<form name=f action="rpg.php?action=five"  method=post>
<input type="hidden" name="act" value="save">
<tr>
<td>
 </form>
<table width="420" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000" align="center">
  <tr> 
    <td><iframe src=rpg/five_button.htm width=420 height=40 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=NO name=fb></iframe> 
</td>
  </tr>
  <tr>
    <td><iframe src=rpg/five_main.htm width=420 height=420 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=NO name=f1></iframe> 
</td>
  </tr>
</table>

                                </span></td>
                        </tr>
                </table>
        </td>
  </tr>
</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
        <td align="right"><span class="nav"><br />{JUMPBOX}</span></td>
  </tr>
</table>
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

我已經發現補上了啦~~
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

對了~~我問一個小問題~~
我現在的等級是45
不知道爲什麼....都不能夠應徵了耶....
在動作那一格都一直是N/A
那ㄟ安ㄋㄟ~~
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

aiken 寫:對了~~我問一個小問題~~
我現在的等級是45
不知道爲什麼....都不能夠應徵了耶....
在動作那一格都一直是N/A
那ㄟ安ㄋㄟ~~
那是你已經有應徵過工作吧?
一次只能應徵一個工作唷\r

還有圖丟兩個地方的問題我找到解決方法了
打開 rpg_five.tpl
尋找 eval('self.f1.document.s'+par1+'_'+par2+'.src="images/five/s'+par3+'.gif"');
取代 eval('self.f1.document.s'+par1+'_'+par2+'.src="../images/five/s'+par3+'.gif"');
尋找 buf+='
><a href="#s" onClick="top.clk('+i+','+j+');if(top.ie4)this.blur();return false;" ><img name="s'+i+'_'+j+'" src="images/five/s'+f[j]+'.gif" width=21 height=21 border=0></a';
取代 buf+='
><a href="#s" onClick="top.clk('+i+','+j+');if(top.ie4)this.blur();return false;" ><img name="s'+i+'_'+j+'" src="../images/five/s'+f[j]+'.gif" width=21 height=21 border=0></a';

這樣圖片只要丟在 image/five 裡
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

GeniusKiKi 寫:
aiken 寫:對了~~我問一個小問題~~
我現在的等級是45
不知道爲什麼....都不能夠應徵了耶....
在動作那一格都一直是N/A
那ㄟ安ㄋㄟ~~
那是你已經有應徵過工作吧?
一次只能應徵一個工作唷
可是...好幾天了...
我正在想說是不是要打工有等級限制...
超過某個等級就不能打工.....
是這樣嗎?
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

aiken 寫:可是...好幾天了...
我正在想說是不是要打工有等級限制...
超過某個等級就不能打工.....
是這樣嗎?
不知道
不過印象中是沒有等級限制的
我的論壇我七十幾級都還可以打工
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

有個小結論
五子棋AI太笨了XD
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

御津闇慈 寫:有個小結論
五子棋AI太笨了XD
................
可是....可能我更笨....從來沒有贏過他........
唉~~~
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

文章 吉川拓也 »

水怪 RPG 旁邊的選單也有個人 RPG 狀態的話
我怎麼改都改不出來
不知道要把對應的代碼加到哪個檔案
有人可以教教我嗎~ >_<
這部分很簡單 ..
開啟 :

rpg\menu.php

找到 :

代碼: 選擇全部

	'AVATAR_IMG' => GetAvatar($profiledata),
下面加入 :

代碼: 選擇全部

'RPG_LEVEL' => $profiledata['rpg_level'], // RPG Mod's Yoshikawa
'RPG_CUR_HP' => $profiledata['rpg_cur_hp'], // RPG Mod's Yoshikawa
'RPG_CUR_MP' => $profiledata['rpg_cur_mp'], // RPG Mod's Yoshikawa
'RPG_CUR_EXP'=>  $profiledata['rpg_cur_exp'], // RPG Mod's Yoshikawa
'RPG_DEFENSE'=>  $profiledata['rpg_defense'], // RPG Mod's Yoshikawa
'RPG_MEDALS' =>  $profiledata['rpg_medals'], // RPG Mod's Yoshikawa
'RPG_SPEED'=> $profiledata['rpg_speed'], // RPG Mod's Yoshikawa
'RPG_ATTACK'=> $profiledata['rpg_attack'], // RPG Mod's Yoshikawa
開啟 :

你的風格\rpg-_header.tpl

找到 :

代碼: 選擇全部

<br />{AVATAR_IMG}<br /><br /><b>{USERNAME}</b> <br />
下面加入 :

代碼: 選擇全部

<font color=#FFFFFF>職業 : </font><font color="#FFFFFF">{RPG_MEDALS}</font><br />
<font color=#FFFFFF>等級 : </font><font color="#FFFFFF">{RPG_LEVEL}</font> <br />
<font color=#FFFFFF>體力 : </font><font color="#FFFFFF">{RPG_CUR_HP}</font> <br />
<font color=#FFFFFF>魔攻 : </font><font color="#FFFFFF">{RPG_CUR_MP}</font> <br />
<font color=#FFFFFF>速度 : </font><font color="#FFFFFF">{RPG_SPEED}</font><br /> 
<font color=#FFFFFF>攻擊 : </font><font color="#FFFFFF">{RPG_ATTACK}</font><br /> 
<font color=#FFFFFF>防禦 : </font><font color="#FFFFFF">{RPG_DEFENSE}</font><br /> 
<font color=#FFFFFF>經驗 : </font><font color="#FFFFFF">{RPG_CUR_EXP}</font><br />
儲存關閉
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
頭像
ilove1291
星球公民
星球公民
文章: 171
註冊時間: 2003-04-19 22:44

文章 ilove1291 »

教大家使用阿仁的絕招
假設阿仁 職業類別為8
執行sql

代碼: 選擇全部

INSERT INTO `phpbb_rpg_items` VALUES (357, '煙灰缸', '', 1, 25, 0, '8', '', '', 10000, 0, 0, 1, 0, 0, '3.5', '0.0', '0.0', '0.0', '0.0', '0.0', '0', '0');
INSERT INTO `phpbb_rpg_items` VALUES (331, '砸她的頭', '看到桌上的煙灰缸沒?', 3, 1, 0, '8', NULL, NULL, 130000, 0, 0, 0, 0, 0, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '20', 'LV');
eol.php找\r
[php]<?php
if ( (intval($HTTP_POST_VARS['sp_skill']) >= 112 && intval($HTTP_POST_VARS['sp_skill']) <= 114) ||
(intval($HTTP_POST_VARS['sp_skill']) >= 166 && intval($HTTP_POST_VARS['sp_skill']) <= 170) ||
intval($HTTP_POST_VARS['sp_skill']) == 172 )
?>[/php]
新增一段技能範圍 item id 316-336(自行考慮)
[php]<?php
if ( (intval($HTTP_POST_VARS['sp_skill']) >= 112 && intval($HTTP_POST_VARS['sp_skill']) <= 114) ||
(intval($HTTP_POST_VARS['sp_skill']) >= 166 && intval($HTTP_POST_VARS['sp_skill']) <= 170) ||
(intval($HTTP_POST_VARS['sp_skill']) >= 316 && intval($HTTP_POST_VARS['sp_skill']) <= 336) ||
intval($HTTP_POST_VARS['sp_skill']) == 172 )
?>[/php]
然後在 function_eol.php
找一個好地方加入\r
ps $hp_deduct = $profiledata['rpg_attack'] - $row['rpg_defense'] / 3;
------傷害值計算---- 個人攻擊力------------------------對手防禦------------ 除 3
這些數值可以自己玩\r
[php]<?php
case 331: // 砸她的頭\r
if ( $next_act == 331 )
{
$sql = "select min(own_id) as smoke_id, count(*) as smoke_count from phpbb_rpg_owns where item_id = 357 and user_id = " . $profiledata['user_id'];
$result = $db->sql_query($sql);
if ( $row2 = $db->sql_fetchrow($result) )
{
if ( $row2['smoke_count'] == 0 )
{
$ret_msg = "您沒有 <b>煙灰缸</b> 可以砸!!";
}
else
{
$hp_deduct = $profiledata['rpg_attack'] - $row['rpg_defense'] / 3;
$ret_msg = $profiledata['username'] . ' 按照大哥指示 砸! ';
$dead_cause = '煙灰缸砸頭';
if ( $hp_deduct < 0 ) $hp_deduct = 0;
$sql = "update " . ($is_npc ? "phpbb_rpg_npc" : "phpbb_users") .
" set rpg_cur_hp = rpg_cur_hp - $hp_deduct where " . ($is_npc ? "npc_id = " . $row['npc_id'] : "user_id = " . $row['user_id']);
$db->sql_query($sql);
$dead_cause .= "($hp_deduct)";
$ret_msg .= "擊中 " . ($is_npc ? ($row['npc_name'] == '' ? "" . $row['npc_id'] : $row['npc_name']) : $row['username']) . " 損傷 $hp_deduct 點。";
// 對手反擊
// $row['rpg_cur_hp'] -= $hp_deduct;
$ret_msg .= CounterAttack($am_i_dead, $profiledata, $row, $is_npc);
if ( $is_npc )
{
if ( $is_normal_npc )
$ret_msg .= UserIsDead("npc_id = " . $row['npc_id'], '', $profiledata['user_id'], '', 0, $dead_cause, true);
}
else
{
$ret_msg .= UserIsDead("user_id = " . $row['user_id'], "u.user_id = " . $row['user_id'], $profiledata['user_id'], $profiledata['username'], $profiledata['rpg_level'], $dead_cause);
}
}
}
}

break;
?>[/php]
大功告成!! 看到桌上的煙灰剛沒? 拿起來砸她的頭! 砸阿!
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

這是........
你全民亂講看太多了唷~~ :mrgreen:
那還要增加拖鞋那些道具ㄇㄟ~~
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

吉川拓也 寫:這部分很簡單 ..

中間述刪
可是我一開始也是用此方法的
用此方法資料只會特定頁面被讀出來
沒辦法全部都讀取出來

我想要的是如同大大站上的
不管切換到哪一個設施\r
都可以完整顯示所有資料
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

找到完整修改方法了

打開 rpg/*.php (除了 function_*.php 以外)
搜尋

代碼: 選擇全部

	'AVATAR_IMG' => GetAvatar($profiledata),
加上

代碼: 選擇全部

	//ViewRPGinfo in viewprofile by MasasiOnituka 
	//Language 
	'L_RPG_MEDALS' => '執照', 
	'L_RPG_LEVEL' => '等級', 
	'L_RPG_HP' => 'HP', 
	'L_RPG_MP' => 'MP', 
	'L_RPG_EXP' => '經驗', 
	'L_RPG_ATTACK' => '攻擊', 
	'L_RPG_DEFENSE' => '防禦', 
	'L_RPG_MAGIC' => '魔力', 
	'L_RPG_SPEED' => '速度', 
	'L_RPG_MONEY' => '現金',
	'L_RPG_BANK' => '存款',
	//ViewRPGinfo in viewprofile by MasasiOnituka 
	'S_RPG_MEDALS' => $profiledata['rpg_medals'], 
	'S_RPG_LEVEL' => $profiledata['rpg_level'], 
	'S_RPG_HP' => $profiledata['rpg_cur_hp'] . "/" . $profiledata['rpg_max_hp'], 
	'S_RPG_MP' => $profiledata['rpg_cur_mp'] . "/" . $profiledata['rpg_max_mp'], 
	'S_RPG_EXP' => $profiledata['rpg_cur_exp'] . "/" . $profiledata['rpg_max_exp'], 
	'S_RPG_ATTACK' => $profiledata['rpg_attack'], 
	'S_RPG_DEFENSE' => $profiledata['rpg_defense'], 
	'S_RPG_MAGIC' => $profiledata['rpg_magic'], 
	'S_RPG_SPEED' => $profiledata['rpg_speed'], 
	'S_RPG_MONEY' => number_format($profiledata['user_money']) . " 元",
	'S_RPG_BANK' => number_format($profiledata['user_bank']) . " 元",
	//ViewRPGinfo in viewprofile by MasasiOnituka
儲存

打開 templates/subSilver/rpg_header.tpl
在你想要的地方加上

代碼: 選擇全部

  <table cellspacing="0" cellpadding="0" border="0" onclick="location.href='rpg.php?action=menu'" style="CURSOR: hand" title="繼續未完的冒險">
	<tr>
	  <td colspan="4"><img src="images/status1.gif" width="142" height="49"></td>
	</tr>
	<tr>
	  <td rowspan="11" background="images/status2.gif"><img src="images/status2.gif" width="6" height="1"></td>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_MEDALS}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_MEDALS}</font></span></td>
	  <td rowspan="11" background="images/status3.gif"><img src="images/status3.gif" width="6" height="1"></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_LEVEL}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_LEVEL}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_EXP}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_EXP}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_HP}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_HP}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_MP}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_MP}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_ATTACK}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_ATTACK}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_DEFENSE}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_DEFENSE}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_MAGIC}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_MAGIC}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_SPEED}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_SPEED}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_MONEY}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_MONEY}</font></span></td>
	</tr>
	<tr>
	  <td align="right" valign="top" width="30" bgcolor="#202720"><span class="gen"><font color=#FFFFFF>{L_RPG_BANK}:</font></span></td>
	  <td align="left" valign="top" width="100" bgcolor="#202720"><span class="gen"><font color="#FFFFFF">{S_RPG_BANK}</font></span></td>
	</tr>
	<tr>
	  <td colspan="4"><img src="images/status4.gif" width="142" height="6"></td>
	</tr>
  </table>
儲存

這樣就可以所有的都有設施都有完整個人資訊
最後由 GeniusKiKi 於 2004-01-04 20:22 編輯,總共編輯了 1 次。
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
依夢兒
竹貓忠實會員
竹貓忠實會員
文章: 2013
註冊時間: 2002-11-20 00:07

文章 依夢兒 »

ilove1291 寫:教大家使用阿仁的絕招
我也來提供一個阿仁的絕招....

傻強: 我知道怎麼分辨臥底的路人了....
阿仁: 喔?怎麼分辨?
傻強: 當路人被你砍的時候,會很不甘心的反擊你,那個路人就是臥底....
阿仁(四處猛K路人): 喔,原來每個路人都是臥底喔~~
傻強: 是啊,還真多呢~~



....我是上來亂的XD
有任何關於 phpBB 或是架站的問題,請在論壇上公開發表出來,大家一起討論。
請不要丟私人訊息問我,因為私訊是用來聊私事的。
這樣作對於解決您的問題一點幫助也沒有,也很沒有效率,小弟我一概謝絕。



搜尋是一種美德,在發問之前,請多加利用頂端的文章搜尋功能,搜尋可能的關鍵字。
確定您想問的問題找不到答案後,再發問。
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

文章 吉川拓也 »

依夢兒 寫:
ilove1291 寫:教大家使用阿仁的絕招
我也來提供一個阿仁的絕招....

傻強: 我知道怎麼分辨臥底的路人了....
阿仁: 喔?怎麼分辨?
傻強: 當路人被你砍的時候,會很不甘心的反擊你,那個路人就是臥底....
阿仁(四處猛K路人): 喔,原來每個路人都是臥底喔~~
傻強: 是啊,還真多呢~~



....我是上來亂的XD
這句對白= =|| ...
無間道是吧 ...(怎麼覺得像鐵頭功是吧 ...)
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
主題已鎖定

回到「外掛問題討論」