1 頁 (共 1 頁)

[問題]如何做出增加寄信的人呢︿︿?

文章發表於 : 2007-01-01 6:51 am
幽雲
信件裡面,好像不能自己手動加入玩家
要怎麼改才能改入呢0.0?



題外話:恭喜bsm改版 XD"
(因為看到你在我那邊的留言=3=)

文章發表於 : 2007-01-01 11:06 am
teng
@@
先在mail.cgi加入
代碼: 選擇全部
   print qq|<form method=$method action=$listcgi><input type=hidden name=mode value='mail_add'>\n|;
   print qq|<input type=hidden name=id value="$F{'id'}"><input type=hidden name=ps value="$F{'ps'}"><hr class=text>《新增友人》對方ID:<input type=text name=frad size=10><input type=submit value='新增' class=button></form>\n|;

之後...在.
加一個
# Sub mail_add #
sub mail_add {
?????????????
不明代碼-v-"
&mail_form;
}

文章發表於 : 2007-01-01 7:16 pm
幽雲
teng 寫:@@
先在mail.cgi加入
代碼: 選擇全部
   print qq|<form method=$method action=$listcgi><input type=hidden name=mode value='mail_add'>\n|;
   print qq|<input type=hidden name=id value="$F{'id'}"><input type=hidden name=ps value="$F{'ps'}"><hr class=text>《新增友人》對方ID:<input type=text name=frad size=10><input type=submit value='新增' class=button></form>\n|;

之後...在.
加一個
# Sub mail_add #
sub mail_add {
?????????????
不明代碼-v-"
&mail_form;
}


重點是函數的部份XD"
前面只是用HTML代碼0.0....

