if SubString("|",-1,0)!="o" then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"※ 워크래프트3 1.28기준으로 만든 맵이기 때문에, 다른 버전으로 이용하면 약간의 버그가 있을 수 있습니다.")
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"※ 리포지드로 플레이할 경우 클래식 그래픽으로 설정하셔야 원할한 플레이가 가능합니다.")
endif
if SubString("|",-1,0)!="o" then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"※ Since this map was created based on Warcraft 3 1.28, there may be some bugs if used with a different version.")
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"※ When playing with Reforged, you must set it to classic graphics to play smoothly.")
endif
родной F7 цепляется без учёта смещения 30 по Y и 8 по X
WMC цеплялся нормально (см сравнение ниже)
то есть вместо края экрана будет ресайз окна, если кликнуть. что полностью исключает возможность использования захвата мыши
каким же образом?
это религия альтернативно-кодеров?
каким образом можно писать что lua hrua cjass vjass ...{вставить ещё сотню языков} могут больше чем оригинал?
если они в конце компиляции тупо конвертят свой личный код в обычный жас
фактически это не больше чем обёртка от конфеты, только конфета остаётся всё той же
call Split("some text, можно на русском, можно и так и сяк, можно что-то такое даже")
loop
exitwhen(i >= 500)
какая же классика
что за мода у этих кодописарей задавать границы чисел на свой рандомный лад?
что тут 500 кусков вместо 8192, доступных в жасе
что в 99,9999% камерахаков вечно от 1650 до 3300 вместо 0-10000
я уж молчу, что такой код сплита благополучно загнётся на первом же оплимите, это база
ещё интереснее, что автору пришлось самому пилить сплит в 2к21, ведь до него никто этого для джаса не делал? иначе зачем
quq_CCCP: потому что вы что то не то делайте, сами себе создаёте проблему
ах да, это я такой криворукий, а не оплимит в варике
только вот сегодня утром опять наткнулся, уже в 3й раз в карте, на проблему оплимита в цикле, когда цикл тупо не доходит до конца и молча прерывается посередине
первый раз было с координатами юнитов - ладно, создал триггер вместо цикла - проблема решилась
вчера он аналогично не захотел обработать 50 строк длиннее 1000 символов - ну ладно, на тебе второй триггер
но нет же, сегодня во втором триггере заглох при обработке одной строки на 1400 символов (во время вызова доп функции) - пришлось делать триггер в триггере
итого 3 раза цикл из-за оплимита оборвался и не доработал, пока его на триггер не посадили
сидишь только и борешься с оплимитом в циклах сутками (а по пути на втором языке с нормальным отладчиком всё дублируешь),
действительно, никогда не было и вот опять
вместо работы над самой картой - для банальных вещей писать костыли к жасу, подпинывая эту калеку, чтобы он хоть как-то ходил
возвращает количество символов/байтов после перевода из юникода в системный ANSI (тоже самое и с обрезкой)
я про это выше и писал при использовании мультиязыков в одном стринге (знаки препинания - то это англ)
иероглифы и смайлы кста по 3 а не по 4 занимают, англ 1, ру 2
вот например код из карты, когда картоделу приходится проверять локаль из чата и резать разным количеством, чтобы выполнить одну и ту же команду:
во второй -чатстроке сиди считай 1+3+3+3=10 при написании кода
if SubString(s,0,6)=="-count" then
call Command__CountMain(s,true)
elseif SubString(s,0,10)=="-카운트" then
call Command__CountMain(s,false)
function Command__CountMain takes string s,boolean Eng returns nothing
if Eng==false then
set time=S2I(SubString(s,11,13))
else
set time=S2I(SubString(s,7,9))
endif
set s=SubString(s, StringLength(s) - 20, StringLength(s))
call BJDebugMsg(s)
то проблему можно увидеть
только вот вопрос - можно либо притворяться, что такой проблемы нет, либо открыто писать что она есть, но есть обходные пути
что, если у тебя УЖЕ есть готовая строка s - длиной 3500
и тебе нужно у неё обрезать последний символ?
при этом сохранив её в переменной, а не на экране в пропечатываемых 100 символах
как быть?
делить на 4 части по 1000, потом из последней отрезать , а потом опять сплюсовать s=s1+s2+s3+s4?
как это прекрасно, люблю жасы
особым бонусом будет смешанная строка из латиницы 1/1 + кириллицы 1/2 + иероглифов 1/4 - и сиди гадай, как бы тебе посередине иероглифа не разрезать во время попила на тысячные куски
хотя я уже днём это всё решил, это я так, бормочу после рутинного написания базовых функций, которые есть в нормальных языках
ответ конечно же будет таким:
set s=SubString(s,0,>1000) - не работает
при этом забавно, что крит во время исполнения SubString не выдаётся, как это будет при загрузке карты с кодом set s="1100 знаков"
т.е. и не крит и не нормальная работа
в итоге - обязательно во все карты теперь надо вводить функцию разбивки длинных 4000 строк на 4 по 1000, чтобы без ошибок нормально можно было работать с ними
а при использовании юникодных кодировок (не англ язык) - вообще по 500 символов получится (по 1000 длине строки, но по 500 буков)
т.е. фактически макс длина строки даже не 1000/4000, а 500/2000
quq_CCCP: ни одной задачи, где бы были такие циклы
а я вот встретился с оплимитом в первой же карте, с которой работал - поэтому вообще без понятия - как за 20 лет вара челик 14го левела на хигаме - его ни разу не видел
и без подобных методов обхода оплимита - карта бы не работала как должна
классическое нинужна?
классический вопрос от @ quq_CCCP
что, в картах не бывает циклов которые обрываются из-за оплимита?
бывают или нет?
если не бывает - то мы вам перезвоним
если бывает - то где статья с кодом и со всеми различными способами обхода оплимита ?
вчера раз 10 пытался запустить и проверить работоспособность
Codeless Save Load v3.0.1 - карта не запускается на 1.26, не запускается на 1.28.5
Codeless Save Load v1.3.9 - на 1.26 не работают кнопки "Save Character" "Load Character" (при их нажатии ничего не происходит, ни загрузки ни текстовой лог надписи) , не работает -load <slot> , работает только -save <код> и -load <код> , но кодовая загрузка через чат это не по теме вопроса
Codeless Save Load v1.3.9 - на 1.28.5 заработали "Save Character" "Load Character", -load <slot> не работает, но вопрос был в основном про безкодовый -load 1.26, остальные версии так, до кучи в виде инфы
локал файлы конечно включены
и C:\!! AllowLocalFiles\AllowLocalFiles.bat.txt я тоже запускал
т.е. видимо вся эта система на 1.26 не работает
зато система из беглецов работает на 1.26 и даже в мультиплеере, что намного приоритетнее по разбору
в рефоргеде - вон вообще в тултип загружаются, там и разбирать особо нечего, т.к. оно работает
в 1.28.5 используют %USERPROFILE%\Documents\Warcraft III\CustomMapData
а вот найти систему для 1.26 - вот это задача
хотя Codeless Save Load v1.3.9 в 1.28.5 загружает код через string имя персонажа - такое должно работать и для 1.26, попробую
это должно быть проще чем работа с integer из примера выше про SetPlayerTechMaxAllowed
Ред. host_pi
» WarCraft 3 / зачем в Substring start -1 (minus) ?
» WarCraft 3 / зачем в Substring start -1 (minus) ?
Ред. host_pi
» XGM Team / Обновление 2024 - Stage 15
flat-дизайн это так красиво!
а вы не делаете дизайн сайтов на заказ? клиентам бы понравилось такое портфолио
Ред. host_pi
» WarCraft 3 / Warcraft III - MultiWindow
WMC цеплялся нормально (см сравнение ниже)
то есть вместо края экрана будет ресайз окна, если кликнуть. что полностью исключает возможность использования захвата мыши
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
это религия альтернативно-кодеров?
каким образом можно писать что lua hrua cjass vjass ...{вставить ещё сотню языков} могут больше чем оригинал?
если они в конце компиляции тупо конвертят свой личный код в обычный жас
фактически это не больше чем обёртка от конфеты, только конфета остаётся всё той же
Ред. host_pi
» WarCraft 3 / String split, shuffle
что за мода у этих кодописарей задавать границы чисел на свой рандомный лад?
что тут 500 кусков вместо 8192, доступных в жасе
что в 99,9999% камерахаков вечно от 1650 до 3300 вместо 0-10000
ещё интереснее, что автору пришлось самому пилить сплит в 2к21, ведь до него никто этого для джаса не делал? иначе зачем
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
только вот сегодня утром опять наткнулся, уже в 3й раз в карте, на проблему оплимита в цикле, когда цикл тупо не доходит до конца и молча прерывается посередине
первый раз было с координатами юнитов - ладно, создал триггер вместо цикла - проблема решилась
вчера он аналогично не захотел обработать 50 строк длиннее 1000 символов - ну ладно, на тебе второй триггер
но нет же, сегодня во втором триггере заглох при обработке одной строки на 1400 символов (во время вызова доп функции) - пришлось делать триггер в триггере
итого 3 раза цикл из-за оплимита оборвался и не доработал, пока его на триггер не посадили
действительно, никогда не было и вот опять
Ред. host_pi
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
я про это выше и писал при использовании мультиязыков в одном стринге (знаки препинания - то это англ)
иероглифы и смайлы кста по 3 а не по 4 занимают, англ 1, ру 2
во второй -чатстроке сиди считай 1+3+3+3=10 при написании кода
Ред. host_pi
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
такое сработает:
Ред. host_pi
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
только вот вопрос - можно либо притворяться, что такой проблемы нет, либо открыто писать что она есть, но есть обходные пути
и тебе нужно у неё обрезать последний символ?
при этом сохранив её в переменной, а не на экране в пропечатываемых 100 символах
как быть?
делить на 4 части по 1000, потом из последней отрезать , а потом опять сплюсовать s=s1+s2+s3+s4?
как это прекрасно, люблю жасы
Ред. host_pi
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
set s=SubString(s,0,>1000) - не работает
т.е. и не крит и не нормальная работа
т.е. фактически макс длина строки даже не 1000/4000, а 500/2000
Ред. host_pi
» WarCraft 3 / Спецэффекты в точке
на вин 10 есть ещё это Win + Ctrl + Shift + B
» WarCraft 3 / Где можно скачать кампанию Падения Лордерона на одного плеера
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
и без подобных методов обхода оплимита - карта бы не работала как должна
классическое нинужна?
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
что, в картах не бывает циклов которые обрываются из-за оплимита?
бывают или нет?
если не бывает - то мы вам перезвоним
если бывает - то где статья с кодом и со всеми различными способами обхода оплимита ?
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
и на xgm xgm.guru/forum/showthread.php?t=30152
пишут, что ExecuteFunc открывает новый поток
на практике же она не смогла даже пропечатать выше 20 000, вот вам и "отдельный поток". который не сравнится ни с таймером ни с триггером
Ред. host_pi
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
Ред. host_pi
» WarCraft 3 / как загрузить строку из txt файла в переменную? load система
Codeless Save Load v3.0.1 - карта не запускается на 1.26, не запускается на 1.28.5
Codeless Save Load v1.3.9 - на 1.26 не работают кнопки "Save Character" "Load Character" (при их нажатии ничего не происходит, ни загрузки ни текстовой лог надписи) , не работает -load <slot> , работает только -save <код> и -load <код> , но кодовая загрузка через чат это не по теме вопроса
Codeless Save Load v1.3.9 - на 1.28.5 заработали "Save Character" "Load Character", -load <slot> не работает, но вопрос был в основном про безкодовый -load 1.26, остальные версии так, до кучи в виде инфы
локал файлы конечно включены
и C:\!! AllowLocalFiles\AllowLocalFiles.bat
.txtя тоже запускалзато система из беглецов работает на 1.26 и даже в мультиплеере, что намного приоритетнее по разбору
в 1.28.5 используют %USERPROFILE%\Documents\Warcraft III\CustomMapData
а вот найти систему для 1.26 - вот это задача
это должно быть проще чем работа с integer из примера выше про SetPlayerTechMaxAllowed
Ред. host_pi
» WarCraft 3 / как загрузить строку из txt файла в переменную? load система
set s = (file.txt).contents
пока систему подробно не разбирал эту через исследования
» WarCraft 3 / как сделать стандартного юнита зданием? [WE GUI]
Ред. host_pi
» WarCraft 3 / как сделать стандартного юнита зданием? [WE GUI]
слева стандарт, справа та карта
» WarCraft 3 / как сделать стандартного юнита зданием? [WE GUI]
сверху фут, снизу ферма
» WarCraft 3 / Как сделать чтобы после постройки здания менялся ланшафт?
Ред. host_pi
» WarCraft 3 / как занулить возвращаемую локальную переменную юнита в функции ?
а что, краши и тормоза по нехватке памяти - лучше?
такое зануление должно быть базой