1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Скрипт проверки в Крестики Нолики на событиях
Так вот:
За сами крастики и нолики отвечают 9 ивентов.
Правила:
Локальный переключатель А у ивента - Ивент не нажат.
Локальный переключатель B - X
Локальный переключатель C - 0
Так вот. Я сделал проверку на победу, поражения или ничью в 1 параллельном ивенте:
Вот что выполняют gameOnMapGetSelfSwitches и gameOnMapGetArraySelfSwitches
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мои проекты:
rpgmakerunion.ru/user/veselyrodger
Мой канал на Ютубе:
youtube.com/channel/UCyttExMfXo8ke_PhQjNPyuw
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1) В ивенте у тебя куча "если". Причем даже если первый "если" выдает "тру" то все-равно идет проверка второго и последующего "если". Выход: добавь "если..иначе". Тогда проверка дальше не пойдет
2) Для меньшей писанины можно заменить выражения типа AScripts.gameOnMapGetSelfSwitches(1, 'B') === true на просто AScripts.gameOnMapGetSelfSwitches(1, 'B').
3) А еще лучше - написать отдельную функцию которая принимает номера трех переключателей и выводит "тру" если все они "тру"
4) Зачем аще параллельное событие? Оно у тебя постоянно работает? Крестики-нолики пошаговая же игра. Активируй проверку после каждого хода.
Например можно запускать эту проверку из событий крестиков и ноликов на каждой их странице Б и С. Причем проверка идет не всех вариантов а только тех, в которых есть это событие. Таким образом у тебя будет проверка трех вариантов а не девяти
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. Ну и что. Если условие выполняется то код дальше идти не должен так как врубается локальный переключатель.yuryol пишет: демку прикладывай, иначе ниче непонятно. отвечаю практически наугад так как разбираться в твоей писанине без бухла трудно
1) В ивенте у тебя куча "если". Причем даже если первый "если" выдает "тру" то все-равно идет проверка второго и последующего "если". Выход: добавь "если..иначе". Тогда проверка дальше не пойдет
2) Для меньшей писанины можно заменить выражения типа AScripts.gameOnMapGetSelfSwitches(1, 'B') === true на просто AScripts.gameOnMapGetSelfSwitches(1, 'B').
3) А еще лучше - написать отдельную функцию которая принимает номера трех переключателей и выводит "тру" если все они "тру"Code:isVictory = (switch1, switch2, switch3) => { return AScripts.gameOnMapGetSelfSwitches(switch1, 'B') && AScripts.gameOnMapGetSelfSwitches(switch2, 'B') && AScripts.gameOnMapGetSelfSwitches(switch3, 'B') }
4) Зачем аще параллельное событие? Оно у тебя постоянно работает? Крестики-нолики пошаговая же игра. Активируй проверку после каждого хода.
Например можно запускать эту проверку из событий крестиков и ноликов на каждой их странице Б и С. Причем проверка идет не всех вариантов а только тех, в которых есть это событие. Таким образом у тебя будет проверка трех вариантов а не девяти
2. Так есть уже -
3 -Ну так отдельная функция и есть - выше. Она проверет являются ли все локальные переключатели в указаной пачке ивентов включенными или выключенными.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. Название функции gameOnMapGetArraySelfSwitches - игра на карте возвращает массив локальный переключателей. ШО?
1) get - в названиях функций ставь первым словом глагол. Есл возвращает значение то get. Елси булевой значение то is. у тебя возвращает а===б. Результатом будет тру или фолс. значит надо писать is, а не get
2) GetArray - дословно возвращает массив. но мы ведь возвращаем не массив а булевое значние
3) gameOnMap зачем аще тут? в gameOnMapGetSelfSwitches тоже можно выкинуть и название функции читаемее станет - getSelfSwitches
4) по сути вся функция нужна чтоб определить ничья ли. так и назови ее isDraw или IsNoVictory или как там ничь по-английски. То что ничья проверяется переключателями - это аще не важно,зачем в название это пихать. А если ты изменишь проверку не по переключателям а например по переменным то будешь переименовывать функцию? Поэтому называй функцию по результату а не по логике внутри функции
2. Хз только зачем эта функция нужна? если у тебя нет победы врага и нет победы героя то и так ясно что ничья.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
gameOnMap означает что функция будет действовать только на карте на которой находится игрок. Проще говоря на локации с игроком. Вообще то функция что выше это проверка включены ли или выключены ли все локальные переключатели у иветовyuryol пишет: после твоего ответа я аще ни черта не понял. учись задавать вопросы. уже который раз вижу твои вопросы с кучей текста. При этом сама суть не рассказана, комментов в коде самих функций нету, названиея функций аще ппц.
1. Название функции gameOnMapGetArraySelfSwitches - игра на карте возвращает массив локальный переключателей. ШО?
1) get - в названиях функций ставь первым словом глагол. Есл возвращает значение то get. Елси булевой значение то is. у тебя возвращает а===б. Результатом будет тру или фолс. значит надо писать is, а не get
2) GetArray - дословно возвращает массив. но мы ведь возвращаем не массив а булевое значние
3) gameOnMap зачем аще тут? в gameOnMapGetSelfSwitches тоже можно выкинуть и название функции читаемее станет - getSelfSwitches
4) по сути вся функция нужна чтоб определить ничья ли. так и назови ее isDraw или IsNoVictory или как там ничь по-английски. То что ничья проверяется переключателями - это аще не важно,зачем в название это пихать. А если ты изменишь проверку не по переключателям а например по переменным то будешь переименовывать функцию? Поэтому называй функцию по результату а не по логике внутри функции
2. Хз только зачем эта функция нужна? если у тебя нет победы врага и нет победы героя то и так ясно что ничья.
Это не только для крестики ноликит. AScripts - Это плагин с облегчающими скриптами чтобы в самой игре не писать грамоздкие скрипты.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Ну я так понял вот так:yuryol пишет: после твоего ответа я аще ни черта не понял. учись задавать вопросы. уже который раз вижу твои вопросы с кучей текста. При этом сама суть не рассказана, комментов в коде самих функций нету, названиея функций аще ппц.
1. Название функции gameOnMapGetArraySelfSwitches - игра на карте возвращает массив локальный переключателей. ШО?
1) get - в названиях функций ставь первым словом глагол. Есл возвращает значение то get. Елси булевой значение то is. у тебя возвращает а===б. Результатом будет тру или фолс. значит надо писать is, а не get
2) GetArray - дословно возвращает массив. но мы ведь возвращаем не массив а булевое значние
3) gameOnMap зачем аще тут? в gameOnMapGetSelfSwitches тоже можно выкинуть и название функции читаемее станет - getSelfSwitches
4) по сути вся функция нужна чтоб определить ничья ли. так и назови ее isDraw или IsNoVictory или как там ничь по-английски. То что ничья проверяется переключателями - это аще не важно,зачем в название это пихать. А если ты изменишь проверку не по переключателям а например по переменным то будешь переименовывать функцию? Поэтому называй функцию по результату а не по логике внутри функции
2. Хз только зачем эта функция нужна? если у тебя нет победы врага и нет победы героя то и так ясно что ничья.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
2) ну поставь ты необязательный аргумент последним в "IsSelfSwitches", чтобы не приходилось передавать андефайнд
3) аще не понимаю смысла строки
4) смысл присваивать var cell2 = aIDEventStart + 3; если потом к этой cell2 ты все-равно будешь прибавлять двойку? оставь ты этот aIDEventStart и прибавляй к нему числа.
5) ты присвоил переменной cells(ячейка) значение '-';". при этом она еще может быть равна нулю, плюсу и т.д. в итоге ни хера непонятно что происходит
6) че аще значат эти cell? они и aIDEventStart равны, и тире?
7) вынеси подобные сравнения в отдельную функцию чтоб не приходилось громадные строки написывать
убери уже эти ненужные "GameOnMap" в каждой функции. хватит громоздить названия функций, тот же aIDEventStart назови id,у тебя же в функции никаких айдишников больше нет9) подпиши комментами каждое действие и ЧТО делает каждая функция, раз с названиями беда.
1) зачем ко всем переменным "a" подписывать? от "александр" штоле?
ты можешь конечно ничего из этого не делать но хз тогда кто тут поймет че ты тут понаписал
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. Уж лучше я оставлю с большой. Я потратил 2 дня чтобы в своем проекте исправить вызов функций.yuryol пишет: 1) почему названия функций с большой буквы?
2) ну поставь ты необязательный аргумент последним в "IsSelfSwitches", чтобы не приходилось передавать андефайнд
3) аще не понимаю смысла строкиты назвал аргумент aIDEventStart чтобы потом нигде его не использовать и присвоить его переменной cell1? может тогда сразу его так назвать?Code:var cell1 = aIDEventStart;
4) смысл присваивать var cell2 = aIDEventStart + 3; если потом к этой cell2 ты все-равно будешь прибавлять двойку? оставь ты этот aIDEventStart и прибавляй к нему числа.
5) ты присвоил переменной cells(ячейка) значение '-';". при этом она еще может быть равна нулю, плюсу и т.д. в итоге ни хера непонятно что происходит
6) че аще значат эти cell? они и aIDEventStart равны, и тире?
7) вынеси подобные сравнения в отдельную функцию чтоб не приходилось громадные строки написыватьназови ченить типа compareSelfSwitchCode:(IsSelfSwitches(undefined, cell1, aSelfSwitchToe) && IsSelfSwitches(undefined, cell2, aSelfSwitchToe) && IsSelfSwitches(undefined, cell3, aSelfSwitchToe))
убери уже эти ненужные "GameOnMap" в каждой функции. хватит громоздить названия функций, тот же aIDEventStart назови id,у тебя же в функции никаких айдишников больше нет
9) подпиши комментами каждое действие и ЧТО делает каждая функция, раз с названиями беда.
1) зачем ко всем переменным "a" подписывать? от "александр" штоле?ладно в глобальные че-нить пихать чтоб никто не спутал и не переназначивал переменную,но зачем в локлаьные переменные функций-то вставлять постоянно
ты можешь конечно ничего из этого не делать но хз тогда кто тут поймет че ты тут понаписал
2. Проблема в том короче вот:
Не знаю. Может если вот так написать
3 - 4. Это я сделал чтобы не путаться самому мне так проще.
5. Я это сделал чтобы JS понял тип переменной. Хотя наверное в JS переменная через var может любой в любой момент.
Например в C# у переменной должен быть четкий тип. Даже если переменная объявленна через var то ей должно быть присвоенно значение чтобы интерпритатор понял какой тип переменной. Пологаю в JS вообще нет понятия типы переменных и в любой момент переменной можно присвоить другие данные.
Надо будет проверить.
6. cell1 - cell3 это переменные сделал для удобства. Им просто присвоены ИД Событий например Cell1 = первому событию. Cell2 - равен 4 и cell3 равен = 7. Это сделано чтобы проще разобратьсмя в условии проверки
А что до cell то это переменная равна символы который отвечает за тот или иной аспект
Вернет x если победили крестики, 0 если победили 0, + если Ничья и - если остались еще ходы.
8. И где ты увидел GameOnMap? Я их вроде и так убрал?
9. Сделаю.
А добавлять a это привычка от паскаля. Блин. У каждого языка своим правила написания кода. Бесит.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
static SetSelfSwitches(aIDEvent, aSelfSwitch, aBool, aOffOtherSelfSwitch = false, aMapID = $gameMap.mapId())
3 - 4. ну и разбирайся тогда во всем сам раз тебе так проще.
5. используй typescript если любишь типы. можно еще для читаемости кода и чтобы не путаться указывать типы переменных в комментариях. и например для каждого аргумента функции подписывать через равно значение по умолчанию. если значение по умолчанию равно строке то значит и тип строка. если булевое - значит тип булевый.
6. да блин чем название cell1 удобно? обозначает id а называется cell, фейспалм просто. назови idByEvent4 например
а то что у тебя cell1 обозначает ид,а cell - совершенно другое это вообще смешно.
раз cell означает крестик или нолик победил аще смешно. назови че-нить типа winner, типа "победитель"
8. точно.не тот коммнет глянул
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
2. Все равно если нужно будет использовать к примеру другую карту то в аргумент отключения остальных переключателей нужно будет указать undefined. Ну в принципе сделаю по твоему варианту так как чаще нужно отключать остальные переключатели нежели с одной карты влиять на события другой.yuryol пишет: 2. хоспаде, да поставь ты оба необязательных в конец, че творишь-то
static SetSelfSwitches(aIDEvent, aSelfSwitch, aBool, aOffOtherSelfSwitch = false, aMapID = $gameMap.mapId())
3 - 4. ну и разбирайся тогда во всем сам раз тебе так проще.
5. используй typescript если любишь типы. можно еще для читаемости кода и чтобы не путаться указывать типы переменных в комментариях. и например для каждого аргумента функции подписывать через равно значение по умолчанию. если значение по умолчанию равно строке то значит и тип строка. если булевое - значит тип булевый.
6. да блин чем название cell1 удобно? обозначает id а называется cell, фейспалм просто. назови idByEvent4 например
а то что у тебя cell1 обозначает ид,а cell - совершенно другое это вообще смешно.
раз cell означает крестик или нолик победил аще смешно. назови че-нить типа winner, типа "победитель"
8. точно.не тот коммнет глянул
3 - 4. Ну да. Вот так наверное проще разбираться:
6. Если ты про это в пункте 3 - 4 то я исправил имена. Я думал ты ты про то чтобы вообще не использовать дополнительные переменные. Они по факту и не нужны. Просто я привел вариантом выше какая путанница будет без них.
А на счет x и 0 то по факту можно было бы свой перечисляемый тип сделать ну аналог bool так сказать но с 4мя значениями. Но не знаю как это в js делается.
В любом случае это не изменяет того факта что происходит ошибка:
CONDITIONAL BRANCH SCRIPT ERROR
При вызове скрипта.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
CONDITIONAL BRANCH SCRIPT ERROR
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
