Saggitarius Fun By CTuMyJI (Movies) + Скрины кушают трафик:)

Мувики, фрапсы, скриншоты, рисунки и прочее творчество.

Сообщение AHTOXA » 02 сен 2009, 20:48

Изображение
такой взгляд, обидел кто?...
Аватара пользователя
AHTOXA
Местный
Местный
 
Сообщения: 1665
Зарегистрирован:
08 май 2008, 13:12
Откуда: местный
Has thanked: 1 time
Have thanks: 1 time

Сообщение Royal Hunt » 02 сен 2009, 21:14

pumb писал(а):
Royal Hunt писал(а):цука кого ты каждый раз отсылал вместо себя? >.<

То ДЕ был.

вы не врите!
А Марину кто играл? Неужели ОНА?
nowai out =\
Drug, Disease, and Drama Free
Аватара пользователя
Royal Hunt
Школота
Школота
 
Сообщения: 3
Зарегистрирован:
01 сен 2009, 19:28
Откуда: from teh out of nowhere
Has thanked: 0 time
Have thanks: 0 time

Сообщение pumb » 02 сен 2009, 21:32

Royal Hunt писал(а):А Марину кто играл? Неужели ОНА?

Сестра ДЕ.
Kiss my ass. You don't like me? I don't care (c) Manowar
Аватара пользователя
pumb
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 6818
Зарегистрирован:
23 июл 2006, 16:24
Has thanked: 2 times
Have thanks: 7 times

Сообщение Enceladus » 03 сен 2009, 09:31

Если кому интересно, то в краденом С4 сервере всё обстоит так:
final_block = base_shield_block * dex_modifier * skills_multiplier
base_shield_block зависит от щита и загружается из itemdata.txt (поле shield_defense_rate, обычно равно 20).
Все бонусы к блок рейту - "умножалки", "добавлялок" для блок рейта не существует в принципе. То есть тот же Bless Shield 6 умножает skills_multiplier на 1.8.
Разницы между дальними/ближними атаками в плане шанса блока в краденом С4 сервере вроде нет. Если она в самом деле наблюдается на Алькаре, то это - дело рук экстендера (какой-то там явно есть).

Что касается опытов - не верь глазам своим в сетевых играх. В том же Д2 целый класс в ПвП очень сильно зависит от десинхронизации, которую может порождать своим скиллом Charge. :}
А код для блока очень простой ("идеальный блок", кстати, везде такой же, как и в случае с блоу-скиллами, о которых я писал).
Глокая куздра штеко будланула бокра и курдячит бокрёнка.
Аватара пользователя
Enceladus
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 2329
Зарегистрирован:
21 авг 2007, 07:38
Has thanked: 0 time
Have thanks: 60 times

Сообщение DeFoX » 03 сен 2009, 18:52

Enceladus писал(а):Разницы между дальними/ближними атаками в плане шанса блока в краденом С4 сервере вроде нет. Если она в самом деле наблюдается на Алькаре, то это - дело рук экстендера (какой-то там явно есть).

хм... ну, разница между мили ударами и выстрелами есть, и видна невооруженным глазом (собсвенно так было еще на С1), это четко видно на танках: ТК, ШК, паладин, которые стрелы блочат всегда и с любой стороны, а вот мили удары - увы и ах
lineage.alkar.net - "Оставь надежду, всяк сюда входящий" © Данте Алигьери
Аватара пользователя
DeFoX
Местный
Местный
 
Сообщения: 1348
Зарегистрирован:
26 май 2006, 21:05
Откуда: Ямы Собаки (Анго)
Has thanked: 0 time
Have thanks: 0 time

Сообщение pumb » 03 сен 2009, 18:53

Причина уже найдена :)
Kiss my ass. You don't like me? I don't care (c) Manowar
Аватара пользователя
pumb
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 6818
Зарегистрирован:
23 июл 2006, 16:24
Has thanked: 2 times
Have thanks: 7 times

Сообщение Enceladus » 03 сен 2009, 19:32

хм... ну, разница между мили ударами и выстрелами есть, и видна невооруженным глазом (собсвенно так было еще на С1), это четко видно на танках: ТК, ШК, паладин, которые стрелы блочат всегда и с любой стороны, а вот мили удары - увы и ах

Разницы между дальними/ближними атаками в плане шанса блока в краденом С4 сервере

Если нужно - могу показать листинги с пояснениями.
Глокая куздра штеко будланула бокра и курдячит бокрёнка.
Аватара пользователя
Enceladus
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 2329
Зарегистрирован:
21 авг 2007, 07:38
Has thanked: 0 time
Have thanks: 60 times

