Среда, 13 Ноября 2024, 11:09

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
39dll, регистрация пользователя через ini файлы.
NotinДата: Вторник, 02 Июля 2013, 12:57 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Где можно найти такой урок?
Если знаете просьба кинуть ссыль сюда :3


Twitter
ВКонтакте
last2424Дата: Вторник, 02 Июля 2013, 13:08 | Сообщение # 2
30 мл. блоков
Сейчас нет на сайте
Notingham, лазий в исходниках и узнаешь как.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
NotinДата: Вторник, 02 Июля 2013, 13:11 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
last2424, долго, муторно и куеву тучу строк просмотреть не айс.

Twitter
ВКонтакте
Abel399Дата: Вторник, 02 Июля 2013, 19:03 | Сообщение # 4
Surpass your limits. Right now.
Сейчас нет на сайте
Эх... так уж и быть. Предупреждаю - букаф будет много)))
Итак:
Server -
Create:
Код
//Примечание: 39dll в виде библиотеки .dll (не gex)
//Инициализация библиотеки
dllinit(0,1,0);
//Получаем порт
port = get_integer("Введите порт:",12564);
//Прослушиваем порт
servertcp = tcplisten(port,10,1);
//Если порт занят или произошла ошибка
if !(servertcp)
     closesocket(servertcp);
     show_message("Error");
     game_end();
     exit;
}

