на Главную Форума - back to Forum Indexна Главную Форума - back to Forum Indexна Главную Форума - back to Forum Index
на Главную Форума - back to Forum Index
Эадор.Сотворение - Eador.The Genesis на Главную Форума - back to Forum Indexна Главную Форума - back to Forum Indexна Главную Форума - back to Forum Index
на Главную Форума - back to Forum Index
Автор / Сообщение

Программа для сетевой игры

   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 12:54     Заголовок сообщения:

Править там достаточно тяжело. Все взаимосвязано и еще не известно где отвалится если что-то тронуть. Просто надо разобраться. А там один только ИИ 5000 строк.
Что касается сохранок, сам формат не ясен пока, но идея проста: изображение в BMP (отсюда мегабайты) один файл и состав охран сайтов со всеми игроками в другой файл, причем для последнего хода и предыдущего.
План в том чтобы сделать этот формат текстовым или графическим. Тогда пейнта и блокнота хватит чтобы создать практически что угодно. Это позволит написать генератор карт на каком-нибудь питоне или даже джаваскрипте. Мир Ланшара одна нежить. У Вианты деревья фей в каждой провинции. С графикой тяжелее, но потенциально можно как в героях сделать чтобы все сайты просто раскинулись перед вами.
Кстати вполне вероятно, что даже с одной этой фичей можно будет делать боссов. Юниты с уникальными статами и абилками, которых ни на одном другом осколке не будет. И опять же на каком-нибудь питоне мододелы могут их на лету генерировать. Как в дварф фортресс.
Если мы потом еще решаем один нюанс как загрузить игру таким образом чтобы
- изменить порядок ходов игроков
- загрузить вместо хотсит игрока ИИ
И потом опять же на любом языке сопоставляем две (или десать) сохранки в одну. Получаем одновременные ходы. Когда дело доходит до ПвП, кто-то грузит и дает удаленное управление. 15-20 минут финалка это гораздо проще сделать через удаленное управление, чем полноценная партия на пять часов.

Вообщем тут главное начать, а оно потом подтянется.
И проблема номер два, я не уверен что Эадор 1.05 еще жив. Вероятно все уже на НГ перешли, а у них свой исходный код.
Поэтому, чтобы это имело какой-то успех, имхо надо сделать как минимум не хуже чем НГ, которые на годы впереди.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 17:20     Заголовок сообщения:

Arkitekt писал(а):

И потом опять же на любом языке сопоставляем две (или десать) сохранки в одну. Получаем одновременные ходы. Когда дело доходит до ПвП, кто-то грузит и дает удаленное управление. 15-20 минут финалка это гораздо проще сделать через удаленное управление, чем полноценная


Умеете из двух сохранок одну собрать или я что-то не так понял?
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 17:38     Заголовок сообщения:

На самом деле уже почти готово. Уже можно пробовать. Дальше только допилить и убирать баги. ну и нужен FTP!!!!

Код:

Func _aSaveCoords()

_FileCreate(@ScriptDir &"\Save\mouse.txt")

Global $MousePos[2]
Local $hDLL = DllOpen("user32.dll")

While 1

           If _IsPressed("01", $hDLL) Then
       ; Цикл ожидания, пока клавиша не будет отпущена.
       While _IsPressed("01", $hDLL)
            Sleep(100)
       WEnd
       SaveCoords()

     ElseIf _IsPressed("1B", $hDLL) Then
       MsgBox(4096, "_IsPressed", "Нажата клавиша Esc, поэтому скрипт завершает работу.")
       ExitLoop
        Sleep(40)
    EndIf
    Sleep(40)
 Wend
 
DllClose($hDLL)
 EndFunc
 
Func SaveCoords()
   $MousePos = MouseGetPos()
   $hFile = FileOpen(@ScriptDir &"\Save\mouse.txt", 1)
     FileWriteLine($hFile, $MousePos[0]&" "&$MousePos[1])
   FileClose($hFile)
EndFunc

Func _Exit()
   Exit
EndFunc


Код:

;~ #include <File>
;~ #include <Misc>

;~ HotKeySet("+x", "_aLoadCoords") ; Shift-x для вызова скрипта

;~ While 1
    ;~ Sleep(100)
;~ WEnd

