guytis

VIP Member
  • Content Count

    147
  • Joined

  • Last visited

  • Feedback

    0%

Community Reputation

-16 Bad

4 Followers

About guytis

  • Rank
    Heir

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1,768 profile views
  1. 7A882A movlpd xmm13, cs:dbl_9CCFB0 Hex dump = 66 44 0F 12 2D 7D 47 22 00 (9 bytes) fisrt 5 bytes 66 44 0F 12 2D 4 bytes 7D 47 22 00 (dbl_9CCFB0) WriteForm 5 = writememory in 7A882A+5
  2. Do you know if there is any arrangement that can be made and that this appears in F5?
  3. double g_MagicCriticalMultipler = 4.0; void SetMagicCriticalMultipler() { g_HookManager.WriteRelativeAddress(0x7A882A, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_hp_drain::Instant() g_HookManager.WriteRelativeAddress(0x7A9071, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_m_attack::Instant() g_HookManager.WriteRelativeAddress(0x7A98DA, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_m_attack_by_hp::Instant() g_HookManager.WriteRelativeAddress(0x7AA14B, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_m_attack_by_dist::Instant() g_HookManager.WriteRelativeAddress(0x7AFED5, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_death_link::Instant() g_HookManager.WriteRelativeAddress(0x7B274E, 5, &g_MagicCriticalMultipler, 0); //CSkillEffect_i_m_attack_over_hit::Instant() }
  4. I am not very sure and the function is not very well decompiled ... 0x7A8C20 in some other skills there is also like the CSkillEffect_i_hp_drain void __stdcall CSkillEffect_i_m_attack::Instant(CSkillEffect_i_m_attack *this, CCreature *pCreature, CCreature *pTarget, CSkillInfo *pSkillInfo, CSkillAction *pAction, double distance) { CSkillInfo *pSkillInfo_; // r13 CCreature *pTarget_; // rdi CCreature *pCreature_; // rsi CSkillEffect_i_m_attack *this_; // r15 __int64 v10; // r12 __int64 v11; // r8 __int64 v12; // rcx __int64 v13; // rax __int64 v14; // rax double fMAtk_F; // xmm6_8 CCreature *pTarget__1; // rbp CDoor *door; // r14 __int64 *v18; // rbx CreatureSharedData *pSD; // r11 double fMAtk; // xmm14_8 double StatWIT; // xmm15_8 int attributeType; // eax unsigned int level; // ebx User *pUser; // rax __int64 v25; // r8 __int64 v26; // r8 User *pUser_1; // rax User *pUser_2; // rax User *pUser_3; // rax double v30; // r8 __int64 v31; // rax int dmgFlag; // [rsp+20h] [rbp-128h] double _unkn610; // [rsp+160h] [rbp+18h] pSkillInfo_ = pSkillInfo; pTarget_ = pTarget; pCreature_ = pCreature; this_ = this; if ( !(dword_E418450 & 1) ) { dword_E418450 |= 1u; dword_E41844C = guard(L"CSkillEffect_i_m_attack::Instant()"); } v10 = TlsIndex; v11 = *(*(__readgsqword(0x58u) + 8i64 * TlsIndex) + 311640i64); v12 = g_CallStackIndex[v11 + 0x100000]; g_CallStackIndex[v11 + 0x100000] = v12 + 1; g_CallStackName[0][v12 + 1000 * v11] = L"CSkillEffect_i_m_attack::Instant()"; if ( pTarget_ ) { if ( pTarget_->vtable->base.base.base.IsCreature(pTarget_) || (pTarget_->vtable->base.CCreature__GetLevel)(pTarget_) || (pTarget_->vtable->base.sub_29)(pTarget_) || (pTarget_->vtable->base.sub_33)(pTarget_) ) { if ( !pTarget_->vtable->base.base.base.IsCreature(pTarget_) || (*&pTarget_->vtable->gap1D8[120])(pTarget_) ) { fMAtk_F = 0.0; pTarget__1 = 0i64; door = 0i64; v18 = (&unk_1112190 + 320008 * *(*(__readgsqword(0x58u) + 8 * v10) + 311640i64)); if ( *(v18 + 80000) >= 10000 ) CLog::Add(&g_winlog, LOG_ERROR, L"Lock stack is small?? -_-;;; kuooo"); v18[4 * *(v18 + 80000)] = 0i64; v18[4 * *(v18 + 80000) + 1] = 0i64; v18[4 * *(v18 + 80000) + 2] = L".\\SkillFxFunc.cpp"; v18[4 * *(v18 + 80000) + 3] = 1766i64; _InterlockedIncrement(v18 + 80000); CriticalSection::Lock(pCreature_->d.lpSharedDataLock, L"d:\\work\\l2server\\creature.h", 1349); pSD = pCreature_->d.pSD; fMAtk = pSD->fMAtk; if ( LOBYTE(pSD->bSpiritshot) ) fMAtk_F = fMAtk * pSD->dSpiritShotPower; StatWIT = pCreature_->vtable->CCreature::GetBaseStatWIT(pCreature_); _unkn610 = *&pCreature_->d._unkn610; CCreature::ReadUnlock(pCreature_); if ( pTarget_->vtable->base.base.base.IsCreature(pTarget_) ) { pTarget__1 = pTarget_; CCreature::ReadLock(pTarget_, L".\\SkillFxFunc.cpp", 1779); attributeType = pSkillInfo_->d.attributeType; if ( attributeType >= 0 && attributeType < 34 ) CCreature::GetAttributeBonus(pTarget_, pCreature_); pTarget_->vtable->CCreature::GetBaseStatWIT(pTarget_); level = (pTarget_->vtable->CCreature::GetLevel)(pTarget_); CCreature::ReadUnlock(pTarget_); } else if ( (pTarget_->vtable->base.sub_26)(pTarget_) ) { door = (pTarget_->vtable->base.sub_38)(pTarget_); CriticalSection::Lock(door->d.pLock, L".\\SkillFxFunc.cpp", 1793); (door->vtable->base.unknown_libname_2001_120)(door); level = 0; CriticalSection::Unlock(door->d.pLock, 0i64, 0); } else { level = LODWORD(_unkn610); } if ( StatWIT * 0.5 * pCreature_->d.magicCriticalRatePER + pCreature_->d.magicCriticalRateDIFF > rand() / 32767.0 * (100.0 - 0.0) + 0.0 && pCreature_->vtable->base.base.base.IsUser(pCreature_) ) { pUser = (pCreature_->vtable->base.base.base.MemoryObject__CastUser)(pCreature_); User::SendSystemMessage_0(pUser->_unkn2700[5], id_1280__Golpe_Critico_Magico); } sub_916C50(fMAtk + fMAtk_F); if ( pTarget_->vtable->base.base.base.IsUser(pTarget_) ) (pCreature_->vtable->base.base.base.MemoryObject__CastCreature)(pCreature_); if ( (this_->base->CSkillEffect_i__CheckResisted)(this_, level, v25, pSkillInfo_->d.nMagicLevel, COERCE_DOUBLE(*&StatWIT), 7.0, -130.0, 95.0, 0i64, 0i64, COERCE_DOUBLE(*&_unkn610)) || (this_->base->CSkillEffect_i__CheckResisted)(this_, level, v26, pSkillInfo_->d.nMagicLevel, COERCE_DOUBLE(*&StatWIT), 7.0, -100.0, 95.0, 1.0, 0i64, COERCE_DOUBLE(*&_unkn610)) ) { if ( pCreature_->vtable->base.base.base.IsUser(pCreature_) ) { pUser_1 = (pCreature_->vtable->base.base.base.MemoryObject__CastUser)(pCreature_); *&dmgFlag = 0i64; CSocket::Send(pUser_1->socket, "cdd", 100i64);// id_158__Tu_ataque_ha_fallado = 0x9E, } if ( pTarget_->vtable->base.base.base.IsCreature(pTarget_) && pTarget__1->vtable->base.base.base.IsUser(pTarget__1) ) { if ( pCreature_->vtable->base.base.base.IsUser(pCreature_) ) { (pCreature_->vtable->base.base.base.MemoryObject__CastUser)(pCreature_); pUser_2 = (pTarget__1->vtable->base.base.base.MemoryObject__CastUser)(pTarget__1); dmgFlag = 1; CSocket::Send(pUser_2->socket, "cdddS", 100i64);// id_159__Has_resistido_el_hechizo_de_s1 = 0x9F, } else if ( (pCreature_->vtable->base.sub_8)(pCreature_) ) { pUser_3 = (pTarget__1->vtable->base.base.base.MemoryObject__CastUser)(pTarget__1); dmgFlag = 1; CSocket::Send(pUser_3->socket, "cdddd", 100i64);// id_159__Has_resistido_el_hechizo_de_s1 = 0x9F, } } } if ( pTarget_->vtable->base.base.base.IsCreature(pTarget_) ) { LOBYTE(dmgFlag) = 1; (pTarget__1->vtable->CCreature::GotDamageBy)(pTarget__1, pCreature_, *&v30, 1i64, *&dmgFlag); } else if ( (pTarget_->vtable->base.sub_26)(pTarget_) ) { (door->vtable->base.unknown_libname_2001_118)(door, pCreature_); } v31 = *(*(__readgsqword(0x58u) + 8 * v10) + 311640i64); --g_CallStackIndex[v31 + 0x100000]; } else { v14 = *(*(__readgsqword(0x58u) + 8 * v10) + 311640i64); --g_CallStackIndex[v14 + 0x100000]; } } else { v13 = *(*(__readgsqword(0x58u) + 8 * v10) + 311640i64); --g_CallStackIndex[v13 + 0x100000]; } } else { --g_CallStackIndex[v11 + 0x100000]; } }
  5. set Domain and date expire Unix <?php $dominio = "127.0.0.1"; $fecha_unix = "1649305434"; $key[1] = crearKey($dominio, $fecha_unix, "d828ef0cdcaffba468e21aa1f64f0621"); $key[2] = crearKey($dominio, $fecha_unix, "ed07dd89f84f1a2e5991847e13fde8d0"); $key[3] = crearKey($dominio, $fecha_unix, "be5bf830d02eba8b6501dd523d04c0ca"); $key[4] = crearKey($dominio, $fecha_unix, "2c62c938b72c80fe6f7a6fcc62629ade"); $key[5] = crearKey($dominio, $fecha_unix, "85ff5e23c4566cfb1f58b262c920651f"); $key_final = $key[1] . $key[1] . $key[4] . $key[1] . $key[2] . $key[1] . $key[3] . $key[3] . $key[5] . $key[5]; echo $key_final; function crearKey($dominio, $fecha_unix, $md5) { $md5_key = md5( $dominio . $fecha_unix . $md5); $key_real = $dominio. "|" . $fecha_unix . "|" . $md5_key; $enc1 = base64_encode($key_real); $enc2 = strrev( $enc1); $enc3 = str_replace( '-', '', $enc2 ); $enc4 = strtr($enc3,'+Rc0OYVnNdD62qQ','=cRO0VYNnDd26Qq'); $enc5 = str_replace( '=', '@+', $enc4 ); return $enc5; } ?>
  6. yes 0x69B2FD v12= ??? double CAttackAction::CalcDamage(double dPAttack, double dRandDamageBonus, double dPDefend, double dShieldDefense, double dAttrBonus, double dCriticalBonus, double dCriticalDamageBonusPer, double dCriticalDamageBonusDiff) { defsh = 1.0; if ( dShieldDefense + dAttrBonus >= 1.0 ) defsh = dShieldDefense + dAttrBonus; return (dRandDamageBonus * dPDefend * dCriticalDamageBonusPer * dCriticalDamageBonusDiff + v12) * 70.0 / defsh * dCriticalBonus; }
  7. Hi, here is the 100% decompiled CItem::EnchantItem function Config::ExceptionMailing: it is never false L2Server.exe C4 In case anyone needs it. bool CItem::EnchantItem(CItem *scroll, CItem *pItem, User* pUser) { pUser_ = pUser; pItem_ = pItem; scroll_ = scroll; if ( !pItem_ ) { return false; } pSID = pItem_->d.pSID; nEnchantLevel = pSID->nEnchantLevel; SlotType = (pSID->nSlotType >> 15) & 1; if ( !(pItem_->vtable->base.Config::ExceptionMailing)) { if ( nEnchantLevel < 3 ) goto SUCCESS; if ( nEnchantLevel >= 20 ) { prob = 0.0; } else { if ( SlotType ) chance = WeaponEnchantTable[nEnchantLevel] * 100.0; else chance = ArmorEnchantTable[nEnchantLevel] * 100.0; prob = 100.0 - chance; } if ( nEnchantLevel >= 15 ) prob = prob * 0.5; random = rand(); dice = 100.0 - 0.0; if ( nEnchantLevel < 20 && prob >= random / 32767.0 * (100.0 - 0.0) + 0.0 ) { CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant success, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random / 32767.0 * dice + 0.0, prob); goto SUCCESS; } CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant fail, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random / 32767.0 * dice + 0.0, prob); goto FAIL; } pII = pItem_->d.pII; if ( pII->nCrystalType < CrystalC || !LOBYTE(pII->magicWeapon) ) { prob_1 = 70.0; if ( nEnchantLevel < 3 ) goto SUCCESS; if ( nEnchantLevel >= 15 ) prob_1 = 35.0; random_1 = rand(); if ( prob_1 >= random_1 / 32767.0 * (100.0 - 0.0) + 0.0 ) { CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random_1 / 32767.0 * (100.0 - 0.0) + 0.0, prob_1); goto SUCCESS; } CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random_1 / 32767.0 * (100.0 - 0.0) + 0.0, prob_1); goto FAIL; } prob_2 = 40.0; if ( nEnchantLevel >= 3 ) { if ( nEnchantLevel >= 15 ) prob_2 = 20.0; random_2 = rand(); if ( prob_2 >= random_2 / 32767.0 * (100.0 - 0.0) + 0.0 ) { CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random_2 / 32767.0 * (100.0 - 0.0) + 0.0, prob_2); goto SUCCESS; } CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", nEnchantLevel, random_2 / 32767.0 * (100.0 - 0.0) + 0.0, prob_2); FAIL: etcType = scroll_->d.pII->etcType; if ( etcType == EtcItemBlessedScrollEnchantWeapon || etcType == EtcItemBlessedScrollEnchantArmor ) { User::SendSystemMessage(pUser_->socket, id_1517__Fallo_en_el_encantamiento_blessed_El_valor_del_encantamiento_del_item_se_convirtio_a_0); CDB::RequestEnchantItem(&g_CDB, scroll_, pItem_, 0, pUser_); } else { CSocket::Send(pUser_->socket, "cdddddd", 100i64); CDB::RequestEnchantItemFail(&g_CDB, scroll_, pItem_, pUser_); } goto END; } SUCCESS: if ( nEnchantLevel ) { CSocket::Send(pUser_->socket, "cdddddd", 100i64); } else { v25 = 3; v24 = 1; CSocket::Send(pUser_->socket, "cdddd", 100i64, 62i64, v24, v25, pItem_->d.pSID->nItemID); } CDB::RequestEnchantItem(&g_CDB, scroll_, pItem_, nEnchantLevel + 1, pUser_); END: return false; } WeaponEnchantTable dq 0 ; DATA XREF: CItem__EnchantItem+27B↑r .rdata:0000000000A06B88 align 20h .rdata:0000000000A06BA0 dq 0.3333333333333333 .rdata:0000000000A06BA8 dq 0.6666666666666666 .rdata:0000000000A06BB0 dq 0.75 .rdata:0000000000A06BB8 dq 0.8 .rdata:0000000000A06BC0 dq 0.8333333333333334 .rdata:0000000000A06BC8 dq 0.8571428571428571 .rdata:0000000000A06BD0 dq 0.875 .rdata:0000000000A06BD8 dq 0.8888888888888888 .rdata:0000000000A06BE0 dq 0.9 .rdata:0000000000A06BE8 dq 0.9090909090909091 .rdata:0000000000A06BF0 dq 0.9166666666666666 .rdata:0000000000A06BF8 dq 0.9230769230769231 .rdata:0000000000A06C00 dq 0.9285714285714286 .rdata:0000000000A06C08 dq 0.9333333333333333 .rdata:0000000000A06C10 dq 0.9375 .rdata:0000000000A06C18 dq 0.9411764705882353 .rdata:0000000000A06AE0 ArmorEnchantTable dq 0 ; DATA XREF: CItem__EnchantItem:loc_628E83↑r .rdata:0000000000A06AE8 dq 0 .rdata:0000000000A06AF0 dq 0 .rdata:0000000000A06AF8 dq 0.3333333333333333 .rdata:0000000000A06B00 dq 0.6666666666666666 .rdata:0000000000A06B08 dq 0.75 .rdata:0000000000A06B10 dq 0.8 .rdata:0000000000A06B18 dq 0.8333333333333334 .rdata:0000000000A06B20 dq 0.8571428571428571 .rdata:0000000000A06B28 dq 0.875 .rdata:0000000000A06B30 dq 0.8888888888888888 .rdata:0000000000A06B38 dq 0.9 .rdata:0000000000A06B40 dq 0.9090909090909091 .rdata:0000000000A06B48 dq 0.9166666666666666 .rdata:0000000000A06B50 dq 0.9230769230769231 .rdata:0000000000A06B58 dq 0.9285714285714286 .rdata:0000000000A06B60 dq 0.9333333333333333 .rdata:0000000000A06B68 dq 0.9375 .rdata:0000000000A06B70 dq 0.9411764705882353 .rdata:0000000000A06B78 dq 0.9444444444444444
  8. hahaha wants to earn money getting everything for free haha .. my god.