Сообщение DeFoX » 04 сен 2009, 07:53

Enceladus писал(а):Если нужно - могу показать листинги с пояснениями.

Если не сильно затруднит (я верю и на слово, естесвенно, просто интересно) Изображение
lineage.alkar.net - "Оставь надежду, всяк сюда входящий" © Данте Алигьери
Аватара пользователя
DeFoX
Местный
Местный
 
Сообщения: 1348
Зарегистрирован:
26 май 2006, 21:05
Откуда: Ямы Собаки (Анго)
Has thanked: 0 time
Have thanks: 0 time

Сообщение Enceladus » 04 сен 2009, 09:18

Скилл Bless Shield 6:
Код: Выделить всё
effect = {{p_shield_defence_rate;80}}

Состоит из единственного Pump-эффекта p_shield_defence_rate, с единственным параметром.

Вот метод Pump() эффекта p_shield_defence_rate:
Код: Выделить всё
.text:00000000007BD880 CSkillEffect_p_shield_defence_rate__Pump proc near
.text:00000000007BD880                                       
.text:00000000007BD880                                         
.text:00000000007BD880
.text:00000000007BD880 var_28          = qword ptr -28h
.text:00000000007BD880 var_10          = qword ptr -10h
.text:00000000007BD880 var_8           = qword ptr -8
.text:00000000007BD880 arg_18          = qword ptr  20h
.text:00000000007BD880
.text:00000000007BD880                 sub     rsp, 48h
.text:00000000007BD884                 mov     [rsp+48h+var_28], 0FFFFFFFFFFFFFFFEh
.text:00000000007BD88D                 mov     [rsp+48h+arg_18], rbx
.text:00000000007BD892                 mov     [rsp+48h+var_8], rsi
.text:00000000007BD897                 mov     [rsp+48h+var_10], rdi
.text:00000000007BD89C                 mov     rbx, rdx
.text:00000000007BD89F                 mov     rdi, rcx
.text:00000000007BD8A2                 mov     eax, cs:0E418898h
.text:00000000007BD8A8                 lea     rsi, asc_A6A300 ; "CSkillEffect_p_shield_defence_rate::Pum"...
.text:00000000007BD8AF                 test    al, 1
.text:00000000007BD8B1                 jnz     short loc_7BD8CA
.text:00000000007BD8B3                 or      eax, 1
.text:00000000007BD8B6                 mov     cs:0E418898h, eax
.text:00000000007BD8BC
.text:00000000007BD8BC loc_7BD8BC:                             
.text:00000000007BD8BC                 mov     rcx, rsi        ; wchar_t *
.text:00000000007BD8BF                 call    sub_401500
.text:00000000007BD8C4                 mov     cs:0E418894h, eax
.text:00000000007BD8CA
.text:00000000007BD8CA loc_7BD8CA:                           
.text:00000000007BD8CA                                         
.text:00000000007BD8CA                 mov     rcx, gs:58h
.text:00000000007BD8D3                 mov     eax, cs:1A6116ECh
.text:00000000007BD8D9                 mov     r9d, 4C158h
.text:00000000007BD8DF                 mov     r8, [rcx+rax*8]
.text:00000000007BD8E3                 movsxd  rdx, dword ptr [r8+r9]
.text:00000000007BD8E7                 lea     r10, cs:400000h
.text:00000000007BD8EE                 movsxd  rcx, dword ptr [r10+rdx*4+1179D70h]
.text:00000000007BD8F6                 lea     eax, [rcx+1]
.text:00000000007BD8F9                 mov     [r10+rdx*4+1179D70h], eax
.text:00000000007BD901                 imul    rdx, 3E8h
.text:00000000007BD908                 add     rdx, rcx
.text:00000000007BD90B                 mov     [r10+rdx*8+115E7F0h], rsi
.text:00000000007BD913                 movlpd  xmm1, oword ptr [rdi+10h]
.text:00000000007BD918                 movlpd  xmm0, oword ptr cs:dbl_98E5A0 ; 100.0d
.text:00000000007BD920                 addsd   xmm1, xmm0
.text:00000000007BD924                 divsd   xmm1, xmm0
.text:00000000007BD928                 mulsd   xmm1, qword ptr [rbx+830h] ; shield_block_rate_multiplier
.text:00000000007BD930                 movsd   qword ptr [rbx+830h], xmm1
.text:00000000007BD938                 movsxd  rax, dword ptr [r8+r9]
.text:00000000007BD93C                 dec     dword ptr [r10+rax*4+1179D70h]
.text:00000000007BD944                 mov     rbx, [rsp+48h+arg_18]
.text:00000000007BD949                 mov     rsi, [rsp+48h+var_8]
.text:00000000007BD94E                 mov     rdi, [rsp+48h+var_10]
.text:00000000007BD953                 add     rsp, 48h
.text:00000000007BD957                 retn
.text:00000000007BD957 CSkillEffect_p_shield_defence_rate__Pump endp

