Комментарии проекта Блог им. nvc123
13

оптимизация вызова триггерных заклинаний

» Блог им. nvc123
система каста заклинаний через Execute
для добавления заклинания необходимо вызвать при инициализации карты функцию addSpell
	/**
	 * привязывает функцию с именем func к спеллу с равкодом rawcode
	 * @param rawcode равкод спела
	 * @param func имя функции которая вызывается при касте спела
	 */
	 void addSpell(int rawcode,string func)
» код
library spellcast initializer init{
    private hashtable hash;
    
    private void act(){
        ExecuteFunc(LoadStr(hash, GetSpellAbilityId(), 0));
    }

    void addSpell(int a,string b){
        SaveStr(hash, a, 0, b);
    }

    private void init(){
        trigger a=CreateTrigger();
        TriggerRegisterAnyUnitEventBJ(a,EVENT_PLAYER_UNIT_SPELL_EFFECT);
        TriggerAddAction(a, function act);
        hash=InitHashtable();
    }

}
quq_CCCP #7 - 4 years ago 1
Голосов: +1 / -0
ScopteRectuS, Нет, если ты сам их не перезапишешь.
ScopteRectuS #8 - 4 years ago 1
Голосов: +1 / -0
Если использовать одну Хеш-таблицу на всю карту, могут ли данные в "SaveStr(hash, a, 0, b)" перезаписаться?
nvc123 #9 - 4 years ago (изм. ) 1
Голосов: +1 / -0
Diaboliko, создай карту с 100 триггерными спеллами и протести оба варианта для наглядности
или ты считаешь что хэш + экзекут функц тратят больше ресурсов чем 100 триггеров с условиями?
ScopteRectuS:
А зачем нужна функция cond(), если она нигде не используется?
забыл удалить условие)
Diaboliko #10 - 4 years ago 1
Голосов: +1 / -0
Имхо сомнительная полезность. Экзекутфанк работает тем быстрее, чем короче имя функции. Также, ячейки хештейбла создаются, ятп, большими пачками, что никак не экономит память. Жду аргументов против.
quq_CCCP #11 - 4 years ago 1
Голосов: +1 / -0
Не запустится, для этого и есть условия. С проверкой на null по этому адресу, так же стоит в события добавить буллекспры для отслеживания даммиков и прочих юнитов, у которых нет и небудет триггерных способностей.
Это грубый пример, если вам дать все как надо, вы не разберетесь что к чему, а тут все просто и понятно.
ScopteRectuS #12 - 4 years ago (изм. ) 1
Голосов: +1 / -0
А зачем нужна функция cond(), если она нигде не используется?
И правильно ли я понял, что если спелл не тригерный, то ExecuteFunc запустится с переданной строкой "null"?
nvc123 #13 - 5 years ago 1
Голосов: +1 / -0
добавил в виде подключаемой библиотеки
Прикрепленные файлы
39

XGM для Android

» Блог им. nvc123
Из за того что на телефоне невозможно пользоваться сайтом решил сделать приложение под Android.
Тут буду сообщать о своих планах, текущем прогрессе и выкладывать готовые версии.

Читать далее...
tysch_tysch #1 - 4 years ago 0
Голосов: +0 / -0
Возьми готовый ui
nvc123 #2 - 4 years ago (изм. ) 0
Голосов: +0 / -0
alexprey, в api нету вроде
RichTextView это сторонняя либа же
+ мне нужен перехват нажатия ссылок и прочие заморочки
чтобы внутренние ссылки открывались в приложении а внешние в браузере
пока что с поворотом экрана проблема(не обновляются размеры webView) на я её решу после того как в очередной раз пересмотрю ёрмунганд
ZlaYa1000, до этого как до луны
надо будет ещё галерею сделать как нибудь нормально, а идей по этому поводу вообще 0
кстати если есть идеи по дизайну то с радостью выслушаю
т.к. мой скилл дизайна застрял в эпохе консольных приложений
alexprey #3 - 4 years ago 0
Голосов: +0 / -0
nvc123, там есть что-то вроде RichTextView для этого
tysch_tysch #4 - 4 years ago 0
Голосов: +0 / -0
как только можно будет массовому пользователю отдавать — сообщи вывесим на видное место.
nvc123 #5 - 4 years ago 0
Голосов: +0 / -0
Потому что он предназначен для редких случаев использования и его не рекомендуется использовать.
знаю
но либо так либо писать свой WebView
и если в оффтопке своя версия мб и сойдёт т.к. форматирования мало то для комментариев и ресурсов со всем форматированием это жопа
alexprey #6 - 4 years ago 0
Голосов: +0 / -0
nvc123, тогда я вскоре с тобой свяжусь по этому поводу
nvc123:
WebView это прекрасная вещь
для него не работают основные параметры которые работают ДЛЯ ВСЕХ View
Потому что он предназначен для редких случаев использования и его не рекомендуется использовать.
nvc123 #7 - 4 years ago 0
Голосов: +0 / -0
заставил свои костыли работать
блин
оно работает
alexprey, сделал чтобы при переходе по ссылке со схемой xgmapp:// открывало моё приложение
если ещё не залогинился то откроет окно входа
nvc123 #8 - 4 years ago (изм. ) 1
Голосов: +1 / -0
Кет, дизайн моя слабая сторона
если есть желающие накидать более менее нормальный дизайн я с радостью сделаю его в приложении
сейчас воюю с WebView
пытаюсь заставить его обновлять размеры контейнера
вернее уже вроде заставил но всё как то криво работать начало

