Axon
Player-
Content count
314 -
Joined
-
Last visited
Everything posted by Axon
-
Оффтоп Удален. Мне продолжить с игровыми аккаунтами или все-таки научитесь не вытрепываться? А то я пойду до конца, мне по барабану
-
Инна, сердечно поздравляю от всей души Виталий - только абсента за здоровье жены любимой, проверю
-
Идите флудить про вайп в другом месте. Каждый следующий упомянувший слово "вайп" здесь - получит удаление всех аккаунтов на проекте Valkyrie, вы достали. Зря тему не закрыли сразу, если поток такой ереси будет продолжаться, лично тему закрою.
-
Сервера-то нету, даже если на текущее ядро прописать билд и прочее, там другие опкоды и все другое, не будет работать
-
Ясен пень, что можно, это ауры - ауры имеют числовые значения, сервер их читает, мы их можем вывести в чат или куда угодно
-
На классике не было линковки итемов, клиент ее не поддерживает
-
Я сам не в курсе, должна ли пассивка работать без активной части. Имитирует стелс - а очень просто, стелс мод 0, но он стелсится все равно, аура то висит, только дистанция обнаружения дефолтная уже 10.5 ярдов вместо 7.5.
-
Ппц, у шадовмелда 2 части - активная(20580) и пассивная(21009), активная имитирует стелс, пассивная дает бонус - а именно Aura Id 154 (SPELL_AURA_MOD_STEALTH_LEVEL), value = 5, misc = 0 (0), periodic = 0Так вот, пассивная сейчас работает только тогда, когда работает активная. Каким образом пассивная часть будет работать вместе с провлом, когда в формах активная часть не работает, спелл не юзается? Да что вы уцепились то за это? Ясно ж сказано, это разница в уровнях персонажей, т.е 57 и 60 например, если она есть, начисляется по 0.5 за каждый уровень разницы, если разница больше трех левелов, тогда начисляется по 1 за каждый уровень разницы. Причем тут единицы измерения, формула взята и используется уже черт знает сколько, я же обьясняю, у нас 0 детекта, 13 стелс левел поинтов, по формуле Ищите пруфы и формулы, если не так работает, исправим, а "любой подтвердит" - для меня пусто звук, это все равно что ничего
-
Возможно ты прав, 2D от 3D отличается, и так же неизвестно что с LOS, тогда даже спорить не буду. Я думал в чистом поле 20 ярдов, просто чтобы их набрать, надо стелс детект примерно 70. 1 лвл стелса - 5 поинтов, но у нас не левелам считается, а по поинтам, я просто надел боты и наложил ауру +8 поинтов от других эпик ботов, 5+8 = 13. Это все видно в базе данных нашей. Как как, берем и делим, соггласно воввики и формуле visibleDistance += (int32(u->GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH_DETECT)) - stealthMod)/5.0f;стелс детекта было 0 поинтов, таланты не качал, а стелс левел был 13 поинтов, (0 - 13) / 5 = -2.6, что непонятно? Сид сказал, что ошибся, а это верно, потому так работает СЕРВЕР в данный момент. Не проверял я шадовмелд в тот раз, а вообще - пассивная часть работает только тогда, когда работает активная, для рог и друлей НЭ. Не так - ищите пруфы, исправим. Я ничего не говорю, я говорю, что каждые 3 секунды обновляется видимость для стелса, т.е грубо, зашли в детект пока шел таймер, допустим оставалось 2 секунды до нового апдейта - эти 2 секунды вы не увидите цель, хотя дистанция уже точно соответствует. Да верно, это настройки конфига, дефолтные имеют как раз то, что только для той же группы, где и сам, кто обнаружил Максимальный ранг detect greater invisibility - только для инвиза. Не путайте стелс и инвиз.
-
Пусть только попробуют даже хотя бы изменить... Ага, клиент очень легко модифицируется, если грамотный человек делает, и в таком виде может легко разойтись по миру Бывает Неверно. Кроме стандартных талантов на детект, никаких "особых" свойств нету. Возможно PS3 из предыдущего поста Этот аддон в некоторых случаях может ошибатся. 20 ярдов? Вы чего курили? База - 7.5, нужно иметь охренительный детект, чтобы увеличить ее до 20. 300 PS2 из предыдущего поста Неверно. См. PS2 из предыдущего поста
-
Хорошо, окей, поехали // GM invisibility checks early, invisibility if any detectable, so if not stealth then visible// Если видимость не стелсовая, то возвратить детект = trueif (m_Visibility != VISIBILITY_GROUP_STEALTH)return true;// NOW ONLY STEALTH CASE// Только для обработки стелса//if in non-detect mode then invisible for unit//mobs always detect players (detect == true)... return 'false' for those mobs which have (detect == false)//players detect players only in Player::HandleStealthedUnitsDetection()if (!detect)return (u->GetTypeId() == TYPEID_PLAYER) ? ((Player*)u)->HaveAtClient(this) : false;// Special cases// If is attacked then stealth is lost, some creature can use stealth too// если тебя атакуют или ты в бою, у тебя есть выбранные цели и они в твоем листе атаки - стелс невозможен, детект = trueif( !getAttackers().empty() )return true;// If there is collision rogue is seen regardless of level difference// если к вам близко подошли, 0.24 ярда, что невозможно, но на всякий, тоже детект = trueif (IsWithinDist(u,0.24f))return true;//If a mob or player is stunned he will not be able to detect stealth// если вы или противник застунены, вы не можете обнаруживать стелс вообщеif (u->hasUnitState(UNIT_STAT_STUNNED) && (u != this))return false;// set max ditance// если вы игрок, максимальная дистанция детекта стелса - 45 ярдовfloat visibleDistance = (u->GetTypeId() == TYPEID_PLAYER) ? MAX_PLAYER_STEALTH_DETECT_RANGE : ((Creature const*)u)->GetAttackDistance(this);//Always invisible from back (when stealth detection is on), also filter max distance cases// вы всегда невидимы, если противник к вам спиной, кроме случая с 0.24 ярда, см. вышеbool isInFront = viewPoint->isInFrontInMap(this, visibleDistance);if(!isInFront)return false;//Calculation if target is in front//Visible distance based on stealth value (stealth rank 4 300MOD, 10.5 - 3 = 7.5)// поехали считать, здесь this - это тот кого вы будете обнаруживать, u - вы, для примера берем this - друль, u - рога. Допустим пока вы не в стелсе, я просто покажу как считать// На друле одеты боты +5 к уровню стелса и наложна аура +8 к уровню стелса// уровень стелса друли - 300, роги тоже - 300, Сид слегка ошибся, он другой провл смотрел - у хантовской кошки// 10.5 - (300/100) = 10.5 - 3 = 7.5 ярдовvisibleDistance = 10.5f - (GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH)/100.0f);//Visible distance is modified by//-Level Diff (every level diff = 1.0f in visible distance)// различия в левелах нету, предположим что оба 60, если же различия есть, то сначала считается левел того, кого палят, потом тот кто палит.int32 level_diff = int32(u->GetLevelForTarget(this)) - int32(GetLevelForTarget(u));if (abs(level_diff) > 3)visibleDistance += level_diff;elsevisibleDistance += 0.5f*level_diff;// я говорил про ауры к уровню стелса, это здесь, суммарно у нас 13, 5+8 = 13//This allows to check talent tree and will add addition stealth dependent on used points)int32 stealthMod = GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH_LEVEL);if(stealthMod < 0)stealthMod = 0;//-Stealth Mod(positive like Master of Deception) and Stealth Detection(negative like paranoia)//based on wowwiki every 5 mod we have 1 more level diff in calculation// ведем расчет, стелс левел - 13, допустим у роги детекта нету никакого, из значения детекта вычесть это самое 13(стелс-левел) и делим все на 5. У// нас получилось (0-13) / 5 = -2.6, полученное число ПЛЮСУЕМ к дистанции, т.к у нас оно отрицательное, то отнимаем, в итоге 7.5 - 2.6 = 4.9visibleDistance += (int32(u->GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH_DETECT)) - stealthMod)/5.0f;visibleDistance = visibleDistance > MAX_PLAYER_STEALTH_DETECT_RANGE ? MAX_PLAYER_STEALTH_DETECT_RANGE : visibleDistance;// recheck new distance// Вот и чек, если друль в 4.9 ярдах, мы его детектим, иначе нет, возможно тут не учитывается 3 параметр 3D измерение расстояния на местности,// но уж того бреда, что все тут упорно подтверждают - точно нетуif(visibleDistance <= 0 || !IsWithinDist(viewPoint,visibleDistance))return false;// Now check is target visible with LoS// проверка на ЛОС, возможно ее стоит делать раньшеfloat ox,oy,oz;viewPoint->GetPosition(ox,oy,oz);return IsWithinLOS(ox,oy,oz); Комменты в самом коде, по-русски PS - Shadowmeld в формах НЕ РАБОТАЕТ, эта абилка расовая АКТИВИРУЕТСЯ, она не пассивна ну никак. Я не знаю как проверяли в кошке шадовмелд PS2 - апдейт листов видимости идет каждые 3 секунды PS3 - а вы в курсе, что если на БГ вас увидел кто-то, вы видимы абсолютно всем членам группы/рейда того, кто вас увидел
-
С ДР, сотрясатель основ эмуляторов Отметь как надо, твой праздник сегодня. Здоровьяя, счастья, денег, не быдло-кода и т.д
-
Слухи, не соответствующие действительности.Стелс детект зависит от уровня стелса, доп. модификаторов, застунена ли цель и стоит ли она к вам спиной, а еще и разница в левелах, базовая дистанция обнаружения без учета модификаторов и уровня с уровнем стелса 300 - 7.5 ярдов.//Visible distance based on stealth value (stealth rank 4 300MOD, 10.5 - 3 = 7.5)visibleDistance = 10.5f - (GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH)/100.0f);Остальной код не секретный, но обьяснять его задолбаюсь.И пара скринов. Просто подходил рогой и чекал дебаг.
-
Для мили спелл ударов и чисто магических считается по разному, но сути не меняет. Для мили, бросок кубика, и эти 25% докидываются к базовому мисс шансу, потом сравнивается с броском кубика, если бросок меньше этой суммы, резист. Для магии, от хит шанса(спец формула типа x = 94 - y, где x - хит шанс, y - модификатор разницы в уровнях например) отнимаются эти 25%, потом кидается кубик, потом из 10000 вычитается этот хит шанс и так же прелестнивается, если это число больше ролла - резист. Может быть не совсем корректно, но талант работает, менять никто ничего не будет, все претензии к рандом генератору, вопросы?
-
или в Диабло3 задротить, фармить днями и ночами и перфектный шмот продавать за еврики. Как показала практика - бурги охотно покупают, да и наши не отстают. Девиз - "Каждый школьник может заработать себе на ламборгини"
-
Я хз, что вы там насчитали, механика боевой системы оффлайк с косметическими недочетами, это да. Пример Бью шаманом 60 lvl с прокачанным скиллом mace 300/300 по High Priest Venoxis (boss) my skill = 300 boss skill = 5 * level = 5 * 63 = 315 Считаем мисс шанс База - 5%, еще докидывается именно разницей в скилах по такой формуле // PvP - PvE melee chancesif ( pVictim->GetTypeId() == TYPEID_PLAYER )missChance -= skillDiff * 0.04f;else if ( skillDiff < -10 )missChance -= (skillDiff + 10) * 0.4f - 2.0f; // 7% base chance to miss for big skill diff (%6 in 3.x)elsemissChance -= skillDiff * 0.1f; skillDiff = -15 (300 - 315), значит missChance = 5 - ((-15 + 10) * 0.4 - 2) = 5 + 4 = 9% Там дальше ауры усиления хита, и уменьшения хита, их мы учитывать не будем, итого - 9% шанс промахнутся. Для дуалов все по-другому, я просто покажу суть Далее считается шанс крита для меня и для босса шанс блокировать(block), увернутся(dodge), парировать(parry). У меня получились такие значения, крит - 2.25%, блок - 0%, додж - 0%, парри - 0%. Далее все умножается на 100 и подается для броска кубика. int32 attackerMaxSkillValueForLevel = GetMaxSkillValueForLevel(pVictim); (300 для нашего случая)int32 victimMaxSkillValueForLevel = pVictim->GetMaxSkillValueForLevel(this); (315 для нашего случая)int32 attackerWeaponSkill = GetWeaponSkillValue(attType,pVictim); (300 для нашего случая)int32 victimDefenseSkill = pVictim->GetDefenseSkillValue(this); (315 для нашего случая)int32 skillBonus = 4 * ( attackerWeaponSkill - victimMaxSkillValueForLevel ); Считаем скилл бонус int32 skillBonus = 4 * ( attackerWeaponSkill - victimMaxSkillValueForLevel ), attackerWeaponSkill - ваш ТЕКУЩИЙ уровень владения оружием, victimMaxSkillValueForLevel - 315, считается для мобов так же, level * 5 Итого получили -60, (300-315) * 4. Остальные два параметра - это деф скил противника, и МАКСИМАЛЬНЫЙ уровень владения оружием для этого уровня, нужны позже Кидаем кубик (0 - 10000) Мне выпало - 6075 Берется темповая переменная и присваивается мисс шанс, 9 * 100 = 900, итак первым определяется мисс. 6075 > 900, мисса уже нету. Следующим считается додж. Считается в целом так, прелестнивается ролл с суммой предыдущих темповых переменных, если б был додж шанс, то мы бы его внесли в тп (тп - темповая переменная для краткости), потом сняли 60 очков, и сравнили бы с роллом. Например был бы додж шанс - 20%, т.е 2000, 2000 + 900 (мисс) - 60 (скилл бонус), было бы 2840. Но мы пропускаем. Далее идет расчет парирования, тоже пропускаем. Следующим идет расчет глансинга. Остановимся. Проверки, работает только для мобов выше уровнем, кроме петов и т.д int32 skill = attackerWeaponSkill; //(300)int32 maxskill = attackerMaxSkillValueForLevel; //(300)skill = (skill > maxskill) ? maxskill : skill; //(300) если skill > maxskill тогда берем maxskill, если нет - берем skilltmp = (10 + 2*(victimDefenseSkill - skill)) * 100; // victimDefenceSkill = 315tmp = tmp > 4000 ? 4000 : tmp; tmp вышло 4000, т.е максимальный шанс глансинга - 40%. Я дал пояснения, сами пересчитайте, конструкция вида (a > b ) ? a : b означает, что если a > b то берется a, а если a < b, то b Суммируем с предыдущими тп - у нас только мисс - 900, 4000 + 900 = 4900 6075 > 4900, нету глансинга. Далее блок, тоже пропускаем. Идет расчет криты. Остановимся. Все то же самое 4900 + 225 = 5125. 6075 > 5125, нету криты Дальше считается крашинг, но это только для мобов, такая формула // mobs can score crushing blows if they're 3 or more levels above victim// or when their weapon skill is 15 or more above victim's defense skilltmp = victimDefenseSkill;int32 tmpmax = victimMaxSkillValueForLevel;// having defense above your maximum (from items, talents etc.) has no effecttmp = tmp > tmpmax ? tmpmax : tmp;// tmp = mob's level * 5 - player's current defense skilltmp = attackerMaxSkillValueForLevel - tmp;if(tmp >= 15){// add 2% chance per lacking skill point, min. is 15%tmp = tmp * 200 - 1500;if (roll < (sum += tmp)){DEBUG_FILTER_LOG(LOG_FILTER_COMBAT, "RollMeleeOutcomeAgainst: CRUSHING <%d, %d)", sum-tmp, sum);return MELEE_HIT_CRUSHING;}} Считайте кому интересно, данные все есть выше и как некоторые конструкции разбирать. В итоге я получил обычный мили удар. Все вышенаписанное исключительно для обычных мили атак, не спеллов, не магии.
-
Никогда, подчеркиваю - никогда, миссы ничем не вытеснятся. Путаешь с дефом, где после определенного значения из таблицы уходили крашинги и криты. А миссы не зависят ни от чего внешнего, только от разницы левелов и еще каких-то строго фиксированных параметров.
-
Есть маска инвиза, маска обнаружения невидимости target->m_detectInvisibilityMask |= (1 << inv_value);inv_value - число, Value из базы, например для спелла 16712 - 100000. target->m_invisibilityMask |= (1 << inv_value);inv_value - число, Value из базы, например для спелла 12845 - 100. Потом хитрые вычисления, ну грубо даже что 100000 > 100, значит детект, но это очень-очень грубо, там еще алкоголь и стелс особо считаются, есть отдельный стелс детект, там значение указывает на дистанцию обнаружения visibleDistance += u->GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_STEALTH_DETECT, 1)* 0.5f; Возьмем спелл 19480, там значение стелс детекта - 30, 30 * 0.5 = +15 метров лучше стелс детект от обычного. Модификаторы складываются, т.е если есть еще что-то на стелс детект, считается об общего значения, т.е (30 + x) * 0.5
-
С учетом того, что во времена WoW Classic на оффе подобных аддонов не было, сей функционал открывает доступ к написанию ботов, причем серьезного качества, я подумаю над тем, стоит ли вносить аддон в запрещенные, но пока не запрещено - пользуйтесь
-
-> Potroshishkin Оффтоп я ж присылал тебе на почту исправленный аддон, вот только флуд воспроизвести не смог, ну никак, мб скрины пришлешь, где мутит, отладка 2 часа стояла, не было скрытых/невидимых сообщений
-
Оффтоп Линканул в конфу, придем поржать*А флуд-контроль радостно потирает ручки в ожидании мутов*
-
Маловато будет для власти и продажных женщин хоть бы абсента прикупить вместо вина
-
Ахахахаха
-
На каком этапе формируеться квестлут с мобов?
Axon replied to cutuzoff's topic in Классовая механика
Восстановят - когда приходит время респауна, обьект удаляется из мира и ставится новый, типа обновление, для игроков это незаметно, а пока время респа не пройдет, обьект так и будет стоять недолутнутый. На оффе 100 раз такое встречал, когда в руде одни камни остаются и т.д, а потом все восстанавливалось через пару-тройку часов -
На каком этапе формируеться квестлут с мобов?
Axon replied to cutuzoff's topic in Классовая механика
Чистый бред, лут как выше было сказано, формируется, когда вы лутаете собственно моба, т.е подошли и ткнули мышью и открылось окно лута, так вот между тыком и появлением окна лут и формируется. Никаких аддонов невозможно создать, да и я забанил бы за такую "автоматизацию", даже в катаклизме такую бредню создать невозможноГенератор случайных чисел на сервере, ему тихо плевать на игроков, и на их компьютеры, он сам по себе работает....и зафига его синхронизировать? чтобы точно определять упадет ли с моба тот или иной итем? ага щас...я бы никогда такое тут не допустил, даже будь это возможным, но это еще к тому же и невозможно, к моей радости
