1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска по запросу: Создаем рб

  1. Следующие слова были исключены из текста для поиска, поскольку они слишком короткие, слишком длинные или встречаются слишком часто: рб
  1. pw-star
    Создаем конфигурационный файл описания механизма "прозрачного проксирования" на "back-end" для последующего включения в конфигурации виртуальных хостов: #touch /etc/nginx/proxy.conf Приводим его к следующему виду: proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; Создаем файл конфигурации виртуальных хостов, поддерживаемых нами: #touch /etc/nginx/sites-available/u000.local #touch /etc/nginx/sites-available/u001.local Приводим их примерно к следующему виду: server { listen eth0.0.local:80; server_name u000.local www.u000.local; # Указываем кодировку отдаваемых страниц charset utf-8; access_log /var/www/u000/log/nginx.access.log; error_log /var/www/u000/log/nginx.error.log; # запрещаем отдавать кому бы то ни было файлы .htaccess и .htpasswd location ~* /\.ht { deny all; } # Перенаправление на сервер "back-end" location / { proxy_pass http://127.0.0.1:8080/; include /etc/nginx/proxy.conf; } # Статическое наполнение у нас отдает сам Nginx из директорий ресурсов пользователей в соответствии с указанными типами файлов location ~* \.(css|gif|jpeg|jpg|js|txt|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|xpi|zip|tgz|gz|bz2|tar|bin|exe|dll|deb|dmg|iso|img|msi|msp|msm|mid|midi|mp3|mpeg|mpg|mov|flv|asx|asf|wmv|avi)$ { root /var/www/u000/www/; } } Казалось бы, зачем прописывать модули перенаправления трафика между "front-end" и "back-end" в каждом описании виртуального хоста, если они однотипны? Можно вынести их в общее описание конфигурации Nginx, но, тогда у нас не будет типового подхода к возможности индивидуальной настройки разделения трафика. Например, не исключено, что для избранных хостов в Apache2 указаны нетипичные расширения для исполняемых файлов и мы хотели бы их не отдавать напрямую клиенту. Указываем символическими ссылками Nginx на доступные конфигурации виртуальных хостов для загрузки: #ln -s /etc/nginx/sites-available/u000 /etc/nginx/sites-enabled/u000 #ln -s /etc/nginx/sites-available/u001 /etc/nginx/sites-enabled/u001 И удаляем ссылку на конфигурацию виртуально хоста "по умолчанию": #rm /etc/nginx/sites-enabled/default Перезапускаем Nginx: #/etc/init.d/nginx restart По завершению конфигурирования Nginx закрываем от постороннего взгляда директорию конфигурации: #chown -R root:root /etc/nginx #chmod -R o-rwx /etc/nginx Ещё никто не заинтересовался публикацией настолько, что бы оставить здесь своё мнение. А мне действительно хотелось бы знать, что вы думаете о ней. Подскажите, если нашли ошибку или просто знаете как сделать мир лучше. P.S Уважаемые модераторы если тема создана не в том разделе просьба перенести в нужный. Права на данный гайд принадлежат моему коллеги Андрею по его просьбе выложен.[/b]
    Сообщение от: pw-star, 29 мар 2011 в разделе: PW Документация
  2. mr.Slink
  3. dSad
    Сообщение

    Windows 7 x64 + vBox+coLinux

    Часто встречал вопрос. Как поставить сервер на 7рке х64... На данный момент в просторах инета я так и не нашёл кулинь под 64 битную систему 7рки. Решение есть (Создаём на ПК виртуальную машину с XPихой) Гайд универсален..В плане того что за место XP можно поставить Убунту,Линуху... Гайд для того что бы не морочится с тем как поставить ДОП ос Для серва не снося и не праясь Начнём Для создания Эмуляции Компьютера 1)Нам надо программу vBox Тут все версии(Что это читаем) Сайт производителя Под х64 подходит только версия (Хотя сейчас может уже есть и выше)VirtualBox-4.0.2-69518-Win Для создания самого сервера на симулированном ПК 2)coLinux-0.7.2 (Что это читаем)СкачатьЗеркало 3)WinPcap-4-0-2 (Что это читаем)СкачатьЗеркало 4)Образ в формате iso любой XP (Для создания операционной системы на симулированном ПК) Можно нарыть на любом торрентеВАЖНО: Образ должен поддерживать загрузку в режиме First boot CD-room Использование не лицензионного программного обеспечение НЕ ЕСТЬ ХОРОШО я предупредил : ) 5)Сборка любого сервера на ваш вкус. Я использовал сборку Матроса Советую внимательно читать его гайд. Вопросы - А почему у меня не работает данная сборка? Объяснять не буду так как сборка нормальная. 6) Диск от вашей материнки (Так как на Эмуляцию ПК придётся то же ставить Дрова... Причём дрова должны быть под XP) Как можно перенести данные дрова на эмуляцию ПК ? 3мя способами А) Создать Общую папку с Эмуляцией и Стационарным ПК (Эдакая папка с общим сетевым доступом) Ниже опишу как создать данную папку Б) С флешки (Да скачать дрова на флешку и прикрутить её к Эмуляции ПК) В) Создать iso фаил с вашими дровами (Я использовал прогу PowerIso) Итак вся установка всего выше перечисленного будет проходить в 2 этапа Первый создания "компа в компе" (Вам придёться "отрезать" часть оперативки своего ПК + часть частоты процессора) Второй настройка эмуляции (Прописание общих папок, IP адресов,установка софта,заливка и отладка серва) ЭТАП 1 Запускаете фаил VirtualBox-4.0.2-69518-Win Установка простая шибко без заморочек ... Так что описывать подробно не буду. Важно то что в момент инстала отрубиться инет... После установки может возникнуть конфликт IP адресов сетевухи и виртуальной сетевухи.. Так что у кого включена функция DHCP на роутере смело вырубайте и прописывайте ручками.. Прога установилась и вы её запустили... (Благо она полностью на Русском языке) 1) Задаём ИП адрес виртуальной машине... Фаил-> Настройки -> Сеть В окошке тыкаем 2 раза левой кнопкой мыше на сетевом адаптере. В окошке прописываем IP виртуально сетевухе (Прошу не путать с сетевухой от колиня) К примеру : Если у вас стационарный комп с адресом 192.168.0.100 то данной сетевухе присвойте 192.168.0.101 [IMG] Дальше в этом же мини окошке нажимаем вкладку DHCP сервер И прописываем тут свой адрес [IMG] В Настройках там же где нажимали кнопку сеть есть кнопка Общие Нажимаем Видим [IMG] Надо создать папку для серва ... Заходим на свой жёсткий диск (Пофиг диск D или диск C самое главное что бы на нём было минимум гигов 20-25 свободного места)... Создаём там папку с названием server Дальше в этом окне указываем путь на данную папку (в ней будет образ всего серва, конфиг его настройки,жёсткий диск) 2) Теперь надо создать жёсткий диск для сервера После того как мы настроили виртуалБокс основные настройки. Нажимаем кнопку создать [IMG] Нажимаем Next Дальше видим [IMG] Тут указываем Название Сервера (Будет отображаться в списке программы. Важно Давайте название Английскими буквами) Операционную систему. И её тип Дальше жмём Next Тут мы указываем какое кол-во Оперативки отдадим серверу ... У меня 4 гига. Я смело 1024МБ отдал серву Дальше жмём Next [IMG] Вот тут важный этап. Выделение дискового пространства (То есть мы оттяпываем кусок своего HDD для виртуального ПК) Либо создаём Жёсткий диск (Либо используем существующий, но если вы ставите прогу в первый раз то жёсткий надо создавать) Ставим галочку создать...Нажимаем Next Открывается окошко..ВАС приветствует мастер Жёстких дисков... Дальше идём пошагово Next Видим вот что [IMG] 2 варианта ... Динамический образ жёсткого диска (То есть он будет у вас жрать,жрать,жрать дисковое пространство) Или фиксированный образ... Советую выбрать фиксированый с размером 20ГБ или больше Жмём Next Указываем папку где будет жёсткий диск (Выше я вас просил создать папку сервер. Так вот указываем путь на эту папку что бы он там создал образ HDD)... Дальше идёт время на создание HDD Всё... На данный момент мы создали виртуальный ПК и создали для него Жёсткий диск Теперь мы видим [IMG] Ваше название сервака ... Выделяем его мышкой. Нажимаем Свойства Появилось Окошко.. В нём видим настройки самой виртуальной машины (Не путать с основными настройками вибокса) Нам надо поставить на него винду... Нажимаем вкладку Носители Видим Сидирум и Hdd ... Тут так же как и в биосе .. Надо указать Сидюк первичным а HDD вторичным... [IMG] На скрине у меня уже запускался сервак..и я забыл убрать из привода диск .. Вам надо будет указать iso вашей XP Указали... ИМХО Теперь щёлкаем вкладку сеть [IMG] Ставим галочку Включить сетевой адаптер. Тип подключения - Виртуальный адаптер хоста Имя - Virtualbox Host-only ethernet Adapter Нажимаем дополнительно Тип адаптера - Intel pro /1000 MT server (Хз может будет у вас подругому называться. Но у меня лично так, должно быть со словом server) Mac-адрес - Указываем методом нажатия зелёной кнопочки рядом Дальше перемещаемся на вкладкуОбщие Папки [IMG] Нажимаем кнопочку с +сиком.. Указываем Общую папку (То есть с виртуальной машины в неё можно будет зайти при открытии Мой компьютер, через неё собственно можно загружать и выгружать файлы с виртуального ПК) И не забудьте ДАТЬ ОБЩИЙ ДОСТУП к этой папке на Стацинарном ПК Если при создание Общий папки на виртуальной машине возникла трудность что мол можно создать общую папку только лишь имея гостевую ОС...То смело создаём Гостевую ОС нажатием кнопки Устройства Установка Доп Гостевой ОС [IMG] После нехитрых манипуляций пошагово... Вас попросят перезагрузить ПК (То есть виртуальную машину, для этого нажимаем в виртуальной машине Пуск и перезагружаем) Указали малодци Теперь мы нажимаем кнопку OK Для того что бы закрепить настройки После того как вы выше указали в Носителях сидирум (То есть образ XP) вы перезапускаете вибокс .. Выделяете сервер -> нажимаете запуск Начнётся загрузка. Вы увидите надпись Нажмите Любую кнопку для установки винды...Ну дальше как обычно при установке .. Главное в итоге увидеть вот это [IMG] Могу вас поздравить ... самую тяжёлую работу уже прошли... На виртуальной машине нажимаем Мой компьютер и видим Сам диск,Сидюк,И общую папку Теперь на нажимаем на моём компьютере правой кнопкой мыши... Заходим в свойства, дальше в Диспетчер Устройств и проверяем установлины ли Дрова (Если нет то создавайте iso диска с дровами и ставьте с исошки) Указать исошку можно Нажав Устройства -> Привод Оптических Дисков -> Выбрать Образ оптического диска Установили Дрова... Теперь на стационарном ПК в Общую папку Заливаем Все файлы сервера, Колиня,Винкейпа и создаём всё по шагово по любому гайду Винды+Колиня их благо на форуме полно. Гайд написан Мною Лично спешел фор ММОРПГ-девс Пак со скринами (Если радикал решит затереть)
    Сообщение от: dSad, 2 мар 2011 в разделе: PW Документация
  4. JoLan
    Добрый день. Сегодня я покажу Вам, как работать с переменными. Переменная - это отведенный под программу участок памяти, в который по ходу программы будут заноситься разные значения. Создаем новое консольное приложение (как это сделать описано в 1-м уроке) и объявляем переменную командой var (Variable - переменная):program Project1; {$APPTYPE CONSOLE} uses SysUtils; var a:integer; begin end. Тут мы объявили переменную типа Integer, что значит целые числа в пределах от -2147483648 до 2147483647, то есть наша переменная "a" сможет принять значение от -2147483648 до 2147483647, больше, чем достаточно. Что же мы сделаем дальше? Конечно же присвоим значение этой переменной и выведем её на экран. Оператор присваивания в языке паскаль выглядит так " := ":program Project1; {$APPTYPE CONSOLE} uses SysUtils; var a:integer; begin a := 5; writeln(a); readln; end.Тут мы присвоили переменной "a" значение 5, все просто и замечательно. [img] Но ведь одна переменная это не интересно, давайте сделаем простой калькулятор с одним действием. Для этого нам понадобится 3 переменные:a,b,result: integer; //переменные можно называть, как Вашей душе угодно Выведем на экран сумму a и b:program Project1; {$APPTYPE CONSOLE} uses SysUtils; var a,b,result: integer; begin a := 2; b := 3; result := a + b; writeln(result); readln; end.[img] В данном примере мы задали значения a и b программно, но ведь интересней, если мы введем их с клавиатуры, не так ли? Тут нам пригодится Readln:program Project1; {$APPTYPE CONSOLE} uses SysUtils; var a,b,result: integer; begin readln(a); readln(B); result := a + b; writeln(result); readln; end. Теперь программа умеет складывать числа, введенные с клавиатуры, простенький калькулятор готов.[img] Но выглядит это не очень. Делаем вывод красивым: program Project1; {$APPTYPE CONSOLE} uses SysUtils; var a,b: integer; begin write('Input first argument: '); readln(a); write('Input second argument: '); readln(B); write('Total: ',a+B); readln; end. Заметили, что result на самом-то деле не нужен? Теперь немного о Write/Writeln: все аргументы для вывода следует писать через запятую. Со строками немного по-другому, но сейчас не об этом. [img] Калькулятор готов! Поздравляю!
    Сообщение от: JoLan, 19 фев 2011 в разделе: Уроки
  5. Supreme
    И так приступим открываем папку D:\server\gameserver\data\jscript\custom - и тут создаем папочку 9999_NPCBuffer далее тут же D:\server\gameserver\data\jscript\custom ищем файлик с названием __init__.py и у вас например там такое __all__ = [ '3995_echo', '4000_ShadowWeapons', '7000_HeroItems', '7782_Recz', '7785_HeroSF', '8000_RaidbossInfo', '7779_LazyNooblez', '6050_KetraOrcSupport', '6051_VarkaSilenosSupport' ] print "" print "importing custom data ..." for name in __all__ : try : __import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1) except: print "failed to import quest : ",name print "... done" print "" что вам нужно, ето вписать туда своего бафера и код должен получится следующий Код __all__ = [ '3995_echo', '4000_ShadowWeapons', '7000_HeroItems', '7782_Recz', '7785_HeroSF', '8000_RaidbossInfo', '7779_LazyNooblez', '6050_KetraOrcSupport', '6051_VarkaSilenosSupport', '9999_NPCBuffer' ] print "" print "importing custom data ..." for name in __all__ : try : __import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1) except: print "failed to import quest : ",name print "... done" print "" все бафера вписали теперь копируем етот файлик _init_.py и вставляем сюда D:\server\gameserver\data\jscript\custom\9999_NPCBuffer далее создаем здесь D:\server\gameserver\data\jscript\custom\9999_NPCBuffer файлики например 1.htm 2.htm ( ети файлы ето раззделы с бафами ) и так открываем штмл файлик через блокнот и пишем следующее Цитата <html> <body> <center> <img src="L2UI_CH3.herotower_deco" width=256 height=32> <font color="FF40FF">Бафер</font><br> <br> <font color="00FFBB">Список баффоф:</font><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <tr><td></td><td><button value="Лечить - 1k" action="bypass -h Quest 9999_NPCBuffer 6" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br> <tr><td></td><td><button value="CP - 1k" action="bypass -h Quest 9999_NPCBuffer 69" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <tr> <td><button value="Баффы" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Танцы" action="bypass -h Quest 9999_NPCBuffer 2.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Песни" action="bypass -h Quest 9999_NPCBuffer 3.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Чанты" action="bypass -h Quest 9999_NPCBuffer 7.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Животные" action="bypass -h Quest 9999_NPCBuffer 8.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Дополнительно" action="bypass -h Quest 9999_NPCBuffer 9.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> </center> </body> </html> Красный - надпись Вверху менюшки бафера Оранжевый - Надпись на картинке что бы зайти в список баффов Голубой - название штмл при нажатие на картинку вас будет перемещать в тот штмл который вы указали [IMG] Далее: настраиваем баффы открываем файлик 2.htm и вписываем например ето <html> <body> <center> <img src="L2UI_CH3.herotower_deco" width=256 height=32> <tr> <td><font color="00FFBB">Танцы (20k каждый)</font></td> </tr> <tr> <td> </td> </tr> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td> <table width="260"> <tr> <td><button value="Warrior" action="bypass -h Quest 9999_NPCBuffer 27" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Inspiration" action="bypass -h Quest 9999_NPCBuffer 28" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Mystic" action="bypass -h Quest 9999_NPCBuffer 29" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Fire" action="bypass -h Quest 9999_NPCBuffer 30" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Fury" action="bypass -h Quest 9999_NPCBuffer 31" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Concentration" action="bypass -h Quest 9999_NPCBuffer 32" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Light" action="bypass -h Quest 9999_NPCBuffer 33" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Aqua Guard" action="bypass -h Quest 9999_NPCBuffer 34" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Earth Guard" action="bypass -h Quest 9999_NPCBuffer 35" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Vampire" action="bypass -h Quest 9999_NPCBuffer 36" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </table><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <td><button value="Назад" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </center> </body> </html> Крастный - Надпись вверху списка денсов Оранжевый - Слово на картинке при нажатие на которую будет даватся Бафф Голубой - етот номер вам ещо понадобится обязательно смотрите что бы они шли попорядку Следующий Пункт у нас Добавление самих бафов : открываем D:\server\gameserver\data\jscript\custom\9999_NPCBuffer и открывайте файлик __init__.py там у вас должно быть пусто так что вписываем туда примерно такое import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest qn = "9999_NPCBuffer" NPC=[70022] ADENA_ID=57 QuestId = 9999 QuestName = "NPCBuffer" QuestDesc = "custom" InitialHtml = "1.htm" print "importing custom: 9999: NPCBuffer" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = event count=st.getQuestItemsCount(ADENA_ID) if count < 150000 or st.getPlayer().getLevel() < 1 : htmltext = "<html><head><body>You dont have enough Adena,<br> or your level is too low. You must be 40 or higher.</body></html>" else: st.takeItems(ADENA_ID,0) st.getPlayer().setTarget(st.getPlayer()) if event == "2": st.takeItems(ADENA_ID,160000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "3": st.takeItems(ADENA_ID,80000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "4": st.takeItems(ADENA_ID,140000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "5": st.takeItems(ADENA_ID,400000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "6": st.takeItems(ADENA_ID,1000) st.getPlayer().restoreHPMP() return "1.htm" st.setState(COMPLETED) #Wind Walk if event == "7": st.takeItems(ADENA_ID,25000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() return "5.htm" st.setState(COMPLETED) #Decrease Weight if event == "8": st.takeItems(ADENA_ID,25000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() return "5.htm" st.setState(COMPLETED) if htmltext != event: st.setState(COMPLETED) st.exitQuest(1) return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) htmltext = "<html><head><body>I have nothing to say to you</body></html>" st.setState(STARTED) return InitialHtml QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc) CREATED=State('Start',QUEST) STARTED=State('Started',QUEST) COMPLETED=State('Completed',QUEST) QUEST.setInitialState(CREATED) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) Розовый - На какую страницу будет возращатся Бафер при использование етого баффа вам нужно поставить например 3.htm Синий - LvL Скила Серый - ID Баффа ( Нужный Вам ID вы сможете узнать здесь D:\server\gameserver\data\stats\skills ) Зеленый - число Адены котрое требует для баффа Жолтый - ID Baffer Красный - ID Итема который будет Братся при бафе Коричневый - Название Баффа Голубой - теперь вспоминаем те числа которые были при добавление Денсов ( смотрите сообщение выше обделено голубым цветом ) но я вылаживал там мануал как ставить денсы а нам нужны Бафы значит делаем ешо 1 шмл файлик и туда вписываем тоже самое вто и в денсах токо смените названиестранички Например 3.htm и место дансов пишите баффы ... и вот например вы пишите скил Wind Walk в новом файле сам вид баффа должен получится такой <td><button value="Wind Walk" action="bypass -h Quest 9999_NPCBuffer 7" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> И так далее у нас Запрос в Базу создаете файл например buffer.sql и туда вставляете ето (70022,30842,'Buffer',1,'Buffer',1,'NPC.a_trader_FElf',8.00,24.00,70,'female','L2Npc',40,3862,1493,11.85,2.78,40,43,30,21,20,10,0,0,1314,470,780,382,278,0,333,0, 0,0,55,132,NULL,0,1,0,'LAST_HIT'); Зеленый - ID бафера Красный - Имя бафера Жолтый - Титул Бафера Бафер будет иметь вид как трейдер НПЦ Alexis так далее ... октрываете Navicat нажимаете правой кнопкой по вашей папке в которой все таблицы выбираете Execute Batch File... нажимаете и указываете путь к вашему buffer.sql Кому помог отпишитесь!
    Автор темы: Supreme, 24 янв 2011, ответов - 1, в разделе: LineAge 2
  6. Supreme
    Настройка включение отключение. управление. Включаем работу золотых капсул(Golden Age) Для этого нам понадобиться инишка ActionPointSystem.ini [Action_Select_0] ;; USE // Юзать (1- да, 0 - нет) Use = 1 ;; Reset // Обнуление(1-да, 0 -нет) Reset = 1 ;; Action_Code //Тип(существуют три типа, 0, 1, 2, и все они отвечают за золотые капсулы. Action_Code = 2 BEGIN_YEAR = 2011 BEGIN_MONTH = 01 BEGIN_DAY = 03 BEGIN_HOUR = 7 BEGIN_MINUTE = 00 END_YEAR = 2029 END_MONTH = 01 END_DAY = 03 END_HOUR = 00 END_MINUTE = 00 [Action_Select_1] USE = 1 Reset = 1 Action_Code = 1 BEGIN_YEAR = 2011 BEGIN_MONTH = 01 BEGIN_DAY = 03 BEGIN_HOUR = 09 BEGIN_MINUTE = 55 END_YEAR = 2028 END_MONTH = 08 END_DAY = 02 END_HOUR = 00 END_MINUTE = 00 [Action_Select_2] USE = 1 Reset = 1 Action_Code = 2 BEGIN_YEAR = 2011 BEGIN_MONTH = 01 BEGIN_DAY = 01 BEGIN_HOUR = 00 BEGIN_MINUTE = 00 END_YEAR = 2029 END_MONTH = 03 END_DAY = 31 END_HOUR = 23 END_MINUTE = 59 Кеш-шоп Ивент Нам требуется работа с инишками : cash_discount.ini и cash_discount_limitsale.ini. Данный Ивент отвечает за Распродажу, скидки и покупку 2 вещи по цене 1. ;; USE : 1 - Включен, 0 - Выключен. ;; REPEAT 1 - повтороение, 0 - отключено ;; REPEAT_DAY - Сколько дней повторять. ;; [Cash] //Скидки в Кеш-Шопе USE = 1 REPEAT = 1 REPEAT_DAY = 1 SALE = 30 // Это число отвечает за саму скидку от общей цены предмета. BEGIN_YEAR = 2010 BEGIN_MONTH = 01 BEGIN_DAY = 30 BEGIN_HOUR = 00 BEGIN_MINUTE = 00 END_YEAR = 2020 END_MONTH = 12 END_DAY = 12 END_HOUR = 23 END_MINUTE = 59 EXPIRE_YEAR = 2020 EXPIRE_MONTH = 12 EXPIRE_DAY = 31 EXPIRE_HOUR = 23 EXPIRE_MINUTE = 59 [Set] // Распродажа. USE = 1 REPEAT = 0 REPEAT_DAY = 0 BEGIN_YEAR = 2009 BEGIN_MONTH = 02 BEGIN_DAY = 09 BEGIN_HOUR = 00 BEGIN_MINUTE = 00 END_YEAR = 2010 END_MONTH = 02 END_DAY = 09 END_HOUR = 23 END_MINUTE = 59 EXPIRE_YEAR = 2010 EXPIRE_MONTH = 09 EXPIRE_DAY = 31 EXPIRE_HOUR = 23 EXPIRE_MINUTE = 59 SetA_Discout = 12 SetB_Discout = 10 SetC_Discout = 15 SetAll_Discout = 15 [One&One] // Покупка вещи по цене одной. USE = 1 REPEAT = 0 REPEAT_DAY = 0 BEGIN_YEAR = 2009 BEGIN_MONTH = 02 BEGIN_DAY = 10 BEGIN_HOUR = 00 BEGIN_MINUTE = 00 END_YEAR = 2010 END_MONTH = 02 END_DAY = 10 END_HOUR = 23 END_MINUTE = 59 EXPIRE_YEAR = 2010 EXPIRE_MONTH = 09 EXPIRE_DAY = 31 EXPIRE_HOUR = 23 EXPIRE_MINUTE = 59 Инишка номер 2 : ;; USE ;; REPEAT ;; REPEAT_DAY [Limit Sale] USE = 1 BEGIN_YEAR = 2009 BEGIN_MONTH = 02 BEGIN_DAY = 10 BEGIN_HOUR = 00 BEGIN_MINUTE = 00 END_YEAR = 2020 END_MONTH = 02 END_DAY = 15 END_HOUR = 23 END_MINUTE = 00 EXPIRE_YEAR = 2015 EXPIRE_MONTH = 02 EXPIRE_DAY = 10 EXPIRE_HOUR = 00 EXPIRE_MINUTE = 00 MaxItem = 20 // Макс Кол-во итемов LimITEM = 15 // Ограниченное число предметов. ;ГКЅЙАЪАЗ ёµ Limcode0 = iicsa01 Limcount0 = 10 ;єц јї Limcode1 = ibcsa40 Limcount1 = 10 ;ЖчјЗ Limcode2 = ipwhp01 Limcount2 = 10 Limcode3 = bxcsa49 Limcount3 = 10 Limcode4 = ipche01 Limcount4 = 10 Limcode5 = bxcsa53 Limcount5 = 10 Limcode6 = bxcsa76 Limcount6 = 10 Limcode7 = bxcsa38 Limcount7 = 2 Limcode8 = recsa01 Limcount8 = 5 Limcode9 = ipcsa74 Limcount9 = 9 Limcode10 = iycsc42 Limcount10 = 99 Limcode11 = ipdou01 Limcount11 = 500 Limcode12 = ipqsa19 Limcount12 = 40 Limcode13 = ipchm35 Limcount13 = 10 Limcode14 = iqcsa07 Limcount14 = 10 Discout = 10 //Скидка 10% Eventset.ini Нам требуется работа с инишками : EventSetLooting.ini и EventSet.ini. Данный Ивент отвечает за Создание средних мини ивентов по команде. ИвентСет : ;; Concurrent events occur in the various stacks in order to coordinate the top of the stack and in front of the ;; Name three of the same name, make the event. ;; Eventcode Location X Y Z Monster QUantity RespawnTime Probability Jisokil RF bastiellar_lotron -3348 -143 361 14803 90 100 100% 1 // RF - Название Ивента AM Elan -5531 396 -2214 0A50B 3 10020 100% 1 //AM - Название ивента ;;loveless_acc NeutralA -4154 1151 -3202 0A907 1 3600 100% 1 ;;loveless_bcc NeutralB -3472 276 6114 0A907 1 3600 100% 1 ;;loveless_ccc NeutralC 8503 -103 2960 0A907 1 3600 100% 1 ;; Eventcode Location X Y Z Monster QUantity RespawnTime Probability Jisokil ;;Eventset1 NeutralC 7679 -157 141 0B903 99 30 100% 1 ;;Eventset2 NeutralC 7248 153 573 0B903 99 30 100% 1 ;;Eventset3 unknown -5015 1123 -4110 0B903 99 30 100% 1 ;;Eventset4 unknown -5015 1123 -4110 0B903 99 30 100% 1 ;;Eventset5 unknown -5015 1123 -4110 0B903 99 30 100% 1 ;;Eventset6 unknown -5015 1123 -4110 0A907 1 14400 100% 1 ;;Eventset7 unknown -5015 1123 -4110 0A907 1 14400 100% 1 ;;Eventset8 unknown -5015 1123 -4110 0A907 1 14400 100% 1 ;; Put unknown in the Location when you don't know where to setup your event it will Make the event start where the Admin is ИвентСетЛутинг : ; Events associated with three items set the routing information management ; The value of participation in war ; 0 - Holly Stone, regardless of whether the retention of scanner for routing ; 1 - Holly Stone, routing only if the scanner can be the retention of ; Routing privileges Value Definition ; 0 - maktaja or patiman permission of maktaja ; 1 - maktaja and all of the same species ; 2 - maktaja and all gildeuwon ; 3 - All players routing ; 4 - maktaja species such as sheik, only routing ; 5 - 10,002 Chapter maktaja Guild of the species, such as routing [Looting] ; Maximum Monster List: 100 ; Monster routing permission scale range war 15E13 1 100 0 3 [Item] ; A list of items to a maximum monseuteodang: 50 ; Monster Item Code Quantity bundle probability 15E13 irtal01 5 1 100 Все описание на английском, потому что на русском лучше не видеть... После всех настроек, за гма в игре пишем команду : %eventset start Название вашего ивент Координаты для ивента, можно узнать командой %xyz Ивент EventRespawn Для включения ивента типо ЕвентСета Создаем папку EventRespawn а в ней к примеру инишку : event.ini А в нее вписываем следующие : [Monster] (настройка моба) set=1 // Кол-во монстров code0=0A907 (Айди монстра) num0=1(кол-во монстров, точнее сколько разных видов) [Position] (позиция) map=Sette (название карты в папке MAP) x=0 (координата х) y=0 (координата y) z=0 (координата z) [Term] (Время респауна) Hour=00 (Часы) Min=20 (минуты) Sec=20 (секунды) [reward item] (награда) item code 1 = iwkna01 (смотрим гм командер или прочее, это айди вещи) item % 1 = 100 (1 - 1%, 100 - 100%) monster 1 = 0A907 (если хотим чтобы падало со всех, то пишем all, если же хотим опредленного моба, то его айди) [Option] // Настройки получение бонусов за убийство. kill after stop = 0 - (1 -исчезают после смерти, 0 - спаун заного) exp penalty = 0 exp reward = 0 - кол-во EXP item loot = 0 - (0-стандартный лут, 1 - свой лут) После настройки сохраняем и ребутаем сервер, либо ничего не получиться После перезагрузки за гма прописываем %respawn start event и ивент начнется. Conditonal(объявления о начале ивентов авто) ;;EVENT_KIND 0 : SetEvent //обычный 1: OneNOneEvent // две вещи по цене одной 2:DisccountEvent // скидочный ивент [CONDITIONAL_EVENT] USE = 2 // Какой юзаем из выше преведнных CHSH_MIN = 400000 // длительность ;;REPEAT_SAVE = 2 EVENT_TIME = 2 // тип времени EVENT_KIND = 2 // ?( EVENT_START_MSG = event01 // стартовое объявление EVENT_MIDDLE_MSG = event02 // в течение ивента(середина) EVENT_END_MSG = event03// завершение ивента ©Krivzo
    Сообщение от: Supreme, 23 янв 2011 в разделе: Rising Force Online
  7. JoLan
    Сообщение

    [Fix] connect GameDB failed

    В кратце: Недавно получил в наследство сервачек ПВ, тыкаясь с новой игрушкой, как-то коряво тормознул и радостно принялся ковырять сервачек, покавырял полез запускать, оп вижу какие-то ошибки аля ругаюсь на такую то базу пум пум пум и как следствие err : gdelivery:: connect GameDB failed Много матов от начальства, 3и часа с дрожащими руками и помощью товарища мастера (огромное ему спасибка за попытку помочь) ни к чему не привели. Расстроенный я откатил базы на последний дамп (как раз когда отдали сервачек я его себе дампнул) и запустил сервер, игроки недовольны, начальство подзатыльником пригрозило и усе. Но как ум любопытный я не мог простить себе данной огрешности и решил порыскать, часик эксперементов и подозрения по поводу утилки dbtool лежащей в папке с базами подтвердились. Натравив утилку с параметром -r на интересующую базу (на которую ругается) она что-то похимичила и исправила нашу базу =D Есть пара подводных камней, например натравливая утилку на базу с параметром -r [Вход] [Выход] при вход=выход база неведомыми силами может испортится. Натравливая утилку на нормальную базу, она тоже может что нить испортить Для удобства написал скриптик прогоняющий по всем базам, репейря их в базу[2] и заменяя базу[2] на базу[1]. Похожих темок не увидел, поэтому разместил в раздел для опытных. Если тема стара и все это фигня, то перекидывайте новичкам. Но кроме как вайпа или отката на бекапы я вроде ничего не увидел Добавлю немного от себя, чтоб не было глупых вопросов: 1) создаем файл любого названия в /home/gamedbd nano /home/gamedbd/recover.sh 2) вставляем в содержимое этот текст:#!/bin/bash for file in `ls ./dbhomewdb/dbdata/`; do ./dbtool -r -s ./dbhomewdb/dbdata/$file -d ./dbhomewdb/dbdata/$file"2" mv ./dbhomewdb/dbdata/$file"2" ./dbhomewdb/dbdata/$file done 3) Сохраняем и закрываем файл (Ctrl+O -> Ctrl+X) 4) Выдаем права файлуchmod 755 /home/gamedbd/recover.sh 5) Запускаем скрипт cd /home/gamedbd ./recover.sh Данный гайд был нагло списан с emudev, автора не помню.
    Сообщение от: JoLan, 8 янв 2011 в разделе: PW Фиксы
  8. relat1on
    Сообщение

    Battlefield 2

    Поехали... 1. Устанавливаем серверную часть игры BF2 на комп, для ОС Windows можно поставить вместе с игрой с лицензионного диска BF2, а для Linux качаем с официального сайта: EA - Battlefield 2 Далее обязательно ставим финальный патч 1.41, взять можно там же. Если помимо стандартных карт, охота новых качаем и устанавливаем этот маппак: BF2_mappack.exe - извлекать в папку H:\BattleField2\mods\bf2\Levels 2. Для корректной работы сервера необходимо чтобы были открыты следующие порты: UDP 27900 UDP/TCP 29900 TCP 80 TCP 4711 UDP 27901 UDP 1500-4999 UDP/TCP 1024-1124 UDP 29900 UDP/TCP 27900 UDP 16567 UDP 55123-55125 Поэтому если стоит Фаервол (NAT), то нужно открыть (пробросить) эти порты. 3. Ставим сервер статистики. Для этого нам потребуются: 1) Виртуальный сервер под Win 32 (Для Linux качать не нодо, там он уже должен стоять) 2) Сам сервер статистики Сначала устанавливаем AppServ. Ставим по умолчанию C:\AppServ и следуем инструкциям по установке. Открываем Opera или Internet Explorer и вводим [cod http://localhost/ или http://свой Ip адрес/[/code] Откроется страница где нажимаем кнопку phpMyAdmin Database Manager Version 2.8.2 и вводим имя по умолчанию root без пароля Дальше создаем базу данных например bfstats она будет пустой. Дальше жмем на кнопку домик в верхней части экрана (возврат к началу) Дальше на главной странице жмем кнопку Привилегии -> Добавить нового пользователяОткрываеца страница Имя пользователя: Просто вводим свое имя Хост: имя хоста (localhost) Пароль: Придумай себе пароль Подтверждение:повтор пароля Строку Generate Password не трогаем Чуть ниже Глобальные привилегии: Жмем отметить все И в самом низу странице кнопка Пошел жмем ее Вы сделали себя админом базы данных. Здесь пока все. Распаковываем архив bf2statistics_1.4.2. например сюда С:\bf2statistics_1.4.2. Копирум отсюда папку ASP и вставляем по адресу Код C:\AppServ\www должно получиться C:\AppServ\www\ASP. Дальше заходим в Код C:\AppServ\www\ASP и правим ручками файл _config.php IP адреса по умолчанию /*************************************** * Battlefield 2 Private Stats Config * **************************************** * All comments have been removed from * * this file. Please use the Web Admin * * to change values. * ***************************************/ $db_expected_ver = '1.4.2'; $db_host = 'localhost'; или ваш IP адрес $db_name = 'имя базы данных которую создавали к примеру bfstats'; $db_user = 'ваше имя'; -которое создавали в базе данных $db_pass = 'пароль'; $admin_user = 'ваше имя'; $admin_pass = 'пароль'; $admin_hosts = array('ваш IP адрес','ваш IP адрес/24'); $admin_log = 'logs/_admin_event.log'; $admin_backup_path = 'c:/appserv/www/ASP/_backups/'; $admin_backup_ext = '.bak'; $admin_page_size = 25; $admin_ignore_ai = 1; $stats_ext = '.txt'; $stats_logs = 'logs/'; $stats_logs_store = 'logs/_processed/'; $stats_move_logs = 1; $stats_min_game_time = 0; $stats_min_player_game_time = 0; $stats_players_min = 1; $stats_players_max = 600; $stats_rank_check = 1; $stats_rank_tenure = 7; $stats_awds_complete = 1; $stats_lan_override = 'ваш IP адрес'; $stats_local_pids = array('LocalPlayer01','ваш IP адрес','LocalPlayer02','ваш IP адрес '); $debug_lvl = 1; $debug_log = 'logs/_stats_errors.log'; $game_hosts = array('ваш IP адрес ','ваш IP адрес /24'); $game_custom_mapid = 700; $game_unlocks = 0; $game_unlocks_bonus = 1; $game_unlocks_bonus_min = 1; $game_awds_ignore_time = 0; $game_default_pid = 29000000; ?> Открываем Opera или Internet Explorer и вводим http://localhost/ASP или http://свой Ip адрес/ASP Вводим логин и пароль тот что вы указали в конфиге. Далее жмете Install DB затем Upgrade DB. Все ваша база данных заполнилась таблицами. Если по каким либо причинам база не инсталируется качаем готовую: База данных распаковываем и кидаем её в папку: C:\AppServ\mysql\data Далее открываем файл snapshot.py который находится по адресу С:\bf2statistics_1.4.2\python\bf2\stats и правим #HOST = 'localhost' #PORT = 80 #PATH = '/ASP/bf2statistics.php' После этого берем эту папку bf2 которая находиться по адресу С:\bf2statistics_1.4.2\python\bf2 и копируем ее туда куда установлена батла по вот этим адресам \Battlefield 2\python\bf2 и \Battlefield 2\Python_Xpack с заменой файлов Далее создаём файл hosts.ics который находиться по адресу C:\WINDOWS\system32\drivers\etc открываем блокнотиком и пишем localhost BF2web.gamespy.com # BF2 Statistics Redirect 4. Для удобства администрирования качаем и распаковываем в любое место прогу BF2CCD: BF2CC daemon Сервер запускаем посредством этой проги, при первом запуске нужно будет указать путь к серверу, т.е. к файлу bf2_w32ded.exe и написать пароль для входа в настройки сервера через клиент: BF2CC клиент , если сервер удалённый, то ставить на него клиент никчему. Сам сервер настраиваем с любой машины клинтом BF2CC, настройки интуитивно понятны поэтому описывать их не вижу смысла. Если ошибки есть,поправьте,ибо писал ночью...
    Сообщение от: relat1on, 2 янв 2011 в разделе: Другие
  9. TheMazzahaka
    Сообщение

    Парсинг windows-1251

    Через веб броузер такое не прокатит.Используй idhttp.post. Использование: var post:tstringlist;//объявляем переменную массив строк. procedure TForm47.Button1Click(Sender: TObject); begin post.Create();   //Создаём массив строк. post.Add('login=1');//Добавляем в массив запрос,в нём переменной login на html странице будет присвоена еденица. //в post можно добавлять любое число строк(ну не совсем любое но достаточно большое) idhttp1.Post('URL куда отправляем запрос',post); {в 1 параметре адрес куда отправляем запрос, 2 параметр наш массив строк 'post'    * Примечание:результат выполнения этой функции можно присвоить переменной чтобы получить ответ Например:otvet:=idhttp1.Post('URL куда отправляем запрос',post)} end; Данный код копипастой работать не будет,создавай обработчик и пихай в него то что в моём. Всё описание в коментах gethtml(webbrowser1,memo1.text);  что ругает ?текст ошибки полный давай.
    Сообщение от: TheMazzahaka, 15 дек 2010 в разделе: Delphi
  10. ward
    Сам не понимаю зачем, но все-таки продолжаю писать гайды, известные опытным, и не известные нубам х() Ну, собсно, сейчас будем делать свой логинмап (карту при входе\выборе персонажей) Для этого нам понадобятся: 1) Рабочий сервер 2) Запасной клиент, который не жалко запороть 3) Обязательно прямы руки, ибо придется работать с большущей колонкой чисел, с 6 знаками после запятой Ну, убедившись что все это у нас имеется, приступим 1) Определимся, какую игровую карту мы возьмем за свою логин карту. Можно брать любую карту, но с миром немного замутно будет, ибо он поделен на регионы. Топайте на выбранную в качестве логина карту, врубайте консоль, вводите команду d_showpos и пощелкайте кнопкой printscreen несколько мест, которые хотите использовать. [img] 2) Распакуем litmodels.pck Найдем там папку login и удалим ее содержимое Теперь поднимемся до папки с моделями всех карт и залезем в папку выбранной карты - (например ХХ - is31) Внутри мы видим папку "1". Копируем эту папку в login (ту, откуда мы все удалили) Запаковываем litmodels.pck 3) Распакуем configs.pck найдем там файл scenectrl.ini открываем блокнотом теперь вставляем координаты со скринов руководствуясь небольшим пояснением (Внимание - делал на жутких догадках, такчто правильными могут оказаться только первые 3 строки из каждого блока): Блок [Camera] PosX0 = координата Х PosY0 =  координата У PosZ0 = координата Z DirX0 = поворот камеры по Х DirY0 = поворот камеры по У DirZ0 = поворот камеры по Z UpX0 = смещение камеры на Х в ширину UpY0 =смещение камеры на У в длину UpZ0 = смещение камеры на Z в высоту с 0 до 25 везде лучше ставить одинакого Блоки [New Char] &[Sel Char] Х, У и Z такжэ отвечают за координаты каждый блок, оканчивающийся на цифру отвечает за класс персонажей вроде порядок такой: 1 воин 2 маг 3 обор 4 друль 5 монах 6 демон 7 лучник 8 жрец поменяли коорды, сохранили, запаковали конфиг 4) идем в папку elements/maps удаляем все из папки логин, вставляем туда клиент карту, с которой работаете теперь переименовываем все файлы типа .ecwld, .ecbsd, .cld, .t2hc .trn2 с a31 (эт мой пример) на login Пример: [img] только учтите, что лучше не использовать висящие в воздухе карты типа ХХ и инея, ибо чары в них будут проваливаться вниз Также это будет происходить, если неправильно выбрать расположение камеры (тут уж я не помошник, каждый сам "на глаз" определяет, куда камеру совать) Вот как бэ готовый фоновый рисуночек для окна логина\пароля: [img] Всегда помните, что такую штуку, что вверху, сделать легко, а вот правильно подобрать места и расположение камерыв весьма проблематично, так что получится далеко не с первого раза Ну и небольшие советы напоследок: чтобы добится идеальной точности расположения камеры, используйте числа с 12 знаками после запятой. Получить их можно с помощью программы для пис зон "region.sev". Кто не хочет\не может ковырять камеру, берите scenectrl.ini от руофа, ибо там камера настроена почти идеально Кто нашел неточности\ошибки\откровенные косяки, пожалуйста отпишитесь, ибо я начудил с блоками в scenectrl.ini, ну и может где еще х) Гайд написал Ацкой Также спасибо Svit'у за то что своим трудом натолкнул на мысль. Если гайд помог поставь +    :D
    Автор темы: ward, 27 ноя 2010, ответов - 23, в разделе: PW Клиент
  11. zombiee
    Сообщение

    Опятьже Pascal

    { @params: Path - путь до файла Line - номер строки, которую надо считать. } function GetFLine(Path: string; Line: integer): string; var F: Text; // Переменная для файла i: integer; // номер текущей строки begin GetFLine:=''; // Инициализация переменной, которая возвращает результат Assign(F, Path); // Создаем дескриптор на файл (т.е присваиваем файловой переменной путь до файла (грубо говоря)) Reset(F); // открываем файл для чтения for i:=0 to Line do begin // цикл с считыванием строк до тех пор, пока не считаем нужную if(EOF(F)) then break; // EOF - функция для проверки того, считали ли мы весь файл, или нет (возвращает TRUE, если достигнут конец файла) ReadLn(F, GetFLine); // считываем строку end; Close(f); // закрываем файл end; Так правильнее :) Просто писал утром, ещё не до конца проснувшись. По поводу меню - заводи переменную-индекс. К примеру, у нас 4 пункта меню - НАЧАТЬ СОХРАНИТЬ ЗАГРУЗИТЬ ВЫЙТИ Заводим переменную-индекс (в ней хранится текущий итем меню) var Index: integer = 0; // по дефолту - первое меню При нажатии вниз просто увеличиваем размер Index на один, а при нажатии вверх - уменьшаем (не забываем про проверу на выход за пределы меню) При нажатии на энтер проверяй, чему равно значение Index и вызывай соответствующую процедуру (к примеру, 0 - Начать, 2 - Загрузить и т.д) Вот и всё :D P.S: если приду в более-менее вменяемом состоянии, накатаю пример на Turbo Pascal. P.S.S: На x64 турбо не пашет :) Так что качаю Free Pascal :huh:
    Сообщение от: zombiee, 16 ноя 2010 в разделе: Программирование
  12. ASTREL
    [img] Описание: программка-интерфейс для sPCK от Ronny1982 (spck.codeplex.com). Автор: мини интерфейс для удобности by ASTREL, автор самой программы Ronny1982. Как использовать: программа работает только если находит *pck или *files в своем каталоге. 1. Распаковка - Вводите название *pck архива и программа распаковывает его. Например: surfaces. 2. Запаковка - Аналогично первому пункту только наоборот, для запаковки надо что бы в каталоге с программой был XXX.pck.files. Например: surfaces. 3. Добавление - Самая интересная изюминка, создаем в том же каталоге где программа например surfaces.pck.files/surfaces/ и сюда кидаем, допустим, новое logo.dds. Так что бы заменить вы бы потратили несколько минут, не говоря о том какие усилия надо для того что бы заменить файл в models.pck... А cо sPCK это займет НЕСКОЛЬКО СЕКУНД! В папке с программой надо что бы были нужные вам файлы, на примере surfaces надо surfaces.pck.files/surfaces/XXX и surfaces.pck в котором хотите заменить\добавить файлы. А дальше жмем 3 пункт программы и пишем например: surfaces. Вуаля! Не прошло и 2 секунды как наше лого уже в surfaces.pck! По аналогии делаем с всеми .pck архивами. Скачать: [Прямая ссылка] (по данной ссылке вы всегда найдете самую свежую версию) P.S. кто копирует на другие форумы будет покаран анально.
    Сообщение от: ASTREL, 3 окт 2010 в разделе: PW Клиент
  13. Kenpachi™
  14. (NevO)
  15. Kenpachi™
    Сообщение

    Чат сервера v0.2

    Вот выкладываю новую версию чата. Что изменилось? Новый интерфейс (более красивый на мой взгляд) [img] Ну и сортировка чатов. Можно просматривать отдельно мир чат, приват и тд. Над никами пока особо не работал. так что выложу то что написал на скорую руку. Скрипт который выведет всех персонажей из базы в формате '27168' => 'Персонаж( DaNte )', (то есть 'id' => 'nick',): (что бы не трогать chardb.jsp) <?php mysql_connect("localhost","root","пароль"); //Конектимся к mySQL mysql_select_db("pw"); //выбираем нужную БД $r=mysql_query("SELECT * FROM uWebplayers"); //Создаем SQL запрос for($i=0; $i<mysql_num_rows($r); $i++) //Перебор всех записей в таблице { $f=mysql_fetch_array($r); print "'$f[0]' => 'Персонаж( $f[1] )', <br>"; } ?> Для этого вам так же понадобится Players_table_v1 от StAlKeR6669 Инструкция: Разархивировать и закинуть папку на сервер( на linux - /var/www);(сoLinux - /opt/lampp/htdocs) Открыть чат по ссылке ваш_ip/chat/index.php Так же выражаю свою благодарность alexdnepro и gamer777. Вроде всё.. ну и специально для МорзЕ.. Сделал все чаты отдельными php файлами т.к мб кто то захочет вывести на сайт чат.. Качаем, благодарим, радуемся жизни.
    Сообщение от: Kenpachi™, 13 сен 2010 в разделе: Архив
  16. Fituchini
    Сообщение

    [Гайд]Вайп

    I. Вайп персонажей: 1. Останавливаем сервер 2. Удаляем содержимое папок /home/gamedbd/dbhomewdb и /home/uniquenamed/unamewdb/ 3. Радуемся II. Вайп аккаунтов 1. Останавливаем сервер 2. Удаляем базу dbo 3. Создаём dbo заново, заливаем базы. P.S.: Если вы делаете вайп аккаунтов, то вам обязательно нужно сделать вайп персонажей! III. Вайп(зачистка) вещей у персонажей: Путь \home\gamedbd\dbhomewdb\dbdata\ Файл equipment - то что одето на персонажах Файл inventory - инвентарь (рюкзак) персонажей Файл storehouse - вещи в банке    проблемка случилась, после удаления Файл equipment - то что одето на персонажах Файл inventory - инвентарь (рюкзак) персонажей Файл storehouse - вещи в банке когда выходишь на страницу выбора персонажа, и заходишь обратно в игру, перс становиться на том месте где ты был в самом первом месте когда зашёл в игру после чистки файлов, как исправить?
    Сообщение от: Fituchini, 27 авг 2010 в разделе: PW Документация
  17. slowdeathnew
    Итак для начала скачиваем программу Ссылка: http://file.qip.ru/file/CLnAmwdH/iweb.html Зеркала: http://www.mediafire.com/?uxjk4ezmz0ipart http://files.mail.ru/STEVKM Права принадлежат: SlowDeath и SlowDeathNew Внимание! Антивирус ругается на эту программу! VirusTotal: ТЫК Все шаги я буду описывать вкратце, так как на скриншотах всё предельно ясно и понятно... Шаг 1. Вводим пароль к программе: pass: 3315160 [img] Шаг 2. Подключаемся к серверу и БД: Создаём новый профиль для подключения. Важно: указать правильно версию и тип БД [img] Шаг 3. Выбираем вашего персонажа: После успешного коннекта, Вас перебросит в эту вкладку. Внимание! - программа почему то глючит с первыми персонажами, то есть тот кто идёт первым в списке, с последующими всё нормально... [img] Шаг 4. Редактируем своего персонажа: Подробно рассказывать не буду, но скажу одно, все манипуляции нужно проводить когда персонаж в оффлайне... [img] После всех изменений, возвращаемся в подвкладку 1 и нажимаем кнопку сохранить [img] Внимание! После внесённых изменений и нажатия кнопки сохранить, у вас должно выскочить такое окошко: [img] Шаг 5. Редактируем шмот и эспера: Переходим в подвкладку 4, находим ид нужной вещи и редактируем по своему вкусу (не забываем сохраняться) Умения эспера можно повыдерать таким способом: 1. Купить понравившейся эспер, одеть его и выйти из игры 2. Запустить программу, найти ИД этого эспера 3. Скопировать навыки нового эспера и вставить в старый эспер 4. Сохранить ПС. как именно редактировать шмот я толком не разобрался... [img] Шаг 6. Редактируем питомцев: Ну думаю здесь всё понятно... [img] Шаг 7. Выдаём голд и меняем пароль от учётки: [img] Поправляйте неточности...
    Сообщение от: slowdeathnew, 24 авг 2010 в разделе: JD Сервер
  18. Chaos13
    Если при старте gamedbd у вас пишет err : Initialize storage environment failed и база не запускается то возможных причин две: 1. Неверно указаны пути к базе 2. Ваша база испортилась (самое вероятное) Первое решается путем указания правильных путей в gamesys.conf. Для решения второго нужно починить базу. Для этого создаем файл rebuild.sh, со следующим содержанием: #!/bin/sh mkdir dbhomewdb/dbrepair ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/auction -d /home/gamedbd/dbhomewdb/dbrepair/auction ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/auctionindex -d /home/gamedbd/dbhomewdb/dbrepair/auctionindex ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/base -d /home/gamedbd/dbhomewdb/dbrepair/base ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/city -d /home/gamedbd/dbhomewdb/dbrepair/city ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/clsconfig -d /home/gamedbd/dbhomewdb/dbrepair/clsconfig ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/config -d /home/gamedbd/dbhomewdb/dbrepair/config ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/equipment -d /home/gamedbd/dbhomewdb/dbrepair/equipment ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/factioninfo -d /home/gamedbd/dbhomewdb/dbrepair/factioninfo ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/factionname -d /home/gamedbd/dbhomewdb/dbrepair/factionname ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/friends -d /home/gamedbd/dbhomewdb/dbrepair/friends ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/gtask -d /home/gamedbd/dbhomewdb/dbrepair/gtask ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/inventory -d /home/gamedbd/dbhomewdb/dbrepair/inventory ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/mailbox -d /home/gamedbd/dbhomewdb/dbrepair/mailbox ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/messages -d /home/gamedbd/dbhomewdb/dbrepair/messages ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/order -d /home/gamedbd/dbhomewdb/dbrepair/order ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/rolename -d /home/gamedbd/dbhomewdb/dbrepair/rolename ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/sellpoint -d /home/gamedbd/dbhomewdb/dbrepair/sellpoint ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/shoplog -d /home/gamedbd/dbhomewdb/dbrepair/shoplog ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/status -d /home/gamedbd/dbhomewdb/dbrepair/status ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/storehouse -d /home/gamedbd/dbhomewdb/dbrepair/storehouse ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/task -d /home/gamedbd/dbhomewdb/dbrepair/task ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/translog -d /home/gamedbd/dbhomewdb/dbrepair/translog ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/user -d /home/gamedbd/dbhomewdb/dbrepair/user ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/userfaction -d /home/gamedbd/dbhomewdb/dbrepair/userfaction ./dbtool -r -s /home/gamedbd/dbhomewdb/dbdata/waitdel -d /home/gamedbd/dbhomewdb/dbrepair/waitdel cd dbhomewdb mv dbdata dbold mv dbrepair dbdata chmod 777 dbdata/* и кладем его в папку /home/gamedbd/ Далее переходим в папку /home/gamedbd/ если еще не там: cd /home/gamedbd/ Затем выполняем команду chmod 777 rebuild.sh и после этого выполняем наш скрипт: ./rebuild.sh Запускаем сервер :lol:
    Сообщение от: Chaos13, 21 июл 2010 в разделе: PW Документация
  19. kpanajib
    И так поехали. Установка Ubuntu в виртуальной машине Microsoft Virtual PC 2007 Создание виртуальной машины. Качаем Microsoft Virtual PC 2007 и устанавливаем её. После запуска программы появится мастер создания новой виртуальной машины. Нажимаем «Next», чтобы приступить к ее созданию. [img] В появившемся окне мастера выбираем «Create a virtual machine», чтобы создать новую виртуальную машину, и нажимаем «Next». [img] В следующем окне выбираем расположение и имя файла с конфигурацией виртуальной машины. Учитывайте, что файл конфигурации виртуальной машины настоятельно рекомендуется хранить в той же папке, что и виртуальный диск, который будет создан позднее, а значит на диске, на котором вы сохраните файл, должно быть достаточно места для установки гостевой ОС. [img] На следующем шаге нужно выбрать тип гостевой операционной системы. Очень важно выбрать правильный тип гостевой ОС, так как ее производительность напрямую зависит от этого. Если вашей системы нет в списке, это еще не значит, что ее нельзя установить. Выберите пункт «Other» и нажимаем «Next». В следующем окне мастера мы должны выбрать количество оперативной памяти, которая будет выделена гостевой системе. Можно выбрать пункт «Using the recommended RAM», в случае если вы сомневаетесь, сколько памяти выделять гостевой ОС. При выборе пункта «Adjusting the RAM» можно вручную установить количество выделенной оперативной памяти. Выделяя память, принимайте во внимание минимальные требования устанавливаемой системы к объему RAM, а также объем физической памяти вашей машины и планируемое количество одновременно запущенных гостевых систем. Мы же устанавливаем значение 512 Мб - 1 гб и нажимаем «Next». [img] На следующем шаге нам предстоит выбрать, использовать ли уже имеющийся виртуальный жесткий диск («An existing virtual hard disk») или создать новый («A new virtual hard disk»). Поскольку мы создаем новую виртуальную машину, выбираем пункт «A new virtual hard disk» и нажимаем «Next». [img] Следующий этап это выбор размера виртуального жесткого диска. По умолчанию, Virtual PC предлагает нам создать диск объемом 65536 Мб. На самом деле, нам не нужно иметь 65 Гб свободного места на физическом диске для создания виртуального диска такой емкости. Этой величиной определяется максимальный объем диска виртуальной машины, а сам файл, в котором содержатся данные виртуального диска, будет расти по мере заполнения диска в виртуальной машине. Этой очень приятная особенность виртуальной машины – нам не требуется сразу заботиться о наличии свободного места. Тем не менее, если мы знаем, не больше какого объема диск нам понадобится, мы можем сразу выставить максимальную емкость (для Ubunt'ы нам вполне подойдет диск размером около 10 Гб). Нажимаем «Next». [img] Проверяем атрибуты виртуальной машины и, если все в порядке, нажимаем «Finish». Вот и все, виртуальная машина создана. [img] После нажатия кнопки «Finish», в окне Virtual PC мы увидим следующую картину: [img] Установка гостевой операционной системы в виртуальной машине В главном окне программы, «Virtual PC Console», нажимаем кнопку «Start». Начнется загрузка виртуальной машины. Далее вы увидите следующий экран: [img] Теперь нам необходимо определиться с расположением дистрибутива гостевой операционной системы. Если он находится на загрузочном CD или DVD диске, вставьте его в привод, так как с него по умолчанию пытается загрузиться виртуальная машина, после этого нажмите «Enter». Если дистрибутив операционной системы у вас в виде загрузочного образа ISO, откройте меню CD консоли виртуальной машины, выберите пункт «Capture ISO Image» и укажите путь к образу. После этого начнется загрузка операционной системы. Затем устанавливайте вашу гостевую систему так, как будто бы вы устанавливаете ее на физическую машину. При работе с виртуальной машиной она как бы «поглотит» указатель мыши, позволяя вам работать только внутри гостевой системы. Чтобы выбраться из нее назад, в хостовую, просто нажмите правый Alt. На этапе просмотра лицензионного соглашения не закрывайте его сразу, а прочитайте те его пункты, которые касаются виртуализации (если они, конечно же, есть). Помните, не все операционные системы могут быть виртуализованы в соответствии с лицензией производителя. Например, корпорация Microsoft запрещает виртуализовывать издания Home Basic и Home Premium операционной системы Windows Vista. Пока идет установка, обратите внимание на пиктограммы в левом нижнем углу экрана. [img] Зеленые точки у этих значков означают обращения виртуальной машины к виртуальному жесткому диску, приводу CD или DVD-ROM и дисководу (реальному или виртуальному) и виртуальному сетевому адаптеру. В конце концов, операционная система будет у вас установлена, при этом времени на установку вам потребуется столько же (если не меньше), чем при установке на физическую машину. Настройка сетевого взаимодействия виртуальных машин Virtual PC Один из самых интересных вариантов использования виртуальных машин – организация на одном физическом компьютере виртуальной сети, где одновременно работают несколько виртуальных машин. Давайте же разберемся, как работает сеть в Virtual PC 2007. Открываем настройки (Settings) виртуальной машины и переходим на вкладку «Networking». Скорее всего, вы увидите здесь нечто подобное: [img] В строчке Adapter 1 выбран сетевой адаптер вашего компьютера, что это значит? Платформа Virtual PC позволяет гостевым и хостовой системам совместно использовать ресурсы физического сетевого адаптера с помощью трех различных моделей сетевого взаимодействия, а также полностью оградить виртуальную машину от сетевого взаимодействия. Если в строчке Adapter выбран ваш физический сетевой адаптер, это значит, что сетевой адаптер виртуальной машины напрямую подключен к сетевому адаптеру хоста. При таком типе сетевого взаимодействия виртуальная машина будет видеться из внешней сети и вести себя так, будто бы это отдельный компьютер в сети. Если в сети используется DHCP-сервер, виртуальная машина получит самостоятельный IP адрес в этой сети. Такой тип сетевого взаимодействия применяется, когда из внешней сети необходимо обращаться к ресурсам виртуальной машины и работать с ней, как с полноценным клиентом сети (например, гостевая система является файл-сервером). Иногда такой тип сетевого взаимодействия также называют Bridged Networking. При выборе варианта Local only виртуальные машины на одном хосте смогут взаимодействовать между собой, но им будут недоступны внешние сетевые соединения хоста. Такой тип сетевого взаимодействия применяется, когда требуется построить какую-либо модель сетевого взаимодействия между несколькими машинами, однако внешние сетевые соединения не требуются (например, такой тип взаимодействия идеален для проверки работы связки «сервер приложений» - «сервер баз данных»). Вариант Not connected означает, что виртуальная машина не будет принимать участие в сетевом взаимодействии и виртуальный сетевой адаптер как устройство не будет включен. Последний вариант сетевого взаимодействия, который может быть выбран для виртуальной машины, это «Shared Networking». При использовании такого варианта, программа Virtual PC, действуя как DHCP-сервер, выдает виртуальной машине IP-адрес из диапазона 192.168.131.1 - 192.168.131.253. Также Virtual PC при этом является ещё и NAT -сервером (NAT - Network Address Translation). То есть виртуальные машины, использующие этот тип сетевого взаимодействия, спрятаны за NAT-сервером по отношению к внешней сети хоста и могут инициировать соединения с её клиентами, но члены внешней сети не могут инициировать соединения с виртуальными машинами хоста. Такой тип сетевого взаимодействия идеален, когда требуется, например, выходить в Интернет из виртуальной машины, максимально при этом спрятав виртуальную машину от атак извне. Далее продолжаем установку по ЭТОМУ гайду Download: Microsoft Virtual PC 2007 Дистрибутив Убунты: Ubuntu 10.04 DVD (4.1 Гб) Торрент Ubuntu 9.10 DVD (3.9 Гб) Торрент (C) виндоусФАК.ру [оптимизировал под гайд {Крапаль}]
    Сообщение от: kpanajib, 17 июл 2010 в разделе: PW Документация
  20. Sedusker
    Итак 1) Создаем для начала новый камень в 35 листе серверного Элементса [img] тут проблем возникнуть не должно 2)Мы хотим новый стат в камень, для начала определяемся какого вида стат нужен, ненадо придумывать велосипед (до вас его уже давно придумали) итак нам нужна вынка (вместо вынки можем замутить з.о.с (защита от стихий) или защиту или любой другой вид стата) чтоб поставить стат в камень который будет отражатся при вплавлении на шмоте нам нужны статы только для шмота. Я нашел стат для шмота который дает 10 вынки его ID - 1469 !!! итак это очень полезный стат и наверняка он везде уже стоит во всех шмотках, значит его не трогаем, а смотрим по близости менее нужный стат, пощелкав немного мышкой я наткнулся на такой вот стат [img] 3)вообщем мы берем и меняем значение 5 и 6 на 50 и 50 вот так [img] всё стат на 50 вынки готов и мы теперь его вписываем в камень и в шмотку теперь у нас получилось что-то вот такое [img] и теперь мы его можем и в шмотки и в камни и даже в трусы засунуть... 4)НО самое главное тут есть подвох - это стандартный стат который выскакивает в сине-фиолетовых шмотках при крафте, так что не удивляйтесь если у вас по серву начнут бегать люди в синих скрафченых нупо-шмотках со статом 50 вынки. Хотя для хитрого человека это не проблема, есть тыщу способов от такого бага избавится.
    Сообщение от: Sedusker, 21 июн 2010 в разделе: PW Документация