в mysql все. персонажи, кланы, инвентарь. все там. т.е. веб-часть писать крайне здорово) все data файлы перевожу в xml сейчас, спавн уже готов, еще элементы и таски. если таски также почти готовы (у меня в редакторе фича), то элементы — жесткая жесть.
я не трогаю никаких ядер. у нас весь код написан с нуля. pilad, если ты не понимаешь о чем речь, может того, тихо сидеть пожимать плечами и молчать? кстати, откуда ты знаешь, что не сделали? :D
vixio_dv, nope, not yet anyway. http://dl.dropbox.com/u/14953193/pwemu/world-5.png хехе)
pilad, хорошо, что мне не нужно доказывать тебе ровным счетом ничего :D а скиллы правда не сложно реализовать, сейчас есть другие проблемы. и как только мы сделаем правильную работу с игровыми предметами и нпц/мобами, мы ими займемся.
сегодняшний (2010.12.4000) уже видит соседей, http://dl.dropbox.com/u/14953193/pwemu/world-2.png p.s. сделал видюшку, но она что-то очень быстро играется :D пашка потом сделает еще раз.
зачем тебе линк, в нем нет ничего кроме пакетов авторизации (до входа в мир) и парочки других.
ты не думай, ты смотри gfactiond и gdeliveryd )
конечно нет. :lol:
:lol: написал мини сервер для статистики, так удобнее все-таки, чем на пхп, и работает шустрее)
Kamikazik, pwi 402
сделал через SOAP, крутая вещь ваще. спасибо хаусу за вчерашнее разъяснение по кодировке текста. =) upd. потом еще через xml-rpc попробую. вдруг понравится больше. хотя врядли.)
gamer777, ты тему-то читал вообще?
ок, в каком-нибудь уроке через месяц напишем твой стат-калькулятор на с++ или c# )
ненавижу любой паскаль-бейзд язык. попробуем разобраться. JIni:=TiniFile.Create(extractfilepath(Application.ExeName)+'judges.ini'); каждый раз читаешь? O.o case sRadioGroup1.ItemIndex of 0:s:='Warrior'; 1:s:='Mage'; 2:s:='Bowmaster'; 3:s:='Priest'; 4:s:='Werewolf'; 5:s:='Druid'; end; зачем? у тебя const b:array вроде бы есть? блин. нет, дальше не осилю я этот код. он просто не поддается анализу. поддерживай «уровневость» кода, иначе нереально разобраться в лексемах языка. p.s. ты бедолага. вот придется тебе xml читать/писать — заморишься со своим дельфи.
продолжу, ы выкладывай их текстовыми вложениями чтоле, а то мы так страничку растянем до нельзя)
А file_get_contents - это вообще неправильно. Вытащищь код файла api.php и что с ним делать будешь? А учитывая твои знаки вопроса и проч, то вообще ничего не вытащишь. И вообще, API планировал делать совсем по другому. какраз правильно! это единственный способ передавать и получать данные обсолютно безопасно и очень просто. Ведь почти у всех сайт на хостинге и используются CMS системы. Поэтому пользователям будет проще всего добавить функцию взятия контента. Например как у меня( с недавних пор у нас=)) ) - есть сайт на хостинге и сервер, там и там бд только на локале, какбы сам знаешь) при включённом сервере http://pw.j-games.org/ игрок заполнив поля регистрации игрового аккаунта заставляет скрипт проверить поля и если поля удовлетворяют условиям то и идёт file_get_contents(http://........./.../.../index.php?admin_key=......&login=логин&pass=пасс); где admin_key это уникальный ключ, по login и пасс создаётся новая учётная запись в бд функция возвращает результат от скрипта на сервере. Учитывая то что длинна admin_key может быть сколь угодно длинной а сам скрипт лежать в хз какой директории (например в http://IP:80808080/5ddf5hh6dfhdfh5/6fh6sdf87h66sd8fh6/index.php) а в корне и в 5ddf5hh6dfhdfh5 лежит .htaccess с deny from all то потенциальный злоумышленник ничего не сможет сделать. Так ещё он будет введён в заблуждение что БД не на локале) Как понять - А учитывая твои знаки вопроса и проч, то вообще ничего не вытащишь Оо какие знаки вопроса?)) перед первой гет переменной? Также надо делать и снашими запросами к iweb у. ЗЫ практику извлечения данных по file_get_contents я практиковал ещё со времён когда занимался мангосом. Наивный. Как будто при помощи одной операции можно XML вытащить. Чесно скажу, что API будет сложнее. Хм... Наивный это комплимент или оскорбление?) Я не вкоем случае не спорю что маршалинг и анмаршалинг дело совсем не простое, но лучше сделать себеже удобнее чтоб потом не парится. По мне так самый наипростейший вариант это посыласть 3 $_GET передачи по средством file_get_contents. Потому как внешнии скрипты не должны никак обрабатывать данные. Можно как угодно разбыть обработку между внешними скриптами и твоим iweb ом но мне кажется что всю обработку должен делать именно iweb. Это будет более рациональнее, Но в любом случаи автор ты и тебе решать! Если что потом просто мод напишу, чтобы проста какбы была видна Например как у меня( с недавних пор у нас=)) ) - есть сайт на хостинге и сервер, там и там бд только на локале, какбы сам знаешь) при включённом сервере http://pw.j-games.org/ игрок заполнив поля регистрации игрового аккаунта заставляет скрипт проверить поля и если поля удовлетворяют условиям то и идёт file_get_contents(http://........./.../.../index.php?admin_key=......&login=логин&pass=пасс); где admin_key это уникальный ключ, по login и пасс создаётся новая учётная запись в бд функция возвращает результат от скрипта на сервере. Учитывая то что длинна admin_key может быть сколь угодно длинной а сам скрипт лежать в хз какой директории (например в http://IP:80808080/5...8fh6/index.php) а в корне и в 5ddf5hh6dfhdfh5 лежит .htaccess с deny from all Машина Франкенштейна прямо... А у тебя хотя бы проверяется дошли данные или нет? ----------------------------------------------------------------------------- Уже кстати разобрал 85% протоколов gamedbd. :lol: На счет кода gouranga: ... <!--#########--> <!-- gamedbd --> <class name="RoleId"> <var name="roleid" type="int"/> </class> ... <!-- 3013 GetRoleBase --> <class name="RoleBaseRes"> <var name="retcode" type="int"/> <var name="value" type="GRoleBase"/> </class> <class name="GetRoleBase" arg="RoleId" res="RoleBaseRes" type="3013"/> ... Хаос13, он наверняка еще собаку перед функцией ставит, чтобы ошибок не было... а я говорю, нет ничего лучше cURL. и раз уж пошло обсуждение того, как надо защищать api часть — предложу свою точку зрения. твой админкей на самом деле называется token. токен это обычно что-то невероятно сложное для запоминания, чтобы нельзя было его навскидку кому-то передать. просто так, параметром, токены не передают (или передают, где данные особой роли не значат, например, тот же bit.ly передает в открытую, а всякие смс-агрегаторы, мерчанты — нет). обычно, есть сид (sid, seken или еще там всякие названия), который является результатом какой-то хеш-функции от этого token и каких-то весомых данных запроса. например, $sha_sid = sha1($token . $data), где $data — весь список параметров, передаваемых гет-запросом. ?sid={$sha_sid}&{$data} поясню, почему нужно именно так (разумеется подразумевается, что входные данные нормально обрабатываются, и там нет явных и средних дыр безопасности. от остальных не защитит никто): 1) потенциальный злоумышленник даже получив каким-то образом отправляемые данные (или даже несколько раз их) — не сможет воспроизвести исходный ключ или алгоритм как этот sid был сделан. по крайней мере — это будет ОЧЕНЬ сложно. главное, задействовать как можно больше блоков динамичных данных и не передавать голый токен. 2) этот метод автоматически добавляет в процесс обмена алгоритм проверки целостности. p.s. скоро на эмудеве буду уроки по программированию вести) Си :lol:
клево! [IMG]
Хаос13 прав. file_get_contents не безопасен и может кое-где и не работать. CURL безопаснее, хотя тоже может где-то не работать. <?php //$url - ссылка на api $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $this->prepareSecureData($action)); // этот $this->prepareSecureData должен подготавливать POST параметры в зависимости от экшена $result = curl_exec($ch); curl_close($ch); if($result !== false) { $data = json_decode($result, true); if($data !== false) // если вернули rpc return $data; } return false;
смотри table.xml и config.xml. http://pastebin.org/406284
:lol: кажется, я сразу сказал, что там все просто.
Имена участников (разделяйте запятой).