Func _aLoadCoords()
$hFile = FileOpen(@ScriptDir &"\Save\mouse.txt")
$nLine = 1

While True
    $sLine = FileReadLine($hFile,$nLine)
    If @error Then ExitLoop

    $aCoord = StringSplit($sLine," ")
    If IsArray($aCoord) And $aCoord[0] >= 2 Then MouseMove($aCoord[1], $aCoord[2])

    $nLine += 1

    Sleep(100)

WEnd

FileClose($hFile)

 MsgBox(4096, "Ход", "Ход завершен")
EndFunc


Код:

;~ #include <FTPEx>

;~ HotKeySet("+z", "_SAVE_TO_HDD") ; Shift-x для вызова скрипта

;~ While 1
    ;~ Sleep(100)
;~ WEnd

Func _SAVE_TO_HDD()   
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $username = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $pass = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
Local $aFiles_ftp
$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp

Local $Open = _FTP_Open('MyFTP Control')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass)


_FTP_DirSetCurrent($Conn, $Dir) ; перешли в папку на ftp
$aFiles_ftp = _FTP_ListToArray($Conn, 2)

$put2=IniRead($sPath_ini, "Settings", "folder_game", "Значение по умолчанию") ;папка игры

ProgressOn("Ожидание Игрока", "" , "")
For $in = 1 To $aFiles_ftp[0]
 Local $Ftpg = _FTP_ProgressDownload($Conn, $put2&"\Save\" & $aFiles_ftp[$in], $aFiles_ftp[$in], "_UpdateProgress")   

$prottt=Round($in*100/$aFiles_ftp[0],0)

ProgressSet($prottt, $prottt & "% выполнено")
Next
ProgressOff() ; убирает окно прогресса
_FTP_Close($Conn);закрываем соединение с FTP
 EndFunc
 
Func _UpdateProgress($Percentage)
    Return 1
 EndFunc   



Код:

;~ #include <FTPEx>
;~ #include <File>
;~ #include <Array>
;~ HotKeySet("+z", "_lOAD_TO_FTP") ; Shift-x для вызова скрипта

;~ While 1
    ;~ Sleep(100)
;~ WEnd

Func _lOAD_TO_FTP()
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам

; Читает из INI-файла параметр 'Settings'
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $login = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $password = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
Local $ftppath

$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp
$hOpen = _FTP_Open('server')
$hConn = _FTP_Connect($hOpen, $server, $login, $password, 1)

$filepath1 = IniRead($sPath_ini, "Settings", "folder_game", "Значение по умолчанию") ;папка игры

$filepath = $filepath1 &"\Save"
$FileList=_FileListToArray($filepath)

For $in = 1 To $FileList[0]
   $ftppath = $Dir&"/"&$FileList[$in]
   _FTP_FilePut($hConn, $filepath&"\"&$FileList[$in], $ftppath)
Next

 _FTP_Close($hOpen)
MsgBox(0,"","Сохранения загружены")
EndFunc


И общий запускающий всё это файл:

Код:

#include <Misc>
#include <File>
#include <FTPEx>
#include <File>
#include <Array>
#include "C:\загрузка кликов.au3"
#include "C:\Запись кликов.au3"
#include "C:\ftp_загрузить.au3"
#include "C:\ftp_скачать.au3"

HotKeySet("+{F2}", "_aLoadCoords") ; Shift-x для вызова скрипта
HotKeySet("+{F1}", "_aSaveCoords") ; Shift-z для вызова скрипта
HotKeySet("+{F3}", "_lOAD_TO_FTP") ; Shift-x для вызова скрипта
HotKeySet("+{F4}", "_SAVE_TO_HDD") ; Shift-x для вызова скрипта
While 1
    Sleep(50)
WEnd


Если сохранения как-то оптимизированы, это очень круто! Можно побольше об этом информации?
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 17:55     Заголовок сообщения:

Arkitekt писал(а):




Не очень любою моды к Эадору. Почему-то они(когда я в него играл), чаще всего мне не очень удачные попадались. Но. НГ меня заинтересовал. Есть где-то полный список изменений по сравнению с оригиналом? Чтобы общим скопом. Или только в теме читать? В него реально перешли все пользователи Эадора? Он на 1.04 ставится?
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 23:11     Заголовок сообщения:

У меня ещё вопрос по теме. Насколько в игровом мире повторяются события? Если я сыграю одну и туже карту 3 раза, повторив всё в мельчайших подробностях, результат все 3 раза будет одинаковым?
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Чт Ноя 26, 2020 23:59     Заголовок сообщения:

FTP это конечно хорошо.
Вы уверены что можете хотсит игру сохранить на ходе первого игрока? Просто посидеть поделать сейвы первых ходов три, допустим на три игрока. По идее девять сейвов должно получиться. Но реально их меньше будет.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 1:34     Заголовок сообщения:

GYV писал(а):
На самом деле локальную вполне можно было бы реализовать.
Проблема интернет игры - это отсутствие "общего места на жеском диске". И не понятно как организовать передачу данных в реальном времени. Как вариант, я предложил использовать ftp.

Как я вижу процесс игры:
1) Игрок 1 создает карту. И проматывает 1-2 хода....
.


Я в начале писал Very Happy

Добрался до тестов. Вроде как 1 прокрутки достаточно. Далее сохранения действую нормально.
Тесты показали, что за сохранение отвечают 2 файла: game0.hot и map0.hot. Остальные за 4 прокрутки никак не поменялись... Но, я бы не рисковал и полностью перекидывал всю папку. Уже реализовано.
Пока имеющиеся ограничения:
1)Игра обязательно в окне
2)обязательна прокрутка полностью первого дня
3) из папке должны save быть удалены все лишние файлы. Создавать всех владык надо заново.

