Пятница, 10 Мая 2024, 21:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » maker-rus [433]
Результаты поиска
maker-rusДата: Вторник, 08 Июня 2010, 15:20 | Сообщение # 381 | Тема: Чат на PHP
Гений
Сейчас нет на сайте
Вот что я могу предложить.

Создаём Бд

Quote
CREATE TABLE `messages` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` char(255) character SET utf8 NOT NULL,
`text` text character SET utf8,
PRIMARY KEY (`id`)
);

Потом файл index.php

Quote
<!-- Указываем DOCTYPE -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Php Ajax chat</title>
<!-- У нас всё работает в UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!-- Загружаем стили для чата -->
<link rel="stylesheet" type="text/css" media="screen" href="css.css" />

<!-- Подключаем jQuery -->
<script type="text/javascript" src="jquery.js"></script>

<!-- Сам код нашего чата -->
<script type="text/javascript">

$(document).ready(function () {
$("#pac_form").submit(Send); // вешаем на форму с именем и сообщением событие которое срабатывает кодга нажата кнопка "Отправить" или "Enter"
$("#pac_text").focus(); // по поле ввода сообщения ставим фокус
setInterval("Load();", 2000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд)
});

// Функция для отправки сообщения
function Send() {
// Выполняем запрос к серверу с помощью jquery ajax: $.post(адрес, {параметры запроса}, функция которая вызывается по завершению запроса)
$.post("ajax.php",
{
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
Load ); // по завершению отправки вызываем функцию загрузки новых сообщений Load()

$("#pac_text").val(""); // очистим поле ввода сообщения
$("#pac_text").focus(); // и поставим на него фокус

return false; // очень важно из Send() вернуть false. Если этого не сделать то произойдёт отправка нашей формы, те страница перезагрузится
}

var last_message_id = 0; // номер последнего сообщения, что получил пользователь
var load_in_process = false; // можем ли мы выполнять сейчас загрузку сообщений. Сначала стоит false, что значит - да, можем

// Функция для загрузки сообщений
function Load() {
// Проверяем можем ли мы загружать сообщения. Это сделано для того, чтобы мы не начали загрузку заново, если старая загрузка ещё не закончилась.
if(!load_in_process)
{
load_in_process = true; // загрузка началась
// отсылаем запрос серверу, который вернёт нам javascript
$.post("ajax.php",
{
act: "load", // указываем на то что это загрузка сообщений
last: last_message_id, // передаём номер последнего сообщения который получил пользователь в прошлую загрузку
rand: (new Date()).getTime()
},
function (result) { // в эту функцию в качестве параметра передаётся javascript код, который мы должны выполнить
eval(result); // выполняем скрипт полученный от сервера
$(".chat").scrollTop($(".chat").get(0).scrollHeight); // прокручиваем сообщения вниз
load_in_process = false; // говорим что загрузка закончилась, можем теперь начать новую загрузку
});
}
}
</script>

<body>
<div style="padding: 100px;">
<h1>Php Ajax Chat</h1>
<!-- Вот в этих 2-х div-ах будут идти наши сообщения из чата -->
<div class="chat r4">
<div id="chat_area"><!-- Сюда мы будем добавлять новые сообщения --></div>
</div>
<form id="pac_form" action=""><!-- Наша форма с именем, сообщением и кнопкой для отправки -->
<table style="width: 100%;">
<tr>
<td>Имя:</td>
<td>Сообщение:</td>
<td></td>
</tr>
<tr>
<!-- Поле ввода имени -->
<td><input type="text" id="pac_name" class="r4" value="Гость"></td>

<!-- Поле ввода сообщения -->
<td style="width: 80%;"><input type="text" id="pac_text" class="r4" value=""></td>

<!-- Кнопка "Отправить" -->
<td><input type="submit" value="Отправить"></td>
</tr>
</table>
</form>

</div>
</body>
</html>

Создаем файл ajax.php

Quote
<?php
// настройки для подключения к MySQl
$config = array( 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'pacdb' );

// подключаемся к MySQL, если не вышло то выходим
if( !mysql_connect($config['hostname'], $config['username'], $config['password']) )
{
exit();
}
// Выбираем базу данных, если не вышло то выходим
if( !mysql_select_db($config['dbname']) )
{
exit();
}
mysql_query("SET NAMES 'utf8'"); // говорим MySQl'у то что мы будем работать с UTF-8

Header("Cache-Control: no-cache, must-revalidate"); // говорим браузеру что-бы он не кешировал эту страницу
Header("Pragma: no-cache");

Header("Content-Type: text/javascript; charset=utf-8"); // говорим браузеру что это javascript в кодировке UTF-8

// проверяем есть ли переменная act (send или load), которая указываем нам что делать
if( isset($_POST['act']) )
{
// $_POST['act'] - существует
switch ($_POST['act'])
{
case "send" : // если она равняется send, вызываем функцию Send()
Send();
break;
case "load" : // если она равняется load, вызываем функцию Load()
Load();
break;
default : // если ни тому и не другому - выходим
exit();
}
}

// Функция выполняем сохранение сообщения в базе данных
function Send()
{
// тут мы получили две переменные переданные нашим java-скриптом при помощи ajax
// это: $_POST['name'] - имя пользователя
// и $_POST['text'] - сообщение

$name = substr($_POST['name'], 0, 200); // обрезаем до 200 символов
$name = htmlspecialchars($name); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные
$name = mysql_real_escape_string($name); // функция экранирует все спец-символы в unescaped_string , вследствие чего, её можно безопасно использовать в mysql_query()

$text = substr($_POST['text'], 0, 200); // обрезаем до 200 символов
$text = htmlspecialchars($text); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные
$text = mysql_real_escape_string($text); // функция экранирует все спец-символы в unescaped_string , вследствие чего, её можно безопасно использовать в mysql_query()

// добавляем новую запись в таблицу messages
mysql_query("INSERT INTO messages (name,text) VALUES ('" . $name . "', '" . $text . "')");
}

// функция выполняем загрузку сообщений из базы данных и отправку их пользователю через ajax виде java-скрипта
function Load()
{
// тут мы получили переменную переданную нашим java-скриптом при помощи ajax
// это: $_POST['last'] - номер последнего сообщения которое загрузилось у пользователя

$last_message_id = intval($_POST['last']); // возвращает целое значение переменной

// выполняем запрос к базе данных для получения 10 сообщений последних сообщений с номером большим чем $last_message_id
$query = mysql_query("SELECT * FROM messages WHERE ( id > $last_message_id ) ORDER BY id DESC LIMIT 10");

// проверяем есть ли какие-нибудь новые сообщения
if( mysql_num_rows($query) > 0 )
{
// начинаем формировать javascript который мы передадим клиенту
$js = 'var chat = $("#chat_area");'; // получаем "указатель" на div, в который мы добавим новые сообщения

// следующий конструкцией мы получаем массив сообщений из нашего запроса
$messages = array();
while ( $row = mysql_fetch_array($query) )
{
$messages[] = $row;
}

// записываем номер последнего сообщения
// [0] - это вернёт нам первый элемент в массиве $messages, но так как мы выполнили запрос с параметром "DESC" (в обратном порядке),
// то это получается номер последнего сообщения в базе данных
$last_message_id = $messages[0]['id'];

// переворачиваем массив (теперь он в правильном порядке)
$messages = array_reverse($messages);

// идём по всем элементам массива $messages
foreach ( $messages as $value )
{
// продолжаем формировать скрипт для отправки пользователю
$js .= 'chat.append("<span>' . $value['name'] . '» ' . $value['text'] . '</span>");'; // добавить сообщние (<span>Имя » текст сообщения</span>) в наш div
}

$js .= "last_message_id = $last_message_id;"; // запишем номер последнего полученного сообщения, что бы в следующий раз начать загрузку с этого сообщения

// отправляем полученный код пользователю, где он будет выполнен при помощи функции eval()
echo $js;
}
}
?>

создаем таблицу стилей css.css

Quote
* {
margin: 0;
padding: 0;
}

body {
font: normal normal normal 16px "Trebuchet MS", Arial, Times;
color: #000000;
}

/* Важное свойство */
.chat {
height: 500px;
overflow: auto; /* Это позволяет отображать полосу прокрутки */
position: relative; /* Это позволяет съезжать тексту в слое, не растягивая страницу */
text-align: left;
border: solid #818181 1px;
}

.chat div {
position: absolute; /* Страница остаётся того же размера */
}

.chat span {
display: block;
}

input[type=text],textarea {
width: 100%;
font: normal normal normal 16px "Trebuchet MS", Arial, Times;
border: solid #818181 1px;
}

/* Для CSS 3 */
.r4 {
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}

потом скачиваем файл jquery.js Скачать
И всё ваш чат работает
Можно плюсиГ за помощь shy

© журнал phpinside.ru

Сообщение отредактировал maker-rus - Вторник, 08 Июня 2010, 23:05
maker-rusДата: Понедельник, 07 Июня 2010, 18:55 | Сообщение # 382 | Тема: Для тех кто хочет создать свой травиан
Гений
Сейчас нет на сайте
Я перевел полностью этот двиг, но местами там английский язык. Вот посмотрите что у меня получилось!
http://southklub.1free.ws/ happy
Если хотите могу пхп скинуть перевода smile
maker-rusДата: Понедельник, 07 Июня 2010, 12:58 | Сообщение # 383 | Тема: Оцените мою работу
Гений
Сейчас нет на сайте
А почему у меня не открывается пишет
Quote
Index of /
[ICO] Name Last modified Size Description
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 Server at doubleworld.ru Port 80
maker-rusДата: Четверг, 03 Июня 2010, 14:46 | Сообщение # 384 | Тема: Урок по созданию браузерной игры № 2
Гений
Сейчас нет на сайте
cry помогите.
вот такая у меня ошибка!
Quote
Ошибка

Ответ MySQL: Документация
#1130 - Host 'localhost' is not allowed to connect to this MySQL server

wacko
---
Решение
Quote
Проблему решил happy
Я переписал файл config.inc.php там была строчка "пользователь = "root". Вот я её удалил и всё заработало! smile


Сообщение отредактировал maker-rus - Четверг, 03 Июня 2010, 20:00
maker-rusДата: Четверг, 03 Июня 2010, 14:33 | Сообщение # 385 | Тема: Давайте придумаем свой жанр игр!
Гений
Сейчас нет на сайте
Стиль: MPS (Music Photo-Strategy) на рус. (Музыкальная Фото-Стратегия)
Где применялась: нигде
Описание:Игра на 2.Загружаете свою фотку в игру, игра дает задание что надо сделать с фоткой, пока играет музыка надо решить головоломку с фотографией которую загрузили в игру. как только музыка заканчивается, кто из двоих больше очков при разгадывании головоломки решил, тот и выиграл. smile


Сообщение отредактировал maker-rus - Четверг, 03 Июня 2010, 14:35
maker-rusДата: Среда, 02 Июня 2010, 14:14 | Сообщение # 386 | Тема: Урок по созданию браузерной игры № 2
Гений
Сейчас нет на сайте
А шо это такое???
Quote
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in T:\home\virtual\games\reg.php on line 7

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in T:\home\virtual\games\reg.php on line 8

Access denied for user 'root'@'localhost' (using password: YES)

maker-rusДата: Среда, 02 Июня 2010, 13:52 | Сообщение # 387 | Тема: Уроки по созданию браузерной игры
Гений
Сейчас нет на сайте
Аааа biggrin эт значить я тупой! smile cool
maker-rusДата: Среда, 02 Июня 2010, 13:38 | Сообщение # 388 | Тема: Уроки по созданию браузерной игры
Гений
Сейчас нет на сайте
Спасибо исправил biggrin
А теперь вот что

Quote
SQL-запрос:

CREATE DATABASE testgame DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

Ответ MySQL: Документация
#1007 - Can't create database 'testgame'; database exists


Тут же кодировку надо менять???
maker-rusДата: Среда, 02 Июня 2010, 13:29 | Сообщение # 389 | Тема: Уроки по созданию браузерной игры
Гений
Сейчас нет на сайте
блин вот что у меня пишет MySQL
Quote
Ошибка

SQL-запрос:

/* */ CREATE TABLE `enemy` (
id_enm bigint( 20 ) unsigned NOT NULL AUTO_INCREMENT ,
name_enm CHAR( 32 ) ,
atk_enm INT,
life_enm INT,
def_enm INT,
lov_enm INT,
exp_enm INT,
path_enm CH AR( 32 ) ,
PRIMARY KEY ( `id_enm` )
) TYPE = MYISAM

Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CH AR(32),
PRIMARY KEY (`id_enm`)
) TYPE=MyISAM' at line 10

maker-rusДата: Суббота, 29 Мая 2010, 16:19 | Сообщение # 390 | Тема: Нужна программка для рисования зданий
Гений
Сейчас нет на сайте
Для построения замков,хибар и т.п старинного стиля. Лучший для этого редактор Core Draw, из за того что он с векторными изображениями работает.
PhotoShop в этом не помощник ИМХО, он годиться для растровых изображений.
Quote (ПрофЭссор)
просто для любопытства и сократить время на рисование я ищу такие программки-рисовалки зданий
- если сократить время, то
Минуса сокращения времени
- Получиться (абы как), то есть где то косяк программа не дорисовала линию, ошибка в программе и все насмарку.
- Не профессионально, то есть, когда сам рисуешь красивей получиться, из готового такое не сделаешь. dry dry

Плюсы сокращении времени
+ сократишь время dry smile

Это мое мнение. ИМХО. smile

maker-rusДата: Суббота, 29 Мая 2010, 13:01 | Сообщение # 391 | Тема: FlashDevelop
Гений
Сейчас нет на сайте
smile Инфро, Спасибо за совет, у меня без дублирование всё отлично работает happy плюсиГ в репу
maker-rusДата: Суббота, 29 Мая 2010, 12:26 | Сообщение # 392 | Тема: FlashDevelop
Гений
Сейчас нет на сайте
У меня нету этих вкладок! Почему? Я всё сделал так, как написанно!


Сообщение отредактировал maker-rus - Суббота, 29 Мая 2010, 12:30
maker-rusДата: Вторник, 25 Мая 2010, 18:11 | Сообщение # 393 | Тема: Java vs ActionScript3 (Flash)
Гений
Сейчас нет на сайте
Я прочитал ваш разговор, игра довольно хорошая, если она в действительности будет такая. Я отдаю голос в пользу java SE ИМХО.
Так как для серверных приложений лучше всего использовать java SE, так как они быстрее (например: бот в icq) быстрая работоспособность, ответ с сервера приходит через 4-5 сек. Это +. Этот язык можно использовать в интерпретаторах VB C/C++. К нему можно так же подключить библиотеки и т.п
- AC3
1) медленный
2) AC3 на данный момент уязвимый

herbst2005, AC3 на данный момент бета, если не так значить я отстал от жизни. Большое кол-во знает Java больше чем JS или AC3. И что вы им скажете что бы они из за какого-то плюса в AC 3 начали его учить??? Неет. Я отдаю предпочтение более языку java happy чем AC3 wink

maker-rusДата: Вторник, 25 Мая 2010, 17:34 | Сообщение # 394 | Тема: Использование XML в Java
Гений
Сейчас нет на сайте
Quote (Мерен)
Пожалуйста, расскажите как это работает и где применяется?

Quote
XML это доступная технология для виртуозного (ленивого) программиста. Простой парсер делает всю работу за програмиста, распознавая маркеры, транслируя кодировку символов, исполняя правила структуры XML файла, проверяя правильность некоторых значений, вызывая где требуется нужный программный код. На самом деле, ранняя стандартизация, комбинированная с жесткой рыночной конкуренцией вызвали появление множества свободных реализаций стандартных парсеров на многих языках, включая C, C++, Tcl, Perl, Python, и, конечно, Java.

Тут все написано... smile

maker-rusДата: Суббота, 15 Мая 2010, 17:50 | Сообщение # 395 | Тема: MMORPG Gcup
Гений
Сейчас нет на сайте
Извените...пжл.
Но я уезжал.... И еще раз уду..
Все те кто хотят помочь изображения спрайтов сюда или ко мне в Л.С.
Так же скрипты если чем то хотите дополнить игру...
Спасибо за внимание... smile
Если все хорошо пойдет, то первая версия выйдет 7.04.2010 smile

Добавлено (15.05.2010, 17:50)
---------------------------------------------
happy извените проект заморожен, на неизвестный срок wacko

maker-rusДата: Суббота, 27 Февраля 2010, 14:21 | Сообщение # 396 | Тема: MMORPG Gcup
Гений
Сейчас нет на сайте
Название: Gcup team online
Жанр: MMORPG [2D]
Описание проекта: ~20 уровней. Графика стандартная. Если будит дизайнер или умелый мастер по графике, то графика будит своя. Аналогично и с музыкой.
Сюжет: жизнь сайта Gcup.ru . Там будут комнаты модераторов уровни, где модераторы и супер модераторы будут «тусоваться». Аналогично и с администраторами. Так же будут уровни, где можно будит хорошо «подраться». Отвлечься от всех забот и поиграть или подраться. Так же будет уровень «Городская площадь» там администраторы или модераторы будут выступать с речью.
Спасибо за внимание. Просьба без оскорблений и оффтопов! dry smile
Здесь обсуждаем какая должна выйти игра, а также все дополнения к ней (Изображения, музыка, уровни и т.п) smile
maker-rusДата: Понедельник, 22 Февраля 2010, 14:40 | Сообщение # 397 | Тема: Gcup team online
Гений
Сейчас нет на сайте
Quote (Scorpio)
maker-rus, дело в том, что я обнаружил множество ошибок в тексте первого поста.
Причем тут я?

По твоему Microsoft Word "Глупцы делали dry "
Quote (Yuriy)
У меня стоит Genesis возможностей гораздо больше чем у эклипса, да и проблем с запуском не было, просто нужно больше действий для начала. Есть видео гайды по запуску у них на сайте.

Я посмотрю спасибо за помощь.
Может на Genesis 2D перейдём smile


Сообщение отредактировал maker-rus - Суббота, 27 Февраля 2010, 14:14
maker-rusДата: Суббота, 20 Февраля 2010, 17:20 | Сообщение # 398 | Тема: Gcup team online
Гений
Сейчас нет на сайте
Quote (Scorpio)
желательно, выучи русский язык

Извини smile , но не тебе ли мне об этом говорить?! dry
maker-rusДата: Пятница, 19 Февраля 2010, 17:31 | Сообщение # 399 | Тема: Gcup team online
Гений
Сейчас нет на сайте
Akyltist, спасибо не увидел biggrin batman
maker-rusДата: Пятница, 19 Февраля 2010, 15:39 | Сообщение # 400 | Тема: Gcup team online
Гений
Сейчас нет на сайте
Yuriy, в команде (арт-дизайнер) happy smile
3tOn, - я у Eclipse сейчас все баги исправляю... smile

На данный момент я перевёл Eclipse и исправил баг с буквой н. Так же в чате игры доступен русский язык. smile Если надо, то 24 - 25 февраля выложу. До этого времени буду приводить код Eclipse в божеский вид. Так же позже попытаюсь в нем сделать систему квестов smile

Добавлено (19.02.2010, 15:39)
---------------------------------------------
Я вот думаю... перейти на Genesis, но не знаю как его запустить...хм..

Сообщение отредактировал maker-rus - Вторник, 16 Февраля 2010, 21:33
Форум игроделов » Записи участника » maker-rus [433]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг