DelDiablo Опубликовано 19 июня, 2009 Жалоба Опубликовано 19 июня, 2009 Спасибо, Baxton Bry за ценные советы. Кстати, пробовал реализовать проницаемость по описанному тобой способу с картинками. Что-то ничего путного не получилось. Только правда,иногда вместе с мобами и сам протогонист погибал эдакий камикадзе, только без самолета. сессию сдал, готов вернуться в ряды творцов. Есть мануал не для чайников, а для тупых чайников, чтобы механика построения диалогов была расписана подробно? Потому что во многие сленговые вещи я не врубаюсь совсем.( Арк прошел до конца 1 раз 5 лет назад. ) и очень хотелось бы это на нашем языке увидеть, а не на языке буржуев (надоел уж очень)
kotovstomat Опубликовано 19 июня, 2009 Жалоба Опубликовано 19 июня, 2009 Кстати, пробовал реализовать проницаемость по описанному тобой способу с картинками. Что-то ничего путного не получилось. Только правда,иногда вместе с мобами и сам протогонист погибал эдакий камикадзе, только без самолета. 0. Attachee = Triggerer //волшебная строка 1. loop for Everyone in Vicinity //начало цикла 2. distance between Attachee and Extra Object: get in Local 0 //расстояние между стреляющим и целью 3. distance between Attachee and Current Looped Object: get in Local 1 //расстояние между стреляющим и побочной целью 4. distance between Extra Object and Current Looped Object: get in Local 2 //расстояние между целью и побочной целью 5. IF Attachee can see Current Looped Object //на тот случай, если побочная цель находится за стеной THEN do nothing ELSE goto line X //проверка следующей побочной цели 6. IF Local 2 == 1 //определение области поражения побочной цели THEN do nothing ELSE goto line X //проверка следующей побочной цели 7. IF Local 0 <= Local 1 //определение области поражения побочной цели THEN do nothing ELSE goto line X //проверка следующей побочной цели 8. IF Local 0 == Local 1 //определение области поражения побочной цели THEN goto line X //проверка следующей побочной цели [секция с нанесением урона побочной цели] X. loop end //конец цикла Y. return and SKIP default Attachee также будет являться Current Looped Object, избежать этого помогает строка 6. Повреждения будут наноситься по следующей маске: ##### ##### ##### ##### ##### ,где * побочная цель, CLO * цель, EO * стреляющий, Attachee При попадании в область поражения побочной цели более 1 CLO можно отсечь остальных, вставив в цикл loop break. Для каждого CLO можно создавать n вложенных циклов, но тогда действие оружия будет больше похоже на chain lightning. Задать большее расстояние поражения побочной цели (аналогично тому что наглядно можно увидеть в crimson land) этим путем невозможно. Существует другая возможность: get location of (obj) and store X in (num) and Y in (num), для Att, EO и CLO, а далее сравнением X и Y. У меня плохо с математикой, я точно знаю что EO и СLO будут находиться на одной линии при равных X или Y, это уже 4 направления, а как определить другие направления? Направлений криттера 8 (facing direction), но при стрельбе возможно попадание вне этих 8 направлений. 8. Звук при выстреле, как из пистолета с глушителем. Почему бы не изменить звук выстрела на более аутентичный? FOT, gausssingle1.WAV
kotovstomat Опубликовано 19 июня, 2009 Жалоба Опубликовано 19 июня, 2009 Дополню тему. Рассуждая логически, имеется треугольник с вершинами Att(x1,y1), EO(x2,y2), CLO(x3,y3). x123, y123 имеют целые положительные значения (int) относительно левого верхнего тайла (1,1) WorldMap. Как проверить принадлежность точек Att, EO и CLO к одной линии? Att, EO и CLO будут находиться на одной линии при выполнении условия d(Att->EO) + d(EO->CLO) = d(Att->CLO), т.е. когда треугольник не будет существовать. Но этот метод проверки неприменим из-за того, что d измеряется в тайлах (поверьте мне на слово, мне лень рисовать).
kotovstomat Опубликовано 19 июня, 2009 Жалоба Опубликовано 19 июня, 2009 Я очень классно веду монолог сам с собою. Как я уже говорил, с помощью команды distance between (obj) and (obj): get in (num) проверить существование треугольника невозможно, но это возможно сделать, вычислив стороны треугольника через координаты. Следующая проблема, с которой я столкнулся по ходу написания скрипта - нет команды извлечения квадратного корня. Но и тут я оказался хитрее бездушной машины, и нашел таблицу квадратных корней целых чисел. Если вас все еще интересует правильный скрипт работы Пушки Гаусса, я его напишу.
Ergo Опубликовано 19 июня, 2009 Автор Жалоба Опубликовано 19 июня, 2009 Braxton Bry Все, что ты напишешь, мы (в частности D.D) будем использовать, для максимально лучшей реализации пушки гаусса. Естественно мы безмерно благодарные за твои знания и труд. The truth is, everybody is going to hurt you, You just got to find the ones worth suffering for.
kotovstomat Опубликовано 23 июня, 2009 Жалоба Опубликовано 23 июня, 2009 Скрипт, работающий в 8 направлениях facing direction Attachee. СКАЧАТЬ Cкрипт с комментариями: 0. Attachee = Triggerer 1. loop for Everyone in Vicinity //в цикле постепенное "отключение" "лишних" Current Looped Object 2. IF Attachee can see Current Looped Object //(2) Current Looped Object вне пределов видимости Attachee THEN do nothing ELSE goto line 43 3. distance between Attachee and Current Looped Object: get in Local 0 //(3->4) Current Looped Object, являющийся Attachee 4. IF Local 0 == 0 THEN goto line 43 5. distance between Extra Object and Current Looped Object: get in Local 0 //(5->6) Current Looped Object, являющийся Extra Object 6. IF Local 0 == 0 THEN goto line 43 7. get location of Attachee and store X in Local 0 and Y in Local 2 //(7->10) разность координат по X, Y объектов Attachee, Extra Object 8. get location of Extra Object and store X in Local 1 and Y in Local 3 9. IF Local 0 <= Local 1 THEN Local 4 = Local 1 - Local 0 ELSE Local 4 = Local 0 - Local 1 10. IF Local 2 <= Local 3 THEN Local 5 = Local 3 - Local 2 ELSE Local 5 = Local 2 - Local 3 11. get location of Extra Object and store X in Local 0 and Y in Local 2 //(11->14) разность координат по X, Y объектов Extra Object, Current Looped Object 12. get location of Current Looped Object and store X in Local 1 and Y in Local 3 13. IF Local 0 <= Local 1 THEN Local 6 = Local 1 - Local 0 ELSE Local 6 = Local 0 - Local 1 14. IF Local 2 <= Local 3 THEN Local 7 = Local 3 - Local 2 ELSE Local 7 = Local 2 - Local 3 15. get location of Attachee and store X in Local 0 and Y in Local 2 //(15->18) разность координат по X, Y объектов Attachee, Current Looped Object 16. get location of Current Looped Object and store X in Local 1 and Y in Local 3 17. IF Local 0 <= Local 1 THEN Local 8 = Local 1 - Local 0 ELSE Local 8 = Local 0 - Local 1 18. IF Local 2 <= Local 3 THEN Local 9 = Local 3 - Local 2 ELSE Local 9 = Local 2 - Local 3 19. distance between Attachee and Extra Object: get in Local 0 20. distance between Attachee and Current Looped Object: get in Local 1 21. IF Local 0 == Local 1 THEN goto line 43 22. IF Local 0 <= Local 1 THEN do nothing ELSE goto line 29 23. Local 0 = Local 8 - Local 6 //(23->28) проверка равенства суммы расстояний (Att-EO) + (EO-CLO) расстоянию (Att-CLO) 24. Local 0 = Local 0 - Local 4 25. Local 1 = Local 9 - Local 7 26. Local 1 = Local 1 - Local 5 27. Local 0 = Local 0 + Local 1 28. IF Local 0 == 0 THEN goto line 35 ELSE goto line 43 29. Local 0 = Local 4 - Local 6 //(29->34) проверка равенства суммы расстояний (Att-CLO) + (CLO-EO) расстоянию (Att-EO) 30. Local 0 = Local 0 - Local 8 31. Local 1 = Local 5 - Local 7 32. Local 1 = Local 1 - Local 9 33. Local 0 = Local 0 + Local 1 34. IF Local 0 == 0 THEN do nothing ELSE goto line 43 35. Local 0 = Local 4 + Local 6 //(35->38) проверка принадлежности координат Attachee, Extra Object, Current Looped Object к направлениям N, E, S, W 36. IF Local 0 == 0 THEN goto line 41 37. Local 0 = Local 5 + Local 7 38. IF Local 0 == 0 THEN goto line 41 39. IF Local 4 == Local 5 //(39->40) проверка принадлежности координат Attachee, Extra Object, Current Looped Object к направлениям NE, SE, SW, NW THEN do nothing ELSE goto line 43 40. IF Local 6 == Local 7 THEN do nothing ELSE goto line 43 41. kill Current Looped Object //маркер 42. do nothing //строки (41->42) должны быть заменены на расчет и нанесение урона 43. loop end 44. return and SKIP default Вопросы, предложения?
DelDiablo Опубликовано 24 июня, 2009 Жалоба Опубликовано 24 июня, 2009 to Baxton Bry: Снимаю перед Вами шляпу! Спасибо за скрипт, я бы до этого дошел очень не скоро. На днях займусь, сейчас на работе запары, нет времени совсем.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти