- 精华
- 阅读权限
- 60
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2012-12-12
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
发表于 2012-12-30 13:45:16
|
显示全部楼层
本帖最后由 asa0215 于 2012-12-30 13:51 编辑
關於造兵卡0秒問題..給點思路
在 SoldierFunc.php
舉例一段
else //如果還沒有兵在造的話,則直接開始造
{
sql_query("insert into sys_city_draftqueue (`cid`,`xy`,`sid`,`count`,`queuetime`,`state`,`draft_interval`,`state_starttime`,`needtime`) values
('$cid','$xy','$sid','$soldierCount',unix_timestamp(),1,'$real_time_need',unix_timestamp(),'$needtime')");
$lastid = sql_fetch_one_cell("select LAST_INSERT_ID()");
sql_query("insert into mem_city_draft (select id,cid,xy,sid,count,state_starttime+needtime from sys_city_draftqueue where `id`='$lastid')");
}
以上這段是沒有造兵排程時..可以直接招募的function
當我們按下招幕輸入要招多少兵後按確定...
便會進入排程的正在訓練...
等時間到...為什會卡0秒是因為只有寫入資料庫而已
並沒有額外的function去修改sys_city_draftqueue資料表的state(把1改成0)和刪除mem_city_draft資料表新增的那一段sql..
sys_city_draftqueue資料表是進兵營後左邊排程有調用到資料(state=0不顯示,1則是顯示)
mem_city_draft資料表是正在造的兵
所以結論就是要自己弄出個function去修改sys_city_draftqueue資料表的state(把1改成0)和刪除mem_city_draft資料表新增的那一段sql..
就OK啦..
然後在addCitySoldier()把兵加進去
科技卡0秒也是類似這樣...
想法有錯請指正了 |
|