WebView это прекрасная вещь
для него не работают основные параметры которые работают ДЛЯ ВСЕХ View
так же к нему нельзя применять андройдовские шаблоны проектирования (придуманные разработчиками WebView)
так что сейчас я занят заменой всех нормальных и правильных решений на громоздкие костыли
такое ощущение что этот класс писали в пятницу вечером и вместо того чтобы сделать всё нормально гугловские кодеры просто написали в доках "сори но тут нифига не работает" и пошли пить пиво
зато у меня натуральное приложение
никаких гмо, только свежий навоз
пойду ещё в код посру чтобы работало лучше
Кет #9 - 4 years ago (изм. ) 0
Голосов: +0 / -0
дизайн агонь
но вообще хорошее начинание, одобряю и поддерживаю
alexprey #10 - 4 years ago 0
Голосов: +0 / -0
ты можешь просто в браузере ввести вручную эту ссылку, необязательно ее где-то размещать
tysch_tysch #11 - 4 years ago 0
Голосов: +0 / -0
nvc123, не помогу, о хостинге можно отдельно поговорить
nvc123 #12 - 4 years ago (изм. ) 0
Голосов: +0 / -0
блин
хостинг на котором тещу всякую фигню упал
можете кто нибудь добавить эту ссылочку чтобы я смог на неё жмякнуть
tysch_tysch #13 - 4 years ago 0
Голосов: +0 / -0
nvc123:
alexprey, т.е. ты хочешь чтобы если у юзера на телефоне есть приложение но он сидит через браузер то по нажатию ссылки в браузере открывалось приложение?
в теории это возможно
надо будет протестить правда
я сейчас новую анимешку начал смотреть так что проверю вечером скорее всего
думаю, чтобы можно было перехватить авторизацию из браузера
nvc123 #14 - 4 years ago 0
Голосов: +0 / -0
alexprey, т.е. ты хочешь чтобы если у юзера на телефоне есть приложение но он сидит через браузер то по нажатию ссылки в браузере открывалось приложение?
в теории это возможно
надо будет протестить правда
я сейчас новую анимешку начал смотреть так что проверю вечером скорее всего
alexprey #15 - 4 years ago 0
Голосов: +0 / -0
nvc123, чтобы браузер при переходе по этой ссылке передавал обработку приложению
nvc123 #16 - 4 years ago (изм. ) 0
Голосов: +0 / -0
alexprey, всмысле перехватить?
найти ссылку в тексте?
или отправить на неё запрос?
или чтобы при нажатии на ссылку выполнялось своё действие?
alexprey #17 - 4 years ago 0
Голосов: +0 / -0
nvc123, сможешь перехватить ссылку вида xgmapp://authorization ну или как-то так?
nvc123 #18 - 4 years ago 0
Голосов: +0 / -0
alexprey, а смысл?
генерация хэшей затратнее чем простое сравнение текста
да и проверять надо не только текст но и дату и юзера (вдруг разные юзеры в 1 одно и тоже время одинаковый текст напишут)
хотя есть вероятность что я забью на эти проверки и сделаю просто по дате)
alexprey #19 - 4 years ago 0
Голосов: +0 / -0
придётся добавлять проверку по тексту
используй id из md5 суммы
nvc123 #20 - 4 years ago (изм. ) 0
Голосов: +0 / -0
Clamp, айди есть но он используется только в кнопке удаления
т.е. если ты не можешь удалить сообщение то и айди ты не увидешь
ну у меня как модератора с айди всё норм)
до тех пор пока не отберут супер силу)
Doc:
Будут дублироваться сообщения если между подгрузками будут написаны новые
да эта бага и без чс есть
как раз занимаюсь её фиксом
правда про 2 сообщения в 1 и тоже время не подумал(
придётся добавлять проверку по тексту
кстати давно уже заметил такую фишку в оффтопке
если отправить сообщение (например 123) а потом дописать к нему чтото (например qwerty) и отправить новое (123qwerty) то старое (123) исчезнет
хотя думаю все те кто заходят в этот бложик и так знают эту фишку)
Кристофер #21 - 4 years ago 0
Голосов: +0 / -0
Есть те, у которых желание добавлять в чс кого-то, кроме Мелиссы? И много ли тех, кто хочет добавить в чс Мелиссу?
Doc #22 - 4 years ago (изм. ) 0
Голосов: +0 / -0
[10:38:25] nvc123 * обычный люд не видет айди сообщения
[10:37:38] nvc123 * блин хреного
Никакой костыльности. Отправил я два одинаковых сообщения в одну секунду, а отображается одно. И дело даже не в том что корнер кейз, а в том что все это делается ради того, чтобы обойти отсутствие апи.
Clamp #23 - 4 years ago (изм. ) 0
Голосов: +0 / -0
Что-то мне подсказывает, что каждое сообщение имеет свой id, который не дублируется => проверяем, есть ли сообщения с id > idOfLastLoaded и грузим только их.
Не вижу проблемы, если честно.