Далее список будет расширяться. Протестировал запись мыши. С неё не так всё гладко. Колбасу сыграть в таком виде точно не получится. Нужно глобально дорабатывать.
Во время битвы тоже косяки, но в ней проще. Там нет прокрутки и не используются другие клавиши, кроме правой кнопки мыши (на текущий момент перехват горячих клавиш не планируется. Все надо мышью жать)

Вроде как если будет ftp поиграть на глобальной с помощью перекидки save уже можно.
Для доработки pvp мне необходим save. Нужно чтобы было 2 игрока в провинциях рядом с войсками 1 уровня без опыта(2-3 юнита не больше) Следующим ходом они должны напасть друг на друга. Как появятся смогу продолжить
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 10:01     Заголовок сообщения:

А на вопросы мои можете ответить, которые выше!
Особенно интересует возможность редактировать сейвы.
Есть программа для их открытия?
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 10:28     Заголовок сообщения:

Про рандом вряд ли кто-то может точно ответить. Экспериментально вроде все повторяется, даже лут в сайтах.
Редактировать сейвы это будет еще сильно не скоро. Это просто куча чисел, что вы сними делать будете? Надо формат переделать в более читаемый.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 15:31     Заголовок сообщения:

Arkitekt писал(а):
Про рандом вряд ли кто-то может точно ответить. Экспериментально вроде все повторяется, даже лут в сайтах.
Редактировать сейвы это будет еще сильно не скоро. Это просто куча чисел, что вы сними делать будете? Надо формат переделать в более читаемый.

Мне понимать какие есть инструменты и насколько реально что-то реализовать и каким способом. То есть сейвы не редактируются ничем? И одновременный ход это просто идеи?
Можешь опрос в теле с фтп подредактировать? Там последний ответ съезал. Хотел в личку написать, но у меня с телефона баги... Есть дискорд? Можешь тоже в личку кинуть?
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 17:45     Заголовок сообщения:

На данный момент просто идеи. Но первые шаги уже есть.
Но с 15 числа хочу в отпуск, так что может дело двинется.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пт Ноя 27, 2020 20:05     Заголовок сообщения:

Arkitekt писал(а):
На данный момент просто идеи. Но первые шаги уже есть.
Но с 15 числа хочу в отпуск, так что может дело двинется.


То есть начнешь ковырять exe?
А что первым делом планируется сделать?

Сохранки есть возможность разделить? Чтобы каждый игрок свои ходы в свою сохранку записывал? Тогда можно" кобасу " делать. Эдорцы её больше всего любят Very Happy
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Вс Ноя 29, 2020 4:33     Заголовок сообщения:

По старой доброй традиции выложу исходники версии, которая есть сейчас:

Основной файл:
Код:

