first commit
This commit is contained in:
commit
cf5fe03033
535
CSA.sql
Normal file
535
CSA.sql
Normal file
@ -0,0 +1,535 @@
|
||||
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
--
|
||||
-- 数据库: `CSA`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `capturepet`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `capturepet` (
|
||||
`unicode` varchar(32) NOT NULL,
|
||||
`id` int(11) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`lv` int(11) NOT NULL,
|
||||
`hp` int(11) NOT NULL,
|
||||
`attack` int(11) NOT NULL,
|
||||
`def` int(11) NOT NULL,
|
||||
`quick` int(11) NOT NULL,
|
||||
`sum` double NOT NULL,
|
||||
`author` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`cdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`check` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`inserttime` datetime NOT NULL,
|
||||
PRIMARY KEY (`unicode`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `CashDraw`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `CashDraw` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(16) NOT NULL,
|
||||
`point` int(11) NOT NULL,
|
||||
`fixtime` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `id` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `check`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `check` (
|
||||
`itemcode` varchar(64) NOT NULL,
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`mac` varchar(64) NOT NULL,
|
||||
`type` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`value` int(11) NOT NULL,
|
||||
`time` datetime NOT NULL,
|
||||
`check` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`usecdkey` varchar(32) DEFAULT NULL,
|
||||
`usename` varchar(32) CHARACTER SET gbk DEFAULT NULL,
|
||||
`usemac` varchar(64) DEFAULT NULL,
|
||||
`usetime` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`itemcode`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `consignment`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `consignment` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) COLLATE gb2312_bin NOT NULL,
|
||||
`name` varchar(32) COLLATE gb2312_bin NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`time` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `counter`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `counter` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`fame` int(11) NOT NULL,
|
||||
`fixtime` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `CSAinfo`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `CSAinfo` (
|
||||
`cdkey` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`saveindex` int(11) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`famename` varchar(32) CHARACTER SET gbk COLLATE gbk_bin NOT NULL,
|
||||
`CE` int(16) NOT NULL DEFAULT '0',
|
||||
`level` int(11) NOT NULL,
|
||||
`trans` int(11) NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`cameo` int(11) NOT NULL,
|
||||
`fame` int(11) NOT NULL,
|
||||
`TITLE_LV` int(11) NOT NULL,
|
||||
`DUELBATTLECOUNT` int(11) NOT NULL,
|
||||
`DUELWINCOUNT` int(11) NOT NULL,
|
||||
`DUELLOSECOUNT` int(11) NOT NULL,
|
||||
`DUELSTWINCOUNT` int(11) NOT NULL,
|
||||
`DUELSTLOSECOUNT` int(11) NOT NULL,
|
||||
`DUELMAXSTWINCOUNT` int(11) NOT NULL,
|
||||
`RESETPETCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '洗宠次数',
|
||||
`AWAKEPETCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '变异次数',
|
||||
`SEALEVNTCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '任务封印次数',
|
||||
`TRANSPETCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '转宠次数',
|
||||
`KILLBOSSCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '击杀BOSS次数',
|
||||
`BOSSKILLCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '被BOSS杀次数',
|
||||
`CAPPETCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '抓宠次数',
|
||||
`FEEDMMCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '练MM次数',
|
||||
`EQUIPUPCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '强化成功次数',
|
||||
`EQUIPFAILCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '强化失败次数',
|
||||
`MAGICADDCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '附魔次数',
|
||||
`HORSEWINCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '跑马押中次数',
|
||||
`HUNTFISHCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '捕鱼次数',
|
||||
`HUNTBIGFISHCOUNT` int(16) NOT NULL DEFAULT '0' COMMENT '大鱼次数',
|
||||
`vip` int(11) NOT NULL,
|
||||
`time` datetime NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `CSAlogin`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `CSAlogin` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`Name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`PassWord` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`IP` varchar(16) NOT NULL DEFAULT '-',
|
||||
`MAC` varchar(64) NOT NULL,
|
||||
`RegTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`LoginTime` datetime DEFAULT '0000-00-00 00:00:00',
|
||||
`OnlineName` varchar(32) CHARACTER SET gbk DEFAULT NULL,
|
||||
`OnlineName1` varchar(30) CHARACTER SET gbk DEFAULT NULL,
|
||||
`OnlineName2` varchar(32) CHARACTER SET gbk DEFAULT NULL,
|
||||
`Online` tinyint(4) DEFAULT '0',
|
||||
`Path` varchar(16) DEFAULT '',
|
||||
`CE` int(16) NOT NULL DEFAULT '0',
|
||||
`VipPoint` int(11) DEFAULT '0',
|
||||
`PayPoint` int(11) NOT NULL,
|
||||
`GamblePoint` int(11) NOT NULL,
|
||||
`TrialPoint` int(16) NOT NULL DEFAULT '0',
|
||||
`GoldPoint` int(16) NOT NULL DEFAULT '0',
|
||||
`SQLPoint` int(16) NOT NULL DEFAULT '0',
|
||||
`SafePasswd` varchar(32) DEFAULT '',
|
||||
`ServerId` int(4) NOT NULL DEFAULT '0',
|
||||
`Regip` varchar(32) NOT NULL,
|
||||
`qq` varchar(32) NOT NULL,
|
||||
`tel` varchar(32) NOT NULL,
|
||||
`ServerName` varchar(32) NOT NULL,
|
||||
`Recommender` int(11) NOT NULL,
|
||||
`Lock` int(4) NOT NULL DEFAULT '0',
|
||||
`LockTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`LockInfo` varchar(32) NOT NULL DEFAULT '',
|
||||
`Offline` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`Trust` tinyint(4) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `Name` (`Name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `dice`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `dice` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`fame` int(11) NOT NULL,
|
||||
`dicenum` int(11) NOT NULL,
|
||||
`fixtime` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `dicelog`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `dicelog` (
|
||||
`type` int(11) NOT NULL DEFAULT '0',
|
||||
`winpoint` int(11) NOT NULL DEFAULT '0',
|
||||
`losepoint` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `loan`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `loan` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`PetName` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`PetInfo` varchar(512) CHARACTER SET gb2312 NOT NULL,
|
||||
`PetString` varchar(2048) CHARACTER SET gb2312 NOT NULL,
|
||||
`day` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`stat` int(11) NOT NULL DEFAULT '0',
|
||||
`loancdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`loanname` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`fixtime` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `LOCK`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `LOCK` (
|
||||
`Name` varchar(64) NOT NULL,
|
||||
`LockTime` datetime NOT NULL,
|
||||
PRIMARY KEY (`Name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `OnlineBuy`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OnlineBuy` (
|
||||
`CostPasswd` varchar(32) NOT NULL,
|
||||
`CostStr` varchar(64) DEFAULT NULL,
|
||||
`cdkey` varchar(32) DEFAULT NULL,
|
||||
`CostTime` datetime DEFAULT NULL,
|
||||
`check` tinyint(1) DEFAULT '1',
|
||||
PRIMARY KEY (`CostPasswd`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `OnlineCard`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OnlineCard` (
|
||||
`CostPasswd` varchar(32) NOT NULL,
|
||||
`CostStr` varchar(64) DEFAULT NULL,
|
||||
`cdkey` varchar(32) DEFAULT NULL,
|
||||
`CostTime` datetime DEFAULT NULL,
|
||||
`check` tinyint(1) DEFAULT '1',
|
||||
PRIMARY KEY (`CostPasswd`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `OnlineCost`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OnlineCost` (
|
||||
`CostPasswd` varchar(32) NOT NULL,
|
||||
`CostVal` int(11) NOT NULL,
|
||||
`PayVal` int(11) NOT NULL,
|
||||
`cdkey` varchar(32) DEFAULT '',
|
||||
`CostTime` datetime NOT NULL,
|
||||
`check` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`creator` varchar(32) DEFAULT NULL,
|
||||
UNIQUE KEY `CostPasswd` (`CostPasswd`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `OnlinePlayer`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OnlinePlayer` (
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`MAC` varchar(64) NOT NULL,
|
||||
`Name` varchar(32) NOT NULL,
|
||||
`LoginTime` datetime NOT NULL,
|
||||
`ServerId` int(11) NOT NULL,
|
||||
PRIMARY KEY (`cdkey`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `PauctionInfo`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `PauctionInfo` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`effect` varchar(1024) CHARACTER SET gbk NOT NULL,
|
||||
`cost` int(11) NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`info` varchar(1024) CHARACTER SET gbk NOT NULL,
|
||||
`string` varchar(1024) CHARACTER SET gb2312 NOT NULL,
|
||||
`day` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `petbilling`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `petbilling` (
|
||||
`id` int(11) NOT NULL,
|
||||
`type` tinyint(4) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`lv` int(11) NOT NULL,
|
||||
`hp` int(11) NOT NULL,
|
||||
`attack` int(11) NOT NULL,
|
||||
`def` int(11) NOT NULL,
|
||||
`quick` int(11) NOT NULL,
|
||||
`author` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
PRIMARY KEY (`id`,`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `pklist`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `pklist` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`player1` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`player2` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`player3` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`player4` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`player5` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`seesion` int(11) NOT NULL,
|
||||
`stat` int(11) NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `id` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `safedata`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `safedata` (
|
||||
`cdkey` varchar(32) NOT NULL DEFAULT '',
|
||||
`newsafe` varchar(64) DEFAULT NULL,
|
||||
`oldsafe` varchar(64) DEFAULT NULL,
|
||||
`flg` int(1) NOT NULL,
|
||||
`FixTime` datetime NOT NULL,
|
||||
PRIMARY KEY (`cdkey`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `SaleVipPoint`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `SaleVipPoint` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`Vippoint` int(11) NOT NULL,
|
||||
`rate` int(11) NOT NULL,
|
||||
`price` int(11) NOT NULL,
|
||||
`stat` int(11) NOT NULL,
|
||||
`CreateTime` datetime NOT NULL,
|
||||
`PayTime` datetime NOT NULL,
|
||||
`banktype` varchar(32) CHARACTER SET gb2312 NOT NULL DEFAULT '',
|
||||
`bankcdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`bankname` varchar(8) CHARACTER SET gb2312 NOT NULL,
|
||||
`QQ` varchar(11) CHARACTER SET gb2312 NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `SuperStar`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `SuperStar` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`award` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`check` int(11) NOT NULL,
|
||||
`datatime` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `transpointlog`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `transpointlog` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`incdkey` varchar(32) DEFAULT NULL,
|
||||
`outcdkey` varchar(32) DEFAULT NULL,
|
||||
`type` varchar(32) DEFAULT NULL,
|
||||
`inpoint` int(11) DEFAULT '0',
|
||||
`outpoint` int(11) DEFAULT '0',
|
||||
`datetime` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `VipShop`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `VipShop` (
|
||||
`cdkey` varchar(32) COLLATE gb2312_bin NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`itemid` int(11) NOT NULL,
|
||||
`itemname` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`itemnum` int(11) NOT NULL,
|
||||
`totalcost` int(16) NOT NULL,
|
||||
`time` datetime NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `weekpay`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `weekpay` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`term` int(11) NOT NULL,
|
||||
`cdkey` varchar(32) NOT NULL,
|
||||
`itemid` int(11) NOT NULL,
|
||||
`check` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `YamaKing`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `YamaKing` (
|
||||
`index` int(13) NOT NULL AUTO_INCREMENT,
|
||||
`cdkey` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
`floor` int(16) NOT NULL,
|
||||
`itemid` int(16) NOT NULL,
|
||||
`itemname` varchar(16) CHARACTER SET gbk NOT NULL,
|
||||
`time` datetime NOT NULL,
|
||||
`mac` varchar(64) CHARACTER SET gbk NOT NULL,
|
||||
`servername` varchar(32) CHARACTER SET gbk NOT NULL,
|
||||
PRIMARY KEY (`index`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `yuxiaxie`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yuxiaxie` (
|
||||
`date` date NOT NULL,
|
||||
`cdkey` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`name` varchar(32) CHARACTER SET gb2312 NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`fame` int(11) NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`fixtime` datetime NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- 表的结构 `yuxiaxielog`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yuxiaxielog` (
|
||||
`date` date NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
`vippoint` int(11) NOT NULL,
|
||||
`alive` int(11) NOT NULL,
|
||||
`fame` int(11) NOT NULL,
|
||||
`sumvippoint` int(11) NOT NULL,
|
||||
`sumalive` int(11) NOT NULL,
|
||||
`sumfame` int(11) NOT NULL,
|
||||
`fixtime` datetime NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
138
acserv.cf
Normal file
138
acserv.cf
Normal file
@ -0,0 +1,138 @@
|
||||
CPUUSE 2
|
||||
##############################
|
||||
#SAAC基本参数设置
|
||||
# 帐户服务器端卿
|
||||
port 10001
|
||||
|
||||
# 帐户服务器密瞿
|
||||
pass test
|
||||
|
||||
# rotale_internal
|
||||
rotale_internal 1000
|
||||
|
||||
# dbdir文件目录
|
||||
dbdir data
|
||||
|
||||
# LOG文件目录
|
||||
logdir log
|
||||
|
||||
# LOCK文件目录
|
||||
lockdir lock
|
||||
|
||||
# CHAR文件目录
|
||||
chardir char
|
||||
|
||||
# CHAR_SLEEP文件目录
|
||||
sleepchardir char_sleep
|
||||
|
||||
# WKLOG文件目录
|
||||
wklogdir data/wklog
|
||||
|
||||
# MAIL文件目录
|
||||
maildir mail
|
||||
|
||||
# family文件目录
|
||||
familydir data/family
|
||||
|
||||
# fmpoint文件目录
|
||||
fmpointdir data/fmpointdir
|
||||
|
||||
# fmsmemo文件目录
|
||||
fmsmemodir data/fmsmemodir
|
||||
|
||||
# SA名称
|
||||
SANAME Test
|
||||
|
||||
# LSADDRESS
|
||||
LSADDRESS localhost
|
||||
|
||||
# LS端口
|
||||
LSPORT 3334
|
||||
|
||||
# TEST名称
|
||||
TESTNAME Test
|
||||
|
||||
# OACBIND
|
||||
OACBIND
|
||||
|
||||
# 星系名称
|
||||
saacname Test
|
||||
|
||||
##############################
|
||||
# 更新人物点数间隔xx祿
|
||||
Total_Charlist 3600
|
||||
# 更新进期邮件间隔xx祿
|
||||
Expired_mail 600
|
||||
# 删除家族成员间隔xx祿
|
||||
Del_Family_or_Member 3600
|
||||
# 更新家族信息间隔xx祿
|
||||
Write_Family 600
|
||||
|
||||
##############################
|
||||
#MYSQL基本配置
|
||||
#ifdef _SASQL
|
||||
#sql服务器IP
|
||||
sql_IP 127.0.0.1
|
||||
#sql服务器端卿
|
||||
sql_Port 3306
|
||||
#sql服务器账卿
|
||||
sql_ID root
|
||||
#sql服务器密瞿
|
||||
sql_PS 123456
|
||||
#sql数据库名
|
||||
sql_DataBase CSA
|
||||
#sql人物信息表名
|
||||
sql_Table CSAlogin
|
||||
#sql用户名字欿
|
||||
sql_NAME Name
|
||||
#sql密码字段县
|
||||
sql_PASS PassWord
|
||||
#sql锁定账号表名
|
||||
sql_LOCK LOCK
|
||||
|
||||
########后台功能############
|
||||
#是台开始后台功聿
|
||||
openbackground 1
|
||||
#openbackground值为1则开始以下功聿
|
||||
sql_RegIP IP
|
||||
sql_RegTime RegTime
|
||||
sql_LoginTime LoginTime
|
||||
sql_Path Path
|
||||
sql_OnlineName OnlineName
|
||||
|
||||
#禁止多少天未上线的账号登闿
|
||||
uLoginDay 60
|
||||
|
||||
############################
|
||||
|
||||
#是否限制同一IP登陆次数(0为不限制)
|
||||
SameIpMun 0
|
||||
|
||||
|
||||
#是否使用MD5(0为否ﺿ为是)
|
||||
USEMD5 0
|
||||
|
||||
#每隔几天自动备份一次数拿
|
||||
AUTOBACKUPDAY 1
|
||||
|
||||
#几点进行自动备份
|
||||
AUTOBACKUPHOUR 2
|
||||
|
||||
#是否自动注册
|
||||
AutoReg 0
|
||||
|
||||
#六合彩间格时长墿
|
||||
LOTTERYSYSTEM 1000
|
||||
|
||||
#充值积分倍数
|
||||
DoublePayPoint 1
|
||||
|
||||
#IP验证
|
||||
ip1 127.0.0.1
|
||||
ip2 127.0.0.2
|
||||
ip3 127.0.0.3
|
||||
ip4 127.0.0.4
|
||||
ip5 127.0.0.5
|
||||
|
||||
savezip 1
|
||||
#endif
|
795
setup.cf
Normal file
795
setup.cf
Normal file
@ -0,0 +1,795 @@
|
||||
#ChangeRunLevel
|
||||
#运行等级 范围是-20~19 其中-20的运行级别最高
|
||||
runlevel=0
|
||||
|
||||
#性能调节,诺想CPU使用率大些的请把值设大些
|
||||
CPUUSE=1
|
||||
|
||||
#recvbuffer表示每个玩家接收缓冲区大小 范围0K-128K
|
||||
recvbuffer=64
|
||||
#recvbuffer表示每个玩家发送缓冲区大小 范围0K-128K
|
||||
sendbuffer=64
|
||||
#readbuffer表示每个玩家接收缓冲区下限 范围128-1024
|
||||
recvlowatbuffer=128
|
||||
|
||||
# Debug Level 0 for none
|
||||
#服务器调试等级
|
||||
#有用的值为0、1、3
|
||||
#0:不报告任何错误
|
||||
#1: 只报告关键错误 其他错误将忽略
|
||||
#3:报告所有错误
|
||||
debuglevel=3
|
||||
|
||||
#人物循环运行时间
|
||||
charlooptime=3
|
||||
|
||||
#重登陆不踢号
|
||||
LOGINNOKICK=1
|
||||
|
||||
#控制转宠
|
||||
CTRLTRANS=1
|
||||
|
||||
#【光明】【黑暗】精灵扣气比例在精灵前加[光][暗]
|
||||
FMMAGICMPRATE1=0.2
|
||||
FMMAGICMPRATE2=0.2
|
||||
|
||||
#带宽优化,原地状态下VS不显(1全部开启,2单人开启,3队员开启,0关闭)
|
||||
VSFLG=1
|
||||
|
||||
#暂时无用的
|
||||
Connectnum=40
|
||||
PetEnemyDevelopUp=0
|
||||
|
||||
#放攻击策略
|
||||
NOATTTYPE=0
|
||||
NOATTTIME=15
|
||||
|
||||
#不加声望地图
|
||||
NOFAMEMAP=34567
|
||||
|
||||
#说话最小音量
|
||||
TALKMIN=2
|
||||
|
||||
#说话最大音量
|
||||
TALKMAX=3
|
||||
|
||||
#定义精灵0转100级以下不扣气
|
||||
NOMPMAGIC=,10,
|
||||
|
||||
#当前线路族战最大进入人数。
|
||||
FMWARPLAYERNUM=50
|
||||
|
||||
#线路族战最大数显示
|
||||
FMWARPLAYERNUMBUFF=石器一线,50,石器PK二线,60,石器PK三线,80,石器PK四线,100,石器PK单号线,200
|
||||
|
||||
#原地延时
|
||||
BATTLESPEED=2000
|
||||
#战斗回合延迟(毫秒)
|
||||
battletime=200
|
||||
|
||||
声望模式(0为默认,1为自定义)
|
||||
PETUPGETEXP=1
|
||||
|
||||
#道具第一次交易自动绑定
|
||||
FirstLockItem=1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
|
||||
#伤害程度设置(默认为100)
|
||||
dammagecalc=85
|
||||
|
||||
#刷新NPC设置(RELOADNPCTIME*10 秒 0为关闭 最大值10000 ,RELOADNPCTYPE 0为关闭 1为传送当前坐标)
|
||||
RELOADNPCTIME=0
|
||||
RELOADNPCTYPE=1
|
||||
|
||||
#####################################安全相关#####################################
|
||||
#信任IP
|
||||
NOATTIP1=
|
||||
NOATTIP2=
|
||||
NOATTIP3=
|
||||
NOATTIP4=
|
||||
NOATTIP5=
|
||||
|
||||
|
||||
#端口防御
|
||||
MANRENNUM=500
|
||||
#服务端主动防御(不对比游戏中的人,时间,FENGTYPE 1 对比数据库封人 2 不对比数据库封人 3 只T人)
|
||||
NOFULLPLAYER=100
|
||||
NOFULLTIME=5
|
||||
FENGTYPE=1
|
||||
#防御错误账号(10+6+?,NOCDKEYMODE 0为关闭 1为不存在ID 2为错误账号,NOCDKEYTYPE 0为对比数据库 1为不对比数据库)
|
||||
NOCDKEYPLAYER=50
|
||||
NOCDKEYMODE=1
|
||||
NOCDKEYTYPE=1
|
||||
|
||||
#正确封包数量(登录前封包数量,0是对比数据库,1是不对比数据库)
|
||||
RIGHTNUM=4000
|
||||
RIGHTMODE=0
|
||||
#登录前封包
|
||||
BIGBAO=300
|
||||
#登陆后封包
|
||||
BIGBAO2=800
|
||||
|
||||
|
||||
#设置战斗NPC和道具对话验证答案范围
|
||||
TALKCHECKMIN=50
|
||||
TALKCHECKMAX=100
|
||||
|
||||
#信任IP
|
||||
serverip=127.0.0.1,120.25.121.212,58.96.187.218,115.28.12.42,101.200.174.216
|
||||
#同一IP登陆数
|
||||
sameiponlinenum=2
|
||||
|
||||
#当ITEMPETLOCKED=0时则不使用安全锁功能
|
||||
ITEMPETLOCKED=1
|
||||
|
||||
####################################摆摊相关######################################
|
||||
|
||||
#几转才可以摆摊
|
||||
streetvendortrans=0
|
||||
#设置摆摊功能每次成功交易税收费用(单位:%)
|
||||
STREETVENDORPOINT=0,0,0,0
|
||||
|
||||
####################################喊话相关######################################
|
||||
|
||||
#使用星球频道所需声望
|
||||
#转数
|
||||
ALLSERVTRANS=5
|
||||
#等级
|
||||
ALLSERVLEVEL=140
|
||||
#声望
|
||||
ALLSERVSNED=10000
|
||||
|
||||
#使用世界频道所需声望
|
||||
THEWORLDTRANS=1
|
||||
THEWORLDLEVEL=100
|
||||
THEWORLDSNED=10
|
||||
|
||||
#每在线/SAVE保存一次所需声望
|
||||
SAVEFAME=0
|
||||
|
||||
##################################地图属性#######################################
|
||||
|
||||
#不可以HELP的地图
|
||||
nohelpmap=40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,33020,33040,33060,33080,33100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#玩家重叠时立即PK
|
||||
PLAYEROVERLAPPK=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#禁止逃跑的地图
|
||||
NOTESCAPE=12345,140,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,8252,8253,8254,8256,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#禁止原登地图设置
|
||||
UNLAWTHISLOGOUT=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#禁止组队地图设置
|
||||
NOJOINFLOOR=33020,33040,33060,33080,33100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#特殊地图战后自动恢复体力
|
||||
MAPHEAL=2000,40001,40002,40003,40004,40005,40006,40007,40008,40009,40010,40011,2005,3000,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
|
||||
###################################六转相关#######################################
|
||||
|
||||
#六转是否取消精召任务判断(1是0否)
|
||||
CANCELANGLETRANS=1
|
||||
#精灵召唤时间间隔(ANGELPLAYERTIME/在线人数)分钟
|
||||
ANGELPLAYERTIME=5000
|
||||
#精灵召唤所需在线人数(最小为2)
|
||||
ANGELPLAYERMUN=1000
|
||||
|
||||
##################################宠物相关#########################################
|
||||
|
||||
#设置宠物转生后能力值增长
|
||||
#该选择是宠转转后额外增加点数,如设置2,一转就加2,二转则翻倍就是增4
|
||||
#默认0
|
||||
PETTRANSABILITY=0
|
||||
#以下两项是防一转二转成长过大的限制设置
|
||||
#一转默认200
|
||||
PETTRANSABILITY1=180
|
||||
#二转默认200
|
||||
PETTRANSABILITY2=200
|
||||
|
||||
#宠技商品LUA判断脚本路径
|
||||
PETSKILLSHOPPATH=data/ablua/freepetskillshop.lua
|
||||
|
||||
#当DELNEEDITEM=0时,抓宠所需的物品不自动删除
|
||||
DELNEEDITEM=1
|
||||
|
||||
#遇不到什么敌人(短编号)
|
||||
NOENEMYIDGROUP=1661,1662,1663,1664
|
||||
|
||||
###################################族战相关######################################
|
||||
|
||||
#自定义族战开片时间,次日几点,-1则为下战书的时间(暂时无用)
|
||||
FIMALYPKTIME=20
|
||||
|
||||
###################################外挂相关#######################################
|
||||
|
||||
#禁止外挂快速遇敌(0为不改变,1为禁止快速遇敌,2为当外挂快速遇敌时,自动原地遇敌)
|
||||
NOSTWENEMY=0
|
||||
#当NOSTWENEMY=2时,每次成功快速遇敌自动扣除石币点数
|
||||
NOSTWENEMYGOLD=0
|
||||
|
||||
#使用外挂瞬移设置
|
||||
#-1为关闭此功能,0为不需损耗,1为损耗石币,2为损耗声望,3为损耗积分,4为损耗气势,5为损耗在DP
|
||||
STWSENDTYPE=2
|
||||
#使用移挂瞬移所需损耗点
|
||||
STWSENDPOINT=100
|
||||
|
||||
#是否道具仓库进行强存
|
||||
#0为可以强存
|
||||
#1为仓库可以强库但共同仓库不能强存
|
||||
#2为共同仓库可以强库但仓库不能强存
|
||||
#3禁止强存
|
||||
POOLITEMBUG=3
|
||||
|
||||
###################################会员相关#####################################
|
||||
|
||||
#会员经验倍数
|
||||
vipbattleexp=1
|
||||
|
||||
#是否把服务器设为会员包时专区(1是0否)
|
||||
VIPBOUNDTIME=0
|
||||
#当VIPBOUNDTIME=1时,以下生效
|
||||
UNBOUNDTIMETRANS=0
|
||||
UNBOUNDTIMELEVEL=120
|
||||
#当玩家转数及等级超越以上设置,则只能在以下设置地图活动
|
||||
UNBOUNDTIMEMAP=2000,65,65
|
||||
|
||||
###################################活动相关#####################################
|
||||
|
||||
|
||||
#战斗获得物品机率设置选项
|
||||
#战斗获得物品设置(越前面机率越低)
|
||||
BATTLEGETITEMRATE=-1
|
||||
#战斗获得物品地图设置
|
||||
BATTLEGETITEMRATEMAP=0
|
||||
|
||||
|
||||
#幸运星功能设定(data/luckstar.txt)
|
||||
#幸运星触发时间周期(单位10秒)(1小时)
|
||||
LUCKSTARTIME=-1
|
||||
#运星触发事件后成功机率(60%触发成功)
|
||||
LUCKSTARCHANCES=100
|
||||
|
||||
#乱舞PK每天几点开始(-1不启用)
|
||||
AUTOPK=-1
|
||||
#参加乱舞资格转数方可入场
|
||||
AUTOPKTRANS=1
|
||||
#参加乱舞资格等级方可入场
|
||||
AUTOPKLV=100
|
||||
#乱舞开始赠送积分
|
||||
AUTOPKPOINT=100
|
||||
#乱舞每杀一人获得积分
|
||||
KILLPOINT=10
|
||||
|
||||
#会员点PK地图扣点设置(地图顺序11111,22222,33333,44444)
|
||||
PKMAP=10,20,30,40
|
||||
#会员点PK每次胜利收取手续费
|
||||
PKMAPCOST=10
|
||||
|
||||
###################################危险选项#####################################
|
||||
|
||||
|
||||
#非开BT服千万别设置这里,若BT服,请自行设置
|
||||
#宠物每项成长增长数值?
|
||||
BTPET=1
|
||||
#道具数值(攻防敏)翻几倍?
|
||||
BTITEM=1
|
||||
|
||||
#删除指定ID的宠物(可定义30)
|
||||
AUTODELPET=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
#删除指定ID的道具(可定义30)
|
||||
AUTODELITEM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
|
||||
#特殊地图(四张地图)
|
||||
SPECIALMAP=-1,-1,-1,-1
|
||||
|
||||
###################################系统相关#####################################
|
||||
|
||||
#玩家上线提示
|
||||
#0登陆公告与会员上线提示不使用
|
||||
#1使用登陆公告和会员上线提示
|
||||
#2使用登陆公告但不使用会员上线提示
|
||||
#3会员不显示登陆公告且会员上线提示
|
||||
LOGINDISPLAY=3
|
||||
|
||||
#新手出生能骑多少级以下的宠物
|
||||
RIDEPETLEVEL=140
|
||||
|
||||
#家族退出再加的时间限制(小时)
|
||||
JOINFAMILYTIME=0
|
||||
|
||||
#非法宠物检查(1为检查,0为不检查)
|
||||
CHECKPEPEAT=0
|
||||
|
||||
#融合是否可以转生
|
||||
#(0不可转生,1为可以1转,最大只能2转)
|
||||
FUSIONBEIT=1
|
||||
|
||||
#减少玩家步行遇敌频率倍数
|
||||
ENEMYACTION=3
|
||||
|
||||
#庄园家族互抢庄园模式
|
||||
FMPOINTPK=0
|
||||
|
||||
#骑宠模式
|
||||
#0为正常8.0
|
||||
#1为正常2.0带骑证模式(光明骑蓝暴,黑暗骑红暴)
|
||||
#2为正常2.0非骑证模式(光明骑蓝暴,黑暗骑红暴)
|
||||
#3可自由骑任意骑宠
|
||||
RIDEMODE=0
|
||||
|
||||
#自定义在线人虚假人数(虚假人数+在线人数+随机人数)
|
||||
PLAYERNUM=0
|
||||
|
||||
#新手出生可获得会员点数
|
||||
GIVEVIPPOINT=0
|
||||
|
||||
#战斗完获得金钱(人物等级的倍数)
|
||||
BATTLEGOLD=0
|
||||
|
||||
#VIP字段显示方法
|
||||
#0为不显示VIP
|
||||
#1为在家族中显示VIP
|
||||
#2为在名称中显示VIP
|
||||
SHOWVIP=1
|
||||
|
||||
#玩家使用大瞬移每次所需点数(-1为关闭)
|
||||
PMOVE=0
|
||||
#玩家使用小喇叭每次所需点数(-1为关闭)
|
||||
PANNOUNCE=1
|
||||
#恶魔宝石遇敌时间倍数(遇敌时间0.1秒*倍数)--失效
|
||||
CHARLOOPS=1
|
||||
|
||||
#自定义骑宠相差等级
|
||||
RIDELEVEL=5
|
||||
#自定义可骑乘最大转数的骑宠
|
||||
RIDETRANS=1
|
||||
|
||||
#自定义升级点数
|
||||
SKILLUPPOINT=3
|
||||
|
||||
#每转点数上限定义(-1表示默认)
|
||||
TRANSPOINTUP=-1,-1,-1,-1,-1,610,-1
|
||||
#禁止点数上限复点(当POINT=0时,每转点数上限生效)
|
||||
POINT=1
|
||||
#正常点数可超越(指得是使用多少祝福点数)
|
||||
TRANS0=5
|
||||
TRANS1=10
|
||||
TRANS2=15
|
||||
TRANS3=20
|
||||
TRANS4=30
|
||||
TRANS5=40
|
||||
TRANS6=5
|
||||
TRANS7=5
|
||||
|
||||
#设置循环公告循环时间(分钟)
|
||||
ANNOUNCETIME=30
|
||||
#设置循环公告路径
|
||||
ANNOUNCEPATH=loopannounce.txt
|
||||
|
||||
#是否允许所有地图强制战斗(1为是0为不是)
|
||||
BATTLEFLOOR=0
|
||||
#可强制战斗地图
|
||||
BATTLEFLOORCF=-1,-1,-1,-1,-1
|
||||
|
||||
#是否所有地图可观战
|
||||
WATCHFLOOR=0
|
||||
#自定义可观战地图
|
||||
WATCHFLOOR1=
|
||||
WATCHFLOOR2=
|
||||
WATCHFLOOR3=
|
||||
WATCHFLOOR4=
|
||||
WATCHFLOOR5=
|
||||
|
||||
#丢出来的宠是否可以给别人捡获(0为否,1为是)
|
||||
PETUP=1
|
||||
#丢出来的道具是否可以给别人捡获(0为否,1为是)
|
||||
ITEMUP=1
|
||||
|
||||
#设置禁止使用职业技能的地图号
|
||||
DISABLEPROFESSION=2000,100
|
||||
|
||||
#禁止IP配置文件
|
||||
LOCKIP=lockip.txt
|
||||
|
||||
#新增禁止玩家互相传送地区
|
||||
UNLAWWARPFLOOR=32021,8213,850,30695,60034,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
|
||||
#禁止使用以下人物名称(原系统支持)
|
||||
NAME1=极度无聊
|
||||
NAME2=
|
||||
NAME3=
|
||||
NAME4=
|
||||
NAME5=
|
||||
|
||||
#禁止使用以下人物名称(支持32个,逗号分隔)
|
||||
ILLEGALNAME=GM,客服,官方,技术
|
||||
|
||||
#自定义升级经验等级
|
||||
USEREXP=data/exp.txt
|
||||
|
||||
#多少转可超越一般等级达到最高级(目前版本开放最高160级)
|
||||
#人物转数
|
||||
CHARTRANS=5
|
||||
#宠物转数(当设了融合宠也能达到最高等级)(不设为-1)
|
||||
PETTRANS=0
|
||||
|
||||
#玩家等级超越最大等级时还原最大等级
|
||||
REVLEVEL=1
|
||||
#最大等级设置
|
||||
MAXLEVEL=140
|
||||
#一般等级设置
|
||||
LEVEL=120
|
||||
|
||||
#战斗后所获得经验倍数
|
||||
battleexp=1
|
||||
|
||||
#自定义出生转数
|
||||
TRANS=0
|
||||
|
||||
#自定义出生等级
|
||||
LV=1
|
||||
|
||||
#自定义出生宠物(1为送虎,2为送雷,3为送虎加雷)
|
||||
NPRIDE=1
|
||||
#自定义出生宠物
|
||||
PET1=-1
|
||||
PET2=-1
|
||||
PET3=-1
|
||||
PET4=-1
|
||||
|
||||
#自定义出生物品
|
||||
ITEM1=23757
|
||||
ITEM2=22144
|
||||
ITEM3=20626
|
||||
ITEM4=30008
|
||||
ITEM5=
|
||||
ITEM6=
|
||||
ITEM7=
|
||||
ITEM8=
|
||||
ITEM9=
|
||||
ITEM10=
|
||||
ITEM11=
|
||||
ITEM12=
|
||||
ITEM13=
|
||||
ITEM14=
|
||||
ITEM15=
|
||||
|
||||
#自定义出生宠物等级
|
||||
PETLV=1
|
||||
|
||||
#自定义出生金钱
|
||||
GOLD=100000
|
||||
|
||||
# Size of unit that will allocate
|
||||
#每内存单元大小 单位:字节
|
||||
usememoryunit=128
|
||||
|
||||
# Number of unit
|
||||
#有多少个内存单元
|
||||
usememoryunitnum=16000000
|
||||
|
||||
#GMSV启动占用内存总量公式为 (usememoryunit*usememoryunitnum)/(1024*1024) 兆
|
||||
|
||||
|
||||
# Account Server Name
|
||||
# 帐号服务器 SAAC的服务器IP地址
|
||||
acserv=127.0.0.1
|
||||
#acserv=192.168.0.123
|
||||
# Account Server Port
|
||||
# 帐号服务器 SAAC的服务器端口
|
||||
#acservport=9208
|
||||
acservport=10001
|
||||
# Account Server password
|
||||
# 连接到帐号服务器 SAAC的密码
|
||||
acpasswd=test
|
||||
|
||||
# Game Server Name
|
||||
# 服务器名字
|
||||
gameservname=石器一线
|
||||
|
||||
#星球的ID
|
||||
gameservlistid=1
|
||||
|
||||
# 服务器的ID
|
||||
gameservid=1
|
||||
|
||||
==================================================
|
||||
以下内容作废 对服务器无任何影响
|
||||
#ifdef _SERVICE (另设置??)
|
||||
#config.apid, sizeof(config.apid), NULL, 0},
|
||||
apid=
|
||||
#NULL ,0 ,(void*)&config.apport ,SHORT},
|
||||
apport=
|
||||
#NULL,0,(void*)&config.looptime,INT},
|
||||
looptime=
|
||||
#NULL,0,(void*)&config.enableservice,INT},
|
||||
enableservice=
|
||||
#endif
|
||||
==================================================
|
||||
|
||||
#NULL, 0, (void*)&config.allowmanorpk, SHORT},
|
||||
# 是否允许族战
|
||||
allowmanorpk=1
|
||||
#NULL ,0 , (void*)&config.port,SHORT},
|
||||
# 服务器端口
|
||||
port=19065
|
||||
|
||||
# Server Number
|
||||
# 服务器SN
|
||||
servernumber=1
|
||||
|
||||
# Re-use addr
|
||||
# 重复使用socket地址
|
||||
# 当9065端口被占用的情况下会不断重试使用该端口
|
||||
reuseaddr=1
|
||||
|
||||
# delay. If set to 1, may increase network load...
|
||||
# socket套接字延迟 TCP_NODELAY 不建议开放
|
||||
nodelay=0
|
||||
|
||||
==================================================
|
||||
以下请设置为0 不写日志
|
||||
# How long should logfile be wrote? In seconds?
|
||||
|
||||
log_write_time=0
|
||||
# ?
|
||||
log_io_time=0
|
||||
# ?
|
||||
log_game_time=0
|
||||
==================================================
|
||||
|
||||
|
||||
# 记录netloop_faster() 函数的LOG
|
||||
log_netloop_faster=0
|
||||
|
||||
# 每次读取SAAC的数目
|
||||
saacwritenum=10000
|
||||
|
||||
# 每次写入SAAC的数目
|
||||
saacreadnum=10000
|
||||
|
||||
# Max fds, should be larger than online ppls
|
||||
# 最大在线连接人数
|
||||
fdnum=1000
|
||||
# 最大在线人数
|
||||
charnum=800
|
||||
# Max pets numbers
|
||||
# 最大在线宠数
|
||||
petnum=30000
|
||||
# Max other char numbers
|
||||
# 其他最大数目 包含NPC数目+玩家数目
|
||||
othercharnum=45000
|
||||
|
||||
# Max object numbers
|
||||
# 最大对象数目
|
||||
objnum=45000
|
||||
|
||||
# Max item numbers
|
||||
# 最大道具数目
|
||||
itemnum=50000
|
||||
|
||||
# Max battle numbers
|
||||
# 最大战斗数目
|
||||
battlenum=500
|
||||
|
||||
# Top directory(顶层文件夹?)
|
||||
topdir=.
|
||||
# Map file directory(地图文件夹)
|
||||
mapdir=data/map
|
||||
# Map tile file directory(地图设置文件)
|
||||
maptilefile=data/map/mapset.txt
|
||||
|
||||
# Map2 file directory(新地图文件夹)
|
||||
mapdir2=./data/map2
|
||||
# Map2 tile file directory(新地图设置文件)
|
||||
maptilefile2=./data/map2/mapset2.txt
|
||||
|
||||
|
||||
# Battle map file(战斗地图文件)
|
||||
battlemapfile=data/map/battlemap.txt
|
||||
|
||||
#ifdef _ITEMSET6_TXT(道具文件)
|
||||
itemset6file=data/itemset6.txt
|
||||
itemset5file=data/itemset5.txt
|
||||
itemset4file=data/itemset4.txt
|
||||
itemset3file=data/itemset3.txt
|
||||
|
||||
========================================================
|
||||
以下作废 可有可无
|
||||
#else(如果没有itemset6.txt的话选择下面的文件,应该是这样)
|
||||
#ifdef _ITEMSET5_TXT
|
||||
# { "itemset5file", config.itemfile, sizeof(config.invfile), NULL, 0},
|
||||
#else
|
||||
#ifdef _ITEMSET4_TXT
|
||||
# { "itemset4file" , config.itemfile,sizeof(config.invfile),NULL,0},
|
||||
#else
|
||||
#ifdef _ITEMSET3_ITEM
|
||||
# { "itemset3file" , config.itemfile,sizeof(config.invfile),NULL,0},
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
========================================================
|
||||
# ?(无敌NPC或不可战斗NPC???)
|
||||
invinciblefile=data/inv.txt
|
||||
|
||||
# ?(显示位置文件)
|
||||
appearpositionfile=data/appear.txt
|
||||
|
||||
# ?(所有名称文件?)
|
||||
titlenamefile=data/titlename.txt
|
||||
|
||||
# ?(所有设置文件?)
|
||||
titleconfigfile=./data/titleconfig.txt
|
||||
|
||||
# ?(遇到怪的文件?)
|
||||
encountfile=./data/encount.txt
|
||||
|
||||
# ?(宠物文件?)
|
||||
enemyfile=./data/enemy1.txt
|
||||
|
||||
# ?(宠物基础设置文件?)
|
||||
enemybasefile=./data/enemybase1.txt
|
||||
|
||||
# ?(遇敌组文件?)
|
||||
groupfile=./data/group1.txt
|
||||
|
||||
# ?(精灵和魔法文件?)
|
||||
magicfile=./data/magic.txt
|
||||
|
||||
#ifdef __ATTACK_MAGIC(攻击魔法文件?)
|
||||
attmagicfile=./data/attmagic.bin
|
||||
#endif
|
||||
|
||||
#ifdef _PETSKILL2_TXT(宠物技能文件)
|
||||
petskillfile2=./data/petskill2.txt
|
||||
#else
|
||||
petskillfile1=./data/petskill.txt
|
||||
#endif
|
||||
|
||||
# ?(物品组成文件?还是素材文件?)
|
||||
itematomfile=./data/itematom.txt
|
||||
# ?(遇敌?)
|
||||
effectfile=data/effect.txt
|
||||
# 猜迷的文件
|
||||
quizfile=data/question.txt
|
||||
# ?
|
||||
#lsgenlogfilename=log/genlog
|
||||
#ifdef _GMRELOAD(GM帐号文件)
|
||||
gmsetfile=./data/gmset.txt
|
||||
#endif
|
||||
|
||||
# Store DB?
|
||||
# 还原玩家资料目录 可防止当机回档
|
||||
storedir=../saac/char
|
||||
# Npc dir
|
||||
# NPC 目录
|
||||
npcdir=data/npc
|
||||
# Log dir
|
||||
# 日志目录
|
||||
logdir=./log
|
||||
# Log configuration file
|
||||
# 日志配置文件
|
||||
logconfname=log.cf
|
||||
# ?GM PASSWORD(GM密码)
|
||||
chatmagicpasswd=gm
|
||||
#ifdef _STORECHAR
|
||||
# { "storechar", config.storechar, sizeof( config.storechar),NULL,0},
|
||||
#endif
|
||||
|
||||
# (是否检查GM使用权限0为不检查,1为检查)
|
||||
chatmagiccdkeycheck=1
|
||||
|
||||
# NPC下最大使用文件总数
|
||||
filesearchnum=10000
|
||||
|
||||
# 注册NPC_fuction类型文件最大数
|
||||
npctemplatenum=256
|
||||
|
||||
# NPC最大数
|
||||
npccreatenum=10000
|
||||
|
||||
# Walk Send Interval
|
||||
# 走路间隔 (在GMSV没开启MUTLITHREAD模式时 无作用)
|
||||
walkinterval=10
|
||||
|
||||
# ?CA send interval (ms)
|
||||
# CleanAll间隔 (在GMSV没开启MUTLITHREAD模式时 无作用)
|
||||
CAinterval=10
|
||||
|
||||
# ?CD send interval (ms)
|
||||
# CleanDest间隔 (在GMSV没开启MUTLITHREAD模式时 无作用)
|
||||
CDinterval=10
|
||||
|
||||
# Character data save interval(数据存储间隔?)
|
||||
CharSaveinterval=900
|
||||
|
||||
# 执行一次 netloop_faster 所消耗时间
|
||||
Onelooptime=10
|
||||
|
||||
# How long a pet will be deleted (30 min?)
|
||||
# (宠物消失时间)
|
||||
Petdeletetime=60
|
||||
|
||||
# How long a item will be deleted (5 minutes?)
|
||||
# (物品消失时间)
|
||||
Itemdeletetime=60
|
||||
|
||||
|
||||
#删除石币时间间隔
|
||||
Golddeletetime=30
|
||||
|
||||
# 名片相关的设置 好象是发送名片最大限制 没仔细看过
|
||||
addressbookoffmesgnum=500
|
||||
|
||||
# 接口频率调整 值越大频率越慢越节省资源
|
||||
protocolreadfrequency=3000
|
||||
|
||||
# 每个连接错误上限 超过这个上限的连接将被关闭
|
||||
allowerrornum=100
|
||||
|
||||
# 每个连接错误上限 超过这个上限的连接将被关闭
|
||||
allowerrornum2=1
|
||||
|
||||
# ?(log时间?)
|
||||
loghour=0
|
||||
|
||||
# ?(战斗错误消息?)
|
||||
battledebugmsg=0
|
||||
|
||||
# //ttom add because the second had
|
||||
# 客户端验证码 大陆无效
|
||||
encodekey=1
|
||||
# 往writebuffer缓冲区写数据大小 单位字节
|
||||
acwritesize=1048576
|
||||
# 缓冲区大小
|
||||
acwbsize=1048576
|
||||
# 如果发现玩家使用非法手段 比如说改封包跳NPC判断 或者点数异常 则关进监狱
|
||||
erruser_down=1
|
||||
# //ttom end
|
||||
|
||||
====================================================================
|
||||
#以下可省略
|
||||
#ifdef _AUCTIONEER
|
||||
# { "auctiondir" , config.auctiondir, sizeof(config.auctiondir),NULL,0},
|
||||
#endif
|
||||
#ifdef _BLACK_MARKET
|
||||
# { "blackmarketfile", config.blackmarketfile, sizeof(config.blackmarketfile), NULL, 0},
|
||||
#endif
|
||||
#ifdef _M_SERVER
|
||||
# { "msname", config.msname,sizeof(config.msname) ,NULL , 0},
|
||||
# { "msport", NULL ,0 , (void*)&config.msport ,SHORT},
|
||||
#endif
|
||||
#ifdef _NPCSERVER_NEW
|
||||
# { "npcaddress", config.nsaddress, sizeof(config.nsaddress) ,NULL , 0},
|
||||
# { "nsport", NULL, 0 , (void*)&config.nsport ,SHORT},
|
||||
#endif
|
||||
|
||||
====================================================================
|
||||
|
||||
#人物职业技能
|
||||
profession=./data/profession.txt
|
||||
#endif
|
||||
|
||||
#退出团队的道具
|
||||
itemquitparty=./data/itemquitparty.txt
|
||||
#endif
|
||||
|
||||
#ifdef _MUSEUM
|
||||
# { "museum", NULL , 0 , (void*)&config.museum , INT},
|
||||
#endif
|
||||
|
||||
#LNS配置
|
||||
LUAFILE=./data/lua/init.lua
|
||||
|
||||
#只有新手可穿戴装备
|
||||
ROOKIEITEM=20627
|
||||
ROOKIEITEM2=22161
|
||||
ROOKIEITEM3=-1
|
||||
ROOKIEITEM4=-1
|
||||
ROOKIEITEM5=-1
|
||||
|
||||
#经验共享开关 0关闭共享 1开启共享
|
||||
EXPSHARE=1
|
||||
|
||||
#禁止转生携带道具
|
||||
NOTRANSITEM=18543
|
||||
|
||||
#最高合成道具等级(itemset6中的装备等级 10级为60 20级为110)
|
||||
MAXMERGELEVEL=200
|
19
sql.cf
Normal file
19
sql.cf
Normal file
@ -0,0 +1,19 @@
|
||||
##############################
|
||||
#MYSQL基本配置
|
||||
#ifdef _SASQL
|
||||
#sql服务器IP
|
||||
sql_IP 127.0.0.1
|
||||
#sql服务器端口
|
||||
sql_Port 3306
|
||||
#sql服务器账号
|
||||
sql_ID root
|
||||
#sql服务器密码
|
||||
sql_PS 123456
|
||||
#sql数据库名
|
||||
sql_DataBase CSA
|
||||
#sql人物信息表名
|
||||
sql_Table CSAlogin
|
||||
#sql用户名字段
|
||||
sql_NAME Name
|
||||
#sql密码字段名
|
||||
sql_PASS PassWord
|
21
客户端lua文件/list.lua
Normal file
21
客户端lua文件/list.lua
Normal file
@ -0,0 +1,21 @@
|
||||
function data()
|
||||
grouplist = {{1, 2, 0, "测试线路"}
|
||||
}
|
||||
|
||||
serlist = {
|
||||
{"192.168.1.2","19065","电信线路"},
|
||||
{"192.168.1.2","19065","网通线路"},
|
||||
}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
ServerList.SetGroupMaxNum(table.getn(grouplist))
|
||||
for i = 1, table.getn(grouplist) do
|
||||
ServerList.SetGroupList(i - 1, grouplist[i][1], grouplist[i][2], grouplist[i][3], grouplist[i][4])
|
||||
end
|
||||
for i = 1, table.getn(serlist) do
|
||||
ServerList.SetServerList(i - 1, serlist[i][1], serlist[i][2], serlist[i][3])
|
||||
end
|
||||
end
|
||||
|
32
客户端lua文件/map/battlemap.lua
Normal file
32
客户端lua文件/map/battlemap.lua
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
|
||||
function FreeGetBattleMap(floor)
|
||||
math.randomseed(os.time());
|
||||
local ret=0;
|
||||
for i=1,table.getn(BattleMapList) do
|
||||
if floor >= BattleMapList[i][1][1] and floor <= BattleMapList[i][1][2] then
|
||||
local index = math.mod(math.random(9999,999999),table.getn(BattleMapList[i][2]));
|
||||
if index == 0 then
|
||||
index = table.getn(BattleMapList[i][2]);
|
||||
end
|
||||
ret = BattleMapList[i][2][index];
|
||||
break;
|
||||
end
|
||||
end
|
||||
return ret;
|
||||
end
|
||||
|
||||
function main()
|
||||
BattleMapList = {
|
||||
{{60403,60403},{59301}},
|
||||
{{33001,33020},{59314}},
|
||||
{{33021,33040},{59315}},
|
||||
{{33041,33060},{59316}},
|
||||
{{33060,33080},{59317}},
|
||||
{{33081,33101},{59318}},
|
||||
{{35001,35016},{59300}},
|
||||
};--{羲宎華芞瘍,賦旰華芞瘍},{呴儂桵須華芞1,呴儂桵須華芞2...呴儂桵須華芞n}
|
||||
end
|
||||
|
||||
function data()
|
||||
end
|
7
客户端lua文件/map/shiqi.la.url
Normal file
7
客户端lua文件/map/shiqi.la.url
Normal file
@ -0,0 +1,7 @@
|
||||
[InternetShortcut]
|
||||
URL=http://www.shiqi.la/
|
||||
Modified=200AD33B9EC9C60166
|
||||
HotKey=0
|
||||
IDList=
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,2
|
57
客户端lua文件/title.lua
Normal file
57
客户端lua文件/title.lua
Normal file
@ -0,0 +1,57 @@
|
||||
function GetTitleStr(id)
|
||||
local num = table.getn(titleinfo);
|
||||
if id >=1 and id <= num then
|
||||
return titleinfo[id]
|
||||
else
|
||||
return "";
|
||||
end
|
||||
end
|
||||
|
||||
function data()
|
||||
titleinfo = {
|
||||
"[style c=9]大地的精灵[/style]",
|
||||
"[style c=1]水的精灵[/style]",
|
||||
"[style c=6]火炎精灵[/style]",
|
||||
"[style c=4]疾风精灵[/style]",
|
||||
"[style c=3]奥萝拉的精灵[/style]",
|
||||
"[style c=1]彩[/style][style c=2]虹[/style][style c=5]的[/style][style c=3]精[/style][style c=4]灵[/style]",
|
||||
"[style c=7]初心使者[/style]",
|
||||
"[style c=7]无名的旅人[/style]",
|
||||
"[style c=8]路边的落叶[/style]",
|
||||
"[style c=9]水面的小草[/style]",
|
||||
"[style c=10]呢喃的歌声[/style]",
|
||||
"[style c=11]地上的月影[/style]",
|
||||
"[style c=12]奔跑的春风[/style]",
|
||||
"[style c=13]苍穹的风云[/style]",
|
||||
"[style c=14]摇曳的金星[/style]",
|
||||
"[style c=15]欢喜的慈雨[/style]",
|
||||
"[style c=16]蕴含的太阳[/style]",
|
||||
"[style c=17]敬畏的寂静[/style]",
|
||||
"[style c=3]精靈封印者[/style]",
|
||||
"[style c=2]五转轮回[/style]",
|
||||
"[style c=4]盗贼讨伐者[/style]",
|
||||
"[style c=6]盗贼帮众[/style]",
|
||||
"[style c=25]夺宝奇兵[/style]",
|
||||
"[style c=10]勇闯夺宝岛[/style]",
|
||||
"[style c=4]合成达人[/style]",
|
||||
"[style c=6]合成高手[/style]",
|
||||
"[style c=4]练宠达人[/style]",
|
||||
"[style c=6]练宠高手[/style]",
|
||||
"[style c=4]任务达人[/style]",
|
||||
"[style c=6]任务高手[/style]",
|
||||
"[style c=0]初犊战士[/style]",
|
||||
"[style c=8]圣灵勇士[/style]",
|
||||
"[style c=21]玛丽那丝英雄[/style]",
|
||||
"[style c=23]萨姆吉尔英雄[/style]",
|
||||
"[style c=18]萨伊那斯使者[/style]",
|
||||
"[style c=15]尼斯大陆英雄[/style]"
|
||||
}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
132
客户端lua文件/win/1020.lua
Normal file
132
客户端lua文件/win/1020.lua
Normal file
@ -0,0 +1,132 @@
|
||||
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function lua_string_split(str, split_char)
|
||||
local sub_str_tab = {};
|
||||
while (true) do
|
||||
local pos = string.find(str, split_char);
|
||||
if (not pos) then
|
||||
sub_str_tab[#sub_str_tab + 1] = str;
|
||||
break;
|
||||
end
|
||||
local sub_str = string.sub(str, 1, pos - 1);
|
||||
sub_str_tab[#sub_str_tab + 1] = sub_str;
|
||||
str = string.sub(str, pos + 1, #str);
|
||||
end
|
||||
|
||||
return sub_str_tab;
|
||||
end
|
||||
|
||||
function WindowInit(data)
|
||||
winW = 8
|
||||
winH = 6
|
||||
winX = (800 - winW*64)/2
|
||||
winY = (600 - winH*48)/2
|
||||
msgWNLen = (winW*64-48)/7
|
||||
totalMsgLine = (winH*48-56)/20;
|
||||
win.InitWindow(winW, winH, msgWNLen, data)
|
||||
nowtime = os.time()
|
||||
if addr ~= 0 then
|
||||
sa.DeathAction(addr)
|
||||
addr = 0
|
||||
end
|
||||
btnCnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
btnCnt = btnCnt + 1
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function CreateWinType()
|
||||
if addr == 0 then
|
||||
-- addr = sa.MakeWindowDisp(winX,winY,winW, winH, 0, 1)
|
||||
addr = sa.MakeWindowDisp(60,100,winW, winH, 0, 1)
|
||||
end
|
||||
|
||||
sa.PlaySe(202, 320, 240)
|
||||
return addr
|
||||
end
|
||||
|
||||
function ServerWindowType()
|
||||
if string.len(win.getMessageData(0)) > 0 then
|
||||
sa.StockFontBuffer(winX + winW*64 / 2 - string.len(win.getMessageData(0)) * 4,winY + 20, 1, 4, "『" .. win.getMessageData(0) .. "』", 0)
|
||||
end
|
||||
sa.StockFontBuffer(winX + 20,winY + 40, 1, 10, " “庄 园” “家族名字” “占据时间” “占据时长”", 0)
|
||||
for i = 1, 10 do
|
||||
if string.len(win.getMessageData(i)) > 0 then
|
||||
str = lua_string_split(win.getMessageData(i), "|")
|
||||
|
||||
sa.StockFontBuffer(winX + 32,winY + 40 + i * 20, 1, 11, fmpoint[i], 0)
|
||||
|
||||
local fmnamelen = string.len(str[1])-1
|
||||
if fmnamelen > 0 then
|
||||
sa.StockFontBuffer(winX + 185 - fmnamelen * 4,winY + 40 + i * 20, 1, 2, str[1], 0)
|
||||
|
||||
local hadtime = tonumber(str[2])
|
||||
if hadtime > 0 then
|
||||
sa.StockFontBuffer(winX + 263,winY + 40 + i * 20, 1, 1, os.date("%Y年%m月%d日", hadtime), 0)
|
||||
end
|
||||
local hadday = tonumber(str[3]) - hadtime
|
||||
if hadday > 0 then
|
||||
local strhadday = string.format("%d天%02d小时", getIntPart(hadday/(3600*24)), getIntPart(hadday%(3600*24)/(3600)))
|
||||
local strhaddaylen = string.len(strhadday) - 1
|
||||
sa.StockFontBuffer(winX + 442 - strhaddaylen * 4,winY + 40 + i * 20, 1, 0, strhadday, 0)
|
||||
end
|
||||
else
|
||||
sa.StockFontBuffer(winX + 185 - 24,winY + 40 + i * 20, 1, 7, "未占据 未占据 未占据", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
if btnCnt > 0 then
|
||||
local cnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
cnt = cnt + 1
|
||||
local id = sa.StockFontBuffer(winX + cnt * winW*64 / (btnCnt + 1) - 27,winY + winH*48 - 25,1, 4, button[i], 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == id then
|
||||
lssproto.windows(win.getIndexWN(), win.getIdWN(), sa.LeftShift(1, i-1), "")
|
||||
win.CloseWindow()
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if win.DelWindow() == 1 then
|
||||
sa.DeathAction(addr)
|
||||
win.CloseFlg()
|
||||
addr = 0
|
||||
win.CloseWindow()
|
||||
end
|
||||
return addr
|
||||
end
|
||||
|
||||
function data()
|
||||
button = {" 确定 ", " 取消 ", " 确定 ", " 取消 ", "上一页", "下一页"}
|
||||
btnCnt = 0
|
||||
addr = 0
|
||||
winW = 0
|
||||
winH = 0
|
||||
winX = 0
|
||||
winY = 0
|
||||
fmpoint = {"萨姆吉尔", "玛丽娜丝", "加 加", "卡鲁它那", "伊 甸 园", "塔 尔 塔", "尼 克 斯", "弗 烈 顿", "亚 依 欧", "瑞尔亚斯"}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
139
客户端lua文件/win/1021.lua
Normal file
139
客户端lua文件/win/1021.lua
Normal file
@ -0,0 +1,139 @@
|
||||
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function lua_string_split(str, split_char)
|
||||
local sub_str_tab = {};
|
||||
while (true) do
|
||||
local pos = string.find(str, split_char);
|
||||
if (not pos) then
|
||||
sub_str_tab[#sub_str_tab + 1] = str;
|
||||
break;
|
||||
end
|
||||
local sub_str = string.sub(str, 1, pos - 1);
|
||||
sub_str_tab[#sub_str_tab + 1] = sub_str;
|
||||
str = string.sub(str, pos + 1, #str);
|
||||
end
|
||||
|
||||
return sub_str_tab;
|
||||
end
|
||||
|
||||
function WindowInit(data)
|
||||
winW = 9
|
||||
winH = 6
|
||||
winX = (800 - winW*64)/2
|
||||
winY = (600 - winH*48)/2
|
||||
msgWNLen = (winW*64-48)/7
|
||||
totalMsgLine = (winH*48-56)/20;
|
||||
win.InitWindow(winW, winH, msgWNLen, data)
|
||||
nowtime = os.time()
|
||||
if addr ~= 0 then
|
||||
sa.DeathAction(addr)
|
||||
addr = 0
|
||||
end
|
||||
btnCnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
btnCnt = btnCnt + 1
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function CreateWinType()
|
||||
if addr == 0 then
|
||||
-- addr = sa.MakeWindowDisp(winX,winY,winW, winH, 0, 1)
|
||||
addr = sa.MakeWindowDisp(45,100,winW, winH, 0, 1)
|
||||
end
|
||||
|
||||
sa.PlaySe(202, 320, 240)
|
||||
return addr
|
||||
end
|
||||
|
||||
function ServerWindowType()
|
||||
if string.len(win.getMessageData(0)) > 0 then
|
||||
sa.StockFontBuffer(winX + winW*64 / 2 - string.len(win.getMessageData(0)) * 4,winY + 20, 1, 4, "『" .. win.getMessageData(0) .. "』", 0)
|
||||
end
|
||||
sa.StockFontBuffer(winX + 20,winY + 40, 1, 10, "“庄 园” “守庄家族” “下书家族” “族战时间” “族战状态”", 0)
|
||||
for i = 1, 10 do
|
||||
if string.len(win.getMessageData(i)) > 0 then
|
||||
str = lua_string_split(win.getMessageData(i), "|")
|
||||
|
||||
sa.StockFontBuffer(winX + 32,winY + 40 + i * 20, 1, 11, fmpoint[i], 0)
|
||||
|
||||
if tonumber(str[1]) == 7 or tonumber(str[1]) == 8 or tonumber(str[1]) == 10 then
|
||||
local fmnamelen = string.len(str[4])-1
|
||||
if fmnamelen > 0 then
|
||||
sa.StockFontBuffer(winX + 160 - fmnamelen * 4,winY + 40 + i * 20, 1, 2, str[4], 0)
|
||||
end
|
||||
local fmnamelen = string.len(str[3])-1
|
||||
if fmnamelen > 0 then
|
||||
sa.StockFontBuffer(winX + 295 - fmnamelen * 4,winY + 40 + i * 20, 1, 2, str[3], 0)
|
||||
end
|
||||
sa.StockFontBuffer(winX + 365,winY + 40 + i * 20, 1, 1, os.date("%m月%d日 %H:%M", tonumber(str[2])), 0)
|
||||
sa.StockFontBuffer(winX + 480,winY + 40 + i * 20, 1, 0, string.format("%3sVS%s", str[5], str[5]), 0)
|
||||
elseif tonumber(str[1]) == 9 then
|
||||
sa.StockFontBuffer(winX + 160 - 6,winY + 40 + i * 20, 1, 2, "无", 0)
|
||||
sa.StockFontBuffer(winX + 295 - 6,winY + 40 + i * 20, 1, 2, "无", 0)
|
||||
sa.StockFontBuffer(winX + 365,winY + 40 + i * 20, 1, 1, os.date("%m月%d日 %H:%M", tonumber(str[2])), 0)
|
||||
sa.StockFontBuffer(winX + 480,winY + 40 + i * 20, 1, 0, string.format("截止休战期", str[5], str[5]), 0)
|
||||
elseif tonumber(str[1]) == 15 then
|
||||
sa.StockFontBuffer(winX + 160 - 6,winY + 40 + i * 20, 1, 2, "无", 0)
|
||||
sa.StockFontBuffer(winX + 295 - 6,winY + 40 + i * 20, 1, 2, "无", 0)
|
||||
sa.StockFontBuffer(winX + 365,winY + 40 + i * 20, 1, 1, os.date("%m月%d日 %H:%M", tonumber(str[2])), 0)
|
||||
sa.StockFontBuffer(winX + 480,winY + 40 + i * 20, 1, 0, string.format("截止下书期", str[5], str[5]), 0)
|
||||
else
|
||||
sa.StockFontBuffer(winX + 124,winY + 40 + i * 20, 1, 7, " 无挑战排程 无挑战排程 无挑战排程 无挑战排程", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
if btnCnt > 0 then
|
||||
local cnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
cnt = cnt + 1
|
||||
local id = sa.StockFontBuffer(winX + cnt * winW*64 / (btnCnt + 1) - 12,winY + winH*48 - 25,1, 4, button[i], 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == id then
|
||||
lssproto.windows(win.getIndexWN(), win.getIdWN(), sa.LeftShift(1, i-1), "")
|
||||
win.CloseWindow()
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if win.DelWindow() == 1 then
|
||||
sa.DeathAction(addr)
|
||||
win.CloseFlg()
|
||||
addr = 0
|
||||
win.CloseWindow()
|
||||
end
|
||||
return addr
|
||||
end
|
||||
|
||||
function data()
|
||||
button = {" 确定 ", " 取消 ", " 确定 ", " 取消 ", "上一页", "下一页"}
|
||||
btnCnt = 0
|
||||
addr = 0
|
||||
winW = 0
|
||||
winH = 0
|
||||
winX = 0
|
||||
winY = 0
|
||||
fmpoint = {"萨姆吉尔", "玛丽娜丝", "加 加", "卡鲁它那", "伊 甸 园", "塔 尔 塔", "尼 克 斯", "弗 烈 顿", "亚 依 欧", "瑞尔亚斯"}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
129
客户端lua文件/win/1022.lua
Normal file
129
客户端lua文件/win/1022.lua
Normal file
@ -0,0 +1,129 @@
|
||||
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function lua_string_split(str, split_char)
|
||||
local sub_str_tab = {};
|
||||
while (true) do
|
||||
local pos = string.find(str, split_char);
|
||||
if (not pos) then
|
||||
sub_str_tab[#sub_str_tab + 1] = str;
|
||||
break;
|
||||
end
|
||||
local sub_str = string.sub(str, 1, pos - 1);
|
||||
sub_str_tab[#sub_str_tab + 1] = sub_str;
|
||||
str = string.sub(str, pos + 1, #str);
|
||||
end
|
||||
|
||||
return sub_str_tab;
|
||||
end
|
||||
|
||||
function WindowInit(data)
|
||||
winW = 9
|
||||
winH = 9
|
||||
winX = (800 - winW*64)/2
|
||||
winY = (600 - winH*48)/2
|
||||
msgWNLen = (winW*64-48)/7
|
||||
totalMsgLine = (winH*48-56)/20;
|
||||
win.InitWindow(winW, winH, msgWNLen, data)
|
||||
nowtime = os.time()
|
||||
if addr ~= 0 then
|
||||
sa.DeathAction(addr)
|
||||
addr = 0
|
||||
end
|
||||
btnCnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
btnCnt = btnCnt + 1
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function CreateWinType()
|
||||
if addr == 0 then
|
||||
-- addr = sa.MakeWindowDisp(winX,winY,winW, winH, 0, 1)
|
||||
addr = sa.MakeWindowDisp(50,41,winW, winH, 0, 1)
|
||||
|
||||
end
|
||||
sa.PlaySe(202, 320, 240)
|
||||
return addr
|
||||
end
|
||||
|
||||
function ServerWindowType()
|
||||
if string.len(win.getMessageData(0)) > 0 then
|
||||
sa.StockFontBuffer(winX + winW*64 / 2 - string.len(win.getMessageData(0)) * 4,winY + 20, 1, 4, "『" .. win.getMessageData(0) .. "』", 0)
|
||||
end
|
||||
sa.StockFontBuffer(winX + winW*64 / 2 - 64,winY + 230, 0, 1, "上面一排VS下面一排", 0)
|
||||
for i = 1, 10 do
|
||||
if string.len(win.getMessageData(i)) > 0 then
|
||||
str = lua_string_split(win.getMessageData(i), "|")
|
||||
local metamo = tonumber(str[1])
|
||||
if metamo > 0 then
|
||||
local fmnamelen = string.len(str[2])-1
|
||||
if fmnamelen > 0 then
|
||||
sa.StockFontBuffer(winX - 45 + xy[i] - fmnamelen * 4,winY + 200 + (i % 2) * 180, 0, 5, str[2], 0)
|
||||
end
|
||||
if pklist[i] == -1 then
|
||||
pklist[i] = sa.MakeAnimDisp(winX - 40 + xy[i],winY + 150 + (i % 2) * 200,tonumber(str[1]), 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if btnCnt > 0 then
|
||||
local cnt = 0
|
||||
for i = 1, 6 do
|
||||
if sa.SaD1AndD2(win.getButtonTypeWN(),sa.LeftShift(1, i-1)) > 0 then
|
||||
cnt = cnt + 1
|
||||
local id = sa.StockFontBuffer(winX + cnt * winW*64 / (btnCnt + 1) - 12,winY + winH*48 - 25,1, 4, button[i], 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == id then
|
||||
lssproto.windows(win.getIndexWN(), win.getIdWN(), sa.LeftShift(1, i-1), "")
|
||||
win.CloseWindow()
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if win.DelWindow() == 1 then
|
||||
for i = 1, 10 do
|
||||
if pklist[i] ~= -1 then
|
||||
sa.DeathAction(pklist[i])
|
||||
pklist[i] = -1
|
||||
end
|
||||
end
|
||||
sa.DeathAction(addr)
|
||||
win.CloseFlg()
|
||||
addr = 0
|
||||
win.CloseWindow()
|
||||
end
|
||||
return addr
|
||||
end
|
||||
|
||||
function data()
|
||||
button = {"进入观战", "取消观战", "进入观战", "取消观战", " 上一页 ", " 下一页 "}
|
||||
btnCnt = 0
|
||||
addr = 0
|
||||
winW = 0
|
||||
winH = 0
|
||||
winX = 0
|
||||
winY = 0
|
||||
xy = {330, 330, 220, 220, 440, 440, 110, 110, 550, 550}
|
||||
pklist = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
199
客户端lua文件/win/1023.lua
Normal file
199
客户端lua文件/win/1023.lua
Normal file
@ -0,0 +1,199 @@
|
||||
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function lua_string_split(str, split_char)
|
||||
local sub_str_tab = {};
|
||||
while (true) do
|
||||
local pos = string.find(str, split_char);
|
||||
if (not pos) then
|
||||
sub_str_tab[#sub_str_tab + 1] = str;
|
||||
break;
|
||||
end
|
||||
local sub_str = string.sub(str, 1, pos - 1);
|
||||
sub_str_tab[#sub_str_tab + 1] = sub_str;
|
||||
str = string.sub(str, pos + 1, #str);
|
||||
end
|
||||
|
||||
return sub_str_tab;
|
||||
end
|
||||
|
||||
function WindowInit(data)
|
||||
winW = 8
|
||||
winH = 7
|
||||
winX = (800 - winW*64)/4
|
||||
winY = (600 - winH*48)/4
|
||||
if addr ~= 0 then
|
||||
sa.DeathAction(addr)
|
||||
addr = 0
|
||||
end
|
||||
if petaddr ~= 0 then
|
||||
sa.DeathAction(petaddr);
|
||||
petaddr=0;
|
||||
end
|
||||
local data = lua_string_split(data,"|");
|
||||
RideNum = tonumber(data[1]);
|
||||
for i=1,RideNum do
|
||||
RideData["宠物名"][i] = data[2+(i-1)*3];
|
||||
if data[3+(i-1)*3] == "1" then
|
||||
RideData["许可"][i] = "√";
|
||||
else
|
||||
RideData["许可"][i] = "×";
|
||||
end
|
||||
RideData["造型"][i] = tonumber(data[4+(i-1)*3]);
|
||||
end
|
||||
TotalPages = 1;
|
||||
if math.mod(RideNum,Row) > 0 then
|
||||
if RideNum > Row then
|
||||
TotalPages = getIntPart(RideNum/Row) + 1;
|
||||
end
|
||||
else
|
||||
if RideNum > Row then
|
||||
TotalPages = getIntPart(RideNum/Row);
|
||||
end
|
||||
end
|
||||
Pages=0;
|
||||
end
|
||||
|
||||
function CreateWinType()
|
||||
if addr == 0 then
|
||||
addr = sa.MakeWindowDisp(winX,winY,winW, winH, 0, 1)
|
||||
end
|
||||
sa.PlaySe(202, 320, 240)
|
||||
return addr;
|
||||
end
|
||||
|
||||
|
||||
function ServerWindowType()
|
||||
local str = "『骑宠预览查询』"
|
||||
sa.StockFontBuffer(winX*2+256-sa.getTextLength(str)/2,winY*2+20, 1, 4, str, 0)
|
||||
str = string.format("“宠物名字” “骑乘许可” “宠物造型”");
|
||||
sa.StockFontBuffer(winX*2+256-sa.getTextLength(str)/2,winY*2+44, 1, 5, str, 0)
|
||||
local lstart,lend,butid;
|
||||
lstart = Pages * Row +1;
|
||||
if RideNum > Pages * Row + 11 then
|
||||
lend = Pages * Row + Row;
|
||||
else
|
||||
lend = Pages * Row + Row + RideNum - (Pages+1) * Row;
|
||||
end
|
||||
local index=1;
|
||||
for i =lstart,lend do
|
||||
str = " ";
|
||||
butid = sa.StockFontBuffer(winX*2+70,winY*2+44+index*24, 1, 5, str, 2);
|
||||
sa.StockFontBuffer(winX*2+125-sa.getTextLength(RideData["宠物名"][i])/2,winY*2+44+index*24, 1, 5, RideData["宠物名"][i], 0);
|
||||
sa.StockFontBuffer(winX*2+250,winY*2+44+index*24, 1, 5, RideData["许可"][i], 0);
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
if petaddr ~= 0 then
|
||||
sa.DeathAction(petaddr);
|
||||
end
|
||||
petaddr = sa.MakeAnimDisp(winX +460, winY + 260,RideData["造型"][i], 0);
|
||||
end
|
||||
end
|
||||
index=index+1;
|
||||
end
|
||||
|
||||
if TotalPages > 1 then
|
||||
if Pages == 0 then
|
||||
str = "下一页"
|
||||
butid = sa.StockFontBuffer(winX*2+180,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
Pages = Pages+1;
|
||||
end
|
||||
end
|
||||
str = "关 闭"
|
||||
butid = sa.StockFontBuffer(winX*2+270,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
win.CloseWindow();
|
||||
end
|
||||
end
|
||||
else
|
||||
if Pages == (TotalPages-1) then
|
||||
str = "上一页"
|
||||
butid = sa.StockFontBuffer(winX*2+180,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
Pages = Pages-1;
|
||||
end
|
||||
end
|
||||
str = "关 闭"
|
||||
butid = sa.StockFontBuffer(winX*2+270,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
win.CloseWindow();
|
||||
end
|
||||
end
|
||||
else
|
||||
str = "上一页"
|
||||
butid = sa.StockFontBuffer(winX*2+170,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
Pages = Pages-1;
|
||||
end
|
||||
end
|
||||
str = "下一页"
|
||||
butid = sa.StockFontBuffer(winX*2+235,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
Pages = Pages+1;
|
||||
end
|
||||
end
|
||||
str = "关 闭"
|
||||
butid = sa.StockFontBuffer(winX*2+300,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
win.CloseWindow();
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
str = "关 闭"
|
||||
butid = sa.StockFontBuffer(winX*2+256-sa.getTextLength(str)/2,winY*2+44+(Row+1)*24, 1, 4, str, 2)
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if win.getHitFontNo() == butid then
|
||||
win.CloseWindow();
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if win.DelWindow() == 1 then
|
||||
sa.DeathAction(petaddr);
|
||||
sa.DeathAction(addr)
|
||||
win.CloseFlg()
|
||||
addr = 0;
|
||||
petaddr=0;
|
||||
win.CloseWindow()
|
||||
end
|
||||
return addr;
|
||||
end
|
||||
|
||||
|
||||
function data()
|
||||
Row=9;
|
||||
TotalPages = 0;
|
||||
petaddr=0;
|
||||
addr = 0;
|
||||
RideData = {};
|
||||
RideNum=0;
|
||||
RideData["宠物名"] = {};
|
||||
RideData["许可"] = {};
|
||||
RideData["造型"] = {};
|
||||
Pages = 0;
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
217
客户端lua文件/win/1024.lua
Normal file
217
客户端lua文件/win/1024.lua
Normal file
@ -0,0 +1,217 @@
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function lua_string_split(str, split_char)
|
||||
local sub_str_tab = {};
|
||||
while (true) do
|
||||
local pos = string.find(str, split_char);
|
||||
if (not pos) then
|
||||
sub_str_tab[#sub_str_tab + 1] = str;
|
||||
break;
|
||||
end
|
||||
local sub_str = string.sub(str, 1, pos - 1);
|
||||
sub_str_tab[#sub_str_tab + 1] = sub_str;
|
||||
str = string.sub(str, pos + 1, #str);
|
||||
end
|
||||
|
||||
return sub_str_tab;
|
||||
end
|
||||
|
||||
function WindowInit(strdata)
|
||||
winW = 6
|
||||
winH = 4
|
||||
winX = (800 - winW*64)/4
|
||||
winY = (600 - winH*48)/4
|
||||
if addr ~= 0 then
|
||||
sa.DeathAction(addr)
|
||||
addr = 0
|
||||
end
|
||||
data()
|
||||
vippoint = tonumber(strdata);
|
||||
win.InitStrBuffer(winX + 180,winY + 180,6,0,1);
|
||||
|
||||
end
|
||||
|
||||
function CreateWinType()
|
||||
if addr == 0 then
|
||||
addr = sa.MakeWindowDisp(winX,winY,winW, winH, 0, 1)
|
||||
end
|
||||
sa.PlaySe(202, 320, 240)
|
||||
return addr;
|
||||
end
|
||||
|
||||
function ServerWindowType()
|
||||
win.SetInputMsgNum()
|
||||
|
||||
sa.StockFontBuffer(winX + 230,winY + 80, 1, 10, "【发红包】", 0)
|
||||
local id ;
|
||||
local color={};
|
||||
|
||||
local posy = 0
|
||||
|
||||
sa.StockFontBuffer(winX + 100,winY + 100 + posy, 1, 0, "当前金币:", 0)
|
||||
|
||||
sa.StockFontBuffer(winX + 180,winY + 100 + posy, 1, 0,"".. vippoint, 0);
|
||||
|
||||
sa.StockFontBuffer(winX + 100,winY + 120 + posy, 1, 0, "对像模式:", 0);
|
||||
|
||||
|
||||
if familymode == 0 then
|
||||
color[1]=1;
|
||||
color[2]=0;
|
||||
color[3]=0;
|
||||
elseif familymode == 1 then
|
||||
color[1]=0;
|
||||
color[2]=1;
|
||||
color[3]=0;
|
||||
elseif familymode == 2 then
|
||||
color[1]=0;
|
||||
color[2]=0;
|
||||
color[3]=1;
|
||||
end
|
||||
|
||||
id = sa.StockFontBuffer(winX + 180,winY + 120 + posy, 1, color[1], "家族", 2);
|
||||
|
||||
if win.getHitFontNo() == id then
|
||||
win.ShowBottomLineString(0,"只有家族成员方可领取!");
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
familymode=0;
|
||||
end
|
||||
end
|
||||
id = sa.StockFontBuffer(winX + 240,winY + 120 + posy, 1, color[2], "全服", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
win.ShowBottomLineString(0,"全服玩家都可领取!");
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
familymode=1;
|
||||
end
|
||||
end
|
||||
|
||||
sa.StockFontBuffer(winX + 100,winY + 140 + posy, 1, 0, "领取方式:", 0);
|
||||
|
||||
if getmode == 0 then
|
||||
color[1]=1;
|
||||
color[2]=0;
|
||||
else
|
||||
color[1]=0;
|
||||
color[2]=1;
|
||||
end
|
||||
|
||||
id = sa.StockFontBuffer(winX + 180,winY + 140 + posy, 1, color[1], "拼手气", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
win.ShowBottomLineString(0,"玩家领取的红包纯拼手气!");
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
getmode=0;
|
||||
end
|
||||
end
|
||||
id = sa.StockFontBuffer(winX + 240,winY + 140 + posy, 1, color[2], "平均", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
win.ShowBottomLineString(0,"玩家领取的红包每个都一样!");
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
getmode=1;
|
||||
end
|
||||
end
|
||||
|
||||
sa.StockFontBuffer(winX + 100,winY + 160 + posy, 1, 0, "红包个数:", 0);
|
||||
|
||||
id = sa.StockFontBuffer(winX + 180,winY + 160 + posy, 1, 0, " ", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
win.InitStrBuffer(winX + 180,winY + 160,2,0,1);
|
||||
win.GetKeyInputFocus();
|
||||
Focus=1;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if Focus == -1 then
|
||||
sa.StockFontBuffer(winX + 180,winY + 160 + posy, 1, 0,rednum , 2);
|
||||
sa.StockFontBuffer(winX + 180,winY + 180 + posy, 1, 0,redValue, 0);
|
||||
elseif Focus == 1 then
|
||||
sa.StockFontBuffer(winX + 180,winY + 180 + posy, 1, 0,redValue, 0);
|
||||
if string.len(win.GetInputMsg()) > 0 then
|
||||
rednum = tonumber(win.GetInputMsg());
|
||||
end
|
||||
elseif Focus == 2 then
|
||||
if string.len(win.GetInputMsg()) > 0 then
|
||||
redValue = tonumber(win.GetInputMsg());
|
||||
end
|
||||
sa.StockFontBuffer(winX + 180,winY + 160 + posy, 1, 0,rednum , 2);
|
||||
end
|
||||
|
||||
|
||||
sa.StockFontBuffer(winX + 100,winY + 180 + posy, 1, 0, "总 金 额:", 0);
|
||||
id = sa.StockFontBuffer(winX + 180,winY + 180 + posy, 1, 0, " ", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
win.InitStrBuffer(winX + 180,winY + 180,6,0,1);
|
||||
win.GetKeyInputFocus();
|
||||
Focus=2;
|
||||
end
|
||||
end
|
||||
if getmode==0 then
|
||||
sa.StockFontBuffer(winX + 300,winY + 180 + posy, 1, 4, "当前为拼手气红包", 0);
|
||||
else
|
||||
sa.StockFontBuffer(winX + 300,winY + 180 + posy, 1, 4, "当前为平均红包", 0);
|
||||
end
|
||||
|
||||
id = sa.StockFontBuffer( winX + 180 , winY + 210 + posy, 1, 4, "塞进红包", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
if rednum > 0 then
|
||||
if redValue > 0 and redValue >= rednum * 10 then
|
||||
if redValue <= vippoint then
|
||||
local token = familymode.."|"..getmode.."|"..rednum.."|"..redValue
|
||||
lssproto.windows(win.getIndexWN(), win.getIdWN(),1,token);
|
||||
win.CloseWindow()
|
||||
else
|
||||
sa.ShowMessage("您当前的金币不足!",4)
|
||||
end
|
||||
else
|
||||
sa.ShowMessage("红包大小不能为0且大于或等于红包个数的10倍!",4)
|
||||
end
|
||||
else
|
||||
sa.ShowMessage("红包个数不能为0!",4)
|
||||
end
|
||||
end
|
||||
end
|
||||
id = sa.StockFontBuffer(winX + 310,winY + 210 + posy, 1, 4, "关 闭", 2);
|
||||
if win.getHitFontNo() == id then
|
||||
if win.getMouseLeftCrick() > 0 then
|
||||
win.CloseWindow()
|
||||
end
|
||||
end
|
||||
win.StockFontBuffer2();
|
||||
if win.DelWindow() == 1 then
|
||||
sa.DeathAction(addr)
|
||||
win.CloseFlg()
|
||||
addr = 0;
|
||||
sa.GetKeyInputFocus()
|
||||
win.CloseWindow()
|
||||
end
|
||||
return addr;
|
||||
end
|
||||
|
||||
|
||||
function data()
|
||||
addr=0;
|
||||
familymode=0;
|
||||
getmode=0;
|
||||
rednum=0;
|
||||
redValue=0;
|
||||
Focus=-1;
|
||||
end
|
||||
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
57
服务器端lua文件/ablua/equipeffectfunction.lua
Normal file
57
服务器端lua文件/ablua/equipeffectfunction.lua
Normal file
@ -0,0 +1,57 @@
|
||||
function EquipEffectFunction( charaindex, id )
|
||||
if id == 2 then
|
||||
|
||||
itemindex = char.getItemIndex(charaindex,id)
|
||||
if itemindex > -1 then
|
||||
local itemlv = GetItemShowIndex(itemindex)
|
||||
if itemlv>0 then
|
||||
char.setWorkInt(charaindex,"庄园特效",itemshow[itemlv][2])
|
||||
return 1
|
||||
end
|
||||
else
|
||||
char.setWorkInt(charaindex,"庄园特效",0)
|
||||
end
|
||||
end
|
||||
if id == 6 then
|
||||
itemindex = char.getItemIndex(charaindex,id)
|
||||
if itemindex > -1 then
|
||||
local data = item.getChar(itemindex, "字段")
|
||||
local effectid = other.atoi(other.getString(data, "|", 4))
|
||||
char.setInt(charaindex,"法宝人物特效",effectid)
|
||||
else
|
||||
char.setInt(charaindex,"法宝人物特效",0)
|
||||
end
|
||||
end
|
||||
return 1
|
||||
|
||||
end
|
||||
|
||||
function GetItemShowIndex(itemindex)
|
||||
local name = item.getChar(itemindex,"名称")
|
||||
for i = 1,table.getn(itemshow) do
|
||||
local tagindex = string.find(name,itemshow[i][1])
|
||||
if tagindex ~= nil then
|
||||
return i
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
function data()
|
||||
itemshow = {
|
||||
{"免气", 102201}
|
||||
,{" 14", 102203}
|
||||
,{" 15", 102220}
|
||||
,{" 16", 102223}
|
||||
,{" 17", 102219}
|
||||
,{" 18",102232}
|
||||
,{" 19",102248}
|
||||
,{" 20",102234}
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
441
服务器端lua文件/ablua/familyridefunction.lua
Normal file
441
服务器端lua文件/ablua/familyridefunction.lua
Normal file
@ -0,0 +1,441 @@
|
||||
function FamilyRideCheck( meindex, petindex,pethaveindex)
|
||||
local petNo = char.getInt( petindex, "原图像号")
|
||||
for i=1,table.getn(ridepet) do
|
||||
if petNo == ridepet[i] then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function FreeRideQuery(charaindex)
|
||||
local petNo = 0
|
||||
local token = "".. table.getn(ridepet)
|
||||
for i=1,table.getn(ridepet) do
|
||||
token = token .. "|"..petname[i].."|"..CheckPetRideByPetNo( charaindex, ridepet[i]).."|"..ridepet[i]
|
||||
end
|
||||
lssproto.windows(charaindex, 1023, 0, 1, char.getWorkInt( npcindex, "对象"), token)
|
||||
end
|
||||
|
||||
function CheckPetRideByPetNo( meindex, petNo)
|
||||
local playerid = getNOindex(char.getInt( meindex, "原图像号"))
|
||||
|
||||
if char.getInt( meindex, "图像号") == 101178 then
|
||||
if petNo == 101177 then
|
||||
return 101179
|
||||
end
|
||||
elseif char.getInt( meindex, "图像号") == 101177 then
|
||||
if petNo == 101178 then
|
||||
return 101179
|
||||
end
|
||||
elseif playerid > 0 then
|
||||
for i = 1, table.getn(petlist) do
|
||||
if petNo == petlist[i] then
|
||||
if other.DataAndData(char.getInt(meindex, "证书骑宠"), i - 1) ~= 0 then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, table.getn(PlayerColor[1]) do
|
||||
if PlayerColor[playerid][i] == char.getInt( meindex, "原图像号") or (char.getInt( meindex, "原图像号") >= 100700 and char.getInt( meindex, "原图像号") < 108400) then
|
||||
if petNo == CommonPetList[i] then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, table.getn(CommonPetList1) do
|
||||
if char.getInt( meindex, "原图像号") == CommonPetList1[i][2] and petNo == CommonPetList1[i][3] then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
for i = 1, table.getn(Pointpetlist) do
|
||||
if petNo == Pointpetlist[i][1] then
|
||||
floorid = char.getWorkInt( meindex, "家族地图")
|
||||
for j = 1, table.getn(Pointpetlist[i][2]) do
|
||||
if Pointpetlist[i][2][j] == floorid then
|
||||
if char.getInt( meindex, "家族地位") > 0 and char.getInt( meindex, "家族地位") ~= 2 then
|
||||
if char.getInt( meindex, "家族类型") == Pointpetlist[i][3] then
|
||||
if PointRideNoList[playerid][i] > -1 then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
for i = 1, table.getn(EquipagePetlist) do
|
||||
if petNo == EquipagePetlist[i][1] then
|
||||
for j = 0, 5 do
|
||||
itemindex = char.getItemIndex(meindex, j)
|
||||
if itemindex > -1 then
|
||||
if item.getChar(itemindex, "类型代码") == "INSLAY" or other.getString(item.getChar(itemindex, "类型代码"), " ", 1) == "INSLAY" then
|
||||
local field = {"", "", "", "", ""}
|
||||
local data = item.getChar(itemindex, "镶嵌代码")
|
||||
|
||||
field[1] = other.getString(data, "|", 1)
|
||||
field[2] = other.getString(data, "|", 2)
|
||||
field[3] = other.getString(data, "|", 3)
|
||||
field[4] = other.getString(data, "|", 4)
|
||||
field[5] = other.getString(data, "|", 5)
|
||||
for k = 1, table.getn(field) do
|
||||
if field[k] == EquipagePetlist[i][2] then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return 0
|
||||
|
||||
end
|
||||
|
||||
function Loop(meindex)
|
||||
if char.getWorkInt(meindex,"NPC临时7") == char.getInt(meindex, "图像号") then
|
||||
char.setInt(meindex, "图像号", 102201)
|
||||
char.ToAroundChar(meindex)
|
||||
char.setInt(meindex, "循环事件时间", 300)
|
||||
else
|
||||
char.setInt(meindex, "图像号", char.getWorkInt(meindex,"NPC临时7"))
|
||||
char.ToAroundChar(meindex)
|
||||
char.setInt(meindex, "循环事件时间", 0)
|
||||
char.delFunctionPointer(meindex, "循环事件")
|
||||
char.setWorkInt(meindex,"NPC临时7",0)
|
||||
end
|
||||
end
|
||||
|
||||
function FamilyRideFunction( meindex, petindex,pethaveindex)
|
||||
if char.getInt( petindex, "转数") >0 then
|
||||
char.TalkToCli(meindex, -1, "【系统提示】由于[" .. char.getChar(petindex, "名字") .. "]已经转生,所以无法骑乘。", "红色")
|
||||
return 0
|
||||
end
|
||||
|
||||
local playerid = getNOindex(char.getInt( meindex, "原图像号"))
|
||||
|
||||
local petNo = char.getInt( petindex, "原图像号")
|
||||
if char.getInt( meindex, "图像号") == 101178 then
|
||||
if petNo == 101177 then
|
||||
char.setWorkInt(meindex,"NPC临时7",101179)
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return 101179
|
||||
end
|
||||
elseif char.getInt( meindex, "图像号") == 101177 then
|
||||
if petNo == 101178 then
|
||||
char.setWorkInt(meindex,"NPC临时7",101179)
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return 101179
|
||||
end
|
||||
elseif playerid > 0 then
|
||||
for i = 1, table.getn(petlist) do
|
||||
if petNo == petlist[i] then
|
||||
if other.DataAndData(char.getInt(meindex, "证书骑宠"), i - 1) ~= 0 then
|
||||
char.setWorkInt(meindex,"NPC临时7",NewRideNoList[playerid][i])
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return NewRideNoList[playerid][i]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, table.getn(PlayerColor[1]) do
|
||||
if PlayerColor[playerid][i] == char.getInt( meindex, "原图像号") or (char.getInt( meindex, "原图像号") >= 100700 and char.getInt( meindex, "原图像号") < 108400) then
|
||||
if petNo == CommonPetList[i] then
|
||||
char.setWorkInt(meindex,"NPC临时7",CommonRideNoList[playerid][i])
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return CommonRideNoList[playerid][i]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, table.getn(CommonPetList1) do
|
||||
if char.getInt( meindex, "原图像号") == CommonPetList1[i][2] and petNo == CommonPetList1[i][3] then
|
||||
char.setWorkInt(meindex,"NPC临时7",CommonPetList1[i][1])
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return CommonPetList1[i][1]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
for i = 1, table.getn(Pointpetlist) do
|
||||
if petNo == Pointpetlist[i][1] then
|
||||
floorid = char.getWorkInt( meindex, "家族地图")
|
||||
for j = 1, table.getn(Pointpetlist[i][2]) do
|
||||
if Pointpetlist[i][2][j] == floorid then
|
||||
if char.getInt( meindex, "家族地位") > 0 and char.getInt( meindex, "家族地位") ~= 2 then
|
||||
if char.getInt( meindex, "家族类型") == Pointpetlist[i][3] then
|
||||
if PointRideNoList[playerid][i] > -1 then
|
||||
char.setWorkInt(meindex,"NPC临时7",PointRideNoList[playerid][i])
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
return PointRideNoList[playerid][i]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
for i = 1, table.getn(EquipagePetlist) do
|
||||
if petNo == EquipagePetlist[i][1] then
|
||||
for j = 0, 5 do
|
||||
itemindex = char.getItemIndex(meindex, j)
|
||||
if itemindex > -1 then
|
||||
if item.getChar(itemindex, "类型代码") == "INSLAY" or other.getString(item.getChar(itemindex, "类型代码"), " ", 1) == "INSLAY" then
|
||||
local field = {"", "", "", "", ""}
|
||||
local data = item.getChar(itemindex, "镶嵌代码")
|
||||
|
||||
field[1] = other.getString(data, "|", 1)
|
||||
field[2] = other.getString(data, "|", 2)
|
||||
field[3] = other.getString(data, "|", 3)
|
||||
field[4] = other.getString(data, "|", 4)
|
||||
field[5] = other.getString(data, "|", 5)
|
||||
for k = 1, table.getn(field) do
|
||||
if field[k] == EquipagePetlist[i][2] then
|
||||
char.setWorkInt(meindex,"NPC临时7",EquipageRideNoList[playerid][i])
|
||||
char.setFunctionPointer(meindex, "循环事件", "Loop", "")
|
||||
char.setInt(meindex, "循环事件时间", 1000)
|
||||
|
||||
return EquipageRideNoList[playerid][i]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
|
||||
function getNOindex( baseNo)
|
||||
if baseNo >= 100000 and baseNo < 100240 then
|
||||
metamo = baseNo - 100000
|
||||
for i = 1, 12 do
|
||||
if metamo >= (i-2) * 20 and metamo < i * 20 then
|
||||
return i;
|
||||
end
|
||||
end
|
||||
elseif baseNo >= 100700 and baseNo < 100820 then
|
||||
metamo = baseNo - 100700
|
||||
for i = 1, 12 do
|
||||
if metamo >= (i-2) * 10 and metamo < i * 10 then
|
||||
return i;
|
||||
end
|
||||
end
|
||||
elseif baseNo >= 100400 and baseNo < 100410 then
|
||||
return 13;
|
||||
end
|
||||
return -1
|
||||
end
|
||||
|
||||
function data()
|
||||
ridepet = {100329, 100327, 100330, 100328, 100351, 100352, 100353, 100354, 100396, 100374, 100358, 100362, 100279, 100288, 100283, 100346, 100310, 100372, 100373, 101532, 101576,100907}
|
||||
petname = {"格鲁西斯","贝鲁卡","金格萨贝鲁","贝鲁伊卡","布洛多斯","布林帖斯","布拉奇多斯","斯天多斯","邦恩多斯","帖拉所伊朵", "玛恩摩洛斯", "朵拉比斯", "拉奇鲁哥", "扬奇洛斯", "卡达鲁卡斯", "卡卡金宝", "格尔格", "左迪洛斯", "巴朵兰恩", "史卡鲁", "罗多克雷","斑尼迪克"}
|
||||
|
||||
--说明行, 机暴00, 白象01, 金飞02, 红狗03, 蓝龙04, 绿甲05, 红蛙06, 红猩07, 蓝暴08, 红暴09, 水鱼10, 水雷11, 白虎12,斑尼迪克13
|
||||
petlist = {100374, 100358, 100362, 100279, 100288, 100283, 100346, 100310, -1, -1, 101532, 101576, 100872, 100907}
|
||||
|
||||
--说明行, 机暴00, 白象01, 金飞02, 红狗03, 蓝龙04, 绿甲05, 红蛙06, 红猩07, 蓝暴08, 红暴09, 水鱼10, 水雷11, 白虎12, 金暴13
|
||||
NewRideNoList = {{101305, 101306, 101307, 101308, 101309, 101310, 101311, 101312, 101008, 101009, 101978, 101989, 104025, 103266}
|
||||
,{101313, 101314, 101315, 101316, 101317, 101318, 101319, 101320, 101018, 101019, 101986, 101988, 104026, 103262}
|
||||
,{101321, 101322, 101323, 101324, 101325, 101326, 101327, 101328, 101028, 101029, 101975, 101965, 104027, 103263}
|
||||
,{101329, 101330, 101331, 101332, 101333, 101334, 101335, 101336, 101038, 101039, 101976, 101966, 104028, 103264}
|
||||
,{101337, 101338, 101339, 101340, 101341, 101342, 101343, 101344, 101048, 101049, 101984, 101973, 104029, 103272}
|
||||
,{101345, 101346, 101347, 101348, 101349, 101350, 101351, 101352, 101058, 101059, 101985, 101974, 104030, 103273}
|
||||
,{101353, 101354, 101355, 101356, 101357, 101358, 101359, 101360, 101068, 101069, 101977, 101967, 104031, 103265}
|
||||
,{101361, 101362, 101363, 101364, 101365, 101366, 101367, 101368, 101078, 101079, 101979, 101968, 104032, 103267}
|
||||
,{101369, 101370, 101371, 101372, 101373, 101374, 101375, 101376, 101088, 101089, 101981, 101970, 104033, 103269}
|
||||
,{101377, 101378, 101379, 101380, 101381, 101382, 101383, 101384, 101098, 101099, 101980, 101969, 104034, 103268}
|
||||
,{101385, 101386, 101387, 101388, 101389, 101390, 101391, 101392, 101108, 101109, 101983, 101972, 104035, 103271}
|
||||
,{101393, 101394, 101395, 101396, 101397, 101398, 101399, 101400, 101118, 101119, 101982, 101971, 104036, 103270}
|
||||
}
|
||||
|
||||
PlayerColor = {{ 100000, 100005, 100010, 100015}
|
||||
,{ 100025, 100030, 100035, 100020}
|
||||
,{ 100055, 100050, 100045, 100040}
|
||||
,{ 100060, 100065, 100070, 100075}
|
||||
,{ 100095, 100085, 100090, 100080}
|
||||
,{ 100100, 100115, 100110, 100105}
|
||||
,{ 100135, 100120, 100125, 100130}
|
||||
,{ 100145, 100140, 100150, 100155}
|
||||
,{ 100165, 100170, 100160, 100175}
|
||||
,{ 100190, 100195, 100185, 100180}
|
||||
,{ 100200, 100210, 100215, 100205}
|
||||
,{ 100230, 100225, 100220, 100235}
|
||||
}
|
||||
|
||||
|
||||
-- 红虎, 绿虎, 金虎, 黄虎
|
||||
CommonPetList = {100329, 100327, 100330, 100328}
|
||||
CommonRideNoList = {{101004, 101005, 101006, 101007}
|
||||
,{101015, 101016, 101017, 101014}
|
||||
,{101027, 101026, 101025, 101024}
|
||||
,{101034, 101035, 101036, 101037}
|
||||
,{101047, 101045, 101046, 101044}
|
||||
,{101054, 101057, 101056, 101055}
|
||||
,{101067, 101064, 101065, 101066}
|
||||
,{101075, 101074, 101076, 101077}
|
||||
,{101085, 101086, 101084, 101087}
|
||||
,{101096, 101097, 101095, 101094}
|
||||
,{101104, 101106, 101107, 101105}
|
||||
,{101116, 101115, 101114, 101117}
|
||||
}
|
||||
CommonPetList1 = {{ 101000, 100000, 100352}
|
||||
,{ 101001, 100005, 100352}
|
||||
,{ 101002, 100010, 100352}
|
||||
,{ 101003, 100015, 100352}
|
||||
,{ 101000, 100700, 100352}
|
||||
,{ 101000, 100705, 100352}
|
||||
|
||||
,{ 101010, 100020, 100396}
|
||||
,{ 101011, 100025, 100396}
|
||||
,{ 101012, 100030, 100396}
|
||||
,{ 101013, 100035, 100396}
|
||||
,{ 101010, 100710, 100396}
|
||||
,{ 101010, 100715, 100396}
|
||||
|
||||
,{ 101020, 100040, 100351}
|
||||
,{ 101021, 100045, 100351}
|
||||
,{ 101022, 100050, 100351}
|
||||
,{ 101023, 100055, 100351}
|
||||
,{ 101020, 100720, 100351}
|
||||
,{ 101020, 100725, 100351}
|
||||
|
||||
,{ 101030, 100060, 100353}
|
||||
,{ 101031, 100065, 100353}
|
||||
,{ 101032, 100070, 100353}
|
||||
,{ 101033, 100075, 100353}
|
||||
,{ 101030, 100730, 100353}
|
||||
,{ 101030, 100735, 100353}
|
||||
|
||||
,{ 101040, 100080, 100396}
|
||||
,{ 101041, 100085, 100396}
|
||||
,{ 101042, 100090, 100396}
|
||||
,{ 101043, 100095, 100396}
|
||||
,{ 101040, 100740, 100396}
|
||||
,{ 101040, 100745, 100396}
|
||||
|
||||
,{ 101050, 100100, 100353}
|
||||
,{ 101051, 100105, 100353}
|
||||
,{ 101052, 100110, 100353}
|
||||
,{ 101053, 100115, 100353}
|
||||
,{ 101050, 100750, 100353}
|
||||
,{ 101050, 100755, 100353}
|
||||
|
||||
,{ 101060, 100120, 100354}
|
||||
,{ 101061, 100125, 100354}
|
||||
,{ 101062, 100130, 100354}
|
||||
,{ 101063, 100135, 100354}
|
||||
,{ 101060, 100760, 100354}
|
||||
,{ 101060, 100765, 100354}
|
||||
|
||||
,{ 101070, 100140, 100354}
|
||||
,{ 101071, 100145, 100354}
|
||||
,{ 101072, 100150, 100354}
|
||||
,{ 101073, 100155, 100354}
|
||||
,{ 101070, 100770, 100354}
|
||||
,{ 101070, 100775, 100354}
|
||||
|
||||
,{ 101080, 100160, 100352}
|
||||
,{ 101081, 100165, 100352}
|
||||
,{ 101082, 100170, 100352}
|
||||
,{ 101083, 100175, 100352}
|
||||
,{ 101080, 100780, 100352}
|
||||
,{ 101080, 100785, 100352}
|
||||
|
||||
,{ 101090, 100180, 100351}
|
||||
,{ 101091, 100185, 100351}
|
||||
,{ 101092, 100190, 100351}
|
||||
,{ 101093, 100195, 100351}
|
||||
,{ 101090, 100790, 100351}
|
||||
,{ 101090, 100795, 100351}
|
||||
|
||||
,{ 101100, 100200, 100353}
|
||||
,{ 101101, 100205, 100353}
|
||||
,{ 101102, 100210, 100353}
|
||||
,{ 101103, 100215, 100353}
|
||||
,{ 101100, 100800, 100353}
|
||||
,{ 101100, 100805, 100353}
|
||||
|
||||
,{ 101110, 100220, 100396}
|
||||
,{ 101111, 100225, 100396}
|
||||
,{ 101112, 100230, 100396}
|
||||
,{ 101113, 100235, 100396}
|
||||
,{ 101110, 100810, 100396}
|
||||
,{ 101110, 100815, 100396}
|
||||
}
|
||||
|
||||
Pointpetlist = {--蓝暴
|
||||
{100372, {1041, 2031, 3031, 4031, 5031}, 0}
|
||||
--红暴
|
||||
,{100373, {1041, 2031, 3031, 4031, 5031}, 1}
|
||||
}
|
||||
--蓝暴, --红暴
|
||||
PointRideNoList = {{101008, 101009} --小矮子
|
||||
,{101018, 101019} --赛亚人
|
||||
,{101028, 101029} --辫子男孩
|
||||
,{101038, 101039} --酷哥
|
||||
,{101048, 101049} --熊皮男
|
||||
,{101058, 101059} --大个
|
||||
,{101068, 101069} --小矮妹
|
||||
,{101078, 101079} --熊皮妹
|
||||
,{101088, 101089} --帽子妹
|
||||
,{101098, 101099} --短法发夹妹
|
||||
,{101108, 101109} --手套女
|
||||
,{101118, 101119} --辣妹
|
||||
}
|
||||
|
||||
EquipagePetlist = {--石猩猩
|
||||
{100307, "Cb"}
|
||||
--海主人
|
||||
,{100348, "Ca"}
|
||||
--红飞
|
||||
,{100360, "Cc"}
|
||||
--蓝狗
|
||||
,{104124, "Cd"}
|
||||
--黑鸡
|
||||
,{100904, "Ce"}
|
||||
--红鸡
|
||||
,{100370, "Cf"}
|
||||
--灰鸡
|
||||
,{100369, "Cg"}
|
||||
}
|
||||
--石猩猩,海主人, 红飞 , 蓝狗 , 黑鸡 , 红鸡 , 灰鸡
|
||||
EquipageRideNoList = {{104100, 104112, 104137, 104125, 100444, 100425, 100424} --小矮子
|
||||
,{104101, 104113, 104138, 104126, 100444, 100425, 100424} --赛亚人
|
||||
,{104102, 104114, 104139, 104127, 100444, 100425, 100424} --辫子男孩
|
||||
,{104103, 104115, 104140, 104128, 100444, 100425, 100424} --酷哥
|
||||
,{104104, 104116, 104141, 104129, 100444, 100425, 100424} --熊皮男
|
||||
,{104105, 104117, 104142, 104130, 100444, 100425, 100424} --大个
|
||||
,{104106, 104118, 104143, 104131, 100444, 100425, 100424} --小矮妹
|
||||
,{104107, 104119, 104144, 104132, 100444, 100425, 100424} --熊皮妹
|
||||
,{104108, 104120, 104145, 104133, 100444, 100425, 100424} --帽子妹
|
||||
,{104109, 104121, 104146, 104134, 100444, 100425, 100424} --短法发夹妹
|
||||
,{104110, 104122, 104147, 104135, 100444, 100425, 100424} --手套女
|
||||
,{104111, 104123, 104148, 104136, 100444, 100425, 100424} --辣妹
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
function Create(name, metamo, floor, x, y, dir)
|
||||
--创建NPC(NPC名字,图像号,地图号,坐标X,坐标Y,方向号)将返回一个NPC索引
|
||||
npcindex = npc.CreateNpc(name, metamo, floor, x, y, dir)
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
Create("查询宠物NPC临时", 100000, 777, 20, 20, 4)
|
||||
end
|
151
服务器端lua文件/ablua/freecharlogin.lua
Normal file
151
服务器端lua文件/ablua/freecharlogin.lua
Normal file
@ -0,0 +1,151 @@
|
||||
function FreeCharLogin( charindex )
|
||||
if char.getWorkInt(charindex, "服务器ID") == 48 then
|
||||
char.TalkToCli(charindex, -1, "版本过期,请更新最新的脱机外挂后登陆游戏。", "黄色")
|
||||
char.logou(charindex)
|
||||
return 0;
|
||||
end
|
||||
if char.getWorkInt(charindex, "服务器ID") == 4096 and config.getGameservername() == "石器重制版单号线" then
|
||||
char.TalkToCli(charindex, -1, "进单号线提示【为了游戏的平衡,单号线路只能用外挂登陆】", "黄色")
|
||||
char.logou(charindex)
|
||||
return 0;
|
||||
end
|
||||
for i = 1, table.getn(unlawthislogut) do
|
||||
if char.getInt(charindex, "计时器") <= other.time() then
|
||||
if char.getInt(charindex, "地图号") == unlawthislogut[i][1] then
|
||||
char.setInt(charindex, "地图号", unlawthislogut[i][2][1] )
|
||||
char.setInt(charindex, "坐标X", unlawthislogut[i][2][2] )
|
||||
char.setInt(charindex, "坐标Y", unlawthislogut[i][2][3] )
|
||||
end
|
||||
end
|
||||
end
|
||||
if char.getInt(charindex, "地图号") >=800 and char.getInt(charindex, "地图号") <=851 then
|
||||
char.WarpToSpecificPoint(charindex, 1000, 71, 49)
|
||||
end
|
||||
|
||||
if char.getInt(charindex, "地图号") == 500 then
|
||||
if char.getInt(charindex, "等级")< 80 then
|
||||
char.WarpToSpecificPoint(charindex, 1000, 71, 49)
|
||||
end
|
||||
end
|
||||
if char.getInt(charindex,"家族地位")>0 and char.getInt(charindex,"家族地位")~=2 then
|
||||
if char.getChar(charindex, "家族") == other.getString(family.ShowPointListArray(0), "|", 6) then
|
||||
char.setWorkInt(charindex,"庄园特效",103213)
|
||||
elseif char.getChar(charindex, "家族") == other.getString(family.ShowPointListArray(1), "|", 6) then
|
||||
char.setWorkInt(charindex,"庄园特效",103214)
|
||||
end
|
||||
end
|
||||
if char.getInt(charindex, "离线时间") < 0 then
|
||||
char.setInt(charindex, "离线时间", 0)
|
||||
end
|
||||
|
||||
if char.getInt(charindex, "极品") ~=1 then
|
||||
local vital = char.getInt(charindex, "体力")
|
||||
local str = char.getInt(charindex, "腕力")
|
||||
local tgh = char.getInt(charindex, "耐力")
|
||||
local dex = char.getInt(charindex, "速度")
|
||||
local skillpoint = char.getInt(charindex, "技能点")
|
||||
local sum = vital + str + tgh + dex + skillpoint * 100
|
||||
if sum > 63700 then
|
||||
char.setInt(charindex, "体力", 1000)
|
||||
char.setInt(charindex, "腕力", 0)
|
||||
char.setInt(charindex, "耐力", 0)
|
||||
char.setInt(charindex, "速度", 0)
|
||||
char.setInt(charindex, "技能点", 627)
|
||||
end
|
||||
else
|
||||
local vital = char.getInt(charindex, "体力")
|
||||
local str = char.getInt(charindex, "腕力")
|
||||
local tgh = char.getInt(charindex, "耐力")
|
||||
local dex = char.getInt(charindex, "速度")
|
||||
local skillpoint = char.getInt(charindex, "技能点")
|
||||
local sum = vital + str + tgh + dex + skillpoint * 100
|
||||
if sum > 61000 then
|
||||
char.setInt(charindex, "体力", 1000)
|
||||
char.setInt(charindex, "腕力", 0)
|
||||
char.setInt(charindex, "耐力", 0)
|
||||
char.setInt(charindex, "速度", 0)
|
||||
char.setInt(charindex, "技能点", 600)
|
||||
end
|
||||
end
|
||||
|
||||
token = "UPDATE CSAlogin set Offline = 0 , MAC = '" .. char.getWorkChar(charindex, "MAC") .. "', ServerName = '" .. config.getGameservername() .. "', ServerId = " .. char.getWorkInt(charindex, "服务器ID") + 1 .. " WHERE Name=BINARY'" .. char.getChar(charindex, "账号") .. "'"
|
||||
|
||||
ret = sasql.query(token)
|
||||
token = "SELECT `newsafe`, `flg` FROM `safedata` "
|
||||
.. " WHERE `cdkey` = '" .. char.getChar(charindex, "账号") .. "'"
|
||||
ret = sasql.query(token)
|
||||
if ret == 1 then
|
||||
sasql.free_result()
|
||||
sasql.store_result()
|
||||
num = sasql.num_rows()
|
||||
if num > 0 then
|
||||
sasql.fetch_row(0)
|
||||
if sasql.data(1) ~= char.getWorkChar(charindex, "MAC2") then
|
||||
if sasql.data(2) == "0" then
|
||||
char.setInt(charindex, "安全锁", 2)
|
||||
end
|
||||
token = "UPDATE `safedata` SET "
|
||||
.. "`newsafe` = '" .. char.getWorkChar(charindex, "MAC2") .. "',"
|
||||
.. "`oldsafe` = '" .. sasql.data(1) .. "',"
|
||||
.. "`FixTime` = NOW()"
|
||||
.. " WHERE `cdkey` = '" .. char.getChar(charindex, "账号") .. "'"
|
||||
ret = sasql.query(token)
|
||||
end
|
||||
else
|
||||
token = "INSERT INTO `safedata` ( "
|
||||
.. "`cdkey` ,"
|
||||
.. "`newsafe` ,"
|
||||
.. "`oldsafe` ,"
|
||||
.. "`flg`,"
|
||||
.. "`FixTime`"
|
||||
.. ")"
|
||||
.. " VALUES ("
|
||||
.. "'" .. char.getChar(charindex, "账号")
|
||||
.. "', '" .. char.getWorkChar(charindex, "MAC2")
|
||||
.. "', '" .. char.getWorkChar(charindex, "MAC2")
|
||||
.. "', 0, NOW()"
|
||||
.. ");"
|
||||
ret = sasql.query(token)
|
||||
end
|
||||
end
|
||||
|
||||
return 1;
|
||||
end
|
||||
|
||||
|
||||
function data()
|
||||
|
||||
unlawthislogut = {{125, {1000, 92, 99}}
|
||||
,{126, {1000, 92, 99}}
|
||||
,{127, {1000, 92, 99}}
|
||||
,{128, {1000, 92, 99}}
|
||||
,{140, {141, 25, 17}}
|
||||
,{8190, {2000, 44, 67}}
|
||||
,{12345, {1000, 92, 99}}
|
||||
,{40001, {1000, 92, 99}}
|
||||
,{40002, {1000, 92, 99}}
|
||||
,{40003, {1000, 92, 99}}
|
||||
,{40004, {1000, 92, 99}}
|
||||
,{40005, {1000, 92, 99}}
|
||||
,{40006, {1000, 92, 99}}
|
||||
,{40007, {1000, 92, 99}}
|
||||
,{40008, {1000, 92, 99}}
|
||||
,{40009, {1000, 92, 99}}
|
||||
,{40010, {1000, 92, 99}}
|
||||
,{50001, {1000, 92, 99}}
|
||||
,{50002, {1000, 92, 99}}
|
||||
,{50003, {1000, 92, 99}}
|
||||
,{50004, {1000, 92, 99}}
|
||||
,{104, {1000, 92, 99}}
|
||||
,{133, {1000, 92, 99}}
|
||||
,{130, {1000, 92, 99}}
|
||||
,{602, {1000, 92, 99}}
|
||||
,{61001, {1000, 92, 99}}
|
||||
,{65501, {1000, 92, 99}}
|
||||
,{50005, {1000, 92, 99}}
|
||||
}
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
124
服务器端lua文件/ablua/freecharlogout.lua
Normal file
124
服务器端lua文件/ablua/freecharlogout.lua
Normal file
@ -0,0 +1,124 @@
|
||||
--此LUA是离线判断时间和扣除时间还有下线后记录上一次在线期间产生的个人信息!
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
|
||||
if math.ceil(x) == x then
|
||||
x = math.ceil(x);
|
||||
else
|
||||
x = math.ceil(x) - 1;
|
||||
end
|
||||
return x;
|
||||
end
|
||||
|
||||
function FreeCharLogout( charindex )
|
||||
if char.getWorkInt(charindex, "离线") == 1 then
|
||||
--if char.getWorkInt(charindex, "摆摊") == -1 then
|
||||
-- if config.getGameservername() ~= "零九石器二线" and config.getGameservername() ~= "零九石器三线" then
|
||||
-- local offtime = other.time() - char.getWorkInt(charindex, "登陆时间")
|
||||
-- char.setInt(charindex, "离线时间", math.max(char.getInt(charindex, "离线时间") - offtime / 60), 0)
|
||||
-- end
|
||||
--end
|
||||
other.setLuaPLayerNum(other.getLuaPLayerNum()-1)
|
||||
else
|
||||
local offtime = other.time() - char.getWorkInt(charindex, "登陆时间")
|
||||
if char.getInt(charindex, "等级") == 140 then
|
||||
local onlinetime = char.getInt(charindex, "下线时间") - char.getWorkInt(charindex, "登陆时间")
|
||||
if char.getInt(charindex, "转数") == 5 then
|
||||
char.setInt(charindex, "在线时间", char.getInt(charindex, "在线时间") + getIntPart(onlinetime / 2) )
|
||||
elseif char.getInt(charindex, "转数") == 6 then
|
||||
char.setInt(charindex, "在线时间", char.getInt(charindex, "在线时间") + onlinetime)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--if config.getGameservername() == "零九石器单线" then
|
||||
-- token = "DELETE FROM `OnlinePlayer` "
|
||||
-- .. " WHERE `cdkey` = '" .. char.getChar(charindex, "账号") .. "'"
|
||||
-- ret = sasql.query(token)
|
||||
--end
|
||||
|
||||
token = "SELECT * FROM `CSAinfo` "
|
||||
.. " WHERE `cdkey` = '" .. char.getChar(charindex, "账号") .. "'"
|
||||
.. " AND `saveindex` = '" .. char.getInt(charindex, "存档") .. "'"
|
||||
ret = sasql.query(token)
|
||||
if ret == 1 then
|
||||
sasql.free_result()
|
||||
sasql.store_result()
|
||||
num = sasql.num_rows()
|
||||
if num > 0 then
|
||||
token = "UPDATE `CSAinfo` SET "
|
||||
.. "`name` = '" .. char.getChar(charindex, "名字") .. "',"
|
||||
.. "`famename` = '" .. char.getChar(charindex, "家族") .. "', "
|
||||
.. "`level` = '" .. char.getInt(charindex, "等级") .. "',"
|
||||
.. "`trans` = '" .. char.getInt(charindex, "转数") .. "',"
|
||||
.. "`alive` = '" .. char.getInt(charindex, "活力") .. "',"
|
||||
.. "`fame` = '" .. char.getInt(charindex, "声望") .. "',"
|
||||
.. "`TITLE_LV` = '" .. 0 .. "',"
|
||||
.. "`DUELBATTLECOUNT` = '" .. char.getInt(charindex, "PK次数") .. "',"
|
||||
.. "`DUELWINCOUNT` = '" .. char.getInt(charindex, "PK赢数") .. "',"
|
||||
.. "`DUELLOSECOUNT` = '" .. char.getInt(charindex, "PK败数") .. "',"
|
||||
.. "`DUELSTWINCOUNT` = '" .. char.getInt(charindex, "PK连胜") .. "',"
|
||||
.. "`DUELSTLOSECOUNT` = '" .. char.getInt(charindex, "PK连败") .. "',"
|
||||
.. "`DUELMAXSTWINCOUNT` = '" .. char.getInt(charindex, "PK最高连胜") .. "',"
|
||||
.. "`vip` = '" .. char.getInt(charindex, "会员") .. "',"
|
||||
.. "`time` = NOW()"
|
||||
.. " WHERE `cdkey` = '" .. char.getChar(charindex, "账号") .. "'"
|
||||
.. " AND `saveindex` = '" .. char.getInt(charindex, "存档") .. "'"
|
||||
ret = sasql.query(token)
|
||||
else
|
||||
token = "INSERT INTO `CSAinfo` ( "
|
||||
.. "`cdkey` ,"
|
||||
.. "`saveindex` ,"
|
||||
.. "`name` ,"
|
||||
.. "`famename` ,"
|
||||
.. "`level` ,"
|
||||
.. "`trans` ,"
|
||||
.. "`alive` ,"
|
||||
.. "`fame` ,"
|
||||
.. "`TITLE_LV` ,"
|
||||
.. "`DUELBATTLECOUNT` ,"
|
||||
.. "`DUELWINCOUNT` ,"
|
||||
.. "`DUELLOSECOUNT` ,"
|
||||
.. "`DUELSTWINCOUNT` ,"
|
||||
.. "`DUELSTLOSECOUNT` ,"
|
||||
.. "`DUELMAXSTWINCOUNT` ,"
|
||||
.. "`vip` ,"
|
||||
.. "`time`"
|
||||
.. ")"
|
||||
.. "VALUES ("
|
||||
.. "'" .. char.getChar(charindex, "账号")
|
||||
.. "', '" .. char.getInt(charindex, "存档")
|
||||
.. "', '" .. char.getChar(charindex, "名字")
|
||||
.. "', '" .. char.getChar(charindex, "家族")
|
||||
.. "', '" .. char.getInt(charindex, "等级")
|
||||
.. "', '" .. char.getInt(charindex, "转数")
|
||||
.. "', '" .. char.getInt(charindex, "活力")
|
||||
.. "', '" .. char.getInt(charindex, "声望")
|
||||
.. "', '" .. char.getInt(charindex, "英雄称号")
|
||||
.. "', '" .. char.getInt(charindex, "PK次数")
|
||||
.. "', '" .. char.getInt(charindex, "PK赢数")
|
||||
.. "', '" .. char.getInt(charindex, "PK败数")
|
||||
.. "', '" .. char.getInt(charindex, "PK连胜")
|
||||
.. "', '" .. char.getInt(charindex, "PK连败")
|
||||
.. "', '" .. char.getInt(charindex, "PK最高连胜")
|
||||
.. "', '" .. char.getInt(charindex, "会员")
|
||||
.. "', NOW()"
|
||||
.. ");"
|
||||
|
||||
ret = sasql.query(token)
|
||||
end
|
||||
end
|
||||
token = "update `CSAlogin` set `Offline`=0 where `Name`='" .. char.getChar(charindex,"账号") .. "'"
|
||||
sasql.query(token)
|
||||
|
||||
end
|
||||
|
||||
function data()
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
219
服务器端lua文件/ablua/freechartitle.lua
Normal file
219
服务器端lua文件/ablua/freechartitle.lua
Normal file
@ -0,0 +1,219 @@
|
||||
function GetCharNewTitleNo(charaindex,id)
|
||||
if char.check(charaindex)~=1 then
|
||||
return 0
|
||||
end
|
||||
if id< 32 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态1"),id)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
elseif id< 64 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态2"),id-32)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
elseif id< 96 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态3"),id-64)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function GetCharNewTitleString(charaindex,id)
|
||||
if char.check(charaindex)~=1 then
|
||||
return 0
|
||||
end
|
||||
if id< 32 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态1"),id)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
elseif id< 64 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态2"),id-32)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
elseif id< 96 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态3"),id-64)~= 0 then
|
||||
return titleinfo[id+1][2]
|
||||
end
|
||||
end
|
||||
return ""
|
||||
end
|
||||
|
||||
|
||||
function GetCharNewTitleName(charaindex,id)
|
||||
if char.check(charaindex)~=1 then
|
||||
return 0
|
||||
end
|
||||
|
||||
if id< 32 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态1"),id)~= 0 then
|
||||
return titleinfo[id+1][1]
|
||||
end
|
||||
elseif (id >=32 and id< 64) then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态2"),id-32)~= 0 then
|
||||
return titleinfo[id+1][1]
|
||||
end
|
||||
elseif(id >=64 and id< 96) then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态3"),id-64)~= 0 then
|
||||
return titleinfo[id+1][1]
|
||||
end
|
||||
end
|
||||
return ""
|
||||
end
|
||||
|
||||
function GetCharNewTitleMode(charaindex,id)
|
||||
if char.check(charaindex)~=1 then
|
||||
return 0
|
||||
end
|
||||
|
||||
if id< 32 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态1"),id)~= 0 then
|
||||
return 1
|
||||
end
|
||||
elseif (id >=32 and id< 64) then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态2"),id-32)~= 0 then
|
||||
return 1
|
||||
end
|
||||
elseif(id >=64 and id< 96) then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态3"),id-64)~= 0 then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function TitleListSend(charaindex)
|
||||
if char.check(charaindex)~=1 then
|
||||
return
|
||||
end
|
||||
local Nodata=""
|
||||
local jiedata=""
|
||||
local indexdata=""
|
||||
local num=0
|
||||
local fd = char.getFd(charaindex)
|
||||
for i = 1,96 do
|
||||
if GetCharNewTitleMode(charaindex,i-1)>0 then
|
||||
num = num + 1
|
||||
-- print(num, GetCharNewTitleMode(charaindex,i-1))
|
||||
Nodata = Nodata..GetCharNewTitleString(charaindex,i-1).."|"
|
||||
jiedata = jiedata..GetCharNewTitleName(charaindex,i-1).."|"
|
||||
indexdata = indexdata..(i-1).."|"
|
||||
end
|
||||
end
|
||||
local data = string.format("%d|%d#@%s#@%s#@%s#@",char.getInt(charaindex,"文字称号"),num,Nodata,jiedata,indexdata)
|
||||
lssproto.CharTitleSend(fd,data)
|
||||
-- print("CharTitleSend发送成功!"..data.."\n")
|
||||
end
|
||||
|
||||
function GetTtileBuff(id)
|
||||
if id >96 or id < 1 then
|
||||
return 0,0,0,0
|
||||
end
|
||||
return titleinfo[id][3],titleinfo[id][4],titleinfo[id][5],titleinfo[id][6]
|
||||
end
|
||||
|
||||
function data()
|
||||
titleinfo = { --描述 序号 体 攻 防 敏 毒 麻 睡 石 混
|
||||
{"大地的精灵 防+5",1,0,0,5,0,0,0,0,0,0}
|
||||
,{"水的精灵 HP+20",2,20,0,0,0,0,0,0,0,0}
|
||||
,{"火炎的精灵 攻+5",3,0,5,0,0,0,0,0,0,0}
|
||||
,{"疾风的精灵 敏+5",4,0,0,0,5,0,0,0,0,0}
|
||||
,{"奥萝拉的精灵 全+1",5,1,1,1,1,0,0,0,0,0}
|
||||
,{"彩虹的精灵 全+2",6,2,2,2,2,0,0,0,0,0}
|
||||
,{"初心使者 HP+10",7,10,0,0,0,0,0,0,0,0}
|
||||
,{"无名的旅人 全+2",8,2,2,2,2,0,0,0,0,0}
|
||||
,{"路边的落叶 全+4",9,4,4,4,4,0,0,0,0,0}
|
||||
,{"水面的小草 全+6",10,6,6,6,6,0,0,0,0,0}
|
||||
,{"呢喃的歌声 全+8",11,8,8,8,8,0,0,0,0,0}
|
||||
,{"地上的月影 全+10",12,10,10,10,10,0,0,0,0,0}
|
||||
,{"奔跑的春风 全+12",13,12,12,12,12,0,0,0,0,0}
|
||||
,{"苍穹的风云 全+14",14,14,14,14,14,0,0,0,0,0}
|
||||
,{"摇曳的金星 全+16",15,16,16,16,16,0,0,0,0,0}
|
||||
,{"欢喜的慈雨 全+18",16,18,18,18,18,0,0,0,0,0}
|
||||
,{"蕴含的太阳 全+20",17,20,20,20,20,0,0,0,0,0}
|
||||
,{"敬畏的寂静 全+30",18,30,30,30,30,0,0,0,0,0}
|
||||
,{"精靈封印者 攻+5",19,0,5,0,0,0,0,0,0,0}
|
||||
,{"五转轮回 防+20",20,0,0,20,0,0,0,0,0,0}
|
||||
,{"盗贼讨伐者 攻+5",21,0,5,0,0,0,0,0,0,0}
|
||||
,{"盗贼帮众 混乱抗性+5",22,0,0,0,0,0,0,0,0,5}
|
||||
,{"夺宝奇兵 石化抗性+5",23,0,0,0,0,0,0,0,5,0}
|
||||
,{"勇闯夺宝岛 睡抗性+5",24,0,0,0,0,0,0,5,0,0}
|
||||
,{"合成达人 敏+5",25,0,0,0,5,0,0,0,0,0}
|
||||
,{"合成高手 敏+3",26,0,0,0,3,0,0,0,0,0}
|
||||
,{"练宠达人 攻+5",27,0,5,0,0,0,0,0,0,0}
|
||||
,{"练宠高手 攻+3",28,0,3,0,0,0,0,0,0,0}
|
||||
,{"任务达人 防+5",29,0,0,5,0,0,0,0,0,0}
|
||||
,{"任务高手 防+3",30,0,0,3,0,0,0,0,0,0}
|
||||
,{"初犊战士 HP+10",31,10,0,0,0,0,0,0,0,0}
|
||||
,{"圣灵勇士 HP+15",32,15,0,0,0,0,0,0,0,0}
|
||||
,{"玛丽那丝英雄 HP+20",33,20,0,0,0,0,0,0,0,0}
|
||||
,{"萨姆吉尔英雄 HP+25",34,25,0,0,0,0,0,0,0,0}
|
||||
,{"萨伊那斯使者 HP+30",35,30,0,0,0,0,0,0,0,0}
|
||||
,{"尼斯大陆英雄 HP+100",36,100,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data();
|
||||
end
|
188
服务器端lua文件/ablua/freecomplianceparameter.lua
Normal file
188
服务器端lua文件/ablua/freecomplianceparameter.lua
Normal file
@ -0,0 +1,188 @@
|
||||
--此lua应该是装备镶嵌和融合C相关,丸子看不懂!
|
||||
function getIntPart(x)
|
||||
if x <= 0 then
|
||||
return math.ceil(x);
|
||||
end
|
||||
if math.ceil(x) == x then
|
||||
return math.ceil(x);
|
||||
else
|
||||
return math.ceil(x) - 1;
|
||||
end
|
||||
end
|
||||
|
||||
function GetTtileBuff(id)
|
||||
if id >96 or id < 1 then
|
||||
return 0,0,0,0
|
||||
end
|
||||
return titleinfo[id][3],titleinfo[id][4],titleinfo[id][5],titleinfo[id][6],titleinfo[id][7],titleinfo[id][8],titleinfo[id][9],titleinfo[id][10],titleinfo[id][11]
|
||||
end
|
||||
|
||||
function FreeComplianceParameter( charaindex )
|
||||
if char.getInt(charaindex, "类型") == 3 then
|
||||
local data= char.getChar(charaindex,"祝福状态")
|
||||
if data~="" then
|
||||
local hp = other.atoi(other.getString(data, "|", 1))
|
||||
local at = other.atoi(other.getString(data, "|", 2))
|
||||
local df = other.atoi(other.getString(data, "|", 3))
|
||||
local dx = other.atoi(other.getString(data, "|", 4))
|
||||
|
||||
char.setWorkInt(charaindex, "最大HP", char.getWorkInt(charaindex, "最大HP") + hp)
|
||||
char.setWorkInt(charaindex, "攻击力", char.getWorkInt(charaindex, "攻击力") + at)
|
||||
char.setWorkInt(charaindex, "防御力", char.getWorkInt(charaindex, "防御力") + df)
|
||||
char.setWorkInt(charaindex, "敏捷力", char.getWorkInt(charaindex, "敏捷力") + dx)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
if char.getInt(charaindex, "类型") == 1 then
|
||||
local itemindex = char.getItemIndex(charaindex,6)
|
||||
if itemindex > 0 then
|
||||
local data1 = item.getChar(itemindex, "字段")
|
||||
local attrate = other.atoi(other.getString(data1, "|", 1))
|
||||
local defrate = other.atoi(other.getString(data1, "|", 2))
|
||||
local dexrate = other.atoi(other.getString(data1, "|", 3))
|
||||
char.setWorkInt(charaindex, "攻击力", math.floor(char.getWorkInt(charaindex, "攻击力") * (100+attrate)/100))
|
||||
char.setWorkInt(charaindex, "防御力", math.floor(char.getWorkInt(charaindex, "防御力") * (100+defrate)/100))
|
||||
char.setWorkInt(charaindex, "敏捷力", math.floor(char.getWorkInt(charaindex, "敏捷力") * (100+dexrate)/100))
|
||||
char.setWorkInt(charaindex, "最大HP", char.getWorkInt(charaindex, "最大HP") + 150)
|
||||
end
|
||||
|
||||
for i = 1,96 do
|
||||
if char.getCharNewTitleMode(charaindex,i-1)== 1 then
|
||||
temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,temp9 = GetTtileBuff(i)
|
||||
addhp = addhp + temp1
|
||||
addat = addat + temp2
|
||||
adddf = adddf + temp3
|
||||
adddx = adddx + temp4
|
||||
addpo = addpo + temp5
|
||||
addpa = addpa + temp6
|
||||
addsl = addsl + temp7
|
||||
addst = addst + temp8
|
||||
addco = addco + temp9
|
||||
end
|
||||
end
|
||||
char.setWorkInt(charaindex, "最大HP", char.getWorkInt(charaindex, "最大HP") + addhp)
|
||||
char.setWorkInt(charaindex, "攻击力", char.getWorkInt(charaindex, "攻击力") + addat)
|
||||
char.setWorkInt(charaindex, "防御力", char.getWorkInt(charaindex, "防御力") + adddf)
|
||||
char.setWorkInt(charaindex, "敏捷力", char.getWorkInt(charaindex, "敏捷力") + adddx)
|
||||
char.setWorkInt(charaindex, "毒抗附加", addpo)
|
||||
char.setWorkInt(charaindex, "麻抗附加", addpa)
|
||||
char.setWorkInt(charaindex, "睡抗附加", addsl)
|
||||
char.setWorkInt(charaindex, "石抗附加", addst)
|
||||
char.setWorkInt(charaindex, "混抗附加", addco)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function data()
|
||||
titleinfo = { --描述 序号 体 攻 防 敏 毒 麻 睡 石 混
|
||||
{"大地的精灵 防+5",1,0,0,5,0,0,0,0,0,0}
|
||||
,{"水的精灵 HP+20",2,20,0,0,0,0,0,0,0,0}
|
||||
,{"火炎的精灵 攻+5",3,0,5,0,0,0,0,0,0,0}
|
||||
,{"疾风的精灵 敏+5",4,0,0,0,5,0,0,0,0,0}
|
||||
,{"奥萝拉的精灵 全+1",5,1,1,1,1,0,0,0,0,0}
|
||||
,{"彩虹的精灵 全+2",6,2,2,2,2,0,0,0,0,0}
|
||||
,{"初心使者 HP+10",7,10,0,0,0,0,0,0,0,0}
|
||||
,{"无名的旅人 全+2",8,2,2,2,2,0,0,0,0,0}
|
||||
,{"路边的落叶 全+4",9,4,4,4,4,0,0,0,0,0}
|
||||
,{"水面的小草 全+6",10,6,6,6,6,0,0,0,0,0}
|
||||
,{"呢喃的歌声 全+8",11,8,8,8,8,0,0,0,0,0}
|
||||
,{"地上的月影 全+10",12,10,10,10,10,0,0,0,0,0}
|
||||
,{"奔跑的春风 全+12",13,12,12,12,12,0,0,0,0,0}
|
||||
,{"苍穹的风云 全+14",14,14,14,14,14,0,0,0,0,0}
|
||||
,{"摇曳的金星 全+16",15,16,16,16,16,0,0,0,0,0}
|
||||
,{"欢喜的慈雨 全+18",16,18,18,18,18,0,0,0,0,0}
|
||||
,{"蕴含的太阳 全+20",17,20,20,20,20,0,0,0,0,0}
|
||||
,{"敬畏的寂静 全+30",18,30,30,30,30,0,0,0,0,0}
|
||||
,{"精靈封印者 攻+5",19,0,5,0,0,0,0,0,0,0}
|
||||
,{"五转轮回 防+20",20,0,0,20,0,0,0,0,0,0}
|
||||
,{"盗贼讨伐者 攻+5",21,0,5,0,0,0,0,0,0,0}
|
||||
,{"盗贼帮众 混乱抗性+5",22,0,0,0,0,0,0,0,0,5}
|
||||
,{"夺宝奇兵 石化抗性+5",23,0,0,0,0,0,0,0,5,0}
|
||||
,{"勇闯夺宝岛 睡抗性+5",24,0,0,0,0,0,0,5,0,0}
|
||||
,{"合成达人 敏+5",25,0,0,0,5,0,0,0,0,0}
|
||||
,{"合成高手 敏+3",26,0,0,0,3,0,0,0,0,0}
|
||||
,{"练宠达人 攻+5",27,0,5,0,0,0,0,0,0,0}
|
||||
,{"练宠高手 攻+3",28,0,3,0,0,0,0,0,0,0}
|
||||
,{"任务达人 防+5",29,0,0,5,0,0,0,0,0,0}
|
||||
,{"任务高手 防+3",30,0,0,3,0,0,0,0,0,0}
|
||||
,{"初犊战士 HP+10",31,10,0,0,0,0,0,0,0,0}
|
||||
,{"圣灵勇士 HP+15",32,15,0,0,0,0,0,0,0,0}
|
||||
,{"玛丽那丝英雄 HP+20",33,20,0,0,0,0,0,0,0,0}
|
||||
,{"萨姆吉尔英雄 HP+25",34,25,0,0,0,0,0,0,0,0}
|
||||
,{"萨伊那斯使者 HP+30",35,30,0,0,0,0,0,0,0,0}
|
||||
,{"尼斯大陆英雄 HP+100",36,100,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
,{"","",0,0,0,0,0,0,0,0,0}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
75
服务器端lua文件/ablua/freelogincheck.lua
Normal file
75
服务器端lua文件/ablua/freelogincheck.lua
Normal file
@ -0,0 +1,75 @@
|
||||
--登录过程读取和验证
|
||||
function FreeLoginCheck(fd)
|
||||
local mun = 0
|
||||
local maxnum = 0
|
||||
local maxplayer = config.getFdnum() - 1
|
||||
local mac = net.getMac(fd)
|
||||
local ip = net.getIP(fd)
|
||||
|
||||
if mac == "" then
|
||||
lssproto.CharList(fd, "由于你使用非本服的认可的程序进入游戏,所以禁止你的登陆!")
|
||||
return 0
|
||||
end
|
||||
if string.len(mac) < 32 then
|
||||
lssproto.CharList(fd, "由于你使用非本服的认可的程序进入游戏,所以禁止你的登陆!")
|
||||
return 0
|
||||
end
|
||||
local key = other.getString(mac, "-", 1)
|
||||
if key ~= "ver100" then
|
||||
lssproto.CharList(fd, "由于你的版本过旧,请更新后再进入游戏!")
|
||||
return 0
|
||||
end
|
||||
|
||||
local mainmac = other.getString(mac, "-", 2)
|
||||
|
||||
maxnum = 2
|
||||
for i = 5, maxplayer do
|
||||
if net.getUse(i) == 1 then
|
||||
if mac == net.getMac(i) then
|
||||
mun = mun + 1
|
||||
if mun > maxnum then
|
||||
lssproto.CharList(fd, "你的游戏账号登陆已以达" .. mun - 1 .. "个,请不要过量进入游戏!")
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
token = "SELECT count(*) FROM `CSAlogin` "
|
||||
.. " WHERE `MAC` = '" .. mac .. "' and `Online` > 0"
|
||||
ret = sasql.query(token)
|
||||
local totalnum = 1
|
||||
if ret == 1 then
|
||||
sasql.free_result()
|
||||
sasql.store_result()
|
||||
num = sasql.num_rows()
|
||||
if num > 0 then
|
||||
sasql.fetch_row(0)
|
||||
onlinenum = other.atoi(sasql.data(1))
|
||||
if onlinenum > totalnum then
|
||||
lssproto.CharList(fd, "您的游戏登录账号数量已达上限,请不要过量进入游戏。")
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
||||
|
||||
function CheckNologin(mac)
|
||||
for j=1,table.getn(nologin) do
|
||||
if mac==nologin[j] then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function data()
|
||||
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
22
服务器端lua文件/ablua/freemodeexp.lua
Normal file
22
服务器端lua文件/ablua/freemodeexp.lua
Normal file
@ -0,0 +1,22 @@
|
||||
function FreeModeExp( charindex, getexp, modexp )
|
||||
local exp = getexp*config.getBattleexp() + ((getexp*modexp*2)/100)
|
||||
local fmmap = char.getWorkInt(charindex,"소痢뒈暠")
|
||||
|
||||
if char.getInt(charindex,"소痢뒈貫")>0 and char.getInt(charindex,"소痢뒈貫")~=2 then
|
||||
if char.getChar(charindex, "소痢") == other.getString(family.ShowPointListArray(0), "|", 6) then
|
||||
exp = math.floor(exp*1.2)
|
||||
elseif char.getChar(charindex, "소痢") == other.getString(family.ShowPointListArray(1), "|", 6) then
|
||||
exp = math.floor(exp*1.2)
|
||||
end
|
||||
end
|
||||
|
||||
return exp
|
||||
end
|
||||
|
||||
function data()
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
end
|
107
服务器端lua文件/ablua/freesamenu.lua
Normal file
107
服务器端lua文件/ablua/freesamenu.lua
Normal file
@ -0,0 +1,107 @@
|
||||
function FreeSaMenu(meindex, index)
|
||||
-- char.TalkToCli(meindex, -1, char.getWorkInt(meindex,"NPC临时3"), "绿色")
|
||||
local 战模 = char.getWorkInt(meindex,"战斗");
|
||||
parameter = {meindex}
|
||||
if index == 11 then
|
||||
if 战模 ==0 then
|
||||
char.Encounter(meindex)
|
||||
char.TalkToCli(meindex, -1, "开启原地遇敌!", "红色")
|
||||
else
|
||||
char.TalkToCli(meindex, -1, "您已经战斗中!", "红色")
|
||||
end
|
||||
elseif index == 12 then
|
||||
char.ClearEncounter(meindex);
|
||||
char.TalkToCli(meindex, -1, "关闭原地遇敌!", "红色")
|
||||
elseif index == 13 then
|
||||
if 战模 == 0 then
|
||||
other.CallFunction("CheckTalked", "data/ablua/npc/check/check.lua", parameter)
|
||||
end
|
||||
-- other.CallFunction("ShowHead", "data/ablua/npc/vipshop/vipshop.lua", parameter)
|
||||
elseif index == 14 then
|
||||
other.CallFunction("QueryMissionTalked", "data/ablua/npc/querymission/querymission.lua", parameter)
|
||||
elseif index == 16 then
|
||||
other.CallFunction("FreeDataInfoShow", "data/ablua/freedatainfoshow.lua", parameter)
|
||||
elseif index == 17 then
|
||||
lssproto.SaMenu(meindex, index, "http://www.stoneage.es")
|
||||
elseif index == 18 then
|
||||
lssproto.SaMenu(meindex, index, "http://www.stoneage.es/forum.php")
|
||||
elseif index == 19 then
|
||||
lssproto.SaMenu(meindex, index, "http://www.stoneage.es/pay.php")
|
||||
elseif index == 20 then
|
||||
char.setWorkInt(meindex,"NPC临时3",1)
|
||||
other.CallFunction("OnlineService", "data/ablua/npc/onlineservice/onlineservice.lua", parameter)
|
||||
elseif index == 21 then
|
||||
lssproto.SaMenu(meindex, index, "http://www.stoneage.es/forum.php?mod=viewthread&tid=54&extra=page%3D1")
|
||||
elseif index == 22 then
|
||||
lssproto.SaMenu(meindex, index, "http://www.stoneage.es/bbs/forum.php?mod=viewthread&tid=226")
|
||||
elseif index == 30 then--切换队长
|
||||
if char.getWorkInt(meindex, "组队") == 1 then
|
||||
转移动伍[meindex]={};
|
||||
local 队员名 = "";
|
||||
local 计数=0;
|
||||
for i=1,4 do
|
||||
local 队员索引 = char.getWorkInt(meindex, "队员" .. i+1)
|
||||
if char.check(队员索引) == 1 then
|
||||
计数 = 计数 + 1;
|
||||
转移动伍[meindex][计数] = 队员索引;
|
||||
队员名 = string.format("%s %s\n",队员名,char.getChar(转移动伍[meindex][计数],"名字"));
|
||||
end
|
||||
end
|
||||
local 内容 = "1 请选择新的队长\n"..队员名;
|
||||
lssproto.windows(meindex, 2, 8, 0, char.getWorkInt( npcindex, "对象"), 内容)
|
||||
else
|
||||
char.TalkToCli(meindex, -1, "该功能需要队长权限", "红色")
|
||||
end
|
||||
else
|
||||
char.TalkToCli(meindex, -1, "暂未开放", "红色")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function WindowTalked( NPC索引, 玩家索引, 序号, 按钮, 数据)
|
||||
if 序号 == 0 then
|
||||
local 选项 = tonumber(数据);
|
||||
if 选项 > 0 and 选项 < 5 then
|
||||
char.DischargeParty(玩家索引,0);
|
||||
char.JoinParty(转移动伍[玩家索引][选项],玩家索引,0);
|
||||
char.TalkToCli(转移动伍[玩家索引][选项], -1, "您的队友【"..char.getChar(玩家索引,"名字").."】把队长权力交给您!", "黄色")
|
||||
char.TalkToCli(玩家索引, -1, "您成功把队长权力交给队友【"..char.getChar(转移动伍[玩家索引][选项],"名字").."】", "黄色");
|
||||
for i =1,table.getn(转移动伍[玩家索引]) do
|
||||
if i ~= 选项 then
|
||||
char.JoinParty(转移动伍[玩家索引][选项],转移动伍[玩家索引][i],0);
|
||||
end
|
||||
end
|
||||
char.Encounter(转移动伍[玩家索引][选项])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Create(name, metamo, floor, x, y, dir)
|
||||
npcindex = npc.CreateNpc(name, metamo, floor, x, y, dir)
|
||||
char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")
|
||||
end
|
||||
|
||||
function data()
|
||||
转移动伍={};
|
||||
--[[
|
||||
|
||||
11 原地遇敌
|
||||
12 取消原地
|
||||
13 支票制作
|
||||
14 任务查询
|
||||
16 个人信息
|
||||
20 卡密使用
|
||||
21 任务攻略
|
||||
22 新手帮助
|
||||
|
||||
|
||||
]]
|
||||
|
||||
|
||||
end
|
||||
|
||||
function main()
|
||||
data()
|
||||
Create("查询宠物NPC临时", 100000, 777, 20, 21, 4);
|
||||
end
|
||||
|
47
服务器端lua文件/ablua/item/attcteffect.lua
Normal file
47
服务器端lua文件/ablua/item/attcteffect.lua
Normal file
@ -0,0 +1,47 @@
|
||||
记录道具记录={};
|
||||
|
||||
|
||||
function WindowTalked ( meindex, charaindex, seqno, select, data)
|
||||
if seqno == 1 then
|
||||
local 宠物位置 = other.atoi(data);
|
||||
if 宠物位置 >=1 and 宠物位置<=4 then
|
||||
local 宠物索引 = char.getCharPet(charaindex, 宠物位置-1);
|
||||
if char.check(宠物索引) == 1 then
|
||||
记录道具记录[charaindex][3] = 宠物索引;
|
||||
local 对话内容 = "是否让 "..char.getChar(宠物索引,"名字") .." 学习该特效!"
|
||||
lssproto.windows(charaindex, "对话框", "确定|取消", 2, char.getWorkInt( npcindex, "对象"),对话内容 )
|
||||
end
|
||||
end
|
||||
elseif seqno == 2 then
|
||||
if select == 1 then
|
||||
local 攻击特效ID = other.atoi(item.getChar(记录道具记录[charaindex][1], "字段"))
|
||||
char.setInt(记录道具记录[charaindex][3],"攻击特效",攻击特效ID);
|
||||
char.DelItem(charaindex, 记录道具记录[charaindex][2]);
|
||||
char.TalkToCli(charaindex, -1, "您的宠物"..char.getChar(记录道具记录[charaindex][3],"名字").."习得攻击特效,快去体验吧!", "红色")
|
||||
记录道具记录[charaindex]=nil;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function attackeffect(itemindex, charaindex, toindex, haveitemindex)
|
||||
记录道具记录[charaindex]={};
|
||||
记录道具记录[charaindex][1]=itemindex;
|
||||
记录道具记录[charaindex][2]=haveitemindex;
|
||||
lssproto.windows(charaindex, "宠物框", "确定", 1, char.getWorkInt( npcindex, "对象"), "")
|
||||
end
|
||||
|
||||
function Create(name, metamo, floor, x, y, dir)
|
||||
--创建NPC(NPC名字,图像号,地图号,坐标X,坐标Y,方向号)将返回一个NPC索引
|
||||
npcindex = npc.CreateNpc(name, metamo, floor, x, y, dir)
|
||||
char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")
|
||||
end
|
||||
|
||||
|
||||
function data()
|
||||
end
|
||||
|
||||
function main()
|
||||
Create("攻击特效NPC",100000,777,20,20,3);
|
||||
|
||||
item.addLUAListFunction( "ITEM_ATTACKEFFECT", "attackeffect", "")
|
||||
end
|
38
服务器端lua文件/ablua/item/chartitle.lua
Normal file
38
服务器端lua文件/ablua/item/chartitle.lua
Normal file
@ -0,0 +1,38 @@
|
||||
function titleuse(itemindex, charaindex, toindex, haveitemindex)
|
||||
local id = other.atoi(item.getChar(itemindex, "字段"))
|
||||
if GetCharNewTitleMode(charaindex,id -1)== 1 then
|
||||
char.TalkToCli(charaindex, -1, "您已拥有该称号!", "黄色")
|
||||
return
|
||||
end
|
||||
local titlename = item.getChar(itemindex,"显示名")
|
||||
char.DelItem(charaindex, haveitemindex)
|
||||
char.setCharNewTitleMode(charaindex,id -1)
|
||||
-- char.setInt(charaindex, "称号状态2", 0)
|
||||
--- char.setInt(charaindex, "称号状态3", 0)
|
||||
|
||||
char.TalkToCli(charaindex, -1, "恭喜你获得新称号"..titlename.."!", "黄色")
|
||||
char.talkToServer(-1, "[功成名就]恭喜勇者 " .. char.getChar(charaindex, "名字") .. " 获得"..titlename.."称号", "黄色")
|
||||
local param = {charaindex}
|
||||
other.CallFunction("TitleListSend", "data/ablua/freechartitle.lua", param)
|
||||
end
|
||||
|
||||
function GetCharNewTitleMode(charaindex,id)
|
||||
if id< 32 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态1"),id)~= 0 then
|
||||
return 1
|
||||
end
|
||||
elseif id< 64 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态2"),id-32)~= 0 then
|
||||
return 1
|
||||
end
|
||||
elseif id< 96 then
|
||||
if other.DataAndData(char.getInt(charaindex,"称号状态3"),id-64)~= 0 then
|
||||
return 1
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function main()
|
||||
item.addLUAListFunction( "ITEM_TITLE", "titleuse", "")
|
||||
end
|
26
服务器端lua文件/ablua/item/itemMax.lua
Normal file
26
服务器端lua文件/ablua/item/itemMax.lua
Normal file
@ -0,0 +1,26 @@
|
||||
function useitemmax(itemindex, charaindex, toindex, haveitemindex)
|
||||
|
||||
local data = other.atoi(item.getChar(itemindex, "俚뙈"))
|
||||
if (char.getInt(charaindex,"돛야으榴檄")~=2 and data == 3)
|
||||
or (char.getInt(charaindex,"돛야으榴檄")~=0 and data == 2) then
|
||||
char.TalkToCli(charaindex, -1,"헝痰宮뚤壇돨윈嵐돛야윱윈嵐관범!", "븐<EFBFBD>")
|
||||
return
|
||||
end
|
||||
if char.getInt(charaindex,"돛야으榴檄") == 2 then
|
||||
char.setInt(charaindex,"돛야으榴檄",6);
|
||||
char.DelItem(charaindex, haveitemindex)
|
||||
char.TalkToCli(charaindex, -1,"묜毆퀭역폘뒤힛으돛야으!", "뼝<EFBFBD>")
|
||||
char.UpCahrData(charaindex,"p");
|
||||
elseif char.getInt(charaindex,"돛야으榴檄") == 6 then
|
||||
char.TalkToCli(charaindex, -1,"퀭綠쒔홍꼬역렴죄!", "뼝<EFBFBD>")
|
||||
else
|
||||
char.DelItem(charaindex, haveitemindex)
|
||||
char.setInt(charaindex,"돛야으榴檄",2);
|
||||
char.TalkToCli(charaindex, -1,"묜毆퀭역폘뒤랗으돛야으!", "뼝<EFBFBD>")
|
||||
char.UpCahrData(charaindex,"p");
|
||||
end
|
||||
end
|
||||
|
||||
function main()
|
||||
item.addLUAListFunction( "ITEM_USEITEMMAX", "useitemmax", "")
|
||||
end
|
15
服务器端lua文件/ablua/item/opentrump.lua
Normal file
15
服务器端lua文件/ablua/item/opentrump.lua
Normal file
@ -0,0 +1,15 @@
|
||||
function opentrump(itemindex, charaindex, toindex, haveitemindex)
|
||||
|
||||
if char.getInt(charaindex,"法宝状态")>0 then
|
||||
char.TalkToCli(charaindex, -1,"您已经开启了法宝装备栏!", "黄色")
|
||||
return
|
||||
end
|
||||
char.DelItem(charaindex, haveitemindex)
|
||||
char.setInt(charaindex,"法宝状态",1);
|
||||
char.UpCahrData(charaindex,"p");
|
||||
char.TalkToCli(charaindex, -1,"您的法宝装备栏已成功开启!", "黄色")
|
||||
end
|
||||
|
||||
function main()
|
||||
item.addLUAListFunction( "ITEM_OPENTRUMP", "opentrump", "")
|
||||
end
|
29
服务器端lua文件/ablua/magic/addpaypoint.lua
Normal file
29
服务器端lua文件/ablua/magic/addpaypoint.lua
Normal file
@ -0,0 +1,29 @@
|
||||
function addpay(charaindex, data)
|
||||
local value = other.atoi(other.getString(data, " ", 1))
|
||||
local cdkey = other.getString(data, " ", 2)
|
||||
if cdkey == "" then
|
||||
local oldvalue = sasql.getPayPoint(charaindex)
|
||||
sasql.setPayPoint(charaindex, sasql.getPayPoint(charaindex) + value)
|
||||
char.TalkToCli(charaindex, -1, "成功将账号[" .. char.getChar(charaindex, "账号") .. "]名字[" .. char.getChar(charaindex, "名字") .. "]个人充值积分原" .. oldvalue .. "增到为" .. sasql.getPayPoint(charaindex), "青色")
|
||||
else
|
||||
local maxplayer = char.getPlayerMaxNum()
|
||||
local cimelia = other.atoi(data)
|
||||
for i = 0, maxplayer - 1 do
|
||||
if char.check(i) == 1 then
|
||||
if char.getChar(i, "账号") == cdkey then
|
||||
local oldvalue = sasql.getPayPoint(i)
|
||||
sasql.setPayPoint(i, sasql.getPayPoint(i) + value)
|
||||
char.TalkToCli(charaindex, -1, "成功将账号[" .. char.getChar(i, "账号") .. "]名字[" .. char.getChar(i, "名字") .. "]个人充值积分原" .. oldvalue .. "增到为" .. sasql.getPayPoint(i), "青色")
|
||||
char.TalkToCli(i, -1, "GM[" .. char.getChar(charaindex, "名字") .. "]将你的个人充值积分原" .. oldvalue .. "增到为" .. sasql.getPayPoint(i), "青色")
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function main()
|
||||
minute = 0
|
||||
magic.addLUAListFunction("充值积分", "addpay", "", 1, "[]")
|
||||
end
|
||||
|
29
服务器端lua文件/ablua/magic/addvippoint.lua
Normal file
29
服务器端lua文件/ablua/magic/addvippoint.lua
Normal file
@ -0,0 +1,29 @@
|
||||
function addvip(charaindex, data)
|
||||
local value = other.atoi(other.getString(data, " ", 1))
|
||||
local cdkey = other.getString(data, " ", 2)
|
||||
if cdkey == "" then
|
||||
local oldvalue = sasql.getVipPoint(charaindex)
|
||||
sasql.setVipPoint(charaindex, sasql.getVipPoint(charaindex) + value)
|
||||
char.TalkToCli(charaindex, -1, "成功将账号[" .. char.getChar(charaindex, "账号") .. "]名字[" .. char.getChar(charaindex, "名字") .. "]个人会员点原" .. oldvalue .. "增到为" .. sasql.getVipPoint(charaindex), "青色")
|
||||
else
|
||||
local maxplayer = char.getPlayerMaxNum()
|
||||
local cimelia = other.atoi(data)
|
||||
for i = 0, maxplayer - 1 do
|
||||
if char.check(i) == 1 then
|
||||
if char.getChar(i, "账号") == cdkey then
|
||||
local oldvalue = sasql.getVipPoint(i)
|
||||
sasql.setVipPoint(i, sasql.getVipPoint(i) + value)
|
||||
char.TalkToCli(charaindex, -1, "成功将账号[" .. char.getChar(i, "账号") .. "]名字[" .. char.getChar(i, "名字") .. "]个人会员点原" .. oldvalue .. "增到为" .. sasql.getVipPoint(i), "青色")
|
||||
char.TalkToCli(i, -1, "GM[" .. char.getChar(charaindex, "名字") .. "]将你的个人会员点原" .. oldvalue .. "增到为" .. sasql.getVipPoint(i), "青色")
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function main()
|
||||
minute = 0
|
||||
magic.addLUAListFunction("会员点", "addvip", "", 1, "[]")
|
||||
end
|
||||
|
22
服务器端lua文件/ablua/magic/announce.lua
Normal file
22
服务器端lua文件/ablua/magic/announce.lua
Normal file
@ -0,0 +1,22 @@
|
||||
function NetLoopFunction()
|
||||
if minute > 0 then
|
||||
if math.mod(looptime , minute) == 0 then
|
||||
char.talkToAllServer("[温馨提示]" .. message)
|
||||
end
|
||||
|
||||
looptime = looptime + 1
|
||||
end
|
||||
end
|
||||
|
||||
function announce(charaindex, data)
|
||||
message = other.getString(data, " ", 1)
|
||||
char.talkToAllServer("[温馨提示]" .. message)
|
||||
minute = other.atoi(other.getString(data, " ", 2))
|
||||
looptime = 1
|
||||
end
|
||||
|
||||
function main()
|
||||
minute = 0
|
||||
magic.addLUAListFunction("公告", "announce", "", 1, "[公告 内容 间隔(分钟)")
|
||||
end
|
||||
|
9
服务器端lua文件/ablua/magic/attackeffect.lua
Normal file
9
服务器端lua文件/ablua/magic/attackeffect.lua
Normal file
@ -0,0 +1,9 @@
|
||||
function 攻击特效(charaindex, data)
|
||||
local 特效动画ID = other.atoi(other.getString(data, " ", 2));
|
||||
char.setWorkInt(char.getCharPet(charaindex,0),"攻击特效",特效动画ID);
|
||||
--char.setWorkInt(charaindex,"攻击特效",特效动画ID);
|
||||
end
|
||||
|
||||
function main()
|
||||
magic.addLUAListFunction("攻击特效", "攻击特效", "", 1, "[gm 攻击特效 动画编号]")
|
||||
end
|
101
服务器端lua文件/ablua/other/familybadge/data.txt
Normal file
101
服务器端lua文件/ablua/other/familybadge/data.txt
Normal file
@ -0,0 +1,101 @@
|
||||
59000
|
||||
59001
|
||||
59002
|
||||
59003
|
||||
59004
|
||||
59005
|
||||
59006
|
||||
59007
|
||||
59008
|
||||
59009
|
||||
59010
|
||||
59011
|
||||
59012
|
||||
59013
|
||||
59014
|
||||
59015
|
||||
59016
|
||||
59017
|
||||
59018
|
||||
59019
|
||||
59020
|
||||
59021
|
||||
59022
|
||||
59023
|
||||
59024
|
||||
59025
|
||||
59026
|
||||
59027
|
||||
59028
|
||||
59029
|
||||
59030
|
||||
59031
|
||||
59032
|
||||
59033
|
||||
59034
|
||||
59035
|
||||
59036
|
||||
59037
|
||||
59038
|
||||
59039
|
||||
59040
|
||||
59041
|
||||
59042
|
||||
59043
|
||||
59044
|
||||
59045
|
||||
59046
|
||||
59047
|
||||
59048
|
||||
59049
|
||||
59050
|
||||
59051
|
||||
59052
|
||||
59053
|
||||
59054
|
||||
59055
|
||||
59056
|
||||
59057
|
||||
59058
|
||||
59059
|
||||
59060
|
||||
59061
|
||||
59062
|
||||
59063
|
||||
59064
|
||||
59065
|
||||
59066
|
||||
59067
|
||||
59068
|
||||
59069
|
||||
59070
|
||||
59071
|
||||
59072
|
||||
59073
|
||||
59074
|
||||
59075
|
||||
59076
|
||||
59077
|
||||
59078
|
||||
59079
|
||||
59080
|
||||
59081
|
||||
59082
|
||||
59083
|
||||
59084
|
||||
59085
|
||||
59086
|
||||
59087
|
||||
59088
|
||||
59089
|
||||
59090
|
||||
59091
|
||||
59092
|
||||
59093
|
||||
59094
|
||||
59095
|
||||
59096
|
||||
59097
|
||||
59098
|
||||
59099
|
||||
59100
|
55
服务器端lua文件/ablua/other/familybadge/init.lua
Normal file
55
服务器端lua文件/ablua/other/familybadge/init.lua
Normal file
@ -0,0 +1,55 @@
|
||||
local 家族徽章数据={};
|
||||
local 徽章内容="";
|
||||
|
||||
|
||||
|
||||
function 字符串切割(数据,切割字符)
|
||||
数据 = 数据 .. 切割字符
|
||||
local t = {}
|
||||
local 目前位置 = 1
|
||||
repeat
|
||||
local nexti = string.find(数据, 切割字符, 目前位置)
|
||||
table.insert(t, string.sub(数据, 目前位置,nexti-string.len(切割字符)))
|
||||
目前位置 = nexti + string.len(切割字符)
|
||||
until 目前位置 > string.len(数据)
|
||||
return t
|
||||
end
|
||||
|
||||
|
||||
function LoadFamilyBadge(fd)
|
||||
lssproto.FamilyBadge(fd,徽章内容);
|
||||
end
|
||||
|
||||
function 读取家族徽章数据()
|
||||
local 文件号;
|
||||
local 数据,数量;
|
||||
文件号 = assert(io.open("./data/ablua/other/familybadge/data.txt", "r"))
|
||||
数据 = 文件号:read("*a"); -- 读取所有内容
|
||||
文件号:close();
|
||||
徽章内容 = 换徽章价格.."|"
|
||||
if 数据 ~= "" then
|
||||
数量 = 0;
|
||||
数据 = 字符串切割(数据,"\n");
|
||||
for b = 1,table.getn(数据) do
|
||||
if string.sub(数据[b],1,1) ~= "#" then
|
||||
数量 = 数量 + 1;
|
||||
家族徽章数据[数量] = tonumber(数据[b]);
|
||||
end
|
||||
end
|
||||
for b=1,table.getn(家族徽章数据) do
|
||||
if b~=table.getn(家族徽章数据) then
|
||||
徽章内容 = 徽章内容 .. 家族徽章数据[b].."|";
|
||||
else
|
||||
徽章内容 = 徽章内容 .. 家族徽章数据[b];
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function main()
|
||||
换徽章价格=1000;
|
||||
读取家族徽章数据();
|
||||
lssproto.GetFBData(家族徽章数据,换徽章价格);
|
||||
end
|
||||
main();
|
||||
|
12
服务器端lua文件/lua/init.lua
Normal file
12
服务器端lua文件/lua/init.lua
Normal file
@ -0,0 +1,12 @@
|
||||
function 脚本加载(路径)
|
||||
return dofile(路径);
|
||||
end
|
||||
|
||||
function 主函数()
|
||||
脚本加载("./data/lua/onlineshop/main.lua");
|
||||
--时间种子
|
||||
math.randomseed(os.time());
|
||||
end
|
||||
|
||||
主函数()
|
||||
|
256
服务器端lua文件/lua/onlineshop/main.lua
Normal file
256
服务器端lua文件/lua/onlineshop/main.lua
Normal file
@ -0,0 +1,256 @@
|
||||
function 字符串切割(数据,切割字符)
|
||||
数据 = 数据 .. 切割字符
|
||||
local t = {}
|
||||
local 目前位置 = 1
|
||||
repeat
|
||||
local nexti = string.find(数据, 切割字符, 目前位置)
|
||||
table.insert(t, string.sub(数据, 目前位置,nexti-string.len(切割字符)))
|
||||
目前位置 = nexti + string.len(切割字符)
|
||||
until 目前位置 > string.len(数据)
|
||||
return t
|
||||
end
|
||||
临时NPC索引 = {};
|
||||
--[[=========商城变量===========]]
|
||||
商城数据 = {};
|
||||
商城数据.最新上架={};
|
||||
商城数据.促销商品={};
|
||||
商城数据.消耗商品={};
|
||||
商城数据.道具商品={};
|
||||
商城数据.宠物商品={};
|
||||
|
||||
商城道具类型 = {{"爪",1},{"斧头",1},{"棍",1},{"枪",1},{"弓",1},{"盾",1},{"兜",1},{"凯",1},{"手环",1},{"乐器",1}
|
||||
,{"首饰",1},{"首饰",1},{"带子",1},{"耳环",1},{"鼻环",1},{"护身符",1},{"特殊",0},{"回旋标",1},{"投掷斧",1},{"投掷石",1}
|
||||
,{"未知",0},{"未知",0},{"未知",0},{"未知",0},{"腰带",1},{"盾",1},{"靴子",1},{"手套",1},{"使者信物",0},{"勇者信物",0},
|
||||
{"未知",0},{"未知",0},{"未知",0},{"未知",0},{"未知",0},{"未知",0},{"未知",0},{"未知",0}}
|
||||
|
||||
道具属性链接 = {{"攻击力",%道具_附攻%,1},
|
||||
{"防御力",%道具_附防%,1},
|
||||
{"敏捷力",%道具_附敏%,1},
|
||||
{"耐久力",%道具_附体%,1},
|
||||
{"气力",%道具_附气%,1},
|
||||
{"运气",%道具_附运%,1},
|
||||
{"魅力",%道具_附魅%,1},
|
||||
{"闪避",%道具_附避%,1},
|
||||
{"格挡",%道具_格档率%,1},
|
||||
{"攻序",%道具_攻序%,1},
|
||||
{"负重",%道具_负重%,1},
|
||||
{"命中",%道具_命中%,1},
|
||||
{"抗毒",%道具_毒耐%,1},
|
||||
{"抗麻",%道具_麻耐%,1},
|
||||
{"抗睡",%道具_睡耐%,1},
|
||||
{"抗石",%道具_石耐%,1},
|
||||
{"抗酒",%道具_酒耐%,1},
|
||||
{"抗混",%道具_混耐%,1},
|
||||
{"会心一击",%道具_附一击%,1}
|
||||
}--说明,常量,被除数(考虑到有些值需要除于100设置)
|
||||
--[[=========================================================================]]
|
||||
|
||||
function 商城NPC创建回调(NPC索引)
|
||||
人物.注册对话框回调("", "商城对话框回调", NPC索引)
|
||||
return true;
|
||||
end
|
||||
|
||||
function 创建商城NPC()
|
||||
读取商城数据();
|
||||
local 商品内容={};
|
||||
商品内容[1] = 商城数据解析(商城数据.最新上架,"道具");
|
||||
商品内容[2] = 商城数据解析(商城数据.促销商品,"道具");
|
||||
商品内容[3] = 商城数据解析(商城数据.消耗商品,"道具");
|
||||
商品内容[4] = 商城数据解析(商城数据.道具商品,"道具");
|
||||
商品内容[5] = 商城数据解析(商城数据.宠物商品,"宠物");
|
||||
系统.写商城数据(0,商品内容[1]);
|
||||
系统.写商城数据(1,商品内容[2]);
|
||||
系统.写商城数据(2,商品内容[3]);
|
||||
系统.写商城数据(3,商品内容[4]);
|
||||
系统.写商城数据(4,商品内容[5]);
|
||||
商品内容=nil;
|
||||
临时NPC索引.商城=系统.创建NPC("","商城NPC创建回调")
|
||||
end
|
||||
|
||||
function 商城写入日志(玩家索引,购物车数据,扣除点数,临时商城数据,玩家没扣除前点数)
|
||||
local 重新计算价格=0;
|
||||
local 写入日志内容;
|
||||
local 商城道具名="";
|
||||
for i=1,table.getn(购物车数据) do
|
||||
商城道具名 = 商城道具名 .. 道具.取模板数据(购物车数据[i][1],%道具_原名%).."*"..购物车数据[i][2].."("..临时商城数据[购物车数据[i][3]][2]*购物车数据[i][2]..")|";
|
||||
重新计算价格=重新计算价格+临时商城数据[购物车数据[i][3]][2]*购物车数据[i][2];
|
||||
end
|
||||
if 重新计算价格 > 扣除点数 then
|
||||
商城道具名 = 商城道具名.."#扣除价格产生异常"
|
||||
end
|
||||
写入日志内容 = string.format("玩家名:%s 计算商品的价格:%d 实际扣除点数:%d 没扣除金币前:%d 扣除后:%d\n购买商品:%s\n\n",Char.GetData(玩家索引,%对像_原名%),
|
||||
重新计算价格,扣除点数,玩家没扣除前点数,人物.取数据(玩家索引,%对像_VIP%),商城道具名);
|
||||
|
||||
文件号=assert(io.open("./data/lua/onlineshop/shoplog.txt", "a+"))
|
||||
文件号:write(写入日志内容); -- 读取所有内容
|
||||
文件号:close();
|
||||
end
|
||||
|
||||
function 商城对话框回调( NPC索引, 玩家索引, 序号, 按钮, 数据)
|
||||
--[[
|
||||
当按钮不为0的时候,玩家选择的是其它页数
|
||||
当为0的时候,数据中的内容分解
|
||||
道具索引,数量#道具索引,数量#
|
||||
]]
|
||||
if 按钮 == 0 then
|
||||
local 商城ID = 转整数(数据)
|
||||
if 商城ID == 1 then
|
||||
封包.发送对话框(玩家索引,1001,1,1,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|1",NPC索引)
|
||||
elseif 商城ID == 2 then
|
||||
封包.发送对话框(玩家索引,1001,2,2,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|2",NPC索引)
|
||||
elseif 商城ID == 3 then
|
||||
封包.发送对话框(玩家索引,1001,3,3,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|3",NPC索引)
|
||||
elseif 商城ID == 4 then
|
||||
封包.发送对话框(玩家索引,1001,4,4,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|4",NPC索引)
|
||||
elseif 商城ID == 5 then
|
||||
封包.发送对话框(玩家索引,1001,5,5,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|5",NPC索引)
|
||||
end
|
||||
elseif 数据 ~= "" then
|
||||
local 购物车数据 = 字符串切割(数据,"#");
|
||||
local 物品总数 = 0;
|
||||
local 物品总价 = 0;
|
||||
local 物品ID = {};
|
||||
local 临时商城数据;
|
||||
if 按钮 == 1 then
|
||||
临时商城数据 = 商城数据.最新上架;
|
||||
elseif 按钮 == 2 then
|
||||
临时商城数据 = 商城数据.促销商品;
|
||||
elseif 按钮 == 3 then
|
||||
临时商城数据 = 商城数据.消耗商品;
|
||||
elseif 按钮 == 4 then
|
||||
临时商城数据 = 商城数据.道具商品;
|
||||
elseif 按钮 == 5 then
|
||||
临时商城数据 = 商城数据.宠物商品;
|
||||
end
|
||||
for i=1,table.getn(购物车数据) do
|
||||
if 购物车数据[i] ~="" then
|
||||
local 购物车数据再分 = 字符串切割(购物车数据[i],"|");
|
||||
物品ID[i]={};
|
||||
物品ID[i][1] = 临时商城数据[转整数(购物车数据再分[1])][1];
|
||||
物品ID[i][2] = 转整数(购物车数据再分[2]);
|
||||
物品ID[i][3] = 转整数(购物车数据再分[1]);
|
||||
物品总价 = 物品总价 + 临时商城数据[物品ID[i][3]][2]*物品ID[i][2];
|
||||
物品总数 = 物品总数 + 物品ID[i][2];
|
||||
end
|
||||
end
|
||||
local 玩家彩币 = 人物.取数据(玩家索引,%对像_VIP%);
|
||||
if 玩家彩币 < 物品总价 then
|
||||
封包.说话(玩家索引,"系统:身上的金币不足。",%红色%);
|
||||
return;
|
||||
end
|
||||
if 人物.取道具空数量(玩家索引) < 物品总数 then
|
||||
封包.说话(玩家索引,"系统:身上的道具位不足。",%红色%);
|
||||
return;
|
||||
end
|
||||
人物.置数据(玩家索引,%对像_VIP%,玩家彩币-物品总价);
|
||||
for i=1,table.getn(物品ID) do
|
||||
封包.给道具(玩家索引,物品ID[i][1],物品ID[i][2]);
|
||||
end
|
||||
|
||||
商城写入日志(玩家索引,物品ID,物品总价,临时商城数据,玩家彩币);
|
||||
封包.说话(玩家索引,"系统:扣除"..物品总价.."金币!",%红色%);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function 商城数据解析(道具ID数据组,类型)
|
||||
local 返回数据 = "";
|
||||
if table.getn(道具ID数据组) < 1 then
|
||||
return "";
|
||||
end
|
||||
for 道具索引=1,table.getn(道具ID数据组) do
|
||||
local 道具ID = 道具ID数据组[道具索引][1];
|
||||
local 道具类型 = 道具.取模板数据(道具ID,%道具_类型%);
|
||||
local 道具图号 = 道具.取模板数据(道具ID,%道具_图号%);
|
||||
|
||||
返回数据 = string.format("%s%s|%d|%d|%d|道具类型:%s\n",返回数据,道具.取模板数据(道具ID,%道具_原名%),道具图号,道具图号,道具ID数据组[道具索引][2],商城道具类型[道具类型+1][1]);
|
||||
if 商城道具类型[道具类型+1][2]== 1 then
|
||||
if 道具.取模板数据(道具ID,%道具_MAX耐久%) == 0 then
|
||||
返回数据 = 返回数据.."耐久度:不会损坏\n\n"
|
||||
else
|
||||
返回数据 = string.format("%s耐久度:%d/%d\n\n",返回数据,math.ceil(道具.取模板数据(道具ID,%道具_耐久%)/100),math.ceil(道具.取模板数据(道具ID,%道具_MAX耐久%)/100));
|
||||
end
|
||||
for 道具属性索引 = 1,table.getn(道具属性链接) do --//遍历常用属性的值
|
||||
local 道具值 = 道具.取模板数据(道具ID,道具属性链接[道具属性索引][2]);
|
||||
if 道具值 ~= 0 then
|
||||
返回数据 = string.format("%s%s %s\n",返回数据,道具属性链接[道具属性索引][1],道具属性符号(道具值));
|
||||
end
|
||||
end
|
||||
if 道具.取模板数据(道具ID,%道具_精灵%) >= 0 then
|
||||
返回数据 = string.format("%s\n精灵 %s",返回数据,技能.取精灵技能数据(道具.取模板数据(道具ID,%道具_精灵%),%精灵_名%));
|
||||
end
|
||||
返回数据 = 返回数据.."#";
|
||||
else
|
||||
返回数据 = 返回数据..道具.取模板数据(道具ID,%道具_说明%).."#";
|
||||
end
|
||||
end
|
||||
return 返回数据;
|
||||
end
|
||||
|
||||
function 道具属性符号(道具属性)--//增加道具值正负符号
|
||||
if 道具属性 > 0 then
|
||||
return "+"..道具属性;
|
||||
else
|
||||
return 道具属性;
|
||||
end
|
||||
end
|
||||
|
||||
function 职业需求(道具ID)--返回道具要求职业
|
||||
local 道具职业 = 道具.取模板数据(道具ID,%道具_职业%);
|
||||
if 道具职业 == 0 then
|
||||
return "(通用)"
|
||||
elseif 道具职业 == 1 then
|
||||
return "(白狼勇士)"
|
||||
elseif 道具职业 == 2 then
|
||||
return "(暗灵法师)"
|
||||
elseif 道具职业 == 3 then
|
||||
return "(追猎者)"
|
||||
end
|
||||
end
|
||||
|
||||
function ITRF_NEWSHOP(玩家索引)--相本回调 改为 新商城
|
||||
--[[
|
||||
商城数据说明
|
||||
人物道具空数量|彩币|页数|数据
|
||||
]]
|
||||
if 人物.取数据(玩家索引,%对像_战模%) == 0 and 人物.取数据(玩家索引,%对像_摆摊%) <= 0 then
|
||||
封包.发送对话框(玩家索引,1001,1,1,人物.取道具空数量(玩家索引).."|"..人物.取数据(玩家索引,%对像_VIP%).."|1",临时NPC索引.商城)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function 读取商城数据()
|
||||
local 文件号;
|
||||
local 数据,数量,临时商城数据;
|
||||
for i =1,5 do
|
||||
if i == 1 then
|
||||
临时商城数据 = 商城数据.最新上架;
|
||||
elseif i == 2 then
|
||||
临时商城数据 = 商城数据.促销商品;
|
||||
elseif i == 3 then
|
||||
临时商城数据 = 商城数据.消耗商品;
|
||||
elseif i == 4 then
|
||||
临时商城数据 = 商城数据.道具商品;
|
||||
elseif i == 5 then
|
||||
临时商城数据 = 商城数据.宠物商品;
|
||||
end
|
||||
文件号 = assert(io.open("./data/lua/onlineshop/shop"..i..".txt", "r"))
|
||||
数据 = 文件号:read("*a"); -- 读取所有内容
|
||||
文件号:close();
|
||||
if 数据 ~= "" then
|
||||
数量 = 0;
|
||||
数据 = 字符串切割(数据,"\n");
|
||||
for b = 1,table.getn(数据) do
|
||||
if string.sub(数据[b],1,1) ~= "#" and string.sub(数据[b],1,1) ~= "" then
|
||||
数量 = 数量 + 1;
|
||||
临时商城数据[数量] = 字符串切割(数据[b],"|");
|
||||
临时商城数据[数量][1] = tonumber(临时商城数据[数量][1]);
|
||||
临时商城数据[数量][2] = tonumber(临时商城数据[数量][2]);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
创建商城NPC();
|
||||
|
3
服务器端lua文件/lua/onlineshop/shop1.txt
Normal file
3
服务器端lua文件/lua/onlineshop/shop1.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#################最新上架######################
|
||||
#格式说明:道具ID|价格
|
||||
18557|288
|
3
服务器端lua文件/lua/onlineshop/shop2.txt
Normal file
3
服务器端lua文件/lua/onlineshop/shop2.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#################最新上架######################
|
||||
#格式说明:道具ID|价格
|
||||
18557|288
|
3
服务器端lua文件/lua/onlineshop/shop3.txt
Normal file
3
服务器端lua文件/lua/onlineshop/shop3.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#################最新上架######################
|
||||
#格式说明:道具ID|价格
|
||||
18557|288
|
3
服务器端lua文件/lua/onlineshop/shop4.txt
Normal file
3
服务器端lua文件/lua/onlineshop/shop4.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#################最新上架######################
|
||||
#格式说明:道具ID|价格
|
||||
18557|288
|
3
服务器端lua文件/lua/onlineshop/shop5.txt
Normal file
3
服务器端lua文件/lua/onlineshop/shop5.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#################最新上架######################
|
||||
#格式说明:道具ID|价格
|
||||
18557|288
|
0
服务器端lua文件/lua/onlineshop/shoplog.txt
Normal file
0
服务器端lua文件/lua/onlineshop/shoplog.txt
Normal file
BIN
石器时代8.5客户端最新源代码/.vs/石器源码/v14/.suo
Normal file
BIN
石器时代8.5客户端最新源代码/.vs/石器源码/v14/.suo
Normal file
Binary file not shown.
20
石器时代8.5客户端最新源代码/石器源码.sln
Normal file
20
石器时代8.5客户端最新源代码/石器源码.sln
Normal file
@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "石器源码", "石器源码\石器源码.vcxproj", "{7BCA4759-A8C8-4746-ABD8-C2B4C3C2DEFE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
VER25_DEBUG|Win32 = VER25_DEBUG|Win32
|
||||
VER25_RELEASE|Win32 = VER25_RELEASE|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7BCA4759-A8C8-4746-ABD8-C2B4C3C2DEFE}.VER25_DEBUG|Win32.ActiveCfg = VER25_DEBUG|Win32
|
||||
{7BCA4759-A8C8-4746-ABD8-C2B4C3C2DEFE}.VER25_DEBUG|Win32.Build.0 = VER25_DEBUG|Win32
|
||||
{7BCA4759-A8C8-4746-ABD8-C2B4C3C2DEFE}.VER25_RELEASE|Win32.ActiveCfg = VER25_RELEASE|Win32
|
||||
{7BCA4759-A8C8-4746-ABD8-C2B4C3C2DEFE}.VER25_RELEASE|Win32.Build.0 = VER25_RELEASE|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
BIN
石器时代8.5客户端最新源代码/石器源码.suo
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码.suo
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/123.cur
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/123.cur
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
403
石器时代8.5客户端最新源代码/石器源码/CharTitle.cpp
Normal file
403
石器时代8.5客户端最新源代码/石器源码/CharTitle.cpp
Normal file
@ -0,0 +1,403 @@
|
||||
#include "../systeminc/version.h"
|
||||
#include "../systeminc/system.h"
|
||||
#include "../systeminc/font.h"
|
||||
#include "../systeminc/action.h"
|
||||
#include "systeminc\sprdisp.h"
|
||||
#include "systeminc\menu.h"
|
||||
#include "systeminc\mouse.h"
|
||||
#include "newproto\autil.h"
|
||||
#include "newproto\protocol.h"
|
||||
#ifdef _CHARTITLE_STR_
|
||||
extern unsigned int sockfd;
|
||||
typedef struct{
|
||||
BOOL 窗口显示;
|
||||
BOOL 确定窗口显示;
|
||||
int 当前页数;
|
||||
int 确定图档索引;
|
||||
char 介绍[100][32];
|
||||
int 称号索引[100];
|
||||
TITLE_STR title;//当前称号
|
||||
TITLE_STR titledata[100];//称号数据
|
||||
BOOL 关闭窗口;
|
||||
}称号数据结构;
|
||||
extern int play_se(int tone, int x, int y);
|
||||
称号数据结构 称号;
|
||||
|
||||
void 打开称号窗口初始化()
|
||||
{
|
||||
if(称号.窗口显示){
|
||||
称号.窗口显示=FALSE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
}else{
|
||||
称号.当前页数=0;
|
||||
称号.窗口显示=TRUE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
extern void PutTitleText(int x,int y,char fontPrio,TITLE_STR str,BOOL hitFlag);
|
||||
|
||||
BOOL 获取称号取消窗口()
|
||||
{
|
||||
return 称号.关闭窗口;
|
||||
}
|
||||
|
||||
void 设置称号取消窗口()
|
||||
{
|
||||
if(称号.关闭窗口) 称号.关闭窗口=FALSE;
|
||||
else 称号.关闭窗口=TRUE;
|
||||
}
|
||||
|
||||
BOOL 获取当前称号是否存在()
|
||||
{
|
||||
return 称号.title.flg;
|
||||
}
|
||||
|
||||
void 称号展示()
|
||||
{
|
||||
if(称号.title.flg){
|
||||
PutTitleText(78-称号.title.len/2,49,FONT_PRIO_FRONT,称号.title,0);
|
||||
}
|
||||
int bnt;
|
||||
bnt = StockFontBuffer(18,49,1,FONT_PAL_GREEN," ",2);
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
if(HitFontNo == bnt){
|
||||
if(称号.关闭窗口) 称号.关闭窗口=FALSE;
|
||||
else 称号.关闭窗口=TRUE;
|
||||
play_se(203, 320, 240);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL 人物称号处理(ACTION * pct)
|
||||
{
|
||||
int x,y;
|
||||
x = pct->x;
|
||||
y = pct->y + 133;
|
||||
int 按钮左=-1;
|
||||
int 按钮右=-1;
|
||||
int 按钮关闭=-1;
|
||||
int 按钮ID;
|
||||
按钮左 = StockDispBuffer( x -55, y + 7, DISP_PRIO_IME3, 55250, 2 );
|
||||
按钮右 = StockDispBuffer( x -20, y + 7, DISP_PRIO_IME3, 55251, 2 );
|
||||
按钮关闭 = StockDispBuffer( x+40, y + 7, DISP_PRIO_IME3, 55252, 2 );
|
||||
if( mouse.onceState & MOUSE_LEFT_CRICK ){
|
||||
if(!称号.确定窗口显示){
|
||||
if(按钮左 == HitDispNo){
|
||||
if(称号.当前页数){
|
||||
称号.当前页数--;
|
||||
}
|
||||
}
|
||||
if(按钮右 == HitDispNo){
|
||||
if(称号.当前页数!=19 && 称号.titledata[(称号.当前页数+1)*5].flg)
|
||||
{
|
||||
称号.当前页数++;
|
||||
}
|
||||
}
|
||||
if(按钮关闭 == HitDispNo){
|
||||
DeathAction(pct);
|
||||
称号.窗口显示=FALSE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int i=0;
|
||||
int 称号图档索引;
|
||||
for(;i<5;i++){
|
||||
称号图档索引 = 称号.当前页数*5+i;
|
||||
if(称号.titledata[称号图档索引].flg)
|
||||
{
|
||||
PutTitleText(380-称号.titledata[称号图档索引].len/2,43+i*0x20,FONT_PRIO_FRONT,称号.titledata[称号图档索引],0);
|
||||
char 称号序号[128];
|
||||
sprintf_s(称号序号,"%03d",称号图档索引+1);
|
||||
StockFontBufferExt(0x130,0x2D+i*0x20,1,FONT_PAL_GREEN,称号序号,0,19);
|
||||
if(!称号.确定窗口显示){
|
||||
if(MakeHitBox(0x124,0x26+i*0x20,0x1B8,0x44+i*0x20,0x6D)==1){
|
||||
StockFontBuffer(0x123,0xD1,2,0,称号.介绍[称号图档索引],0);
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
称号.确定图档索引=称号.称号索引[ 称号图档索引];
|
||||
称号.确定窗口显示=TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else break;
|
||||
}
|
||||
if(称号.确定窗口显示){
|
||||
StockFontBuffer(0x123,0xD1,2,0,称号.介绍[称号.确定图档索引],0);
|
||||
StockFontBuffer(0x130,0x118,2,0,"确定使用该称号吗?",0);
|
||||
StockDispBuffer(0x16D,0x130,0x6C,55253,1);//确定窗口底图
|
||||
按钮ID = StockDispBuffer(0x194,0x148,109,55252,2);//关闭
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
if(按钮ID == HitDispNo){
|
||||
称号.确定窗口显示=FALSE;
|
||||
称号.确定图档索引=0;
|
||||
}
|
||||
}
|
||||
按钮ID = StockDispBuffer(0x148,0x148,109,55254,2);//确定
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
if(按钮ID == HitDispNo){
|
||||
int checksum=0;
|
||||
char buf[1024*4];
|
||||
memset(buf,0,1024*4);
|
||||
checksum += util_mkint(buf, 称号.确定图档索引);
|
||||
util_mkint(buf, checksum);
|
||||
util_SendMesg(sockfd, LSSPROTO_CHARTITLE_SEND, buf);
|
||||
称号.确定窗口显示=FALSE;
|
||||
称号.确定图档索引=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
extern void getCharTitleSplit( char *str,TITLE_STR* title);
|
||||
void 人物称号数据更新(char *数据)
|
||||
{
|
||||
char 基础内容[126],图档内容[1024],图档索引[1024],内容介绍[4000],临时[126];
|
||||
memset(基础内容,0,126);
|
||||
memset(图档内容,0,1024);
|
||||
memset(图档索引,0,1024);
|
||||
memset(内容介绍,0,4000);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",1,基础内容,126);
|
||||
getStringFromIndexWithDelim_body((char *) 基础内容,(char *)"|",1,临时,126);
|
||||
int titleindex = atoi(临时);
|
||||
extern char* FreeGetTitleStr(int id);
|
||||
if(titleindex>0) getCharTitleSplit(FreeGetTitleStr(titleindex),&称号.title);
|
||||
else memset(&称号.title,0,sizeof(TITLE_STR));
|
||||
getStringFromIndexWithDelim_body((char *) 基础内容,(char *)"|",2,临时,126);
|
||||
int 数量 = atoi(临时);
|
||||
if(数量!=0){
|
||||
memset(&称号.titledata,0,sizeof(称号.titledata[0])*100);
|
||||
memset(&称号.称号索引,0,sizeof(int)*100);
|
||||
memset(&称号.介绍,0,32*100);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",2,图档内容,1024);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",3,内容介绍,4000);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",4,图档索引,1024);
|
||||
int i=0;
|
||||
extern char* FreeGetTitleStr(int id);
|
||||
for(i;i<数量;i++){
|
||||
getStringFromIndexWithDelim_body((char *)图档内容,(char *)"|",i+1,临时,126);
|
||||
titleindex = atoi(临时);
|
||||
getCharTitleSplit(FreeGetTitleStr(titleindex),&称号.titledata[i]);
|
||||
getStringFromIndexWithDelim_body((char *)图档索引,(char *)"|",i+1,临时,126);
|
||||
称号.称号索引[i]=atoi(临时);
|
||||
getStringFromIndexWithDelim_body((char *)内容介绍,(char *)"|",i+1,临时,126);
|
||||
sprintf_s(称号.介绍[i],32,"%s",临时);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void 初始化称号结构()
|
||||
{
|
||||
memset(&称号,0,sizeof(称号数据结构));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef _CHARTITLE_
|
||||
extern unsigned int sockfd;
|
||||
typedef struct{
|
||||
int 称号窗口结构;
|
||||
ACTION *称号结构[5];
|
||||
ACTION * 当前称号结构;
|
||||
int 当前称号图档;
|
||||
BOOL 窗口显示;
|
||||
int 图档[100];
|
||||
int 称号索引[100];
|
||||
char 介绍[100][32];
|
||||
int 当前页数;
|
||||
BOOL 确定窗口显示;
|
||||
int 确定图档索引;
|
||||
}称号数据结构;
|
||||
|
||||
称号数据结构 称号;
|
||||
|
||||
void 结束称号展示动画()
|
||||
{
|
||||
int i=0;
|
||||
for(i;i<5;i++){
|
||||
if(称号.称号结构[i]){
|
||||
if(称号.称号结构[i]) DeathAction(称号.称号结构[i]);
|
||||
称号.称号结构[i]=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void 打开称号窗口初始化()
|
||||
{
|
||||
if(称号.窗口显示){
|
||||
结束称号展示动画();
|
||||
称号.窗口显示=FALSE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
}else{
|
||||
称号.当前页数=0;
|
||||
称号.窗口显示=TRUE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void 称号展示()
|
||||
{
|
||||
|
||||
if(称号.当前称号图档)
|
||||
if(!称号.当前称号结构){
|
||||
if(称号.当前称号图档 < 100000){
|
||||
称号.当前称号结构 = 0;
|
||||
StockDispBuffer(0x7F,0x40,109,称号.当前称号图档,0);
|
||||
}else{
|
||||
称号.当前称号结构 = MakeAnimDisp(0x7F,0x59,称号.当前称号图档,0);
|
||||
}
|
||||
}else if(*(int *)(称号.当前称号结构+0x140)!= 称号.当前称号图档){
|
||||
DeathAction(称号.当前称号结构);
|
||||
if(称号.当前称号图档 < 100000){
|
||||
称号.当前称号结构 = 0;
|
||||
StockDispBuffer(0x7F,0x40,109,称号.当前称号图档,0);
|
||||
}else{
|
||||
称号.当前称号结构 = MakeAnimDisp(0x7F,0x59,称号.当前称号图档,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL 人物称号处理(ACTION * pct)
|
||||
{
|
||||
int x,y;
|
||||
x = pct->x;
|
||||
y = pct->y + 133;
|
||||
int 按钮左=-1;
|
||||
int 按钮右=-1;
|
||||
int 按钮关闭=-1;
|
||||
int 按钮ID;
|
||||
按钮左 = StockDispBuffer( x -55, y + 7, DISP_PRIO_IME3, 55250, 2 );
|
||||
按钮右 = StockDispBuffer( x -20, y + 7, DISP_PRIO_IME3, 55251, 2 );
|
||||
按钮关闭 = StockDispBuffer( x+40, y + 7, DISP_PRIO_IME3, 55252, 2 );
|
||||
if( mouse.onceState & MOUSE_LEFT_CRICK ){
|
||||
if(!称号.确定窗口显示){
|
||||
if(按钮左 == HitDispNo){
|
||||
if(称号.当前页数){
|
||||
称号.当前页数--;
|
||||
结束称号展示动画();
|
||||
}
|
||||
}
|
||||
if(按钮右 == HitDispNo){
|
||||
if(称号.当前页数!=19 && 称号.图档[(称号.当前页数+1)*5]){
|
||||
称号.当前页数++;
|
||||
结束称号展示动画();
|
||||
}
|
||||
}
|
||||
if(按钮关闭 == HitDispNo){
|
||||
DeathAction(pct);
|
||||
结束称号展示动画();
|
||||
称号.窗口显示=FALSE;
|
||||
称号.确定窗口显示=FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int i=0;
|
||||
int 称号图档索引;
|
||||
for(;i<5;i++){
|
||||
称号图档索引 = 称号.当前页数*5+i;
|
||||
if(称号.图档[称号图档索引]){
|
||||
if(!称号.称号结构[i]){
|
||||
if(称号.图档[称号图档索引] < 100000){
|
||||
称号.称号结构[i] = 0;
|
||||
StockDispBuffer(0x16D+20,0x35+i*0x20,109,称号.图档[称号图档索引],0);
|
||||
}else{
|
||||
称号.称号结构[i] = MakeAnimDisp(0x16D+20,0x35+i*0x20,称号.图档[称号图档索引],0);
|
||||
}
|
||||
}else if(称号.当前称号结构==0) StockDispBuffer(0x16D,0x35+i*0x20,109,称号.图档[称号图档索引],0);
|
||||
char 称号序号[128];
|
||||
sprintf_s(称号序号,"%03d",称号图档索引+1);
|
||||
|
||||
StockFontBufferExt(0x130,0x2D+i*0x20,1,FONT_PAL_GREEN,称号序号,0,16);
|
||||
if(!称号.确定窗口显示){
|
||||
if(MakeHitBox(0x124,0x26+i*0x20,0x1B8,0x44+i*0x20,0x6D)==1){
|
||||
StockFontBuffer(0x123,0xD1,2,0,称号.介绍[称号图档索引],0);
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
称号.确定图档索引=称号.称号索引[ 称号图档索引];
|
||||
称号.确定窗口显示=TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else break;
|
||||
}
|
||||
if(称号.确定窗口显示){
|
||||
StockFontBuffer(0x123,0xD1,2,0,称号.介绍[称号.确定图档索引],0);
|
||||
StockFontBuffer(0x130,0x118,2,0,"确定使用该称号吗?",0);
|
||||
StockDispBuffer(0x16D,0x130,0x6C,55253,1);//确定窗口底图
|
||||
按钮ID = StockDispBuffer(0x194,0x148,109,55252,2);//关闭
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
if(按钮ID == HitDispNo){
|
||||
称号.确定窗口显示=FALSE;
|
||||
称号.确定图档索引=0;
|
||||
}
|
||||
}
|
||||
按钮ID = StockDispBuffer(0x148,0x148,109,55254,2);//确定
|
||||
if(mouse.onceState & MOUSE_LEFT_CRICK>0){
|
||||
if(按钮ID == HitDispNo){
|
||||
int checksum=0;
|
||||
char buf[1024*4];
|
||||
memset(buf,0,1024*4);
|
||||
checksum += util_mkint(buf, 称号.确定图档索引);
|
||||
util_mkint(buf, checksum);
|
||||
util_SendMesg(sockfd, LSSPROTO_CHARTITLE_SEND, buf);
|
||||
称号.确定窗口显示=FALSE;
|
||||
称号.确定图档索引=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void 窗口结束处理(ACTION* ID)//结束显示动画
|
||||
{
|
||||
称号.窗口显示=FALSE;
|
||||
结束称号展示动画();
|
||||
if(称号.当前称号结构) DeathAction(称号.当前称号结构);
|
||||
称号.当前称号结构=0;
|
||||
DeathAction(ID);
|
||||
}
|
||||
|
||||
void 人物称号数据更新(char *数据)
|
||||
{
|
||||
char 基础内容[126],图档内容[1024],图档索引[1024],内容介绍[4000],临时[126];
|
||||
memset(基础内容,0,126);
|
||||
memset(图档内容,0,1024);
|
||||
memset(图档索引,0,1024);
|
||||
memset(内容介绍,0,4000);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",1,基础内容,126);
|
||||
getStringFromIndexWithDelim_body((char *) 基础内容,(char *)"|",1,临时,126);
|
||||
int 值 = atoi(临时);
|
||||
if(值) 称号.当前称号图档=值;
|
||||
getStringFromIndexWithDelim_body((char *) 基础内容,(char *)"|",2,临时,126);
|
||||
int 数量 = atoi(临时);
|
||||
if(数量!=0){
|
||||
memset(&称号.图档,0,sizeof(int)*100);
|
||||
memset(&称号.称号索引,0,sizeof(int)*100);
|
||||
memset(&称号.介绍,0,32*100);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",2,图档内容,1024);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",3,内容介绍,4000);
|
||||
getStringFromIndexWithDelim_body((char *) 数据,(char *)"#@",4,图档索引,1024);
|
||||
int i=0;
|
||||
for(i;i<数量;i++){
|
||||
getStringFromIndexWithDelim_body((char *)图档内容,(char *)"|",i+1,临时,126);
|
||||
称号.图档[i]=atoi(临时);
|
||||
getStringFromIndexWithDelim_body((char *)图档索引,(char *)"|",i+1,临时,126);
|
||||
称号.称号索引[i]=atoi(临时);
|
||||
getStringFromIndexWithDelim_body((char *)内容介绍,(char *)"|",i+1,临时,126);
|
||||
sprintf_s(称号.介绍[i],32,"%s",临时);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void 初始化称号结构()
|
||||
{
|
||||
memset(&称号,0,sizeof(称号数据结构));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
4
石器时代8.5客户端最新源代码/石器源码/CharTitle.h
Normal file
4
石器时代8.5客户端最新源代码/石器源码/CharTitle.h
Normal file
@ -0,0 +1,4 @@
|
||||
void 人物称号初始化();
|
||||
void 人物称号数据更新(char *数据);
|
||||
|
||||
|
BIN
石器时代8.5客户端最新源代码/石器源码/Release/AutoDump.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/AutoDump.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CL.read.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CL.read.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CL.write.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CL.write.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CharSignDay.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CharSignDay.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CharTitle.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/CharTitle.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ItemsMall.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ItemsMall.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Ping.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Ping.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/PtternSeparationBin.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/PtternSeparationBin.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/SDLDraw.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/SDLDraw.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Script1.res
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Script1.res
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ServerList.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ServerList.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/StoneageNg.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/StoneageNg.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Turntable.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/Turntable.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/action.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/action.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ai_setting.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ai_setting.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/autil.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/autil.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battlemap.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battlemap.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battlemenu.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battlemenu.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battleproc.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/battleproc.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/character.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/character.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/chat.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/chat.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/cl.command.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/cl.command.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/common.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/common.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/creatwth.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/creatwth.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/data.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/data.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/descrypt.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/descrypt.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/detours.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/detours.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/directdraw.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/directdraw.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/disasm.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/disasm.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/field.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/field.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/font.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/font.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/gamemain.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/gamemain.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/gemini.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/gemini.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/getip.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/getip.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/handletime.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/handletime.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/help.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/help.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/image.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/image.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ime.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/ime.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/init.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/init.obj
Normal file
Binary file not shown.
1
石器时代8.5客户端最新源代码/石器源码/Release/link-cvtres.read.1.tlog
Normal file
1
石器时代8.5客户端最新源代码/石器源码/Release/link-cvtres.read.1.tlog
Normal file
@ -0,0 +1 @@
|
||||
|
1
石器时代8.5客户端最新源代码/石器源码/Release/link-cvtres.write.1.tlog
Normal file
1
石器时代8.5客户端最新源代码/石器源码/Release/link-cvtres.write.1.tlog
Normal file
@ -0,0 +1 @@
|
||||
|
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.command.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.command.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.read.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.read.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.write.1.tlog
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/link.write.1.tlog
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/loadrealbin.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/loadrealbin.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/loadsprbin.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/loadsprbin.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/login.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/login.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto_cli.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto_cli.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto_util.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/lssproto_util.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/magicitem.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/magicitem.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/main.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/main.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/map.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/map.obj
Normal file
Binary file not shown.
BIN
石器时代8.5客户端最新源代码/石器源码/Release/math2.obj
Normal file
BIN
石器时代8.5客户端最新源代码/石器源码/Release/math2.obj
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user