|
|
  |
Как Лучше Написать? |
|
|
d`ArcZeal |
12.5.2009, 19:56
|

         
Elder
Сообщений: 2.979
Регистрация: 27.11.2005 Группа: Пользователи Наличность: 7050
Пользователь №: 4.522
Возраст: 34

|
Формула попадания: при 0% тактики, шанс попасть по противнику 0%, при 150% - шанс 100%. Я написал так: Код IF (<EVAL {1 1500}> > (<TACTICS> + {1 1500})) DORAND 2 SOUND=562 SOUND=563 ENDDO sysmessage @0487 Вы промахнулись. SRC.SAY @3500 0 return 1 ENDIF
Как лучше написать, чтобы легче было рассчитывать, да и более грамотно это выглядело... Пожелание: Такая формула, при которой нанося удар, было прямо видно (персонаж говорит, или выводится сообщение): 38% шанс попасть, 98%, 100% и тд. (IMG: style_emoticons/default/smile.gif)
--------------------
Olmer online administrator
|
|
|
|
Narciruss |
13.5.2009, 1:30
|
     
ужас какой
Сообщений: 653
Регистрация: 12.2.2005 Группа: Пользователи Наличность: 0 Из: Москва
Пользователь №: 3.050

|
Например для того, чтобы этими номерами не нагибать собственный мозг. Если выбирать между парсером и мозгом, я определенно выбираю мозг. Еще это намного повышает шанс бага: название скилла ты вряд ли спутаешь, а номер - запросто.(IMG: style_emoticons/default/smile.gif)) а если понадобиться перебрать все 55 скилла через for? %)) ИМХО - лучше бедный парсер в таких глупых местах не трахать, создавая проверки типа if <local._for> == 0 нежели такого рода: If StrMatch("Alch*",<Local._for>) (IMG: style_emoticons/default/smile.gif) чтобы потом трахнуть парсер по полной, в тех местах, где это действительно требуется. Строки всегда дольше сверяются, нежели числа.
|
|
|
|
Wap |
13.5.2009, 16:15
|

         
Администратор Форума
Сообщений: 3.010
Регистрация: 22.12.2006 Группа: Администраторы Наличность: 31903
Пользователь №: 9.227

|
Цитата(Narciruss @ 13.5.2009, 13:53)  Ну понятно (IMG: style_emoticons/default/smile.gif) На этих бордах вообще ни единого аргументировано диалога невозможно провести, всё упирается в "когда понадобиться", "так веле господь бох" ... %) Где именно тебя не устраивает моя аргументация? Насчет обращения к конкретному скиллу через номер, я ответил, что не знаю кому как, а мне влом запоминать наизусть все скиллы, спеллы и.т.д. Не развалится сфера, если сама определит. Да еще мне не очень нравится, что 1 цифорка не так, и все - будет баг, при том ошибки выдаваться не будет. Что касается перебора, да, переберать нужно по номерам(если, конечно ALLSKILLS не годится), но обьясни, какое отношение это имеет к теме? С таким же успехом ты мог написать, что количество гп нужно писать цифрой. Кстати, если переберать ВСЕ скиллы, то запоминать конкретные номера опять же не надо...
--------------------
|
|
|
|
Wap |
13.5.2009, 16:49
|

         
Администратор Форума
Сообщений: 3.010
Регистрация: 22.12.2006 Группа: Администраторы Наличность: 31903
Пользователь №: 9.227

|
Цитата(Narciruss @ 13.5.2009, 14:33)  да нахрена вообще что-то держать в голове? есть списки (IMG: style_emoticons/default/smile.gif)) у меня на втором мониторе всегда список всяких скиллов или def'ов (IMG: style_emoticons/default/smile.gif) запоминать вообще нехрена не надо (IMG: style_emoticons/default/smile.gif) я с трудом могу написать названия многих скиллов правильно, поэтому проще и себя и сферу не насиловать (IMG: style_emoticons/default/smile.gif) пля, у меня переписанный скилл-гейн, потому что в куй не уперлась системка RATE'ов сферовская (IMG: style_emoticons/default/smile.gif) On=@SkillSuccess If <Argn> == 0 Say This is Alchemy! <Argn>+=0.1 else This is <Serv.Skill.<Argn>.Name>! Endif return 1 Гораздо проще поддавать все контролю использую вот именно такого типа конструкции (IMG: style_emoticons/default/smile.gif) Но это опять же я так делаю, у вас наверное другие задачи =) Я просто ленивый, и мне проще писать единые функции (генерация лута у НПС-ов, Скилл-гейны и тд). В бошке держать для того чтобы не лезть в дефс на каждой команде. Названия скиллов я помню, а если и ошибусь, скрипт сразу на тесте выдаст ошибку и можно будет исправить. Дальше по 3 разу пошло... Такое ощущение, что ты мои ответы и не читаешь. Повторяю еще раз. Я НЕ ИМЕЮ НИЧЕГО ПРОТИВ ТАКИХ КОНСТРУКЦИЙ, В ОБЩЕГО ТИПА СКРИПТАХ ЭТО ПРАВИЛЬНО И ГРАМОТНО, НО В ЭТОЙ ТЕМЕ НИКАКОГО ОБЩЕГО СКРИПТА НЕ БЫЛО, НУЖНО БЫЛО ОБРАТИТСЯ К 1 КОНКРЕТНОМУ СКИЛЛУ. Плюс еще добавлю, если тебе лично удобнее писать через номера, ничего, конечно, плохого тут нет, но у меня есть большие сомнения, что так надо писать всем.
--------------------
|
|
|
|
Narciruss |
13.5.2009, 16:51
|
     
ужас какой
Сообщений: 653
Регистрация: 12.2.2005 Группа: Пользователи Наличность: 0 Из: Москва
Пользователь №: 3.050

|
|
|
|
|
Wap |
13.5.2009, 18:06
|

         
Администратор Форума
Сообщений: 3.010
Регистрация: 22.12.2006 Группа: Администраторы Наличность: 31903
Пользователь №: 9.227

|
Чтоб сделать формулу прямой пропорции достаточно все подобрать так, чтобы при обоих значениях был верный результат. y=px+q - прямая(строится из 2 точек), так что если писать главный аргумент 1 раз и использовать только знаки "+","-","*",":" ничего другого и не получится, что нам и нужно. Подбираем сначала, чтоб при 0 значение было 15 - просто пишем (15+<EVAL <PARRYING>>) - пол работы сделано. Теперь нужно, чтобы при 150 парринга, формула давала 25. (15+<EVAL <EVAL <PARRYING>>/150>) - вот и все. Готово.
П.с. Возможно внутренний EVAL - лишний. Просто я точно знаю что и для получения скилла в нормальном виде и для знака / он точно нужен. Хватит ли верхнего, точно не помню, поэтому пишу так, чтоб точно работало.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|