Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 27.04.2013, 00:00   #1051
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

На майл ру хостинге приложений 29-го числа отключат эту возможность.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.04.2013, 17:45   #1052
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Вы были правы, захостился на hostinger.ru.
Там оказалось действительно всё просто.
Начал разбираться и немного запутался.
Решил попробовать Photon Cloud. Но чтото не понимаю, если каждый загрузившийся - отдельный клиент.

То не понимаю, что, можно будет вообще без сервера работать?
И тогда что, каждый клиент сам будет делать проверки и иметь доступ к базам данных?
Мне кажется, или это действительно читерство будет плодит?
__________________
(Offline)
 
Ответить с цитированием
Старый 27.04.2013, 19:50   #1053
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

В клауде читерство значительно легче чем с отдельным сервером. Однако все же что-то можно сделать. Все равно нужно какой-то сервер для хранения пользователей, вложенных денег, достижений и т.п. Это может быть MySQL на обычном хостинге. Хотя при приличном числе пользователей, конечно, платном. Логин и все операции покупки/продажи/экипировки и т.п. делаем только на сервере в php скриптах и храним в том самом MySQL. Тем самым читерство будет только непосредственно в сражениях и т.п. При желании можно и там его слегка ограничить - время от времени посылать на SQL сервер в php скрипт запросы по проверке текущего оснащения и если не совпадает - банить.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (27.04.2013)
Старый 27.04.2013, 21:02   #1054
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Логин и все операции покупки/продажи/экипировки и т.п. делаем только на сервере в php скриптах и храним в том самом MySQL.
Ну я так и предполагал, чтобы хранить всё на sql.
А вот операции зачем хранить не понял. Я думал хранить только саму экипировку, деньги и т.п.

Просто я боюсь того, что клиент при подключении к базе может перехватить запрос sql. И натворить в этой базе всё что угодно (Или не сможет?)

А правильно ли я понял, что обращение к базе из приложения будет производиться через php-запросы, которые будут общаться с БД?
__________________
(Offline)
 
Ответить с цитированием
Старый 27.04.2013, 22:54   #1055
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

А вот операции зачем хранить не понял.
В том смысле, что деньги на клиенте только для отображения - сколько их. А сама операция покупки, проверка хватает ли денег и т.п. - на сервере.
клиент при подключении к базе может перехватить запрос sql
Это как? Запрос делает php скрипт на сервере. Как клиент может его перехватить. Другое дело, что есть такая штука - инжекция в sql запрос. С ней можно "натворить в этой базе всё что угодно". Чтобы избежать,- нужно это предусматривать. Как - лучше спросить тут на форуме php. Там специалисты подскажут.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (28.04.2013)
Старый 28.04.2013, 17:25   #1056
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Сделал я первый тест с фотоном - пишет состояние связи, количество игроков.
Скомпилировал екзешник, ну и решил два раза его открыть.
Когда открыл, получилось что они вообще друг о друге не знают. Хотя по сути лобби то один.

Не подскажите что можно сделать чтобы на одной машине тестить несколько игроков?
__________________
(Offline)
 
Ответить с цитированием
Старый 28.04.2013, 20:51   #1057
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

На одном создать комнату, на втором в нее войти
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.04.2013, 21:34   #1058
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Но как я понял в лобби должно отображаться общее число игроков через PlayerList. В скрине расписал, посмотрите пожалуйста и пните в нужном направлении.

Оказывается PhotonNetwork.PlayerList().Lenght не показывается сколько игроковв лобби, а показывает сколько в комнате

Исходник. Пинайте, очень нужно! (Я как садо-маза - больше пинков - приятнее)


using System;
using UnityEngine;
using System.Collections;