#include <Misc>
#include <File>
#include <FTPEx>
#include <File>
#include <Array>
#include "H:\Games\Eador - Genesis\ftp_скачать.au3"
#include "H:\Games\Eador - Genesis\ftp_загрузить.au3"
#include "H:\Games\Eador - Genesis\ftp_проверка_хода.au3"




$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам

HotKeySet("+{F1}", "_lOAD_SAVE") ; Shift-x для вызова скрипта


Switch MsgBox(3 + 32,"Вы являетесь сервером?","Если сервер нажмите <ДА> Если клиент нажмите <НЕТ>")
    Case 2; Отмена

    Case 6 ;ДА
Msgbox(0,  "Запускайте игру", "Можете запускать игру. Для завершения хода используйте <Shift>")
    Case 7 ;Нет
      ;~ Записывать имя компьютера в Settings.ini
     IniWrite ($sPath_ini, "Gameplay", "User", @UserName )
      MsgBox(4096, 'Скачивание сохранений', 'Подождите пока скачаются сохранения и заходити в игру')
     Switch MsgBox(4 + 32,"Качать файлы?","Если соперник походил нажмите  <ДА>")
         Case 2; Отмена
         Case 6 ;ДА
            _SAVE_TO_HDD()
         Case 7 ;Нет
     EndSwitch



EndSwitch


While 1
    Sleep(50)
WEnd

Func _lOAD_SAVE()

Global $endhod
;По нажанию Shift +F1:
;Сообщение. Завершить ход.
$endhod = Msgbox(4, "Завершить ход.","Завершить ход.")

;При нажатии Да:
If $endhod =6 then

Opt("MouseCoordMode",0)
WinWait("Эадор. Сотворение","")
If Not WinActive("Эадор. Сотворение","") Then WinActivate("Эадор. Сотворение","")
WinWaitActive("Эадор. Сотворение","")

;~ Завержается ход
sleep(30)
MouseMove(987,763)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)
MouseMove(507,521)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)

;~ Кликами выходится в главное меню.
sleep(30)
MouseMove(42,771)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)
MouseMove(554,513)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)


;Записываем на ftp сохранения
_lOAD_TO_FTP()


     Switch MsgBox(4 + 32,"Качать файлы?","Если соперник походил нажмите  <ДА>")
         Case 2; Отмена
         Case 6 ;ДА
            _SAVE_TO_HDD()

;~ Заход в сетевую игру
sleep(30)
MouseMove(548,630)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)
MouseMove(522,548)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)
MouseMove(534,565)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)
MouseMove(511,532)
sleep(100)
MouseDown("left")
sleep(100)
MouseUp("left")
sleep(100)




         Case 7 ;Нет
     EndSwitch

   Msgbox(0,  "Загрузка", "Можете начинать свой ход")
   endif
EndFunc



Промежуточные программы:

Загрузка:
Код:

;~ #include <FTPEx>
;~ #include <File>
;~ #include <Array>
;~ HotKeySet("+z", "_lOAD_TO_FTP") ; Shift-x для вызова скрипта

;~ While 1
    ;~ Sleep(100)
;~ WEnd

Func _lOAD_TO_FTP()
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам

; Читает из INI-файла параметр 'Settings'
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $login = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $password = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
Local $ftppath

$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp
$hOpen = _FTP_Open('server')
$hConn = _FTP_Connect($hOpen, $server, $login, $password)

$filepath1 = @ScriptDir ;папка игры

$filepath = $filepath1 &"\save"
$FileList=_FileListToArray($filepath)

For $in = 1 To $FileList[0]
   $ftppath = $Dir&"/Save/"&$FileList[$in]
   _FTP_FilePut($hConn, $filepath&"\"&$FileList[$in], $ftppath)
Next

 _FTP_Close($hOpen)
MsgBox(0,"","Сохранения загружены")
EndFunc


Скачивание:
Код:

;~ #include <FTPEx>

;~ HotKeySet("+z", "_SAVE_TO_HDD") ; Shift-x для вызова скрипта

;~ While 1
    ;~ Sleep(100)
;~ WEnd

Func _SAVE_TO_HDD()
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $username = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $pass = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
Local $aFiles_ftp
$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp

Local $Open = _FTP_Open('MyFTP Control')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass)


_FTP_DirSetCurrent($Conn, $Dir) ; перешли в папку на ftp указанную в файле
_FTP_DirSetCurrent($Conn, "save") ; перешли в папку save на ftp

