Суббота, 20 Апреля 2024, 02:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » аккаунт ...
аккаунт ...
webstrict666Дата: Суббота, 22 Января 2011, 22:00 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Я вроде показал пример (: если знаешь как пользоватся JOIN в MYSQL то создай таблицу Char_Slot с столбами cs_uid cs_slot_1 cs_slot2 cs_slot3 и при регистрации сдеалй запрос чтоб записывался ID из таблицы Users в cs_uid и выдавай всем остальным столбцам 0 далее мутишь проверку типа
if ( $slot == '0') { тут код для создания персонажа } else { выводим код что слот занят }

все до боли просто ... просто посидите составьте алгоритм на бумаге и далее выложите сюда а далее будем думать как вам лучше сделать.


http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Воскресенье, 23 Января 2011, 00:11 | Сообщение # 22
частый гость
Сейчас нет на сайте
Quote (webstrict666)
ну сделай в таблицу авторизации еще 3 столбца Slot1 Slot2 Slot3 и записывай в них char_id (далее мути проверку )

очень прошу помочь,как это в скрипте выглядит...

как при создании нового чара впихивать в слоты id chara? не получается присвоить, помогите...

Сообщение отредактировал Dizelist - Воскресенье, 23 Января 2011, 00:15
webstrict666Дата: Воскресенье, 23 Января 2011, 01:27 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
0_о попроси написать за тебя скрипт (:

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Воскресенье, 23 Января 2011, 02:19 | Сообщение # 24
частый гость
Сейчас нет на сайте
вот что я накалякал))
не знаю может надо было по другому...
тут все сразу скрипт без запросов...
Code

<?   
include "conf.php";   

$data = mysql_connect($base_name, $base_user, $base_pass);   
mysql_select_db($db_name);   

$name=test; // login users
$query0 = mysql_query("SELECT * FROM users WHERE name='$name'");   
$row = mysql_fetch_array($query0);   
$uid = $row["id"];

$char_name=test1;
$char_race=test2;
$char_level=test3;
//==================
//присваевание слота   
$query = "INSERT INTO char_slot (cs_uid)  VALUES('$uid')";   
$result = mysql_query($query);   

$query1 = "INSERT INTO char_slot (cs_uid,cs_slot_1,cs_slot_2,cs_slot_3) VALUES('???','???','???','???')";
$result1 = mysql_query($query1);    
$query2 = "INSERT INTO char (uid,char_name,char_race,char_level) VALUES('$ID','$char_name','$char_race','$char_level')";   
$result2 = mysql_query($query2);   

if ( $slot1== '0') {   
$query11 = "INSERT INTO char_slot (cs_uid,cs_slot_1) VALUES('???','???')";
$result11 = mysql_query($query11);
   } else {   
if ( $slot2== '0') {   
$query12 = "INSERT INTO char_slot (cs_uid,cs_slot_2) VALUES('???','???')";
$result12 = mysql_query($query12);
   } else {   
if ( $slot3== '0') {   
$query13 = "INSERT INTO char_slot (cs_uid,cs_slot_3) VALUES('???','???')";
$result13 = mysql_query($query13);
   } else {   
//выводим код что слот занят   
}   
}   
}
?>

подскажи как мне uid из таблицы chars присвоить к слотам....


Сообщение отредактировал Dizelist - Воскресенье, 23 Января 2011, 02:25
webstrict666Дата: Воскресенье, 23 Января 2011, 03:08 | Сообщение # 25
постоянный участник
Сейчас нет на сайте
Начнем с базы создаешь 2 таблицы (пользователей и слотов чаров)
Структура таблицы `char_slot`
Code

