У каждого второго игрока в 90% случаев запуска патчера появляется именно такая ошибка: Папка повреждена, сделайте проверку. AF.log говорит о том, что патчер не может считать .pak файл (каждый раз разный). Примерно каждый 10-й запуск патчера - удачный, показывает версию, позволяет обновится и т.д. Прошу помощи, баг очень сильно вредит игровому клиенту. Примерно после каждый 10-й проверки .pak файл дропается (обнуляется и начинает качаться с нуля) и у пользователя появляются самые разные ошибки. От светофором до не отображения персонажей\локаций. Пробовал решить эту проблему своими силами - безрезультатно.
Данный скрипт предназначен для записывания в базу Mysql логов, содержащих: максимальный дневной он-лайн (записывается в таблицу konst_onllog) максимальный вечерний он-лайн количество времени (за сутки), проводимого ГМ'ами в игре (записывается в таблицу konst_gmtime, время в минутах) Пока выкладываю тестовый вариант, для опытных пользователей. В будущем возможно напишу интерфейс. Скрипт был написан мною с акцентом на sql-запросы (практика). код php-файла: <?php $Link = mysql_Connect('localhost', 'root', 'пароль'); mysql_Select_Db('pw', $Link); $GMid = mysql_Query("SELECT DISTINCT `userid` FROM `auth`"); //$GMi = mysql_fetch_row($GMid); $GMcount = mysql_Query("SELECT COUNT(DISTINCT `userid`) FROM `auth`"); $GMcou = mysql_fetch_row($GMcount); $test1 = MySQL_Query("SELECT * FROM `konst_onllog` WHERE `time`='Day' && `date`=DATE(NOW())"); $test2 = MySQL_Query("SELECT * FROM `konst_onllog` WHERE `time`='Night' && `date`=DATE(NOW())"); $test3 = MySQL_Query("SELECT * FROM `konst_gmtime` WHERE `date`=DATE(NOW())"); if (MySQL_Num_Rows($test1)) { MySQL_Query("UPDATE `pw`.`konst_onllog` SET `count` =(SELECT COUNT(*) FROM point WHERE zoneid='1') WHERE date=DATE(now()) && count<(SELECT COUNT(*) FROM point WHERE zoneid='1') && time = 'Day' && TIME(NOW())+0<180000"); } else { MySQL_Query("INSERT INTO `pw`.`konst_onllog` (`count` ,`date`,`time`) VALUES ('0', now(),'Day')"); MySQL_Query("UPDATE `pw`.`konst_onllog` SET `count` =(SELECT COUNT(*) FROM point WHERE zoneid='1') WHERE date=DATE(now()) && count<(SELECT COUNT(*) FROM point WHERE zoneid='1') && time = 'Day' && TIME(NOW())+0<180000;"); } if (MySQL_Num_Rows($test2)) { MySQL_Query("UPDATE `pw`.`konst_onllog` SET `count` =(SELECT COUNT(*) FROM point WHERE zoneid='1') WHERE date=DATE(now()) && count<(SELECT COUNT(*) FROM point WHERE zoneid='1') && time = 'Night' && TIME(NOW())+0>180000"); } else { MySQL_Query("INSERT INTO `pw`.`konst_onllog` (`count` ,`date`,`time`) VALUES ('0', now(),'Night')"); MySQL_Query("UPDATE `pw`.`konst_onllog` SET `count` =(SELECT COUNT(*) FROM point WHERE zoneid='1') WHERE date=DATE(now()) && count<(SELECT COUNT(*) FROM point WHERE zoneid='1') && time = 'Night' && TIME(NOW())+0>180000;"); } if (MySQL_Num_Rows($test3)) { for($i=0;$i<$GMcou[0];$i++) { $GMi = MySQL_result($GMid, $i, 'userid'); MySQL_Query("UPDATE `konst_gmtime` SET minuts = minuts+5 WHERE ID='$GMi' && date=date(now()) && (SELECT DISTINCT zoneid FROM `point` WHERE `uid` = '$GMi')=1;"); } } else { for($i=0;$i<$GMcou[0];$i++) { $GMi = MySQL_result($GMid, $i, 'userid'); MySQL_Query("INSERT INTO `pw`.`konst_gmtime` (`ID`, `minuts`, `date`) VALUES ('$GMi', '0', NOW());"); } } ?> sql-код создания таблицы konst_gmtime (лог посещаемости ГМ) CREATE TABLE IF NOT EXISTS `konst_gmtime` ( `Num` int(11) NOT NULL AUTO_INCREMENT, `ID` int(11) NOT NULL, `minuts` int(11) NOT NULL, `date` date NOT NULL, PRIMARY KEY (`Num`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; sql-код создания таблицы konst_onllog (лог он-лайна) CREATE TABLE IF NOT EXISTS `konst_onllog` ( `Num` int(11) NOT NULL AUTO_INCREMENT, `count` int(11) NOT NULL, `date` date NOT NULL, `time` varchar(10) NOT NULL, PRIMARY KEY (`Num`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; crontab-код (для активации скрипта каждые 5 минут): 0,5,10,15,20,25,30,35,40,45,50,55 * * * * GET http://localhost/место расположения/script.php Пригодится - рад. Не пригодится - лесом.
Скрипт отправки предмета на почту персонажа. Интерфейс максимально прост. Для подключения достаточно закинуть на хост. В будущем возможно выложу скрипт редактирования персонажей. [IMG] By konst http://dump.ru/file/5895950
Сделаный мною скрипт, исходники взяты в гугле. Установка: mediafire.com Копируем все из архива в папку /home/bkp/Прописываем в терминале права, пишем: chmod 777 -R /home/bkp/Запуск - пишем в терминале /home/bkp/bkp.sh и сворачиваем окно терминала.Теперь каждые 3 часа база персонажей, имен и аккаунтов будет сохраняться и запаковываться в папке: /home/bkp/ п.с. причина, по которой бекап не нк кронтабе проста - кронтаб выделяет всего 1-2 минуты на выполнение работы скрипта, данного времени не достаточно на полный бекап+запаковку. (искать где настройки этого периода времени в кронтабе не стал) п.с.2 кому надо вот код моментального авто-бекапа: #!/bin/sh DATE=`date +%d.%m.%Y..%H:%M` mkdir /home/bkp/$DATE cp -r /home/gamedbd /home/bkp/$DATE cp -r /home/pw.sql /home/bkp/$DATE cp -r /home/uniquenamed /home/bkp/$DATE # mysqldump -uпользователь -pпароль -hlocalhost имя_базы > /home/bkp/$DATE/pw.sql tar -czvf /home/bkp/$DATE.tar.gz /home/bkp/$DATE sleep 60 rm -rf /home/bkp/$DATE echo "бэкап создан:" echo ">>база аккаунтов, имён, персонажей сохранена в /home/bkp/$DATE.tar.gz" echo "***By K0NST***" exit 0 п.с.3 советую завести отдельный винт для бекапов и дать ему соответствующие права.
Собственно этот скрипт был сделан из скрипта ураганчика, спасибо ему, но добавил от себя: Подтверждение пароля (некоторые игроки сначала вводили, а потом забывали)Проверка по регистрационному Email'у (чтобы друзья не меняли пароль)Запись нового пасса без шифровки в отдельный столбец (особо привлечет ваше внимание)Запись айпи с которого меняли пасс на аккаунтеУбрана не рабочая на php5 (как я понял) капчаСвой дизайн (прошу не менять дизайн и не убирать копирайты, т.к. от этого у вас будут ошибки с подключением к MySQL)[ATTACH] mediafire.com
..искал я нормальный авто-подъем мира и так не нашел.. увидил тему ураганчика с его авто-подъемом мира, поставил.. дождался пока мир упадёт, ждал пока поднимится - так и не поднялся.. ..я пошел к ураганчику..ураганчик не ответил мне.. [img] забил *** :rolleyes: . через минут 15 в аську вошел Ваня =Master= и я вспомнил про упоминание ураганчиком в начале темы про Ванин скрипт... заинтересовался, залез к ване на серв, скачал (там ещё кучка интересных прог). нашел скрипты, заинтересовался, как же они работают.. посмотрев скрипты, понял что они не совсем продуманы запускаются до бесконечности.. спросил у вани, вот что услышал: master:-@1:16 я давным давно над этим скриптом с друзьями угарал master:-@1:16 когда он сам себя неделю запускал master:-@1:16 ---over 9000 процессов в системе) master:-@1:17 но придётся через день сбрасывать эту опирацию master:-@1:18 иначе быстро заговницо) master:-@1:20 просто если сделаешь команду top master:-@1:20 о***ешь от процессов) заинтересовался, а что если скрипт, после запуска 2-ого скрипта, 1-й будет закрываться? и т.д. плохо зная скрипты, погуглил в яндексе "закрытие скрипта .sh"нарыл совершенно не относящийся к делу скриптно понял что кажется нашел искомое! :unsure: user@host:~$ cat /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0[/color] сам тестить не стал, ибо мне комп ещё нуженрешил спросить ваших советов :) з.ы. хочу сделать вот так: start.sh - главный скрипт, который не нужно закрывать)#!/bin/sh echo "" echo "" echo "==starting reap sistem==" sleep 2 cd /host/home/reap/ ./reload.sh reload.sh - первый перезапускаемый скрипт#!/bin/sh echo "" echo "=Запуск проверки мира=" sleep 1 cd /host/home/reap/ ./reap sleep 100 cd /host/home/reap/ ./reload2.sh exit 0 reload2.sh - второй перезапускаемый скрипт#!/bin/sh echo "" echo "=reload script2 is starting=" sleep 2 cd /host/home/reap/ ./reload.sh exit 0 reap - сам файл проверки, проверяет включен ли инст\включающий инст :unsure:#!/bin/bash cd /host/home/gamed/ ./gs gs01 >gs01.log 2>&1 & sleep 5 for (( e = 1 ; e <= 1; e++ )) do if test $e -le 9 then ./gs is0$e >/dev/null 2>&1 & else ./gs is$e >/dev/null 2>&1 & fi done sleep 5 echo "Проверка РјРёСЂР° завершена" теперь спрашивается: 1)exit 0 закроет скрипты, или там какая-то другая команда нужна? 2)если он закроет, нормально дальше будет запускаться эта цепь? 3)точно надо прописывать команду закрытия в скрипты перезапуска, или же в reap ? если все что я написал не имеет смысла, прошу никак не реагировать..
в >этом< архиве содержатся: Surfaces.pck Models.pck Gfx.pck Вытащил из игры Forsaken World (от создателей PW, JD). Скорее всего, если поковырять - могут подойти к ПВ, т.к. структура клиента этой игры очень похожа на структура клиента ПВ.
Собственно вот папка maps из игры Forsaken World. Ходят слухи, кто кто-то уже переконвертировал логин отсюда для JD. >Дерзайте<
Описание: Утилита, для автоматического входа в игру Perfect World. Больше не нужно вводить логин и пароль вручную, тузла все сделает сама!Меняя параметр WindowName, можно использовать утилиту не только в PW, но и в других онлайн играх! Автор программы KlоneВ@DGuY Скачать
Описание: Утилита, для разморозки окон игры Perfect World. Если вы играете в оконном режиме и часто переключаетесь на другие приложения, то сможете видеть, что происходит с вашим персонажем. Особенности: - Утилите не нужно имя заголовка окна, она ищет по классу - Адрес разморозки, берется из ini-файла [его можно сменить] - Утилита умеет размораживать сразу несколько окон Автор программы KlоneВ@DGuY Скачать
[img][img][img][img] Скачиваем: БДЫЩЬ! Источник: Кот-форум (покойся с миром, пусть земля тебе будет пухом)
Имена участников (разделяйте запятой).