$aFiles_ftp = _FTP_ListToArray($Conn, 2)

$put2=@ScriptDir ;папка игры

ProgressOn("Ожидание Игрока", "" , "")
For $in = 1 To $aFiles_ftp[0]
 Local $Ftpg = _FTP_ProgressDownload($Conn, $put2&"\save\" & $aFiles_ftp[$in], $aFiles_ftp[$in], "_UpdateProgress")

$prottt=Round($in*100/$aFiles_ftp[0],0)

ProgressSet($prottt, $prottt & "% выполнено")
Next
ProgressOff() ; убирает окно прогресса
_FTP_Close($Conn);закрываем соединение с FTP
 EndFunc

Func _UpdateProgress($Percentage)
    Return 1
 EndFunc


Остальные фишки пока пришлось удалить. Появлялся даже промежуточно такой файл для автоматизации проверки походил ли игрок и участвующий для настроек при PVP:

Код:

;~ #include <FTPEx>
;~ #include <File>
;~ #include <Array>

Func _lOAD_TO_FTP_set()
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам

; Читает из INI-файла параметр 'Settings'
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $login = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $password = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
;~ Local $number = IniRead($sPath_ini, "Gameplay", "load_map", "1") ; пароль ftp сервера

Local $ftppath

$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp
$zOpen = _FTP_Open('server')
$zConn = _FTP_Connect($zOpen, $server, $login, $password)

$filepath3 = @ScriptDir & "\load_settings" ;папка игры

_FTP_FilePut($zConn, $filepath3 &"\Settings.ini", $Dir&"/Settings/Settings.ini")
_FTP_FilePut($zConn, $filepath3 &"\mouse.txt", $Dir&"/Settings/mouse.txt")



 _FTP_Close($zOpen)
     IniWrite ($sPath_ini, "Gameplay", "User", @UserName )

EndFunc

Func _SAVE_TO_HDD_set()
$sPath_ini = @ScriptDir & "\Settings.ini" ; путь к настройкам
Local $server = IniRead($sPath_ini, "Settings", "server", "Значение по умолчанию") ; имя ftp сервера
Local $username = IniRead($sPath_ini, "Settings", "login", "Значение по умолчанию") ; login ftp сервера
Local $pass = IniRead($sPath_ini, "Settings", "password", "Значение по умолчанию") ; пароль ftp сервера
Local $aFiles_ftp
$Dir=IniRead($sPath_ini, "Settings", "folder_ftp", "Значение по умолчанию") ;имя папки на ftp

Local $rOpen = _FTP_Open('MyFTP Control')
Local $rConn = _FTP_Connect($rOpen, $server, $username, $pass)


_FTP_DirSetCurrent($rConn, $Dir) ; перешли в папку на ftp
_FTP_DirSetCurrent($rConn, "Settings") ; перешли в папку Settings на ftp


$put2=@ScriptDir ;папка игры


 Local $Ftpg1 = _FTP_FileGet($rConn, "Settings.ini", $put2&"\Settings.ini")
  Local $Ftpg2 = _FTP_FileGet($rConn, "mouse.txt", $put2&"\mouse.txt")



_FTP_Close($rConn);закрываем соединение с FTP
 EndFunc



Может когда-нибудь к к нему вернусь. Из-за удаления его и основного файла код в 2 раза уменьшился.
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Вс Ноя 29, 2020 4:46     Заголовок сообщения:

Ну вот. Я ещё забыл в первом посту файл настроек прикрепить.... Позже прикреплю. Если что его можно рукfми создать. Называться должен Settings.ini
И содержать следующее:

Код:

[Settings]
server = указать адрес ftp сервера
login = указать логин для входа на ftp сервер
password = указать пароль ftp сервера
folder_ftp= test - это папка которая лежит на ftp. Внутри неё на ftp должны быть папки Save и Settings



Описание при добавлении в файл стереть нужно.

Кстати, один ftp сервер может позволить играть нескольким командам игроков. Например 5 карт по 4 игрока на каждой.

Вот только пока уперся в баг с кэшированием мелких файлов. Мне бы какую-то помощь или консультацию по этому вопросу... Идея конечно есть... Можно настроить цикл и создавать каждый раз новый файл с новым именем. Потом вычислять это имя и подгружать эти настройки. То есть допустим settings_Номер игрока_номер хода.ini Просто это настолько геморно.... Как прописать алгоритм вычисления, что он был одинаковым и для 2 и для 8 игроков? Код будет раз в 7 сложнее и требовать множественного тестирования. На ftp будет кучи лишних файлов.... Да и если нет тестировщиков и большого количество желающих поиграть по сети, то мотивация резко падает. Энтузиазм штука не бесконечная...
Посмотреть профиль Отправить личное сообщение
   Serafim

 
 
 * Владыка Духов *
Ветеран
Демиург: Мастер игр



Свитков: 5239
С нами с: 17.12.2012
Цитировать
СообщениеДобавлено: Вс Ноя 29, 2020 16:24     Заголовок сообщения:

GYV писал(а):
Да и если нет тестировщиков и большого количество желающих поиграть по сети, то мотивация резко падает. Энтузиазм штука не бесконечная...

Тестировщиков не обещаю, но для галочки могу сообщить, что желающих видеть сетевую есть. Просто на форуме не так много игроков сидит.
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Пн Ноя 30, 2020 2:54     Заголовок сообщения:

Короч ребята, сохранение игры возможно только когда все игроки прокликали все свои события. Поэтому сохранение работает только на последнем игроке. Все танци с бубнами про пропуск ходов - не поможет.
Есть идея добавить не прокликанные события в сейв-файл, но по какой-то причине Адрагерон это не сделал, так что возможны подводные камни.
Будет ли кто-то играть хотсит по переписке если я найду решение для этой проблемы?
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пн Ноя 30, 2020 9:39     Заголовок сообщения:

Arkitekt писал(а):
Короч ребята, сохранение игры возможно только когда все игроки прокликали все свои события. Поэтому сохранение работает только на последнем игроке. Все танци с бубнами про пропуск ходов - не поможет.
Есть идея добавить не прокликанные события в сейв-файл, но по какой-то причине Адрагерон это не сделал, так что возможны подводные камни.
Будет ли кто-то играть хотсит по переписке если я найду решение для этой проблемы?


Это точно? Странно, у меня получилось. Я вполне сам с собой сыграл пару ходов. Видео в первом посте. Есть возможность скинуть сейвы посмотреть?

Если что-то можно поправить для улучшения, думаю, все будут только за. Возможно и по переписке сыграют, если кто вирусов или автоматизации боится.

У меня также вопрос, возможно ли отключить прокрутку мышкой по карте в игре?
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Пн Ноя 30, 2020 10:12     Заголовок сообщения:

Парочку героев поставь просто провинции исследовать и увидишь.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
   GYV

 
 
 -Следопыт-

Свитков: 190
С нами с: 13.06.2010
Откуда: Обнинск
Цитировать
СообщениеДобавлено: Пн Ноя 30, 2020 10:51     Заголовок сообщения:

Arkitekt писал(а):
Парочку героев поставь просто провинции исследовать и увидишь.

Вечером попробую. Ход постройкой завешается?Что с прокруткой карты?
Посмотреть профиль Отправить личное сообщение
   Arkitekt

 
 
 *Владыка Вселенной*
admin
Админ всея форума



Свитков: 5138
С нами с: 30.01.2013
Цитировать
СообщениеДобавлено: Пн Ноя 30, 2020 11:22     Заголовок сообщения:

GYV писал(а):
Что с прокруткой карты?


https://www.dropbox.com/s/9duounpm56sydo0/Eador.exe?dl=0
На свой собственный страх и риск.
_________________
20.11.2009 - 24.02.2015
Посмотреть профиль Отправить личное сообщение
Часовой пояс: GMT +3:00
На страницу Пред.  1, 2, 3  След.

 


Ты не можешь начинать темы
Ты не можешь отвечать на сообщения
Ты не можешь редактировать свои сообщения
Ты не можешь удалять свои сообщения
Ты не можешь голосовать в опросах
на Главную Форума - back to Forum Indexна Главную Форума - back to Forum Indexна Главную Форума - back to Forum Indexна Главную Форума - back to Forum Index Eador. The Genesis. Encyclopedia на Главную Форума - back to Forum Indexна Главную Форума - back to Forum Indexна Главную Форума - back to Forum Index