Тут видно, что этот эффект делает лишь одно - домножает CCreature.shield_block_rate_multiplier (смещение 830h) на (parameter + 100.0) / 100.0

Посмотрим на метод Instant() эффекта i_p_attack (физическая атака без оверхита). Вот фрагмент, где происходит проверка на блокирование:
Код: Выделить всё
.text:00000000007A6802                 movsd   xmm11, xmm0
.text:00000000007A6807                 movsd   xmm2, xmm7
.text:00000000007A680B                 mov     rdx, rdi
.text:00000000007A680E                 mov     rcx, rbx
.text:00000000007A6811                 call    CCreature__IsShieldDefend
.text:00000000007A6816                 test    al, al
.text:00000000007A6818                 jz      loc_7A68A0

CCreature__IsShieldDefend принимает в качестве параметра в регистре xmm2 вспомогательный множитель блок рейта.

Чуть раньше по тексту можно увидеть, что он жёстко задаётся равным единице:
Код: Выделить всё
.text:00000000007A67B9                 movlpd  xmm7, oword ptr cs:dbl_97E8D8 ; 1.0d


Теперь посмотрим функцию CCreature__IsShieldDefend:
Код: Выделить всё
.text:00000000004DFDB5                 movsd   xmm7, xmm2

....

.text:00000000004DFF96                 movlpd  xmm1, oword ptr cs:dbl_98E5A0 ; 100.0d
.text:00000000004DFF9E                 xorpd   xmm0, xmm0
.text:00000000004DFFA2                 call    RandRange
.text:00000000004DFFA7                 movsd   xmm6, xmm0
.text:00000000004DFFAB                 mov     rax, [rsi]
.text:00000000004DFFAE                 mov     rcx, rsi
.text:00000000004DFFB1                 mov     rax, [rax+4C0h] ; GetShieldRate
.text:00000000004DFFB8                 call    rax
.text:00000000004DFFBA                 mulsd   xmm0, xmm7
.text:00000000004DFFBE                 comisd  xmm0, xmm6
.text:00000000004DFFC2                 jbe     short loc_4DFFC8 ; front - no block

Как видно, тут вызывается метод GetShieldRate() класса CCreature. Возвращаемое им значение домножается на параметр-множитель (он, как мы помним, равен единице) и сразу же используется в тесте. Очевидно, что тут нет никаких зависимостей от типа атаки. Где бы она могла быть? Потенциально - в методе GetShieldRate() (если бы он принимал в качестве параметров соответствующие данные о типе атаки).
Посмотрим по vtable класса CUser - какую конкретно функцию нам нужно смотреть.
Код: Выделить всё
.rdata:0000000000A87678                 dq offset GetShieldRate

А вот и сама функция:
Код: Выделить всё
.text:00000000004D8DF0 GetShieldRate   proc near               
.text:00000000004D8DF0                                       
.text:00000000004D8DF0                 movlpd  xmm0, oword ptr [rcx+0BA0h]
.text:00000000004D8DF8                 retn
.text:00000000004D8DF8 GetShieldRate   endp

Видно, что она феноменально проста, и всего лишь возвращает значение поля CCreature.current_block_rate (смещение BA0h). И тут нет зависимости от типа атаки.

Поле CCreature.current_block_rate заполняется в методе ValidateShieldDefend() класса CCreature.
Сперва берётся базовое значение блока для одетого щита (они загружены из itemdata.txt):
Код: Выделить всё
.text:00000000004EE101                 mov     rcx, rdi
.text:00000000004EE104                 call    sub_78DE20      ; CSharedItemData_GetInfo
.text:00000000004EE109                 mov     rsi, rax
.text:00000000004EE10C                 mov     rcx, [rax+0E0h]
.text:00000000004EE113                 mov     [rbx+0BA0h], rcx ; base_block

