Сервер v496 VM Ware

В целом тут всё понятно, готовый сервер на vmware

Скачать
Скрытое содержимое доступно для зарегистрированных пользователей!

Сборка сервера 1.3.8 v78 (Perfect World 2)

В сборке очень интересный authd, с которым придётся повозиться. Однако сборка полностью рабочая.​

Содержимое архива
1603911313804.png

Дополнительная информация

Внимание: Сервер настроен на установку в папку /PWServer, не /home

Bash
#!/bin/sh

PW_PATH=/PWServer

if [ ! -d $PW_PATH/logs ]; then
mkdir $PW_PATH/logs
fi

echo ""
echo "==============================================================="
echo "=                   Perfect World Server 1.3.8                ="
echo "=                          EMUDEVS.RU                         ="
echo "==============================================================="
echo ""
echo "=== LOGSERVICE ==="
cd $PW_PATH/logservice; ./logservice logservice.conf >$PW_PATH/logs/logservice.log &
sleep 2
echo "=== SUCESSO! ==="
echo ""
echo "=== UNIQUENAMED ==="
cd $PW_PATH/uniquenamed; ./uniquenamed gamesys.conf >$PW_PATH/logs/uniquenamed.log &
sleep 3
echo "=== SUCESSO! ==="
echo ""
echo "=== AUTH ==="
cd $PW_PATH/authd/build; ./authd >$PW_PATH/logs/auth.log &
sleep 5
echo "=== SUCESSO! ==="
echo ""
echo "=== GAMEDBD ==="
cd $PW_PATH/gamedbd; ./gamedbd gamesys.conf >$PW_PATH/logs/gamedbd.log &
sleep 5
echo "=== SUCESSO! ==="
echo ""
echo "=== GACD ==="
cd $PW_PATH/gacd; ./gacd gamesys.conf >$PW_PATH/logs/gacd.log &
sleep 3
echo "=== SUCESSO! ==="
echo ""
echo "=== GFACTIOND ==="
cd $PW_PATH/gfactiond; ./gfactiond gamesys.conf >$PW_PATH/logs/gfactiond.log &
sleep 3
echo "=== SUCESSO! ==="
echo ""
echo "=== GDELIVERYD ==="
cd $PW_PATH/gdeliveryd; ./gdeliveryd gamesys.conf >$PW_PATH/logs/gdeliveryd.log &
sleep 3
echo "=== SUCESSO! ==="
echo ""
echo "=== GLINKD ==="
cd $PW_PATH/glinkd; ./glinkd gamesys.conf 1 >$PW_PATH/logs/glink1.log &
cd $PW_PATH/glinkd; ./glinkd gamesys.conf 2 >$PW_PATH/logs/glink2.log &
cd $PW_PATH/glinkd; ./glinkd gamesys.conf 3 >$PW_PATH/logs/glink3.log &
cd $PW_PATH/glinkd; ./glinkd gamesys.conf 4 >$PW_PATH/logs/glink4.log &
sleep 4
echo "=== SUCESSO! ==="

echo ""
echo "=== WORLD ==="
cd $PW_PATH/gamed; ./gs gs01 >$PW_PATH/logs/gs01.log &
sleep 20
echo "=== SUCESSO! ==="

cd /PWServer/jakarta/bin; ./startup.sh &

echo ""
echo "==============================================================="
echo "=                  Servidor Ligado com sucesso                ="
echo "=                    Servidores estao Online                  ="
echo "==============================================================="

elements.data - ver 78

tasks.data - ver 78


INI
[LogclientClient]
type            =    udp
port            =    11100
address            =    127.0.0.1
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    127.0.0.1
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[Intervals]
;set accounting interval,unit is second
account_interval    =    1200
;set delrole interval,unit is second
delrole_interval    =    60
;set check forbidlogin user's map interval,unit is second
checkforbidlogin_interval = 60

[GDeliveryServer]
zoneid=1
aid=1
freeaid=0
zondname        =    zone1
max_player_num    =    3000
type            =    tcp
port            =    29100
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    1048576
mtrace            =    /tmp/m_trace.link
battlefield=1
sellpoint=1
freecreatime=-1
pvp=0
table_name              =       filters
name_charset            =       ASCII
table_charset           =       ASCII

[HomeWorld]
;homes            =    home01;home02;home03;
homes            =    HOMEWORLDCONFIG

[GAuthClient]
type            =    tcp
port            =    29200
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    131072
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    131072
;isec            =    2
;iseckey            =    n1hxpxztozyxnsvk6RaycpmrCnrdds
;osec            =    2
;oseckey            =    rdppjtaki1MxoHnsnaltiiwfjszs9l
;shared_key        =    4khdwAAcjrg0eqfzazqcemdpgulnje

[GProviderServer]
id                =    0
type            =    tcp
port            =    29300
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast        =    1
tcp_nodelay        =    0
accumulate        =    268435456

[UniqueNameClient]
type            =    tcp
port            =    29401
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456
;isec            =    2
;iseckey            =    hgzmbmeyrQaivu2pTikcp1svqcueef
;osec            =    2
;oseckey            =    7mlyiidbm0kntvhRgjhjzdczDtbhnh

[GameDBClient]
type            =    tcp
port            =    29400
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast        =    1
tcp_nodelay        =    0
accumulate        =    268435456

[GAntiCheatClient]
type            =    tcp
port            =    29702
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456

[GFactionClient]
type            =    tcp
port            =    29500
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456

[BattleBonus]
id                      =       11208
countoflevel1           =       80
countoflevel2           =       160
countoflevel3           =       240
maxcount                =       9999
proctype                =       0
specialid               =       25704
countofspecial          =       1
specialproctype         =       0
maxcountofspecial       =       99

[ThreadPool]
threads            =    (1,3)(100,1)(101,1)(0,1)
max_queuesize    =    1048576
prior_strict    =    1

;[GWebTradeClient]
;type            =   tcp
;port            =   29218
;address         =   180.235.64.132
;so_sndbuf       =   16384
;so_rcvbuf       =   16384
;ibuffermax      =   1638400
;obuffermax      =   1638400
;tcp_nodelay     =   0
;accumulate      =   268435456
;isec            =   2
;iseckey         =   ed3aL0iigypkvjjtclniqwomuWmajguk
;osec            =   2
;oseckey         =   taaprYnuYabhjgrvwa89dhhecgkwifjd

[TRICKBATTLE]
is_trickbattle_open = 1
open_day = 0,1,2,3,4,5,6
start_time = 20:00
end_time = 22:00
single_battle_time = 10
single_battle_player = 10
bonus_item_id = 28177
bonus_proctype = 19
bonus_max_count = 2000
INI
[LogclientClient]
type            =    udp
port            =    11100
address            =    127.0.0.1
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    127.0.0.1
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[GFactionServer]
type            =    tcp
port            =    29500
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    1048576
sender_interval    =    100000
accumu_packets    =    4000
mtrace            =    /tmp/m_trace.link
;isec            =    2
;iseckey        =    123
;osec            =    2
;oseckey        =    456

[GProviderServer]
id                =    101
type            =    tcp
port            =    29600
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    1048576
;isec            =    2
;iseckey        =    123
;osec            =    2
;oseckey        =    456

[UniqueNameClient]
type            =    tcp
port            =    29401
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456
;isec            =    2
;iseckey            =    hgzmbmeyrQaivu2pTikcp1svqcueef
;osec            =    2
;oseckey            =    7mlyiidbm0kntvhRgjhjzdczDtbhnh

[GFactionDBClient]
type            =    tcp
port            =    29400
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    1048576
;isec            =    2
;iseckey        =    123
;osec            =    2
;oseckey        =    456