不過謝謝你的幫忙
我去想想看(笑

文章發表於 : 2007-01-29 11:58 am
急速
# Sub mail_add #
sub mail_add {
?????????????
不明代碼-v-"
&mail_form;
}


直覺會想到跟酒館加人可能有些關係
但卻試不出來 囧rz
能多提示一些嗎= =a

文章發表於 : 2007-01-29 12:26 pm
BSM
的確跟酒館加人有關

簡單的說就是『用輸入ID的方式,指定你在酒館碰到什麼人而加入成好友』
這樣的運作方式

(但是...刪除好友的部分還在研究啊ˊAˋ)

文章發表於 : 2007-01-29 7:06 pm
急速
# Sub mail_add #
sub mail_add (@alllines) {
($uid,$uname,$usex,$uarea,$uport,$upoint,$ufriend_line) = (split(/<>/))[0,1,3,15,16,17,22];
if ( $friend_line !~ /$uid/ ) {
if (!$friend_line) { $friend_line = "$uid,$uname" }
else { $friend_line .= "△$uid,$uname" }
}
if ( $ufriend_line !~ /$id/ ) {
&get_u($uid);
if (!$ufriend_line) { $ufriend_line = "$id,$name" }
else { $ufriend_line .= "△$id,$name" }
&set_u;
&mail_form;
}
}


目前大概知道是這部份在新增玩家
但在加入時卻都出現ID不存在
而我又不知是何處出錯= =
抱歉一直發問...
我好弱阿 Orz

文章發表於 : 2007-10-27 6:32 pm
teng
急速 寫:
# Sub mail_add #
sub mail_add (@alllines) {
($uid,$uname,$usex,$uarea,$uport,$upoint,$ufriend_line) = (split(/<>/))[0,1,3,15,16,17,22];
if ( $friend_line !~ /$uid/ ) {
if (!$friend_line) { $friend_line = "$uid,$uname" }
else { $friend_line .= "△$uid,$uname" }
}
if ( $ufriend_line !~ /$id/ ) {
&get_u($uid);
if (!$ufriend_line) { $ufriend_line = "$id,$name" }
else { $ufriend_line .= "△$id,$name" }
&set_u;
&mail_form;
}
}


目前大概知道是這部份在新增玩家
但在加入時卻都出現ID不存在
而我又不知是何處出錯= =
抱歉一直發問...
我好弱阿 Orz
你的&get_all_users; 到哪了XD?

文章發表於 : 2007-12-13 11:28 pm
急速
大驚= =a
再來試試看XD

文章發表於 : 2007-12-14 9:36 pm
急速
試了一陣子又出現問題了 :cry:

現在不會找不到ID了

但是人加不進去

不過會出現"訊息已傳送至XXX"

除了會發訊息外還會加入一個叫frad的東東...

知道frad是從
代碼: 選擇全部
print qq|<input type=hidden name=id value="$F{'id'}"><input type=hidden name=ps value="$F{'ps'}"><hr class=text>《新增友人》對方ID:<input type=text [color=red]name=frad [/color]size=10><input type=submit value='新增' class=button></form>\n|;
來的

把frad寫成$F{'frad'} = $uid 問題還是沒有解決....只是不會加入frad了

現在我的程式改成這樣但還是有滿大的問題在裡面
代碼: 選擇全部
sub mail_add {
&get_all_users;
   $F{'frad'} = $uid;
   foreach (@alllines) {
      ($uid,$uname,$usex,$uarea,$uport,$upoint,$ufriend_line) = (split(/<>/))[0,1,3,15,16,17,22];
      if ($uport == $port && $upoint >= 0 && $uid != $id) {
         if ( $friend_line !~ /$uid/ ) {
            if (!$friend_line) { $friend_line = "$uid,$uname" }
            else { $friend_line .= "△$uid,$uname" }
         }
         if ( $ufriend_line !~ /$id/ ) {
            &get_u($uid);
            if (!$ufriend_line) { $ufriend_line = "$id,$name" }
            else { $ufriend_line .= "△$id,$name" }
            &set_u;
         }
      }
   }
   &mail_form;
}


包括我對這行也有些疑問.....
代碼: 選擇全部
if ($uport == $port && $upoint >= 0 && $uid != $id) {


$uport == $port 是指對方跟我方的港口位置...刪掉好像沒關係但這也是我主要有問題的地方
因為刪掉又會加入frad但寫$uport == $port又感覺是錯的

$upoint >= 0 這個因該是港內的位置設成這樣因該沒錯....

從沒程式概念到現在有一點點

進步的速度好慢阿

挫折感真重....但在周圍沒什麼人可以問的狀況下

只能仰賴BSM和看書

所以曾經有想要跟B大要及時通的想法

但是又怕叨擾到您所以只好自己看書了...

看書又是看到滿腦的問號....

每次改完程式都不知道錯在哪= =a

但是我總是想要自己完成又不太想問

我真是矛盾的一個人....

但現在我還是想問說...BSM能否向您索取您的及時通嗎

如果您不願意沒關係....只是以後還是在這個論壇繼續問

如果願意就用私人訊息給我吧...我會相當感激您的

文章發表於 : 2007-12-15 5:10 pm
teng
if ($uport == $port && $upoint >= 0 && $uid != $id) {
這行@@ ..照php判斷的方法就是
$uport就是$port和 upoint 大於等於0 還有$uid不等於$id
ok?

文章發表於 : 2007-12-16 3:03 pm
急速
if ($uport == $port && $upoint >= 0 && $uid != $id) {

這一句的意思我還看的懂
不過我的解釋是這樣

$uport和$port是指對方和我方所在位置 而$upoint是指港內的位置 $uid和$id就是對方的ID和我方的ID

$upoint在bar.cgi裡原本是寫$upoint == 4

所以原碼 if ($uport == $port && $upoint == 4 && $uid != $id) {就是

當對方和我方在相同的位置,且港內位子在酒館時,若ID不一樣時就執行下列動作

所以我想既然是使用信件直接加,港口位置根本不重要,在港內所有位置都能加好友,ID也要在不一樣時執行下列動作

所以我改成if ($uport != $port && $upoint >= 0 && $uid != $id) {

但是這樣改$uport != $port 就會回到原本的問題,

會一直顯示  訊息已傳送至XXX  而後面的XXX是指自己的角色

像我在測試的時候腳色是天空 他就會顯示 訊息已傳送至天空 不會傳給別人

而且下方的好友欄就會加入frad的名稱...但是並沒有這個人存在

雖然知道跟bar.cgi內部的功能類似...但自己寫就是一堆問題= =

也不知道自己寫錯再哪裡,這樣挫折感很重阿....

所以才會想請會的大大告訴我錯在哪裡

不一定要告訴我答案...但起碼要讓我知道錯在哪裡...不然會感覺在原地打轉

毫無進步的感覺

文章發表於 : 2008-07-26 6:57 pm
冰水半糖
首先,我覺得這萹文章無最後回覆感到奇怪.

訊息已傳送至XXX <因為$uname有野,而你段碼$uname = 自己


現附上成功的代碼:(當然加在什麼位罝請用腦想.)

代碼: 選擇全部
# Sub Mail Add #
sub mail_add{
   &get_me($F{'id'});
   &get_u($F{'frad'},'read');
   if ($id == $uid ) { &error('你不能把自已加在友人名單上.<br>難度你想寄信比自已?') }
   if ( $friend_line !~ /$uid/ ) {
   if ( !$friend_line ) {
   $friend_line .= "$uid,$uname";
   $passed=1;
   $unm=$uname;
}
else{
   $friend_line .= "△$uid,$uname";
   $passed=1;
   $unm=$uname;
}
         }
else{
   $nopassed=1;
   $unm=$uname;
}
   &set_me;
   &mail_form
}


當然加完後也未行,還會出現"訊息已傳送至XXX"

(mail_form)print qq|訊息已傳送至"$uname"<br><br>\n| if $uname;

轉做:

代碼: 選擇全部
   print qq|訊息已傳送至"$uname"<br><br>\n| if $mailok;
   print qq|成功追加玩家"$unm"<br><br>\n| if $passed;
   print qq|追加玩家"$unm"失敗<br>原因:該玩家ID己在你的友人名單上.<br><br>\n| if $nopassed;


在:
sub send_mail {
.
.
.
.
.
&set_me;
&add_record("$name:「$F{'message'}」",1);
$urecord .= "收到訊息<br>";
&set_u;
&mail_form
}
}

轉做:

代碼: 選擇全部
      &set_me;
      &add_record("$name:「$F{'message'}」",1);
      $urecord .= "收到訊息<br>";
      $mailok= 1;
      &set_u;
      &mail_form
   }
}


大公告成!