public class 
ConnectToMS Photon.MonoBehaviour {
    public 
string connectState "";
    public 
Rect connectStateRectlobbyPanelRect;
    public 
int countInRoom;

void Awake()
    {
    
PhotonNetwork.player.name "Player num-"+ (PhotonNetwork.playerList.Length).ToString();
    }
        
void Start () 
    {
    
PhotonNetwork.ConnectUsingSettings("v0.1");
    
countInRoom PhotonNetwork.playerList.Length;
    }
    

void OnConnectToMaster()
    {
    print (
"Client connected to Master Server");    
    }
    
    
void Update () 
    {
    
connectState PhotonNetwork.connectionStateDetailed.ToString();
    
connectStateRect = new Rect(5f,5f,connectState.Length*8f,21f);
    
lobbyPanelRect = new Rect(50f,50f,300f,400f);
    
countInRoom PhotonNetwork.playerList.Length;    
    }

void OnGUI()
    {
    
GUI.Label(connectStateRectconnectState); 
    
Rect tempRect = new Rect(150f,5f,100f,21f);
    
GUI.Label(tempRectPhotonNetwork.player.name);
    if (
PhotonNetwork.connectionStateDetailed == PeerState.JoinedLobby
        {
        
RoomInfo[] roomList PhotonNetwork.GetRoomList(); 
        
tempRect = new Rect(5f,30f,50f,21f);
        
GUI.Label(tempRectcountInRoom.ToString());    
        
GUILayout.BeginArea(lobbyPanelRect);
        for (
int roomNumber=0roomNumber<roomList.LengthroomNumber++)
            {
            
GUILayout.BeginHorizontal();
            
GUILayout.TextArea(roomList[roomNumber].name); 
            
GUILayout.TextArea(roomList[roomNumber].playerCount.ToString());
            
GUILayout.Button("Connect");
            
GUILayout.EndHorizontal();
            }
            
GUILayout.BeginHorizontal();
            if (
GUILayout.Button("Create a new room")) {CreateNewRoom();}
            
GUILayout.EndHorizontal();
        
GUILayout.EndArea();
        }
    }
    
void CreateNewRoom()
    {
    
    }

Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 837
Размер:	68.2 Кб
ID:	19109  
__________________
(Offline)
 
Ответить с цитированием
Старый 28.04.2013, 21:59   #1059
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

PhotonNetwork.countOfPlayers - число игроков в сети
PhotonNetwork.countOfPlayersOnMaster - число игроков в лобби
PhotonNetwork.countOfRooms - число комнат

PhotonNetwork.playerList - список игроков в текущей комнате
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (28.04.2013)
Старый 29.04.2013, 16:46   #1060
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Помогите плиз. Опять упёрся. Не могу задать пользовательские настройки комнаты

Здесь я создаю комнату

void CreateNewRoom()
    {
    
string[] roomPropNames = new string[1];
    
roomPropNames[0] = "The map";
        
    
byte mapInRoom 5;
    
    
Hashtable roomProps = new Hashtable();
    
roomProps.Add((byte)mapInRoom);

    
PhotonNetwork.CreateRoom(("Room"truetrue12roomPropsroomPropNames);
    } 


Далее, поключившись к комнате пытаюсь посматреть этот параметр

void OnGUI()
    {
    
//ЕСЛИ В КОМНАТЕ
    
if (PhotonNetwork.connectionStateDetailed == PeerState.Joined)
        {
        
GUILayout.BeginArea(lobbyPanelRect);
        
GUILayout.Label("Map: "+PhotonNetwork.room.customProperties[0]); //Здесь считываю
        
GUILayout.EndArea();
        }
    } 


У меня вообще ничего не приходит - даже ноль.
__________________
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 16:56   #1061
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Я создаю комнату примерно вот так сейчас:
PhotonNetwork.CreateRoom(roomNametruetruelevelInfo.maxPlayers.Value,
                    new 
Hashtable 
                        
{
                            { 
"L"/* индекс выбранного уровня */ },
                            { 
"F"/* френдли фаер */ },
                            { 
"V"/* версия (хз зачем)) */},
                            { 
"MI"/* минимальный уровень игрока */},
                            { 
"MA"/* максимальный уровень игрока */},
                        },
                    new[]
                        {
                             
"L",
                             
"F",
                             
"V",
                             
"MI",
                             
"MA"
                        
}
                    ); 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (29.04.2013)
Старый 29.04.2013, 17:09   #1062
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Всё равно не показывает. Значит значит создавал параметры правильно.
Может я не правильно их считываю?
GUILayout.Label("Map: "+PhotonNetwork.room.customProperties[0]);
        
GUILayout.Label("prop 1: "+PhotonNetwork.room.customProperties[1]);
        
GUILayout.Label("prop 2: "+PhotonNetwork.room.customProperties[2]); 
__________________
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 17:22   #1063
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Конечно не правильно, ключ байт, а ты считываешь int
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (29.04.2013)
Старый 29.04.2013, 18:03   #1064
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Спасибо большое Андрюх!
А в твоём варианте получается надо вызывать через string.

Для инета мне кажется не лучший вариант.
Может лучше описать enum

public enum roomProp {level, friendlyFire, version, minLevel, maxLevel}

А затем делать так:

PhotonNetwork.CreateRoom(roomNametruetruelevelInfo.maxPlayers.Value,
                    new 
Hashtable 
                        
{
                            { 
roomProp.level/* индекс выбранного уровня */ },
                            { 
roomProp.friendlyFire/* френдли фаер */ },
                            { 
roomProp.version/* версия (хз зачем)) */},
                            { 
roomProp.minLevel/* минимальный уровень игрока */},
                            { 
roomProp.maxLevel/* максимальный уровень игрока */},
                        },
                    new[]
                        {
                             
//а это я как понял описание параметров для лобби
                             
"индекс выбранного уровня",
                             
"френдли фаер",
                             
"версия (хз зачем))",
                             
"минимальный уровень игрока",
                             
"максимальный уровень игрока"
                        
}
                    ); 


и так же считывать
PhotonNetwork.room.customProperties[roomProp.level
__________________
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 18:06   #1065
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Когда займусь оптимизацией проекта - обязательно что-то сделаю с этим)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com