Step:
Код
var socket;
//Создаем соединение
socket = tcpaccept(servertcp,true);
//Если не сообщений, то выходим
if (socket <=0) exit;
setsync(clientsocket,0);
//Принимаем сообщения
receivemessage(clientsocket);
step = 0; //Допуск
type = readbyte();
name = readstring();
pass = readstring();
//Регистрация
if type = 0
{
if !(file_exists("players\"+name+".ini"))
{
ini_open("players\"+name+".ini");
ini_write_string("Data","password",pass)  
ini_close();
clearbuffer();
writebyte(1);
writebyte(1);
sendmessage(socket);
step = 1;
}
else
{
clearbuffer();
writebyte(1);
writebyte(0);
sendmessage(socket);
exit;
}
}
//Логин
if type = 1
{
if (file_exists("players\"+name+".ini"))
{
ini_open("players\"+name+".ini");
password = ini_read_string("Data","password","");
ini_close();
if (pass = password)
{
clearbuffer();
writebyte(1);
writebyte(3);
sendmessage(socket);
step = 1;
}
else
{
clearbuffer();
writebyte(1);
writebyte(4);
sendmessage(socket);
exit;
}
}
else
{
clearbuffer();
writebyte(1);
writebyte(2);
sendmessage(socket);
exit;
}
}
if (step)
{
//Здесь уже стандартное создание игрока в сети, добавление его в список игроков и т.п.
}


Client -
Create:
Код
//Инициализируем библиотеку
dllinit(0,1,0);
global.serverip = get_string("IP сервера:","127.0.0.1");
global.serverport = get_integer("Порт сервера:",12564);
type = get_integer("Регистрация(0) или Логин(1):",0);
name = get_string("Введите ваше имя:","Test");
password = get_string("Введите пароль:","1111");
//Соединяемся
global.clienttcp = tcpconnect(global.serverip,global.serverport,1);
//Если не удалось
if (!tcpconnected(global.clienttcp))
{
//...закрываем сокет, и уходим из игры.
closesocket(global.clienttcp);
show_message("Error");
game_end();
exit;
}
else
{
//Если подключение удалось
setnagle(global.clienttcp,1);
//Потом отправляем свои данные...
clearbuffer();
writebyte(type);
writestring(name,false);
writestring(password,false);
sendmessage(global.clienttcp);
}

Step:
Код
//Переменные
var messagesize, messageid;
while(1)
{
//Принимаем сообщения
messagesize = receivemessage(global.clienttcp);
//Если их нет
if (messagesize <= 0) break;
//Иначе, получаем айди сообщения
messageid = readbyte();
//Сортируем
switch(messageid)
{
case 1:
answer = readbyte();
//Имя занято
if (answer = 0)
{
show_message("Имя занято");
game_restart();
exit;
}
//Регистрация прошла успешно
if (answer = 1)
{
show_message("Вы зарегистрированы");
}
//Пользователь не существует
if (answer = 2)
{
show_message("Пользователь не существует");
game_restart();
exit;
}
//Вход произведен
if (answer = 3)
{
show_message("Приветствуем вас!");
}
//Пароль введен неверно
if (answer = 4)
{
show_message("Пароль не верен!!!");
game_restart();
exit;
}
break;
}

Писал по максимуму сокращенно. надеюсь помог)) Удачи в реализации happy

P.S.> Я всему учился сам по англоязычным сайтам и примерам, так что не реви тревогу - а пробуй, разбирайся. Если не получается - оставь на время размышлений, а потом вернись и ответ придет. Удачи)


Ninja Slayer - 2D Physics Puzzle [cancelled]
NotinДата: Вторник, 02 Июля 2013, 20:12 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Abel399, спасибо конечно, но ты чуть чуть опоздал :D, я уже сам допер)

Twitter
ВКонтакте
TheAceДата: Вторник, 02 Июля 2013, 22:15 | Сообщение # 6
Pain is Pleasure
Сейчас нет на сайте
Регистрация пользователей через ini-файлы?
До такого могут догадаться только конструкторщики.


The End [3D][TPS]
DeswingДата: Вторник, 02 Июля 2013, 23:40 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата (Notingham)
Где можно найти такой урок?
Если знаете просьба кинуть ссыль сюда :3

Цитата (Notingham)
last2424, долго, муторно и куеву тучу строк просмотреть не айс.

Волка бояться - в лес не ходить smile
С таким подходом мало чего выйдет. Копаться в документации и примерах обязательно надо. Аргументирую: зная как весь твой код работает ты, во-первых, почувствуешь радость, тебе станет приятно. Во-вторых, понимая принципы работы программы\игры от А до Я тебе ничего не помешает всё менять так, как душенька захочет. Да и, между прочим, на практике ничего не сварганить, если не знать теорию
Цитата (TheAce)
Регистрация пользователей через ini-файлы?
До такого могут догадаться только конструкторщики.

Поддерживаю. Лучше связать игру с MySQL.
Но, надеюсь, автор темы понимает, что из Game Maker можно выжать не более 10-50 игроков. Именно поэтому советую учить ЯП (не в коем случаи не хотел обидеть людей, которые увлекаются созданием игр на ГМ. Но Вы же понимаете, что GML - всего лишь СЯП, а из сервера на ГМ выжать достойный онлайн невозможно без извращений?) , курить движки (или делать свои, если будет возможно), разбираться как работает сеть, написать сервер и клиент.
NotinДата: Среда, 03 Июля 2013, 10:27 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Deswing, Писать сервер на Delphi для новичков получше будет smile

Twitter
ВКонтакте
VinchensooДата: Среда, 03 Июля 2013, 17:49 | Сообщение # 9
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Хочу это увидеть

DeswingДата: Среда, 03 Июля 2013, 19:20 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Notingham, Сомневаюсь что новички сразу полезут писать серверы...)
Месяца два (если без перерывов, форсивно) читать теорию Delphi (НЕ статьи, а КНИГИ, которые написали умные люди, в которых всё расписано развёрнуто), потом разбираться как работает сеть, разобраться какие существуют соединения и как их различать. Ну и ТОЛЬКО ТОГДА можно пытаться написать клиент-серверное приложение. И то, без графики - какой-нибудь чатик примитивный или консольную игрушку.

Опять же, я считаю, что программист, если уж берется что-либо писать, должен понимать как работает его программа от А до Я. Знаю кучу программистов, которые по кусочкам "тырили" код из разный источников и потом хватались за головы. Таким был и я в первый год своего пути. Но потом осознал, что всё это было сделано зря. Мне кажется, что лучше уж изучить детально чужие "велосипеды", а потом на их основе лепить и свои, а, возможно, создать и с нуля.

В моем городе собралась небольшая группка энтузиастов, которые создают игры, но сами программировать на деле не умеют. Когда я начал писать свои первые программки на С++ они хватались за головы и не понимали что я такого там написал, ну а сам я немного гордился тем, что всё написано лично мною, каждая строчка программы. Так всегда: но с каждым разом всё больше и больше понимаешь, видишь свои ошибки. И стараясь их исправить ты замечаешь ещё больше) Это, кажется, и есть "рвение и идеалу".

Эх, воды налил - жуть просто smile В общем, я хотел сказать вот что: нужно знать своё дело досконально. Нельзя полагаться на других людей, нужно постепенно приучать себя к книгам. И только тогда всё будет О'кей wink
Сам я не профессионал, если что я не хотел никому читать морали или заставлять что-либо делать, нет, всё вовсе не так smile
VinchensooДата: Среда, 03 Июля 2013, 19:59 | Сообщение # 11
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Цитата (Deswing)
Месяца два (если без перерывов, форсивно) читать теорию Delphi (НЕ статьи, а КНИГИ, которые написали умные люди, в которых всё расписано развёрнуто), потом разбираться как работает сеть, разобраться какие существуют соединения и как их различать. Ну и ТОЛЬКО ТОГДА можно пытаться написать клиент-серверное приложение. И то, без графики - какой-нибудь чатик примитивный или консольную игрушку.

Дельфи нет смысла начинать учить. Пусть учит C#. И нормальное развертывание есть под никсы(МОNO) и можно всякие вкусные вещи типа ASP.NET поиспользовать(если сокет-сервер не нужен).


NotinДата: Среда, 03 Июля 2013, 20:34 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Vinchensoo, Deswing, ох лол, сарказм так на вас влияет surprised

Twitter
ВКонтакте
VinchensooДата: Среда, 03 Июля 2013, 21:02 | Сообщение # 13
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Notingham, мне, лично, просто скучно.

BrightSpotДата: Четверг, 04 Июля 2013, 22:17 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Цитата (TheAce)
До такого могут догадаться только конструкторщики.

я один из таких=(((
Цитата (Deswing)
Но, надеюсь, автор темы понимает, что из Game Maker можно выжать не более 10-50 игроков. Именно поэтому советую учить ЯП (не в коем случаи не хотел обидеть людей, которые увлекаются созданием игр на ГМ. Но Вы же понимаете, что GML - всего лишь СЯП, а из сервера на ГМ выжать достойный онлайн невозможно без извращений?) , курить движки (или делать свои, если будет возможно), разбираться как работает сеть, написать сервер и клиент.

я недавно занимался ГМ сервером... То что из таких серверов много не выжмешь и так ясно, но через них я смог не напрягаясь разобрать как работает система клиент-сервер и теперь на C# потратил всего пару дней что бы понять как все должно писаться(правда черт за ногу дернул и теперь пишу не только сервер на шарпе но и двиг для игры)



Более мощный компьютер глючит быстрее и точнее.
  • Страница 1 из 1
  • 1
Поиск:

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