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; } Писал по максимуму сокращенно. надеюсь помог)) Удачи в реализации
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, долго, муторно и куеву тучу строк просмотреть не айс. Волка бояться - в лес не ходить С таким подходом мало чего выйдет. Копаться в документации и примерах обязательно надо. Аргументирую: зная как весь твой код работает ты, во-первых, почувствуешь радость, тебе станет приятно. Во-вторых, понимая принципы работы программы\игры от А до Я тебе ничего не помешает всё менять так, как душенька захочет. Да и, между прочим, на практике ничего не сварганить, если не знать теорию Цитата (TheAce) Регистрация пользователей через ini-файлы? До такого могут догадаться только конструкторщики. Поддерживаю. Лучше связать игру с MySQL. Но, надеюсь, автор темы понимает, что из Game Maker можно выжать не более 10-50 игроков. Именно поэтому советую учить ЯП (не в коем случаи не хотел обидеть людей, которые увлекаются созданием игр на ГМ. Но Вы же понимаете, что GML - всего лишь СЯП, а из сервера на ГМ выжать достойный онлайн невозможно без извращений?) , курить движки (или делать свои, если будет возможно), разбираться как работает сеть, написать сервер и клиент.
|
|
| |
Notin | Дата: Среда, 03 Июля 2013, 10:27 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Deswing, Писать сервер на Delphi для новичков получше будет
Twitter ВКонтакте
|
|
| |
Vinchensoo | Дата: Среда, 03 Июля 2013, 17:49 | Сообщение # 9 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Хочу это увидеть
|
|
| |
Deswing | Дата: Среда, 03 Июля 2013, 19:20 | Сообщение # 10 |
заслуженный участник
Сейчас нет на сайте
| Notingham, Сомневаюсь что новички сразу полезут писать серверы...) Месяца два (если без перерывов, форсивно) читать теорию Delphi (НЕ статьи, а КНИГИ, которые написали умные люди, в которых всё расписано развёрнуто), потом разбираться как работает сеть, разобраться какие существуют соединения и как их различать. Ну и ТОЛЬКО ТОГДА можно пытаться написать клиент-серверное приложение. И то, без графики - какой-нибудь чатик примитивный или консольную игрушку.
Опять же, я считаю, что программист, если уж берется что-либо писать, должен понимать как работает его программа от А до Я. Знаю кучу программистов, которые по кусочкам "тырили" код из разный источников и потом хватались за головы. Таким был и я в первый год своего пути. Но потом осознал, что всё это было сделано зря. Мне кажется, что лучше уж изучить детально чужие "велосипеды", а потом на их основе лепить и свои, а, возможно, создать и с нуля.
В моем городе собралась небольшая группка энтузиастов, которые создают игры, но сами программировать на деле не умеют. Когда я начал писать свои первые программки на С++ они хватались за головы и не понимали что я такого там написал, ну а сам я немного гордился тем, что всё написано лично мною, каждая строчка программы. Так всегда: но с каждым разом всё больше и больше понимаешь, видишь свои ошибки. И стараясь их исправить ты замечаешь ещё больше) Это, кажется, и есть "рвение и идеалу".
Эх, воды налил - жуть просто В общем, я хотел сказать вот что: нужно знать своё дело досконально. Нельзя полагаться на других людей, нужно постепенно приучать себя к книгам. И только тогда всё будет О'кей Сам я не профессионал, если что я не хотел никому читать морали или заставлять что-либо делать, нет, всё вовсе не так
|
|
| |
Vinchensoo | Дата: Среда, 03 Июля 2013, 19:59 | Сообщение # 11 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Цитата (Deswing) Месяца два (если без перерывов, форсивно) читать теорию Delphi (НЕ статьи, а КНИГИ, которые написали умные люди, в которых всё расписано развёрнуто), потом разбираться как работает сеть, разобраться какие существуют соединения и как их различать. Ну и ТОЛЬКО ТОГДА можно пытаться написать клиент-серверное приложение. И то, без графики - какой-нибудь чатик примитивный или консольную игрушку. Дельфи нет смысла начинать учить. Пусть учит C#. И нормальное развертывание есть под никсы(МОNO) и можно всякие вкусные вещи типа ASP.NET поиспользовать(если сокет-сервер не нужен).
|
|
| |
Notin | Дата: Среда, 03 Июля 2013, 20:34 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| Vinchensoo, Deswing, ох лол, сарказм так на вас влияет
Twitter ВКонтакте
|
|
| |
Vinchensoo | Дата: Среда, 03 Июля 2013, 21:02 | Сообщение # 13 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Notingham, мне, лично, просто скучно.
|
|
| |
BrightSpot | Дата: Четверг, 04 Июля 2013, 22:17 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Цитата (TheAce) До такого могут догадаться только конструкторщики. я один из таких=((( Цитата (Deswing) Но, надеюсь, автор темы понимает, что из Game Maker можно выжать не более 10-50 игроков. Именно поэтому советую учить ЯП (не в коем случаи не хотел обидеть людей, которые увлекаются созданием игр на ГМ. Но Вы же понимаете, что GML - всего лишь СЯП, а из сервера на ГМ выжать достойный онлайн невозможно без извращений?) , курить движки (или делать свои, если будет возможно), разбираться как работает сеть, написать сервер и клиент. я недавно занимался ГМ сервером... То что из таких серверов много не выжмешь и так ясно, но через них я смог не напрягаясь разобрать как работает система клиент-сервер и теперь на C# потратил всего пару дней что бы понять как все должно писаться(правда черт за ногу дернул и теперь пишу не только сервер на шарпе но и двиг для игры)
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
|