После этого оно умножается на dex_modifier и CCreature.shield_block_rate_multiplier:
Код: Выделить всё
.text:00000000004EE233                 mov     rax, [rbx]
.text:00000000004EE236                 mov     rcx, rbx
.text:00000000004EE239                 mov     rax, [rax+650h] ; GetDexModifier()
.text:00000000004EE240                 call    rax
.text:00000000004EE242                 mulsd   xmm0, qword ptr [rbx+830h]  ;CCreature.shield_block_rate_multiplier
.text:00000000004EE24A                 mulsd   xmm0, qword ptr [rbx+0BA0h]
.text:00000000004EE252                 movsd   qword ptr [rbx+0BA0h], xmm0

B опять-таки тут нет никаких зависимостей (в этой функции - и не должно быть).

Вот так, нигде нет смены шанса блока для разных типов атак. Если бы оно было, то осуществлялось бы скорее всего в методе Instant() эффекта и передавало бы CCreature::IsShieldDefend() отличный от единицы умножитель.

Написано несколько сумбурно, но тут есть всё необходимое, если вдруг кто-то сам захочет посмотреть всё в дизассемблере.
Глокая куздра штеко будланула бокра и курдячит бокрёнка.
Аватара пользователя
Enceladus
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 2329
Зарегистрирован:
21 авг 2007, 07:38
Has thanked: 0 time
Have thanks: 60 times

Сообщение uBaH » 05 сен 2009, 13:55

Enceladus писал(а):
Вот метод Pump


Почти pumb :)))
CTuMyJI (c4)
MAPBEH (c1)
Аватара пользователя
uBaH
Путешественник
Путешественник
 
Автор темы
Сообщения: 245
Зарегистрирован:
03 авг 2008, 18:03
Has thanked: 0 time
Have thanks: 0 time

Сообщение Hannassy » 07 сен 2009, 21:01

жестяк, и не впадлу же тут так распинаться :-?
Не можешь выиграть честно - выиграй хоть как-нибудь
Аватара пользователя
Hannassy
Новичок
Новичок
 
Сообщения: 59
Зарегистрирован:
28 янв 2007, 22:07
Откуда: Днепропетровск
Has thanked: 0 time
Have thanks: 0 time

Сообщение Enceladus » 08 сен 2009, 07:29

и не впадлу же тут так распинаться

Надеюсь, это ты не про пару копипастов из дизассемблера и несколько предложений комментариев?..
Глокая куздра штеко будланула бокра и курдячит бокрёнка.
Аватара пользователя
Enceladus
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 2329
Зарегистрирован:
21 авг 2007, 07:38
Has thanked: 0 time
Have thanks: 60 times

Сообщение Enceladus » 16 сен 2009, 18:21

Сейчас вот порылся в коде (выяснял шанс уворота). И таки нашёл эту злополучную тройку.
В самом деле, нет никакого бонуса блока против миссайлов для эффектов скиллов. Но вот для Attack Action шанс блока против Ranged умножается на 3.
Глокая куздра штеко будланула бокра и курдячит бокрёнка.
Аватара пользователя
Enceladus
Diablo II Member of Fame
Diablo II Member of Fame
 
Сообщения: 2329
Зарегистрирован:
21 авг 2007, 07:38
Has thanked: 0 time
Have thanks: 60 times

Сообщение superimba » 16 сен 2009, 22:18

бляf,fg;.dть а у меня не идёт !! что делать
[Вот кто я] [Манчкин 23%][Убийца 43%][Тусовщик: 17%][Исследователь 17%] www.zox.ru/content/test.php
Аватара пользователя
superimba
Новичок
Новичок
 
Сообщения: 169
Зарегистрирован:
22 июн 2009, 15:44
Has thanked: 0 time
Have thanks: 0 time

Сообщение DeFoX » 17 сен 2009, 19:50

Enceladus писал(а):Сейчас вот порылся в коде (выяснял шанс уворота). И таки нашёл эту злополучную тройку.
В самом деле, нет никакого бонуса блока против миссайлов для эффектов скиллов. Но вот для Attack Action шанс блока против Ranged умножается на 3.

Так вот где была собака зарыта Изображение
Ну, что ж, таким образом мы таки получили 100% блок стрел при 6-м блес шилде Изображение
lineage.alkar.net - "Оставь надежду, всяк сюда входящий" © Данте Алигьери
Аватара пользователя
DeFoX
Местный
Местный
 
Сообщения: 1348
Зарегистрирован:
26 май 2006, 21:05
Откуда: Ямы Собаки (Анго)
Has thanked: 0 time
Have thanks: 0 time

Пред.След.

Вернуться в L2 Media

Кто сейчас на конференции

Посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (находятся на конференции)
Этот раздел просматривают: нет зарегистрированных пользователей и гости: 1