Id в бд в смысле.

Да даже и по времени, суть не меняется, костыльности не вижу.
Doc #24 - 4 years ago 0
Голосов: +0 / -0
Будут дублироваться сообщения если между подгрузками будут написаны новые.
Соответственно добавляем дедубликацию по дате. Соответственно еще и по имени. Соответственно те самые костыли из первого сообщения.
Clamp #25 - 4 years ago 3
Голосов: +3 / -0
Doc, прокрутка сообщений без страниц, например?
Как во всех нормальных чатах
Doc #26 - 4 years ago 1
Голосов: +1 / -0
30 сообщений на странице, из них 20 сообщений мелиссы, мелисса в чс, 10 сообщений на странице.
nvc123 #27 - 4 years ago 0
Голосов: +0 / -0
Doc, почему?
просто не отображать сообщения тех юзеров что в чс
Doc #28 - 4 years ago 0
Голосов: +0 / -0
С трудом видится возможность добавить ЧС без костылей.
nvc123 #29 - 4 years ago 2
Голосов: +2 / -0
залил новую версию
оффтопка почти готова (за исключением чс но он будет готов только после юзеров)
добавил нормальное обновление оффтопки (при прокрутке вниз за границы списка)
добавил загрузку сообщений с предыдущих страниц (загружаются при достижение последнего сообщения)
alexprey #30 - 4 years ago 0
Голосов: +0 / -0
Clamp, ее появление - вопрос политики =_= сейчас там сыровато с правами доступа просто. А так API есть, авторизация на девтрайбе как раз и работает через этот api
Clamp #31 - 4 years ago 0
Голосов: +0 / -0
Желаю удачи, думаю она понадобится, в связи с отсутствием какой-либо адекватной апишечки.
Её появление - вопрос времени
Мышкоблудка #32 - 4 years ago 1
Голосов: +1 / -0
Клёво, надеюсь до айос тоже очередь дойдёт
NekoriDes #33 - 4 years ago 0
Голосов: +0 / -0
Жаль.
Желаю удачи, думаю она понадобится, в связи с отсутствием какой-либо адекватной апишечки.
Круто, что кто-то делает такой вклад в развитие сайта. Лишь бы не забросил.
NekoriDes #35 - 4 years ago 0
Голосов: +0 / -0
На чем пилишь фронтенд?
nvc123 #38 - 4 years ago 3
Голосов: +3 / -0
Кристофер, мне больше всего нравится верхняя панель съезжающая нафиг
Кристофер #39 - 4 years ago 0
Голосов: +0 / -0
А я ещё как-то умудрялся пилить ресурс на андройде. :С
10

Главная страница

» Блог им. nvc123
Добро пожаловать в мой бложик.Здесь я буду выкладывать всякий бредовый код(а иногда и полезный) и обучающие статьи по этому коду, свои идеи по созданию новых карт и игр, помогать новичкам разобраться в коде и помогать делать карты, а так же праздновать новые лвл и писать мысли которые приходят мне в голову.

на данный момент наиболее актуальные следующие темы:
идеи для рпг
помощь новичкам
школа jass
ELB359 #7 - 5 years ago (изм. ) 0
Голосов: +0 / -0
nvc123, о программировании в целом было бы интересно.
nvc123 #8 - 5 years ago 0
Голосов: +0 / -0
ELB359, открыл 2 статьи по вар3 которые были скрыты
ждать стоит
только не по вар3
и не скоро
ELB359 #9 - 5 years ago 0
Голосов: +0 / -0
Стоит ли ждать статей?
Кристофер #10 - 5 years ago 8
Голосов: +8 / -0
Всем нормальным людям и всем у кого IQ выше 50 уже давно насрать на варик. Варик скатился, потому что собрал в себе всякий сброд: дотеров, школьников, дотеров-школьников, школьников-дотеров, анимешников, капрофилов, капрофаков и прочих геев.
Бла бла бла.
Прикрепленные файлы