[ThreadPool]
threads            =    (0,1)(1,4)(100,1)(101,1)
max_queuesize    =    1048576
prior_strict    =    0
INI
[GLinkServer1]
type            =    tcp
port            =    29000
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10308

[GLinkServer2]
type            =    tcp
port            =    29001
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users    =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10308

[GLinkServer3]
type            =    tcp
port            =    29002
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10308

[GLinkServer4]
type            =    tcp
port            =    29003
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10308

[GLinkServer5]
type                    =       tcp
port                    =       29004
address                 =       0.0.0.0
so_sndbuf               =       12288
so_rcvbuf               =       12288
ibuffermax              =       16384
obuffermax              =       65536
tcp_nodelay             =       0
listen_backlog  =       10
accumulate              =       131072
max_users               =       3000
halflogin_users =       6000
sender_interval =       200000
accumu_packets  =       32768
mtrace                  =       /tmp/m_trace.link
compress                =       0
close_discard   =       1
urgency_support =       1
version=10308

[GLinkServer6]
type                    =       tcp
port                    =       29005
address                 =       0.0.0.0
so_sndbuf               =       12288
so_rcvbuf               =       12288
ibuffermax              =       16384
obuffermax              =       65536
tcp_nodelay             =       0
listen_backlog  =       10
accumulate              =       131072
max_users               =       3000
halflogin_users =       6000
sender_interval =       200000
accumu_packets  =       32768
mtrace                  =       /tmp/m_trace.link
compress                =       0
close_discard   =       1
urgency_support =       1
version=10308

[GDeliveryClient]
type            =    tcp
port            =    29100
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer1]
type            =    tcp
port            =    29301
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer2]
type            =    tcp
port            =    29302
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer3]
type            =    tcp
port            =    29303
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer4]
type            =    tcp
port            =    29304
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer5]
type                    =       tcp
port                    =       29305
address                 =       127.0.0.1
so_sndbuf               =       65536
so_rcvbuf               =       65536
ibuffermax              =       1048576
obuffermax              =       1048576
tcp_nodelay             =       0
accumulate              =       268435456

[GProviderServer6]
type                    =       tcp
port                    =       29306
address                 =       127.0.0.1
so_sndbuf               =       65536
so_rcvbuf               =       65536
ibuffermax              =       1048576
obuffermax              =       1048576
tcp_nodelay             =       0
accumulate              =       268435456

[GFactionClient]
type            =    tcp
port            =    29500
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
tcp_nodelay        =    0
accumulate        =    268435456

[LogclientClient]
type            =    udp
port            =    11100
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    65536
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    65536
obuffermax        =    1048576
accumulate        =    1048576

[ThreadPool]
threads            =    (1,3)(100,1)(101,1)(0,1)
max_queuesize    =    1048576
prior_strict    =    1

