guytis

Banned
  • Content Count

    156
  • Joined

  • Last visited

  • Feedback

    0%

Community Reputation

-38

4 Followers

About guytis

  • Rank
    Knight

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

2,139 profile views
  1. This appears, when you don't even know what you're doing Greetings.
  2. The problem is not the extender, the problem is the L2Server.exe. you need official H5 files
  3. jajaaj lo mas gracioso de todo fue esto, que quede grabado en la historia xD vos dijiste: "En fin nunca aportaste nada y no porque no quieras, sino porque no sabes una mierda de nada, segui usando ida pro... hay cosas mejores, y si vas s compilar un dll, dudo mucho que lo puedas hacer en ida" Si no usas IDA u orto desensamblador, como poder programar dentro de una dll el offset que tener que hookear, modificar,etc etc etc? o pensas que hacer una dll, es solamente decir hice una dll? que le pones dentro? aire como tu cerebro? jajja das asco... Sos un Ignorante!! dedicate a juntar carton si no te da la cabeza, porque yo jamas voy a aportar nada.
  4. boludito, si queres manipular skilles o hacer cambio de Race por medio de AI, tendrias que extender l2npc...El dia que uses IDA y aprendas a crear una estructura y descompilar por lo menos una funcion lo vas a entender burro... ves que no sabes ni de lo que hablas... dedicate a descargar files y levantar server todas las semanas. mientras que los demas hacemos la plata ya hace mas de 12 años ;) PD: Mañana viernes 28 de febrero a las 20:00Hs te invito a l2killzone.com.ar. Para que recuerdes de lo que estas hablando jajaja
  5. MOGOLICO, al usar AI tenes miles de limitacion, escribiendo en c++ , no existe ninguna limitacion... pobre idiota, ensima se hace el piola con alguien que ni conoce... anda taradito, vos no podes ni amenazar a tu papa para pedirle 5 pesos. y quien sabe, capas te va como a facu ;) boludito.
  6. nice binaries in 1 year xD Congratulations.
  7. 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
  8. Do you know if there is any arrangement that can be made and that this appears in F5?
  9. 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() }
  10. 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]; } }
  11. 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; } ?>
  12. 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; }
  13. 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