CREATE TABLE IF NOT EXISTS `char_slot` (
        `uid` int(11) NOT NULL,
        `slot1` int(11) NOT NULL,
        `slot2` int(11) NOT NULL,
        `slot3` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Разберем:
uid - это индификатор пользователя, записывается согласно ID пользователя в таблице USER
slot1 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара
slot2 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара
slot3 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара

Структура таблицы `users`

Code


CREATE TABLE IF NOT EXISTS `users` (
    `id` int(11) NOT NULL auto_increment,
    `name` varchar(15) NOT NULL,
    `password` varchar(20) NOT NULL,
    PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

id - Уникальный индефикатор... выдается согласно условию авто инкрумент.
name - поле логина (15 символов)
password - Поле пароля (20 символов), если будешь делать шифрование под md5 или sha1 то тип поля TEXT и не каких ограничений

С базой закончили... Создаем структуру ядра.
Создаем папку engine в ней создаем папку data
В корневой папке 1 файл и в папке data 2 файла.

Начнем с папки DATA, создаем файл в папке DATA обзываем его config.php

Code
<?php

/**
       * @author WebStrict666 (GameSkrol)
       * @copyright 2011
       */

define ( 'DB_USER', '' );     //Юзер
define ( 'DB_PASSWORD', '' ); //Пароль
define ( 'DB_HOST', '' );     //Хост базы
define ( 'DB_NAME', '' );     //Название базы

?>

Это данные для подключения к MYSQL , переходим непосредственно к подключению, создаем файл connet.php
Code
<?php

/**
       * @author WebStrict666(GameSkrol)
       * @copyright 2011
       */
//Подключаем файл конфигураций
       include 'config.php';
//Производим подключение к базе
       mysql_connect ( DB_HOST, DB_USER, DB_PASSWORD );       
       mysql_query( 'SET NAMES cp1251' );       
       mysql_select_db ( DB_NAME );       
//Включаем сессию.
       session_start();

?>

Все прокомментировано, хочу сказать насчет сесси - ее по желанию используем здесь , но советую не убирать...

переходим в корневую папку и создаем index.php (Он будет и регистрацию и авторизацию производить)

Code
<?php

/**
       * @author WebStrict666 (GameSkrol)
       * @copyright 2011
       */

//Подключаемся к базе       
include 'engine/data/connect.php';
//Проверяем нажата ли кнопка регистрации
       if ($_POST['btn_reg'])
       {       
        //Здесь записываем       
     $name = trim($_POST['name']); //Записываем поле name в переменную
     $password = trim($_POST['password']); //Записываем password name в переменную
     $raca = $_POST['raca']; //Записываем поле raca в переменную
              
        //Выполняем запрос добавляющее пользователя в базу USER
        $query = "INSERT INTO users (name,password)       
        VALUES('$name','$password')";       
        $result = mysql_query($query);       
              
        // Обращаемся к таблице users по нику для определения ID
        $query = "SELECT * FROM users WHERE name='$name'";
        $result = mysql_query ($query)
        or die ("Ошибка получения ID".mysql_error());
        $row = mysql_fetch_array($result);
        $uid=$row['id'];

        // Создаем строку персонажей в таблицу Char_Slot
        $query = "INSERT INTO Char_Slot (uid,slot1,slot2,slot3)
        VALUES('$uid','0','0','0')";       
        $result = mysql_query($query);       
       }
              
       // Проверяем переданы ли Логин и пароль
       if(isset($name) && isset($password))
{
       //проверяем есть ли ник в базе
          $query = "SELECT * FROM users WHERE name='{$name}'";
          $result = mysql_query ($query);
        if (!($result)) { // Проверяем если ник есть в базе то записываем переданные данные формы в сессию
               
        $Login=$_SESSION['name'];
        $ID=$_SESSION['id'];
        $Pass=$_SESSION['Password'];
        $messages = 'Вы успешно авторизовались <a href=index.php>На главную</a>';
        } else {
        $messages = 'Че за? Зарегся епт...';       
        }

}
?>
<!-- С PHP Частью мы закончили идем к HTML, начинаем все с формы -->
<form name=""  method="post">
<table>
<?php if(isset($messages)) { echo $messages;}?>       
<tr><td>Логин:</td><td><input type="text" name="name"></td></tr>
<tr><td>Пароль:</td><td><input type="password" name="password"></td></tr>
<tr><td> </td><td><input type="submit" value="Регистрация" name="btn_reg"></td></tr>
</table>
</form>

В принципе все очень просто... если вы этого не поймете, то оплачивайте я вам напишу ядро...

Добавлено (23.01.2011, 03:08)
---------------------------------------------
Код исправлен все работает 100%


http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !


Сообщение отредактировал webstrict666 - Воскресенье, 23 Января 2011, 03:55
DizelistДата: Воскресенье, 23 Января 2011, 03:13 | Сообщение # 26
частый гость
Сейчас нет на сайте
webstrict666, smile спасибо за ваш труд,пойду разбираться! вам+
webstrict666Дата: Воскресенье, 23 Января 2011, 03:21 | Сообщение # 27
постоянный участник
Сейчас нет на сайте
Алгоритм http://imglink.ru/pictures/23-01-11/7030540cf2982a38a2d9c79d5f6c253a.jpg

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Воскресенье, 23 Января 2011, 03:49 | Сообщение # 28
частый гость
Сейчас нет на сайте
выдает ошибку Parse error: parse error in C:\xampp\htdocs\game\test\index.php on line 57

что тут не так... <? if(isset($messages) { echo $messages;}?>

Добавлено (23.01.2011, 03:49)
---------------------------------------------
нашол, тат скобка открыта(

webstrict666Дата: Воскресенье, 23 Января 2011, 03:51 | Сообщение # 29
постоянный участник
Сейчас нет на сайте
Сори быстро писал (: не заметил ...

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Понедельник, 24 Января 2011, 09:35 | Сообщение # 30
частый гость
Сейчас нет на сайте
не подскажите как сделать выбор чара и вход в игру под ним...
я думал как то так...
Code

<tr><td><? echo $hname1; ?></td><td><input type="checkbox" name="checkme1" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr>

Code

if ($_POST['chars_enter'])  
{
if ( $checkme1 == '1') {  
$query = mysql_query("SELECT * FROM chars WHERE id_chars='".$email."'");
$row = mysql_fetch_array($query);
$num = mysql_num_rows($query);
if ($num > 0){
$_SESSION['name'] = $row['chars'];
$_SESSION['id_chars'] = $row['id_chars'];
echo "<script>location.href='game.php';</script>";
}
}
}

у меня 3 checkbox, как их выбирать...
webstrict666Дата: Понедельник, 24 Января 2011, 11:10 | Сообщение # 31
постоянный участник
Сейчас нет на сайте
почитай про case PHP думаю сам разберешся

Добавлено (24.01.2011, 11:10)
---------------------------------------------
не понятно еще

Code
$query = mysql_query("SELECT * FROM chars WHERE id_chars='".$email."'");

Ты делаешь запрос на выборку ID_chara а тебе надо проверить есть ли у него вообще чары... еще ты выбираешь ID по емэйлу не кажется абсурдным?:)


http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Понедельник, 24 Января 2011, 13:46 | Сообщение # 32
частый гость
Сейчас нет на сайте
вот весь код,может поймете...
Code

<?
session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name);

if (isset($_SESSION['email'])) {
//=====================================================================
         // Обращаемся к таблице users по нику для определения ID  
         $query = "SELECT * FROM users WHERE email='".$_SESSION['email']."'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);  
         $uid=$row['id_user'];
//===================================================================

         // Обращаемся к таблице char_slot по uid для проверки slot  
         $query = "SELECT * FROM char_slot WHERE uid='$uid'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);  
         $slot1=$row['slot1'];  
         $slot2=$row['slot2'];  
         $slot3=$row['slot3'];  
    

    

//==================================================================
if ($_POST['chars_add'])  
        {        
         //Здесь записываем        
$name = trim($_POST['name']); //Записываем поле name в переменную    
//проверяем есть ли чар в базе  
         $query = "SELECT * FROM chars WHERE name='$name'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);  
   $char_name=$row['name'];  
   if ( $char_name == $name ) { // Проверяем если ник есть в базе то записываем переданные данные формы в сессию
         echo "Имя занято";
         } else {  
if ( $slot1== '0') {  
   // Создаем имя чара в таблицу Char  
         $query = "INSERT INTO chars (name) VALUES('$name')";        
         $result = mysql_query($query);
   // Обращаемся к таблице chars по нику для определения ID  
         $query = "SELECT * FROM chars WHERE name='$name'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $hid=$row['id_chars'];
   //
   $query = mysql_query("UPDATE Char_Slot SET slot1='$hid' WHERE uid='$uid'");  
  } else {  
if ( $slot2== '0') {  
   // Создаем имя чара в таблицу Char  
         $query = "INSERT INTO chars (name) VALUES('$name')";        
         $result = mysql_query($query);
   // Обращаемся к таблице chars по нику для определения ID  
         $query = "SELECT * FROM chars WHERE name='$name'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $hid=$row['id_chars'];
   //
   $query = mysql_query("UPDATE Char_Slot SET slot2='$hid' WHERE uid='$uid'");  
  } else {  
if ( $slot3 == '0') {  
   // Создаем имя чара в таблицу Char  
         $query = "INSERT INTO chars (name) VALUES('$name')";        
         $result = mysql_query($query);
   // Обращаемся к таблице chars по нику для определения ID  
         $query = "SELECT * FROM chars WHERE name='$name'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $hid=$row['id_chars'];
   //
   $query = mysql_query("UPDATE Char_Slot SET slot3='$hid' WHERE uid='$uid'");  
  } else {  
echo "нет свободных слотов";
}  
}  
}  
}     
        }  
//====================================================================
function checkbox_verify($_name)
{
   // Создаем имя чара в таблицу Char  
         $query = "DELETE FROM chars WHERE id='".$id."'";
         $result = mysql_query($query);
   // Обращаемся к таблице chars по нику для определения ID  
         $query = "SELECT * FROM chars WHERE name='$name'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $hid=$row['id_chars'];
   //
   $query = mysql_query("UPDATE Char_Slot SET slot1='0' WHERE uid='$uid'");
}
echo checkbox_verify('checkme1');
         $query = "SELECT * FROM Char_Slot WHERE uid='$uid'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $sid_1=$row['slot1'];
   $sid_2=$row['slot2'];
   $sid_3=$row['slot3'];
if ($_POST['chars_del'])  
        {
$checkme1 = trim($_POST['checkme1']); //Записываем поле name в переменную
$checkme2 = trim($_POST['checkme2']); //Записываем поле name в переменную
$checkme3 = trim($_POST['checkme3']); //Записываем поле name в переменную
  if ( $checkme1 == '1') {  
      $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_1."'");
         $query = mysql_query("UPDATE Char_Slot SET slot1='0' WHERE uid='$uid'");
         echo "персонаж удален";
}
  if ( $checkme2 == '1') {  
      $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_2."'");
         $query = mysql_query("UPDATE Char_Slot SET slot2='0' WHERE uid='$uid'");
         echo "персонаж удален";
}
  if ( $checkme3 == '1') {  
      $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_2."'");
         $query = mysql_query("UPDATE Char_Slot SET slot3='0' WHERE uid='$uid'");
         echo "персонаж удален";
}
}

         $query = "SELECT * FROM chars WHERE id_chars='$sid_1'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
         $hname1=$row['name'];
   $query = "SELECT * FROM chars WHERE id_chars='$sid_2'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
   $hname2=$row['name'];
   $query = "SELECT * FROM chars WHERE id_chars='$sid_3'";  
         $result = mysql_query ($query)  
         or die ("Ошибка получения ID".mysql_error());  
         $row = mysql_fetch_array($result);   
   $hname3=$row['name'];
    
    
echo "id=",$uid,", slot_1=",$slot1,", slot_2=",$slot2,", slot_3=",$slot3;
?>

<form name=""  method="post">  
<table>  
<?php //if(isset($messages)) { echo $messages;}?>        
<tr><td>Имя:</td><td><input type="text" name="name"></td></tr>  
<tr><td> </td><td><input type="submit" value="создать" name="chars_add"></td></tr>  
</table>  
</form>
<form action="" method="post">
<table>  
<tr><td><? echo $hname1; ?></td><td><input type="checkbox" name="checkme1" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr>
<tr><td><? echo $hname2; ?></td><td><input type="checkbox" name="checkme2" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr>
<tr><td><? echo $hname3; ?></td><td><input type="checkbox" name="checkme3" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr>
</table>  
</form>

<?
}else{
echo "<script>location.href='index.php';</script>";
}
?>
webstrict666Дата: Понедельник, 24 Января 2011, 16:44 | Сообщение # 33
постоянный участник
Сейчас нет на сайте
Ужас нах)я написал о чем почитать smile

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
DizelistДата: Понедельник, 24 Января 2011, 16:46 | Сообщение # 34
частый гость
Сейчас нет на сайте
а вы как думали,с первого раза тыкву в хамер превратить да?)
читаю,спасибо за совет!
webstrict666Дата: Понедельник, 24 Января 2011, 21:34 | Сообщение # 35
постоянный участник
Сейчас нет на сайте
Думаю если хочешь создавать игру а тем более браузерную ... надо хотя бы 60% багажа знаний ...

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
vladbossДата: Понедельник, 24 Января 2011, 22:11 | Сообщение # 36
постоянный участник
Сейчас нет на сайте
дык эти знания из опыта и беруться не так ли и из подобных этому форуму???
главное чтоб желание не пропало)


-помог ставь +

АБП production ©


Сообщение отредактировал vladboss - Понедельник, 24 Января 2011, 22:11
webstrict666Дата: Вторник, 25 Января 2011, 00:29 | Сообщение # 37
постоянный участник
Сейчас нет на сайте
нет , они берутся не с форумов а из учебников ... такие форумы нужны для помощи (это подправить кусочек кода (правельно написаного.) но надо примерный алгоритмы (а половину людей пишут от "Балды"))

Ну так начать надо с PHP4 потом перейти на PHP5 потом организовать ядро, вот как я сейчас делаю:



http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !


Сообщение отредактировал webstrict666 - Вторник, 25 Января 2011, 00:29
vovnetДата: Среда, 26 Января 2011, 09:59 | Сообщение # 38
почетный гость
Сейчас нет на сайте
Quote (webstrict666)
...вот как я сейчас делаю:

webstrict666, это с использованием MVC?




Сообщение отредактировал vovnet - Среда, 26 Января 2011, 10:00
webstrict666Дата: Четверг, 27 Января 2011, 00:30 | Сообщение # 39
постоянный участник
Сейчас нет на сайте
Угу , все через контроллер + защита всех файлов (:

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » аккаунт ...
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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