База данных (qd)
SQL
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `auth`;
CREATE TABLE `auth` (
  `userid` int(11) NOT NULL DEFAULT '0',
  `zoneid` int(11) NOT NULL DEFAULT '0',
  `rid` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`userid`,`zoneid`,`rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of auth
-- ----------------------------
INSERT INTO `auth` VALUES ('32', '1', '0');
INSERT INTO `auth` VALUES ('32', '1', '1');
INSERT INTO `auth` VALUES ('32', '1', '2');
INSERT INTO `auth` VALUES ('32', '1', '3');
INSERT INTO `auth` VALUES ('32', '1', '4');
INSERT INTO `auth` VALUES ('32', '1', '5');
INSERT INTO `auth` VALUES ('32', '1', '6');
INSERT INTO `auth` VALUES ('32', '1', '7');
INSERT INTO `auth` VALUES ('32', '1', '8');
INSERT INTO `auth` VALUES ('32', '1', '9');
INSERT INTO `auth` VALUES ('32', '1', '10');
INSERT INTO `auth` VALUES ('32', '1', '11');
INSERT INTO `auth` VALUES ('32', '1', '100');
INSERT INTO `auth` VALUES ('32', '1', '101');
INSERT INTO `auth` VALUES ('32', '1', '102');
INSERT INTO `auth` VALUES ('32', '1', '103');
INSERT INTO `auth` VALUES ('32', '1', '104');
INSERT INTO `auth` VALUES ('32', '1', '105');
INSERT INTO `auth` VALUES ('32', '1', '200');
INSERT INTO `auth` VALUES ('32', '1', '201');
INSERT INTO `auth` VALUES ('32', '1', '202');
INSERT INTO `auth` VALUES ('32', '1', '203');
INSERT INTO `auth` VALUES ('32', '1', '204');
INSERT INTO `auth` VALUES ('32', '1', '205');
INSERT INTO `auth` VALUES ('32', '1', '206');
INSERT INTO `auth` VALUES ('32', '1', '207');
INSERT INTO `auth` VALUES ('32', '1', '208');
INSERT INTO `auth` VALUES ('32', '1', '209');
INSERT INTO `auth` VALUES ('32', '1', '210');
INSERT INTO `auth` VALUES ('32', '1', '211');
INSERT INTO `auth` VALUES ('32', '1', '212');
INSERT INTO `auth` VALUES ('32', '1', '213');
INSERT INTO `auth` VALUES ('32', '1', '214');
INSERT INTO `auth` VALUES ('32', '1', '500');
INSERT INTO `auth` VALUES ('32', '1', '501');
INSERT INTO `auth` VALUES ('32', '1', '502');
INSERT INTO `auth` VALUES ('32', '1', '503');
INSERT INTO `auth` VALUES ('32', '1', '504');
INSERT INTO `auth` VALUES ('32', '1', '505');
INSERT INTO `auth` VALUES ('32', '1', '506');
INSERT INTO `auth` VALUES ('32', '1', '507');
INSERT INTO `auth` VALUES ('32', '1', '508');
INSERT INTO `auth` VALUES ('32', '1', '509');
INSERT INTO `auth` VALUES ('32', '1', '510');
INSERT INTO `auth` VALUES ('32', '1', '511');
INSERT INTO `auth` VALUES ('32', '1', '512');
INSERT INTO `auth` VALUES ('32', '1', '513');
INSERT INTO `auth` VALUES ('32', '1', '514');
INSERT INTO `auth` VALUES ('32', '1', '515');
INSERT INTO `auth` VALUES ('32', '1', '516');
INSERT INTO `auth` VALUES ('32', '1', '517');
INSERT INTO `auth` VALUES ('32', '1', '518');

-- ----------------------------
-- Table structure for forbid
-- ----------------------------
DROP TABLE IF EXISTS `forbid`;
CREATE TABLE `forbid` (
  `userid` int(11) NOT NULL DEFAULT '0',
  `type` int(11) NOT NULL DEFAULT '0',
  `ctime` datetime NOT NULL,
  `forbid_time` int(11) NOT NULL DEFAULT '0',
  `reason` blob NOT NULL,
  `gmroleid` int(11) DEFAULT '0',
  PRIMARY KEY (`userid`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of forbid
-- ----------------------------

-- ----------------------------
-- Table structure for iplimit
-- ----------------------------
DROP TABLE IF EXISTS `iplimit`;
CREATE TABLE `iplimit` (
  `uid` int(11) NOT NULL DEFAULT '0',
  `ipaddr1` int(11) DEFAULT '0',
  `ipmask1` varchar(2) DEFAULT '',
  `ipaddr2` int(11) DEFAULT '0',
  `ipmask2` varchar(2) DEFAULT '',
  `ipaddr3` int(11) DEFAULT '0',
  `ipmask3` varchar(2) DEFAULT '',
  `enable` char(1) DEFAULT '',
  `lockstatus` char(1) DEFAULT '',
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of iplimit
-- ----------------------------

-- ----------------------------
-- Table structure for point
-- ----------------------------
DROP TABLE IF EXISTS `point`;
CREATE TABLE `point` (
  `uid` int(11) NOT NULL DEFAULT '0',
  `aid` int(11) NOT NULL DEFAULT '0',
  `time` int(11) NOT NULL DEFAULT '0',
  `zoneid` int(11) DEFAULT '0',
  `zonelocalid` int(11) DEFAULT '0',
  `accountstart` datetime DEFAULT NULL,
  `lastlogin` datetime DEFAULT NULL,
  `enddate` datetime DEFAULT NULL,
  PRIMARY KEY (`uid`,`aid`),
  KEY `IX_point_aidzoneid` (`aid`,`zoneid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of point
-- ----------------------------
INSERT INTO `point` VALUES ('32', '1', '0', '1', '14', null, '2020-01-10 12:05:59', null);
INSERT INTO `point` VALUES ('32', '9', '0', null, null, null, '2019-10-18 00:52:31', null);
INSERT INTO `point` VALUES ('32', '28', '0', null, null, null, '2019-10-19 17:03:09', null);
INSERT INTO `point` VALUES ('48', '1', '0', null, null, null, '2020-01-10 12:06:53', null);
INSERT INTO `point` VALUES ('48', '28', '0', null, null, null, '2019-10-16 10:57:11', null);
INSERT INTO `point` VALUES ('64', '28', '0', null, null, null, '2019-10-21 01:06:31', null);

-- ----------------------------
-- Table structure for usecashlog
-- ----------------------------
DROP TABLE IF EXISTS `usecashlog`;
CREATE TABLE `usecashlog` (
  `userid` int(11) NOT NULL DEFAULT '0',
  `zoneid` int(11) NOT NULL DEFAULT '0',
  `sn` int(11) NOT NULL DEFAULT '0',
  `aid` int(11) NOT NULL DEFAULT '0',
  `point` int(11) NOT NULL DEFAULT '0',
  `cash` int(11) NOT NULL DEFAULT '0',
  `status` int(11) NOT NULL DEFAULT '0',
  `creatime` datetime NOT NULL,
  `fintime` datetime NOT NULL,
  KEY `IX_usecashlog_creatime` (`creatime`),
  KEY `IX_usecashlog_uzs` (`userid`,`zoneid`,`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of usecashlog
-- ----------------------------
INSERT INTO `usecashlog` VALUES ('32', '1', '1', '28', '0', '1000000', '4', '2019-09-02 16:46:14', '2019-09-02 16:49:16');
INSERT INTO `usecashlog` VALUES ('48', '1', '1', '28', '0', '10', '4', '2019-10-15 23:45:24', '2019-10-15 23:50:21');
INSERT INTO `usecashlog` VALUES ('48', '1', '2', '28', '0', '90', '4', '2019-10-15 23:53:41', '2019-10-15 23:55:21');

-- ----------------------------
-- Table structure for usecashnow
-- ----------------------------
DROP TABLE IF EXISTS `usecashnow`;
CREATE TABLE `usecashnow` (
  `userid` int(11) NOT NULL DEFAULT '0',
  `zoneid` int(11) NOT NULL DEFAULT '0',
  `sn` int(11) NOT NULL DEFAULT '0',
  `aid` int(11) NOT NULL DEFAULT '0',
  `point` int(11) NOT NULL DEFAULT '0',
  `cash` int(11) NOT NULL DEFAULT '0',
  `status` int(11) NOT NULL DEFAULT '0',
  `creatime` datetime NOT NULL,
  PRIMARY KEY (`userid`,`zoneid`,`sn`),
  KEY `IX_usecashnow_creatime` (`creatime`),
  KEY `IX_usecashnow_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of usecashnow
-- ----------------------------

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `ID` int(11) NOT NULL DEFAULT '0',
  `name` varchar(32) NOT NULL DEFAULT '',
  `passwd` varchar(64) NOT NULL,
  `Prompt` varchar(32) NOT NULL DEFAULT '',
  `answer` varchar(32) NOT NULL DEFAULT '',
  `truename` varchar(32) NOT NULL DEFAULT '',
  `idnumber` varchar(32) NOT NULL DEFAULT '',
  `email` varchar(64) NOT NULL DEFAULT '',
  `mobilenumber` varchar(32) DEFAULT '',
  `province` varchar(32) DEFAULT '',
  `city` varchar(32) DEFAULT '',
  `phonenumber` varchar(32) DEFAULT '',
  `address` varchar(64) DEFAULT '',
  `postalcode` varchar(8) DEFAULT '',
  `gender` int(11) DEFAULT '0',
  `birthday` datetime DEFAULT NULL,
  `creatime` datetime NOT NULL,
  `qq` varchar(32) DEFAULT '',
  `passwd2` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `IX_users_name` (`name`),
  KEY `IX_users_creatime` (`creatime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('32', 'bola', '0xf00030cea3a5a2194d391226defbac92', '', '', '', '', '', '', '', '', '', '', '', '0', '2019-09-05 17:30:43', '2019-09-05 17:30:40', '', null);
INSERT INTO `users` VALUES ('48', 'bola2', '0xe54fdf6f5d5619a1229b8d00480cb764', '', '', '', '', '', '', '', '', '', '', '', '0', '2019-09-05 17:30:43', '2019-09-05 17:30:40', '', null);
INSERT INTO `users` VALUES ('64', 'bola3', '0x85a43e234642fa6497694dcbab8a5997', '', '', '', '', '', '', '', '', '', '', '', '0', '2019-09-05 17:30:43', '2019-09-05 17:30:40', '', null);

-- ----------------------------
-- Procedure structure for acquireuserpasswd
-- ----------------------------
DROP PROCEDURE IF EXISTS `acquireuserpasswd`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `acquireuserpasswd`(in name1 VARCHAR(64), out uid1 INTEGER, out passwd1 VARCHAR(64))
BEGIN
    SELECT id, passwd INTO uid1, passwd1 FROM users WHERE name = name1;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for addForbid
-- ----------------------------
DROP PROCEDURE IF EXISTS `addForbid`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `addForbid`(in userid1 INTEGER, in type1 INTEGER, in forbid_time1 INTEGER, in reason1 BINARY(255), in gmroleid1 INTEGER)
BEGIN
DECLARE rowcount INTEGER;
  START TRANSACTION;
    UPDATE forbid SET ctime = now(), forbid_time = forbid_time1, reason = reason1, gmroleid = gmroleid1 WHERE userid = userid1 AND type = type1;
    SET rowcount = ROW_COUNT();
    IF rowcount = 0 THEN
      INSERT INTO forbid VALUES(userid1, type1, now(), forbid_time1, reason1, gmroleid);
    END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for addGM
-- ----------------------------
DROP PROCEDURE IF EXISTS `addGM`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `addGM`(in userid INTEGER, in zoneid INTEGER)
BEGIN
  DECLARE x INTEGER;
  START TRANSACTION;
    SET x = 0;
    WHILE x < 12 DO
      INSERT INTO auth VALUES (userid, zoneid, x);
      SET x = x + 1;
    END WHILE;
    SET x = 100;
    WHILE x < 106 DO
      INSERT INTO auth VALUES (userid, zoneid, x);
      SET x = x + 1;
    END WHILE;
    SET x = 200;
    WHILE x < 215 DO
      INSERT INTO auth VALUES (userid, zoneid, x);
      SET x = x + 1;
    END WHILE;
    SET x = 500;
    WHILE x < 519 DO
      INSERT INTO auth VALUES (userid, zoneid, x);
      SET x = x + 1;
    END WHILE;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for adduser
-- ----------------------------
DROP PROCEDURE IF EXISTS `adduser`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `adduser`(
  in name1 VARCHAR(64),
  in passwd1 VARCHAR(64),
  in prompt1 VARCHAR(32),
  in answer1 VARCHAR(32),
  in truename1 VARCHAR(32),
  in idnumber1 VARCHAR(32),
  in email1 VARCHAR(32),
  in mobilenumber1 VARCHAR(32),
  in province1 VARCHAR(32),
  in city1 VARCHAR(32),
  in phonenumber1 VARCHAR(32),
  in address1 VARCHAR(64),
  in postalcode1 VARCHAR(8),
  in gender1 INTEGER,
  in birthday1 VARCHAR(32),
  in qq1 VARCHAR(32),
  in passwd21 VARCHAR(64)
)
BEGIN
  DECLARE idtemp INTEGER;
    SELECT IFNULL(MAX(id), 16) + 16 INTO idtemp FROM users;
    INSERT INTO users (id,name,passwd,prompt,answer,truename,idnumber,email,mobilenumber,province,city,phonenumber,address,postalcode,gender,birthday,creatime,qq,passwd2) VALUES( idtemp, name1, passwd1, prompt1, answer1, truename1, idnumber1, email1, mobilenumber1, province1, city1, phonenumber1, address1, postalcode1, gender1, birthday1, now(), qq1, passwd21 );
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for adduserpoint
-- ----------------------------
DROP PROCEDURE IF EXISTS `adduserpoint`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `adduserpoint`(in uid1 INTEGER, in aid1 INTEGER, in time1 INTEGER)
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
    UPDATE point SET time = IFNULL(time,0) + time1 WHERE uid1 = uid AND aid1 = aid;
    SET rowcount = ROW_COUNT();
    IF rowcount = 0 THEN
      INSERT INTO point (uid,aid,time) VALUES (uid1,aid1,time1);
    END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for addUserPriv
-- ----------------------------
DROP PROCEDURE IF EXISTS `addUserPriv`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `addUserPriv`(in userid INTEGER, in zoneid INTEGER, in rid INTEGER)
BEGIN
  START TRANSACTION;
    INSERT INTO auth VALUES(userid, zoneid, rid);
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for changePasswd
-- ----------------------------
DROP PROCEDURE IF EXISTS `changePasswd`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `changePasswd`(in name1 VARCHAR(64), in passwd1 VARCHAR(64))
BEGIN
  START TRANSACTION;
    UPDATE users SET passwd = passwd1 WHERE name = name1;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for changePasswd2
-- ----------------------------
DROP PROCEDURE IF EXISTS `changePasswd2`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `changePasswd2`(in name1 VARCHAR(64), in passwd21 VARCHAR(64))
BEGIN
  START TRANSACTION;
    UPDATE users SET passwd2 = passwd21 WHERE name = name1;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for clearonlinerecords
-- ----------------------------
DROP PROCEDURE IF EXISTS `clearonlinerecords`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `clearonlinerecords`(in zoneid1 INTEGER, in aid1 INTEGER)
BEGIN
  START TRANSACTION;
    UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE aid = aid1 AND zoneid = zoneid1;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for deleteTimeoutForbid
-- ----------------------------
DROP PROCEDURE IF EXISTS `deleteTimeoutForbid`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `deleteTimeoutForbid`(in userid1 INTEGER)
BEGIN
  START TRANSACTION;
    DELETE FROM forbid WHERE userid = userid1 AND timestampdiff(second, ctime, now()) > forbid_time;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for delUserPriv
-- ----------------------------
DROP PROCEDURE IF EXISTS `delUserPriv`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `delUserPriv`(in userid1 INTEGER, in zoneid1 INTEGER, in rid1 INTEGER, in deltype1 INTEGER)
BEGIN
START TRANSACTION;
  IF deltype1 = 0 THEN
    DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1 AND rid = rid1;
  ELSE
    IF deltype1 = 1 THEN
      DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1;
    ELSE
      IF deltype1 = 2 THEN
        DELETE FROM auth WHERE userid = userid1;
      END IF;
    END IF;
  END IF;
COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for enableiplimit
-- ----------------------------
DROP PROCEDURE IF EXISTS `enableiplimit`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `enableiplimit`(in uid1 INTEGER, in enable1 CHAR(1))
BEGIN
  DECLARE rowcount INTEGER;
  START TRANSACTION;
  UPDATE iplimit SET enable=enable1 WHERE uid=uid1;
  SET rowcount = ROW_COUNT();
  IF rowcount = 0 THEN
    INSERT INTO iplimit (uid,enable) VALUES (uid1,enable1);
  END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for lockuser
-- ----------------------------
DROP PROCEDURE IF EXISTS `lockuser`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `lockuser`(in uid1 INTEGER, in lockstatus1 CHAR(1))
BEGIN
  DECLARE rowcount INTEGER;
  START TRANSACTION;
  UPDATE iplimit SET lockstatus=lockstatus1 WHERE uid=uid1;
  SET rowcount = ROW_COUNT();
  IF rowcount = 0 THEN
    INSERT INTO iplimit (uid,lockstatus,enable) VALUES (uid1,lockstatus1,'t');
  END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for recordoffline
-- ----------------------------
DROP PROCEDURE IF EXISTS `recordoffline`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `recordoffline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite1 INTEGER)
BEGIN
  DECLARE rowcount INTEGER;
  START TRANSACTION;
    UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE uid = uid1 AND aid = aid1 AND zoneid = zoneid1;
    SET rowcount = ROW_COUNT();
    IF overwrite1 = rowcount THEN
      SELECT zoneid, zonelocalid INTO zoneid1, zonelocalid1 FROM point WHERE uid = uid1 AND aid = aid1;
    END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for recordonline
-- ----------------------------
DROP PROCEDURE IF EXISTS `recordonline`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `recordonline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite INTEGER)
BEGIN
  DECLARE tmp_zoneid INTEGER;
  DECLARE tmp_zonelocalid INTEGER;
  DECLARE rowcount INTEGER;
  START TRANSACTION;
    SELECT SQL_CALC_FOUND_ROWS zoneid, zonelocalid INTO tmp_zoneid, tmp_zonelocalid FROM point WHERE uid = uid1 and aid = aid1;
    SET rowcount = FOUND_ROWS();
    IF rowcount = 0 THEN
      INSERT INTO point (uid, aid, time, zoneid, zonelocalid, lastlogin) VALUES (uid1, aid1, 0, zoneid1, zonelocalid1, now());
    ELSE IF tmp_zoneid IS NULL OR overwrite = 1 THEN
      UPDATE point SET zoneid = zoneid1, zonelocalid = zonelocalid1, lastlogin = now() WHERE uid = uid1 AND aid = aid1;
    END IF;
    END IF;
    IF tmp_zoneid IS NULL THEN
      SET overwrite = 1;
    ELSE
      SET zoneid1 = tmp_zoneid;
      SET zonelocalid1 = tmp_zonelocalid;
    END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for remaintime
-- ----------------------------
DROP PROCEDURE IF EXISTS `remaintime`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `remaintime`(in uid1 INTEGER, in aid1 INTEGER, out remain INTEGER, out freetimeleft INTEGER)
BEGIN
  DECLARE enddate1 DATETIME;
  DECLARE now1 DATETIME;
  DECLARE rowcount INTEGER;
  START TRANSACTION;
  SET now1 = now();
  IF aid1 = 0 THEN
    SET remain = 86313600;
    SET enddate1 = date_add(now1, INTERVAL '30' DAY);
  ELSE
    SELECT time, IFNULL(enddate, now1) INTO remain, enddate1 FROM point WHERE uid = uid1 AND aid = aid1;
    SET rowcount = ROW_COUNT();
    IF rowcount = 0 THEN
      SET remain = 0;
      INSERT INTO point (uid,aid,time) VALUES (uid1, aid1, remain);
    END IF;
  END IF;
  SET freetimeleft = 0;
  IF enddate1 > now1 THEN
    SET freetimeleft = timestampdiff(second, now1, enddate1);
  END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for setiplimit
-- ----------------------------
DROP PROCEDURE IF EXISTS `setiplimit`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `setiplimit`(in uid1 INTEGER, in ipaddr11 INTEGER, in ipmask11 VARCHAR(2), in ipaddr21 INTEGER, in ipmask21 VARCHAR(2), in ipaddr31 INTEGER, in ipmask31 VARCHAR(2), in enable1 CHAR(1))
BEGIN
  DECLARE rowcount INTEGER;
  START TRANSACTION;
    UPDATE iplimit SET ipaddr1 = ipaddr11, ipmask1 = ipmask11, ipaddr2 = ipaddr21, ipmask2 = ipmask21, ipaddr3 = ipaddr31, ipmask3 = ipmask31 WHERE uid = uid1;
    SET rowcount = ROW_COUNT();
    IF rowcount = 0 THEN
      INSERT INTO iplimit (uid, ipaddr1, ipmask1, ipaddr2, ipmask2, ipaddr3, ipmask3, enable1) VALUES (uid1, ipaddr11, ipmask11, ipaddr21, ipmask21, ipaddr31, ipmask31,'t');
    END IF;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for updateUserInfo
-- ----------------------------
DROP PROCEDURE IF EXISTS `updateUserInfo`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `updateUserInfo`(
  in name1 VARCHAR(32),
  in prompt1 VARCHAR(32),
  in answer1 VARCHAR(32),
  in truename1 VARCHAR(32),
  in idnumber1 VARCHAR(32),
  in email1 VARCHAR(32),
  in mobilenumber1 VARCHAR(32),
  in province1 VARCHAR(32),
  in city1 VARCHAR(32),
  in phonenumber1 VARCHAR(32),
  in address1 VARCHAR(32),
  in postalcode1 VARCHAR(32),
  in gender1 INTEGER,
  in birthday1 VARCHAR(32),
  in qq1 VARCHAR(32)
)
BEGIN
  START TRANSACTION;
    UPDATE users SET prompt = prompt1, answer = answer1, truename = truename1, idnumber = idnumber1, email = email1, mobilenumber = mobilenumber1, province = province1, city = city1, phonenumber = phonenumber1, address = address1, postalcode = postalcode1, gender = gender1, birthday = birthda1, qq = qq1 WHERE name = name1;
  COMMIT;
END
;;
DELIMITER ;

-- ----------------------------
-- Procedure structure for usecash
-- ----------------------------
DROP PROCEDURE IF EXISTS `usecash`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `usecash`(
  in userid1 INTEGER,
  in zoneid1 INTEGER,
  in sn1 INTEGER,
  in aid1 INTEGER,
  in point1 INTEGER,
  in cash1 INTEGER,
  in status1 INTEGER,
  out error INTEGER
)
BEGIN
DECLARE sn_old INTEGER;
DECLARE aid_old INTEGER;
DECLARE point_old INTEGER;
DECLARE cash_old INTEGER;
DECLARE status_old INTEGER;
DECLARE createtime_old DATETIME;
DECLARE time_old INTEGER;
DECLARE need_restore INTEGER;
DECLARE exists1 INTEGER;
DECLARE rowcount INTEGER;
START TRANSACTION;
  SET error = 0;
  SET need_restore = 0;
  SELECT SQL_CALC_FOUND_ROWS sn, aid, point, cash, status, creatime INTO sn_old, aid_old, point_old, cash_old, status_old, createtime_old FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn >= 0;
  SET rowcount = FOUND_ROWS();
  IF rowcount = 1 THEN
    SET exists1 = 1;
  ELSE
    SET exists1 = 0;
  END IF;
  IF status1 = 0 THEN
    IF exists1 = 0 THEN
      SELECT aid, point INTO aid1, point1 FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
      SET point1 = IFNULL(point1,0);
      UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
      SET rowcount = ROW_COUNT();
      IF rowcount = 1 THEN
        UPDATE usecashnow SET sn = 0, status = 1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
      ELSE
        SET error = -8;
      END IF;
    END IF;
  ELSE
    IF status1 = 1 THEN
      IF exists1 = 0 THEN
        UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
        SET rowcount = ROW_COUNT();
        IF rowcount = 1 THEN
          INSERT INTO usecashnow (userid, zoneid, sn, aid, point, cash, status, creatime) VALUES (userid1, zoneid1, sn1, aid1, point1, cash1, status1, now());
        ELSE
          INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
          SET error = -8;
        END IF;
      ELSE
        INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
        SET error = -7;
      END IF;
    ELSE
      IF status1 = 2 THEN
        IF exists1 = 1 AND status_old = 1 AND sn_old = 0 THEN
          UPDATE usecashnow SET sn = sn1, status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
        ELSE
          SET error = -9;
        END IF;
      ELSE
        IF status1 = 3 THEN
           IF exists1 = 1 AND status_old = 2 THEN
            UPDATE usecashnow SET status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
           ELSE
            SET error = -10;
            END IF;
        ELSE
         IF status1 = 4 THEN
          IF exists1 = 1 THEN
            DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
            INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
          END IF;
          IF NOT (exists1 = 1 AND status_old = 3) THEN
            SET error = -11;
          END IF;
        ELSE
          SET error = -12;
        END IF;
      END IF;
    END IF;
  END IF;
  END IF;
  IF need_restore = 1 THEN
    UPDATE point SET time = time+point_old WHERE uid = userid1 AND aid = aid_old;
    DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
    INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
  END IF;
COMMIT;
END
;;
DELIMITER ;
Ниже прикладываю файл chmod.sh, который отсутствует в архиве. Он вам поможет, я уверен.
Bash
#!/bin/sh
clear

PW_PATH=/PWServer

echo ""
echo "==============================================================="
echo "=                       Автовыдача прав                       ="
echo "=                     Скачено с emudevs.ru                    ="
echo "==============================================================="
echo ""

chmod 777 -R $PW_PATH/*sh
chmod 777 -R $PW_PATH/authd
chmod 777 -R $PW_PATH/gacd
chmod 777 -R $PW_PATH/gamed
chmod 777 -R $PW_PATH/gamedbd
chmod 777 -R $PW_PATH/gdeliveryd
chmod 777 -R $PW_PATH/gfactiond
chmod 777 -R $PW_PATH/glinkd
chmod 777 -R $PW_PATH/jakarta
chmod 777 -R $PW_PATH/logs
chmod 777 -R $PW_PATH/logservice
chmod 777 -R $PW_PATH/tomcat
chmod 777 -R $PW_PATH/uniquenamed

ldconfig

echo "[${green} OK ${normal}] Готово!"

Скачать сборку сервера

Ограничение по карме стоит в связи с тем, что сборка довольно редкая, но продавать её мы не имеем права, потому отдаем бесплатно. Клиента там нет, его придется найти отдельно.
Другие сборки серверов по Perfect World:
Сборка 1.2.6 V7, Сборка 1.3.1 v10, Сборка 1.3.8 v78, Сборка 1.4.2 v27, Сборка 1.4.4 v61, Сборка 1.4.5 v80, Сборка 1.4.6 v70, Сборка 1.4.7 v80, Сборка 1.4.8 v85, Сборка 1.5.0 v88, Сборка 1.5.1 v101, Сборка 1.5.3 V145, Сборка 1.5.5 V156.
Исходные коды серверов Perfect World:
Исходный код 1.1.6, Исходный код 1.4.5, Исходный код 1.5.1, Исходный код 1.5.3, Исходный код 1.5.5.

Клиент игры Perfect World 1.3.1 [v10] (RU)

5.PNG
1.PNG2.PNG22.PNG3.PNG4.PNG
За основу взят этот клиент от PWI.
elements.data - версия 10.
tasks.data - версия 55.
Скрытое содержимое доступно для зарегистрированных пользователей!

Клиент игры Perfect World 1.2.6 [v7] (RU)

1603901619476.png
За основу взят клиент бразильского официального сервера.
elements.data - версия 7.
tasks.data - версия 55.
1.PNG2.PNG3.PNG4.PNG
Скрытое содержимое доступно для зарегистрированных пользователей!

Programm Pack

Сборник всего самого нужного для сервера (с исходным кодом) Forsaken World версии 496.

Содержимое архива
Forsaken World Sources
AI Policy Deluxe v0.1.8.2
Angelica SDK 2
Dysil Developer Client
Elements
Forsaken World Rates Editor Wos NET 4
Forsaken World Rates Editor
Forsaken World sELedit 496
Task data v496 SoulPower
Web
Faction Rep IDs
Factions their IDs
FW GShop Editor v496
Path Editor

Скачать

Сборка 4.4.0

Сборка сервера
Скрытое содержимое доступно для зарегистрированных пользователей!

Команды
Bash
./server start
./server stop
./server restart
./server top

Клиент к сборке
Часть 1
Часть 2

Сборку сам лично запускал и настраивал, всё в идеале

How to Repair Boxes That Don't Open

GmrXEWk.png
This tutorial is only for primary, secondary and awakening weapon boxes. Does not apply to tidy the pearl shop customs boxes

First of all I will make it very clear that my tutorials are being stolen and being used in other forums and I do not receive a credit. So if you really want to thank me leave your "Thanks" in my publications so that you will encourage me to continue doing more tutorials. Otherwise, I'll just keep it all to myself.


Let's go to the tutorial
Inside your "gameserver" folder you will open the folder called "bin", then the "world" folder.

Inside the "world" folder you will see a file called "Boxes_31.xml"Open this file with the program "NOTEPAD ++" or any other of your choice.
8j6hpZo.png

You will see that inside this file there will be some confusing lines. Right ?

Exactly this way
XML
<?xml version="1.0" encoding="utf-8"?>
<boxes>
<box boxitemKey="15304"><!-- +15 Awakening Weapon Box (Blue) -->
<!-- Warrior -->
<item itemKey="14701" enchantLevel="15" minCount="1" maxCount="1" classId="0"/>
<!-- Ranger -->
<item itemKey="14731" enchantLevel="15" minCount="1" maxCount="1" classId="4"/>
<!-- Sorceress -->
<item itemKey="14711" enchantLevel="15" minCount="1" maxCount="1" classId="8"/>
<!-- Berserker -->
<item itemKey="14721" enchantLevel="15" minCount="1" maxCount="1" classId="12"/>
<!-- Tamer -->
<item itemKey="14741" enchantLevel="15" minCount="1" maxCount="1" classId="16"/>
<!-- Musah -->
<item itemKey="14761" enchantLevel="15" minCount="1" maxCount="1" classId="20"/>
<!-- Maehwa -->
<item itemKey="14771" enchantLevel="15" minCount="1" maxCount="1" classId="21"/>
<!-- Valkyrie -->
<item itemKey="14751" enchantLevel="15" minCount="1" maxCount="1" classId="24"/>
<!-- Kunoichi -->
<item itemKey="14791" enchantLevel="15" minCount="1" maxCount="1" classId="25"/>
<!-- Ninja -->
<item itemKey="14781" enchantLevel="15" minCount="1" maxCount="1" classId="26"/>
<!-- Dark Knight -->
<item itemKey="14816" enchantLevel="15" minCount="1" maxCount="1" classId="27"/>
<!-- Mage -->
<item itemKey="14811" enchantLevel="15" minCount="1" maxCount="1" classId="28"/>
<!-- Witch -->
<item itemKey="14801" enchantLevel="15" minCount="1" maxCount="1" classId="31"/>
<!-- Striker -->
<item itemKey="14821" enchantLevel="15" minCount="1" maxCount="1" classId="19"/>
<!-- Mystic -->
<item itemKey="14829" enchantLevel="15" minCount="1" maxCount="1" classId="23"/>
<!-- Lahn -->
<item itemKey="550501" enchantLevel="15" minCount="1" maxCount="1" classId="11"/>
<!-- Archer -->
<item itemKey="13902" enchantLevel="15" minCount="1" maxCount="1" classId="29"/> </box>
- But Ledie, I don't understand anything about this example. What do I do to understand?

Follow this example that I will explain each line.
Explain code "BoxitemKey"
It's simple.BoxitemKey is the box id. As in the example it is 15304. So she is saying that this item is here (CLICK HERE TO KNOW)
So in case I want to fix any box, I need to get the box ID using any website that provides the ids (I recommend bdocodex).

Explain code "ItemKey"
The itemKey is also almost the same as the explanation above.The difference is that itemKey is the item that when you right click on that box, it will come to your inventory.
The warrior line example uses the following line of code: itemKey = "14701"The number "14701" is the item ID that will come when you open the box. That is nothing but this item (CLICK HERE TO SEE ITEM)

Explain code Enchantlevel, minCount, maxCont
EnchantLevel:
The EnchantLevel code is nothing more than the level of enchantment that will come with the weapon, or armor, when you open the box. Currently this 15, so the item will come +15

minCount: The minCount code is simple, it is the minimum amount that will come, it would be like a roulette wheel, the minimum amount must always be "1". If it is "0" nothing will come. Therefore, if you enter a minimum quantity "1" and a maximum quantity "3", it can be between 1, two and up to 3 items.

maxCount: The maxCount code is basically the opposite of minCount, the difference that here will be the maximum of items that can come when you open the box, if you put maxCount = "15" there will be a maximum of fifteen items.

Classes list for help you (And the most important line)
Now let's talk about the code "classID"
This code is the most responsible of all, because here you will put the ID of each class, that is. If you put that the class "0" (Warrior) when opening the box will come an "Mercenary's Steel Great Sword", right?.

So the class "8" (Sorceress) when opening the box, will not come upstream. So you will see that each line I separated explaining which line is the warrior, the witch and others
WITCH: 31
Mystic: 23
Archer: 29
Lahn: 11
Sha Yi: 17
Guardian?: 5
Dark Knight: 27
Mage: 28
Ninja: 26
Kunoichi: 25
Valkyrie: 24
Striker: 19
Maehwa: 21
Musah: 20
Tamer: 16
Berserker: 12
SORCERESS: 8
Ranger: 4
Warrior: 0
Attention, this tutorial doesnt apply to fix costumes boxes from pearl shop.

I repeat, let your like in the publication and comment if it helped you, because if nobody comments anything or just thank me, I will stop doing tutorials, because there are people using my tutorials and getting credit for it.
I'm not going to lie, someone would like me not to do these tutorials because they are also seeing that they are using my tutorials and they don't give me credit for that, so maybe I hurt that person just to help you.

Сервер версии v1.0.1 с клиентом 9-го поколения Tianma (CN)

交流qq群 458573411
安装说明:

下载并安装服务端及客户端(安装至任意磁盘)
安装时请勿修改文件名称,只需你选择盘符即可,
服务端 odoRE v1.0.1 Alpha 文件名称请勿修改,否则启动失败
打开服务端点击 START.bat 启动即可 无需其他操作 自动启动共3个cmd窗口
然后打开客户端点击 BDO Launcher.exe 输入账号密码就可以进入游戏了

由于我上传的是原资源一些已知bug未修改 需要你自己修复 (纯净版的服务端)
一些bug我也会更新到本贴中.

一些问题:
在region.properties中编辑这些设置
know.subsector.size = 3700
see.range = 3700
exit.range = 3700
gameserver\bin\configs\localizingoption.properties
DefaultCharacterSlot = 25
CharacterSlotLimit = 50
.bag add ID 數量
.bag add 440 100 增加贡献度
.bag add 1 100 金币
.bag add 6 10000 这个是珍珠
.bag add 7 10000 这个是L币
.bag add 17355 1 90天VIP
.bag add 17081 1 祝福Kamasylve(15天)
.bag add 734 1 勇敢的香水

GM套装
65002
65421
65422
65424
65001
65003
65418


用户:
#加入频道
.channel join <CHANNEL_ID>
#离开频道
.channel leave
#显示频道
.channel show
#位置
.location
.rescue
#服务器版本
.server version
#服务器在线人数
.server online
#服务器游戏时间
.server gametime
#天气
.weather

测试:
#显示附近怪物
.spawn shownear

修改:
#添加物品到背包
.bag add [itemId] [count] (Optional: [enchantLevel]
#添加物品到指定玩家的背包
.bag addtoplayer [playerName] [itemId] [count] (Optional: [enchantLevel])
#禁止玩家聊天
.ban chat [characterName] [minutes]
#封禁账号
.ban account [characterName] [minutes]
#封禁玩家
.ban player [characterName] [minutes]
#封禁IP
.ban ip [characterName] [minutes]
#封禁hwid
.ban hwid [characterName] [minutes]
#玩家监狱
.ban jail [characterName] [minutes]
#解除封禁
.ban unban [characterName] [chat|jail|account|player|ip|hwid]
#位置
.location
#发布公告
.pc announce [text]
#踢出玩家
.pc kick [playerName]
#赠送礼物
.pc giftonline [itemId] [count] (Optional: [enchantLevel])
#设置等级
.pc setlevel [level]
#添加现金
.pc addcash [cashCount]
#添加属性?
.pc addtendency [tendencyCount]
#增加
.pc addwp [wpCount]
#增加经验
.pc addexp [expCount]
#增加技能经验
.pc addskillexp [expCount]
#增加技能点数
.pc addskillpoints [pointsCount]
#增加生活技能经验
.pc addlifeexp [lifeType] [expCount]
#增加健康经验?
.pc addfitnessexp [fitnessType] [expCount]
#?
.pc addexploreexp [nodeKey] [expCount]
#添加知识.技能
.pc addknowledge [cardId] [cardLevel]
#添加称号
.pc addtitle [titleId]
#清除杀人名单
.pc clearskilllist
#
.pc clearcooltime
#打开地图
.pc openmap
#信息
.pc info
#速度调节
.pc gmspeed [level]
#治愈
.pc heal
#调试dmg
.pc debugdmg
#公里?
.pc kms
#清除人物状态
.pc clearbuffs
#传送到NPC
.tp monster [npcId] (Optional: [dialogIndex])
#传送到玩家
.tp player [playerName]
#召唤玩家
.tp recall [playerName]
#传送指定坐标
.tp coord [x] [y] [z]
#传送指定地区
.tp town (Optional: [townId])
“50123”“马牌:登录奖励第8代马”
“50124”“马牌:白鬃白马”
“50125”“马牌:黑鬃黑马”
“50126”“马牌:银色马”
“50127”“马牌:黑马”
“50128”“马牌:马”
“50129”“马牌:幻想杜穆”
“50130”“马牌:幻想杜穆”
“50131”“马牌:幻想迪纳”
“50132”“马牌:幻想迪纳”
“50133”“马牌:幻想阿纳特” (白色天马)
“50134”“马牌:幻想阿纳特” (白色天马)
“50135”“马牌:阿杜阿纳特的噩梦” (黑色天马)
“50136”“梅迪亚冒险支援马牌(第5代)”
“50137”“巴雷诺斯冒险支援马牌(第一代)”
“50138”“登陆证:皇室热象”
“50139”“马牌:黄金马(第8代)”
“50140”“马牌:纪念大师白马(第7代)”
“50141”“马牌:纪念大师白马(第8代)”
“50142”“黑色沙漠冒险者支援马牌(第8代)”
“50143”“15岁服务器冒险者支援马牌”
“50144”“马牌:包裹专用黄鬃白马(第6代)”
“50145”“马牌:7世代白马”
“50146”“马牌:7世代名马”
“50147”“马牌:黑色马”
“50148”“马牌:黑色马”
“50149”“马牌:幻想杜穆”
“50150”“马牌:幻想迪纳”
“50151”“马牌:幻想的阿纳特”
“50152”“马牌:巴伦泰因的驴子”
黑色沙漠地图ID:
Скрытое содержимое доступно для зарегистрированных пользователей!
本版本的物品ID 提取至数据库,所以是韩文 你们自行百度或谷歌翻译自己翻译吧
黑沙物品id.txt
#数据库Account.database.account = admin
#数据库Password.database.password = 12345
#数据库的主机地址.database.host = localhost
#数据库正在运行
.database.port = 27017 #数据库名称.database.name =游戏服务器
#数据库身份验证名称.database.auth.name = admin


Robomango 0.90 无法读取本版本的数据库(不知道是不是我的问题)
如果你用的也是Robomango 0.90链接不上 请下载Robo 3T 1.4.0
推荐使用Robo 3T 1.4.0 链接数据库 下面附上下载地址
本帖隐藏的内容
Скрытое содержимое доступно для зарегистрированных пользователей!

1603636816812.png

如果你启动服务端失败,建议安装jdk-14.0.2
环境配置可以参考我的,但以你的jdk路径为准
系统变量:
CLASSPATH = ;%JAVA_HOME%\lib
JAVA_HOME = C:\Program Files\Java\jdk-14.0.2
path = C:\Program Files\Java\jdk-14.0.2\bin
1603636896793.png

游戏截图

1603636935395.png
1603636951334.png1603636958837.png1603636966392.png1603636973657.png

下载地址:

Скрытое содержимое доступно для зарегистрированных пользователей!

Scryde за 2016 год (classic)

TXCPbLNyBJQ.jpg

Доброго времени суток, выкладываю исходники scryde за 2016 год, проверить возможности нет.
Кому интересно забирайте - с Вас коммент по поводу работоспособности :3

Удачи.

[Share] C4 L2Patch v15

Шарю сборку и екст, может есть еще по новее версия, но у меня только такая.
В пак входит:
+ л2патч - без него не прикрутить и не запустить сервер.
+ с4 екст - если я не ошибаюсь, это шаровая версия от гвардов.(так же необходима для работы патча.)
Скрытое содержимое доступно для зарегистрированных пользователей!

- полный пак с сервера с тулзами и патчем.

+ Сам патч v 15

ПС: в первый пост почему-то не хочет грузить.

Pain-team rev25

* Переделан блафф за птс.
* Обновлен список миньонов за птс.
* Возможность задавать время респа отдельно каждому айди миньона.
* Устраняем возможность попадания второй профы на твт при кастомных шмотках.
* Breaking Arrow реализован как положено через скил, что упростило его применение.
* Переработаны стандартные телепорты, телепорты за токены согласно птс.
* Переоформлены диалоги продавцов, телепортеров и ньюби помощников.
* Присты 7ми печатей телепортируют только по ближайшим данженам, а не во все существующие + убрана возможность пристов телепортировать в любую точку мира.
* Реализован босс Ice Fairy Sirra.
* Улучшена работа Fear.
* Переписана и улучшена система респа миньонов + возможность задавать время респа каждому миньону.
* Заточка спойла и свипа за птс.
* Добавлена поддержка тиков эффектам, чтоб не вычислять значения за птс формулами.
* Переписано множество травилок согласно их тикам.
* Реализована примерочная за официалом, теперь можно смело включать.
* Все цены предметов и кол-во кристаллов согласно птс.
* Формулы получения кристаллов при поломке шмота заточкой и кристаллизации гномом согласно птс.
* Гном не может кристаллизировать вещь выше грейдом его пассивного навыка.
* Правка некоторых заточек скилов за новыми данными птс.
* Поправлены байлисты.
* В списке наблюдения за участниками олимпиады не показываем ники игроков до телепортации.
* Показываем ГМу статы самонов и петов по шифт+клик.
* Не посылаем анимацию от массового воскрешения на игроков, которые не прошли проверку на возможность воскрешения.
* Улучшена защита от подмены байпасов + защищена комьюнити.
* Переписаны и пофикшены Spell Force и Battle Force - теперь нельзя повесить на длительное время + не отображаем время эффекта.
* Переписаны и оптимизированы механизмы обращения с друзьями + на интерлюд нельзя добавлять в друзья больше 64 игроков.
* Возвращаем координаты дисконнект-персонажу с олимпиады.
* Устранена причина подвисания фарма фринтезы.
* Breaking Arrow не только оглушает фринтезу, но и прерывает музыку органа.
* Поправлена работа камеры после появления фринтезы.
* Добавлен слушатель в туториал квест для оптимизации часто вызываемого метода.
* Новая структура хранения мемберов пати для более быстрого доступа и правильной реконструкции списка.
* Не отправляем повторно пакет удаления мембера пати. Перепись сообщений пати. Система пати доработана + исключены возможные ошибки, в результате которых возникали пакетные глюки.
* При удалении/добавлении мембера пати обновляем реляцию + проверки смены лидера cc.
* Поправлена работа штрафа на опыт от самонов.
* Петы выведены в xml за птс.
* Реализованы все кормежки петов и их особенности в зависимости от состояния + показываем зеленую полоску голода на виверне и страйдере.
* Переписана механика хила бейби петов.
* Возможность активации удаления запрещенных эффектов, когда персонаж садится на ездовое животное, как на оффе.
* Фикс установки имени пета.
* Оптимизирован и поправлен аи нпц Toma.
* Проверка агрессивности моба для дальности агрессии и дистанции от точки спавна.
* Дистанция и время, через которое монстр перестает преследовать цель, если его не провоцировать.
* Возможность активации удаления хейта монстра при выходе из игры, как на оффе.
* Устранена причина начального отсутствия реакции на атаку социальных мобов/рейд боссов/миньонов.
* Социальные реагирования монстров за птс + реагирования лидеров и их миньонов.
* Отдельный конфиг задержки оповещения атаки рейд боссов и рейд файтеров.
* Оптимизирована и переписана покупка через байлисты + лимитированные предметы не могут стать бесконечными.
* Переписано множество квестов за interlude.
* Устранена причина перемещения персонажа рывками для окружающих без отображения бега.

Heavy metall NPC

Может кому такое извращение понравится
делал пару часиков под чай, поэтому если где-то что-то криво, то фиксите сами.
(на 1.3.6 половина эффектов отвалятся, будьте готовы, будет всё красиво начиная с 1.4.5 ( наверно ))
Вес самой модели большеват конечно, но в целом не сильно клиент грузит.

Web шаблон св13 v2.1

  • bot
  • Web
  • Ответы: 0
1602937536979.png

Выкладывал его в теме на новый год, залью в ресурсы, чтобы не потерялся.

Автор Fred1

Сайт + кабинет для управления Lineage2 java серверами

  • pau
  • Web
  • Ответы: 2
Проект закрыт 2019.10.13

Последняя официальная версия GHTWEB v5.1.3 цмс. Для Lineage 2 java серверов

Установка:
  • скачать архив или воспользоваться git clone
  • распаковать на ваш веб сервер
  • открыть в браузере, далее делать всё как там написано
Режим разработчика
  • В файле /public/index.php на 23 строке добавьте свой IP в массив.
    Появится профайлер внизу страницы, отключится кэщ и будет доступен gii
Разное
  • Темы находятся в папке /themes/ Что-бы создать свою, надо скопировать ghtweb и сохранить с другим именем
  • Логи (ошибки, нотисы и т.д) находятся в папке /protected/runtime/application.log
  • Веб сервер должен смотреть в папку /public

Гитхаб:
Скрытое содержимое доступно для зарегистрированных пользователей!

Clash of Clans Server

Hello Everyone, I will share premium server clash of clans.
The Server is almost perfect


Feature:
1. Live Attack and Spectate
2. Friendly Challenge
3. Reward resource
4. Mission NPC
5. Clans
6. Donate Troops
7. Global Chat
8. Dual PvP
9. System Trophies
9. Share Replay
10. Replay
11. Defense Log
12. Layout Editor
13. Loot Cart
14. Star Bonus
15. Ranking
And More...

Bug :
- Can't War
- System League
- Add Friends

Link :
Server, Tools and Tutorial:
Скрытое содержимое доступно для зарегистрированных пользователей!
APK COC v9.256:
Скрытое содержимое доступно для зарегистрированных пользователей!

1602786077971.png
1602786089901.png

TERMS OF USE:
This server intends to train player skills in playing Clash of Clans, it is not recommended to be opened publicly.
By using that server you agree and are ready to bear all the risks if something unwanted happens without involving other people.

~ Please use it wisely ~

This content is not affiliated with, endorsed, sponsored, or specifically approved by Supercell and Supercell is not responsible for it.

#DrawordXCode#

p.s. Need dotnet sdk x86

Rappelz Official Source Code

1602785745970.png

Серверные файлы 9.5.2:
Скрытое содержимое доступно для зарегистрированных пользователей!
Исходный код #1:
Скрытое содержимое доступно для зарегистрированных пользователей!
Исходный код #2:
Скрытое содержимое доступно для зарегистрированных пользователей!
Пароль от архивов: RevolutionTeam-is-the-best

Там 2 файла .. первый содержит исходники от epic 6 до epic 8.1
Второй файл, содержит исходный код от epic 8.1 до 9.2 с некоторым содержанием от 9.3.
Это последний выпуск этой сборки, мы надеемся, что все разработчики будут её использовать до последнего.

Эта сборка содержит множество ошибок в гейм сервера, и это будет большой проблемой для многих людей. Мы пытались сохранить файлы, пока не найдем все эти ошибки и не исправим их, затем мы выпускаем исходный код, но время истекло и многие люди просят исходники.

1602785828377.png

Авторство этой сборки принадлежит:
@Jo3laq @Hm999dy @BackInBlack @Eleonora @Ozan @Pr0Mac @Zone @Ghost Informatics

Управление ивентами без входа на сервер

Способ подходит для пакетной реализации или просто через iweb (Менеджер отправка команды).
Пакет : GMControlGame

Указываем worldtag
Для мира это 1
Команды две. Активировать или отменить ивент. Больше этот пакет ничего не умеет.
C-подобный
active_npc_generator 113

// через пробел указываем номер ивента 113 осада ГД

cancel_npc_generator 113

// отменяем ивент
Autor: @Vice

Как заставить работать "Модный город" в клиенте

В клиенте: configs/uiconfig.ini
EnableQShopFashionShop = 1
EnableBackShopFashionShop = 1
0 - Выключить
1 - Включить

А также в самом шопе или ярмарке необходимо стилям выдать тип "Новинка"

Autor: @follow

Language

Games on GitHub Admin panel Discord
EmuDevs is a community that devotes their time around development. Whether it be software, hardware, emulation, simple questions, or more, we are here!
Register and take a step into the future development of the server building