- Katılım
- 7 Ocak 2015
- Konular
- 127
- Mesajlar
- 1,273
- Çözüm
- 2
- Online süresi
- 20d 3h
- Reaksiyon Skoru
- 177
- Altın Konu
- 0
- TM Yaşı
- 11 Yıl 5 Ay
- Başarım Puanı
- 174
- MmoLira
- 4,407
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Konu Başlıkları | Linkler |
Sersemlik bugu Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
4 Taş Depo Bugu |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Loncadayken Krallık değiştirme Fix | Tıkla |
Parti Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
At level Bug Fix | Tıkla |
Silah evrim sistemi efekt+ Bağırmada Evrim gözükmeme sorunu fix | Tıkla |
İtemSwap bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Lonca Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Sql İnjeckt Fixleyenler Yapsın Mutlaka Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Sql İnjeckt Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Party Hp Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
| Envanterden depoya item atma FİX. | Tıkla |
Quest Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Kuşak Sistem Kemer Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
4 Taş sistemi Artırma bug fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Cinsiyet Değiştirirken Kostum Bugu Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Omuz Kuşagı Kombinasyon bugu Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Lua esc Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Shop Grid Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Kuşak Sistemi Envanter Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Kilitli İtem Yansıtma Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Lonca Güvenliği Açıgı Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Internal IP Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Hamle Atınca Hp düşme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Check Client Version Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Ch Düşmesiyle Alakalı Game.core |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Lonca exploit Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Cube Core Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Lycan Turmali Sorunu Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Envanter Doluyken İtem Değişmeme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Oyundan atma Speed Hack detect Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Karakter Silmeme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Karakter İsim Hilesi Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Hareket Ederken İtem değişmeme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Bineğe Binince Oyundan Atma Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Kuşak görüntü bugu Fix | Tıkla |
Skillde Saldırı değeri Gözükmeme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Ofline Shop Sql Injecktion Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Bazı Beceri kitab bugları fix | Tıkla |
C++ Sql İnjection-Arkadaş-Fısıltı-Lonca |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
P2P GIRIŞ BAĞLANTISINI ENGELLEME |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Quest Instant Speed Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Maden Bot Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Absürt Bonus Engelli |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Envanter Süresi Olmadan Şebnem Bugunu Fixleme |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Harita Yüklenirken Dc Yeme Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Kostum Bugu Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Zırh Tak Çıkar Bugu Fix | Tıkla |
Sysr Hatalarını Çözümleri |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
SQUENCE LOG FİX | Tıkla |
Kazma Veya Olta Varken Kostum Engeli Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Reload q Crash Bug Fix |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Offline shop açıkken krallık değiştirme && isim izni kullanma fixi |
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
|
Yeni Karakter ekleyince "Karakter Yaratamazsın Hatasının fix | Tıkla |
Pazardan 2 kişi aynı anda aynı itemi alınca dc fix | Tıkla |
Pet yaş fixi piyasadakinden farklı | Tıkla |
[C++] Ticaret Ekranı Açık iken Quest Engell | Tıkla |
Offline Shop item kaybolma fix | Tıkla |
Binek geri atma sorunu fix | Tıkla |
Kullanılan itemi direk depoya koyma fix | Tıkla |
SEQUENCE_LOG Fix (Sysser Kapatmaz Sorun fix) | Tıkla |
TC OFFLİNE SHOP KULLANANLAR İÇİN 4-6 TAŞ FİXİ | Tıkla |
Gelinlik & Smokin takılı ise , kostüm giyme engelleme | Tıkla |
Büyü çözme sklinde oluşan lag fix | Tıkla |
#Sunucu Tabanlı performans ve iyileştirmeler.
#Sunucu tabanlı iyileştirme ve performanslar | Linkler |
#Oto kanal başlatma kanal düşenler için ideal. | Tıkla |
Oto Kanal Başlatma Kanal düşenlere için ideal Güncel | Tıkla |
#Kanal başında 4 adet core dosyası #PERFORMANS | Tıkla |
#Sistemin İsmi | #Sistemin Linki |
Boss güvenlik sistemi | Tıkla |
Boss sekmeme sistemi | Tıkla |
Lonca lider tagı sistemi | Tıkla |
Depo banka sistemi | Tıkla |
Offical character select | Tıkla |
Offical kanal değiştirme | Tıkla |
Kostum Efekt Verme Sistemi | Tıkla |
Serverinfo clientten çeksin | Tıkla |
Oto pot Aç Kapat yaparak oluşan lag önlem | Tıkla |
| #New Klavye Kontrollü Pet Attack Sistemi | Tıkla |
| #New Simya Güncellemesi | Tıkla |
# | Source | Linkler |
1 | Toplu Source fixleri | SourceFix |
2 | Warning fixleri | Warningfix |
3 | Lycan ekleme[C++/Lua/Py] | LycanAdd |
#New Yazı tipi güncellemesi /Times New Roman /
Kod:
if (pkOldGrid)
m_pkGrid = M2_NEW CGrid(pkOldGrid, 5, m_iSize);
else
m_pkGrid = M2_NEW CGrid(5, m_iSize);
Kod:
if (pkOldGrid) {
m_pkGrid = M2_NEW CGrid(pkOldGrid, 5, m_iSize);
delete pkOldGrid;
}
else
m_pkGrid = M2_NEW CGrid(5, m_iSize);
Find in ClientManager.cpp(x2):
[CODE title="Add(x2):" highlight="delete pSafebox;"]delete pSafebox;[/CODE]
Kod:
pkPeer->EncodeHeader(HEADER_DG_SAFEBOX_WRONG_PASSWORD, dwHandle, 0);
Kod:
extern void SendNoticeMap(const char* c_pszBuf, int nMapIndex, bool bBigFont);
Kod:
extern const char * userDC(const char * userName);
Kod:
void SendLog(const char * c_pszBuf)
{
const DESC_MANAGER::DESC_SET & c_ref_set = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_ref_set.begin(), c_ref_set.end(), log_packet_func(c_pszBuf));
}
Kod:
const char * userDC(const char * userName)
{
LPDESC d = DESC_MANAGER::instance().FindByCharacterName(userName);
LPCHARACTER tch = d ? d->GetCharacter() : NULL;
if (!tch)
{
return "Player not in game";
}else{
DESC_MANAGER::instance().DestroyDesc(d);
return "Player kicked out";
}
}
Kod:
else if (!stBuf.compare(0, 3, "DC "))
Kod:
else if (!stBuf.compare(0, 3, "DC "))
{
std::string msg = stBuf.substr(3, LOGIN_MAX_LEN);
/// dev_log(LOG_DEB0, "DC : '%s'", msg.c_str());
stResult = userDC(msg.c_str());
/*TPacketGGDisconnect pgg;
pgg.bHeader = HEADER_GG_DISCONNECT;
strlcpy(pgg.szLogin, msg.c_str(), sizeof(pgg.szLogin));
P2P_MANAGER::instance().Send(&pgg, sizeof(TPacketGGDisconnect));
// delete login key
{
TPacketDC p;
strlcpy(p.login, msg.c_str(), sizeof(p.login));
db_clientdesc->DBPacket(HEADER_GD_DC, 0, &p, sizeof(p));
}*/
}
[CODE title="Common/Service.h Musait bir yere ekleyin."]#define FIXDESCFINDPC [/CODE]
[CODE title="game/src/desc_manager.cpp"]///Add
#include <boost/algorithm/string.hpp>
//Find
if (d->GetCharacter() && !strcmp(d->GetCharacter()->GetName(), m_name))
return true;
return false;
///Change
#if defined(FIXDESCFINDPC)
return d->GetCharacter() && boost::algorithm::to_lower_copy(std::string(d->GetCharacter()->GetName())) == boost::algorithm::to_lower_copy(std::string(m_name));
#else
if (d->GetCharacter() && !strcmp(d->GetCharacter()->GetName(), m_name))
return true;
return false;
#endif
or
///Change
#if defined(FIXDESCFINDPC)
auto tolowerlocal = [](std::string sz) {
std::transform(sz.begin(), sz.end(), sz.begin(), ::tolower);
return sz;
};
return d->GetCharacter() && tolowerlocal(std::string(m_name)) == tolowerlocal(std::string(d->GetCharacter()->GetName()));
#else
if (d->GetCharacter() && !strcmp(d->GetCharacter()->GetName(), m_name))
return true;
return false;
#endif[/CODE]
[CODE title="'byte' was not declared in this scope hata fixi "]Open cipher.h and add;
using CryptoPP::byte;[/CODE]
using CryptoPP::byte;[/CODE]
[CODE title="char_skill.cpp açın Aratın"]GetMountVnum
[/CODE]
[CODE title="Kod Bloğunu değiştirin."] if(GetMountVnum())
{
if( !((GetMountVnum() >= 20101 && GetMountVnum() <= 20205)))
return true;
}
if(GetMountVnum()) //Server filesinizde skill kodları farklı ise onları kendinize göre ayarlayın.
{
if( !((GetMountVnum() >= 20209 && GetMountVnum() <= 20212) ||
GetMountVnum() == 20215 || GetMountVnum() == 20218 || GetMountVnum() == 20225 ) )
return false;
}[/CODE]
[/CODE]
[CODE title="Kod Bloğunu değiştirin."] if(GetMountVnum())
{
if( !((GetMountVnum() >= 20101 && GetMountVnum() <= 20205)))
return true;
}
if(GetMountVnum()) //Server filesinizde skill kodları farklı ise onları kendinize göre ayarlayın.
{
if( !((GetMountVnum() >= 20209 && GetMountVnum() <= 20212) ||
GetMountVnum() == 20215 || GetMountVnum() == 20218 || GetMountVnum() == 20225 ) )
return false;
}[/CODE]
[CODE title="src/Server/game/common/service.h"]#define ENABLE_YMIR_AFFECT_FIX[/CODE]
[CODE title="src/Server/game/src/input_login.cpp aç arat"]ch->StartCheckSpeedHackEvent();[/CODE]
[CODE title="ekle"]#ifdef ENABLE_YMIR_AFFECT_FIX
ch->SetQuestFlag("item.last_time", get_global_time());
#endif
[/CODE]
[CODE title="src/Server/game/src/char.h aç arat"]const char * GetName() const;
[/CODE]
[CODE title="ekle"]#ifdef ENABLE_YMIR_AFFECT_FIX
bool CheckTimeUsed(LPITEM item);
#endif[/CODE]
[CODE title="src/Server/game/src/char_item.cpp aç arat"]int CalculateConsumeSP(LPCHARACTER lpChar)
[/CODE]
[CODE title="ekle değiştir"]https://paste2.org/Hbaf68Pc[/CODE]
[CODE title="arat"]case USE_ABILITY_UP:
[/CODE]
[CODE title="ekle"]http://paste2.org/gFVsEmcO[/CODE]
[CODE title="arat"]case USE_AFFECT :
{[/CODE]
[CODE title="ekle"]
http://paste2.org/NjCafvv9[/CODE]
[CODE title="arat"]sys_log(0,"ITEM_BLEND!!");
[/CODE]
[CODE title="ekle"]http://paste2.org/PNOd6sdh[/CODE]
[CODE title="input_main.cpp aciyoruz arat"]CSafebox * pkSafebox = ch->GetSafebox();
LPITEM pkItem = ch->GetItem(p->ItemPos);
if (!pkSafebox || !pkItem)
return;[/CODE]
[CODE title="ekle"]if (pkItem->GetType() == ITEM_BELT && pkItem->IsEquipped())
ch->ChatPacket(CHAT_TYPE_INFO, "Önce kemer Envanterini boşalt!");
return;
}[/CODE]
LPITEM pkItem = ch->GetItem(p->ItemPos);
if (!pkSafebox || !pkItem)
return;[/CODE]
[CODE title="ekle"]if (pkItem->GetType() == ITEM_BELT && pkItem->IsEquipped())
ch->ChatPacket(CHAT_TYPE_INFO, "Önce kemer Envanterini boşalt!");
return;
}[/CODE]
Kod:
/Warr Bug'unu Fixlemek için Diff paylaşıyorum arkadaşlar.
Game Rev. 40250
Kod:
game40250
0008DF69: 8E 86
40k Server Fileslerde
1. ve 2. Envanter'de çalışan Auto Pot
3. 4. ve 5. envanter'de çalışmama sorunu Fixleyeceğiz.
[CODE title="uiinventory.py Açılır. Aratılır"]if slotNumber >= player.INVENTORY_PAGE_SIZE:
slotNumber -= player.INVENTORY_PAGE_SIZE[/CODE]
[CODE title="değiştirilir"]if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex[/CODE]
1. ve 2. Envanter'de çalışan Auto Pot
3. 4. ve 5. envanter'de çalışmama sorunu Fixleyeceğiz.
[CODE title="uiinventory.py Açılır. Aratılır"]if slotNumber >= player.INVENTORY_PAGE_SIZE:
slotNumber -= player.INVENTORY_PAGE_SIZE[/CODE]
[CODE title="değiştirilir"]if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex[/CODE]
Açılır: char_battle.cpp
Aratılır:
Kod:
Kod bloğunun içine eklenir:
Kod:
Aratılır:
Kod:
Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
Kod:
Kod:
if (pkVictim->GetShopOwner())
return false;
[CODE title="cmd_general.cpp açın ve aratın;"]if (strArg1 == "r_info") {
if (0 == arg2[0])
{[/CODE]
[CODE title="bunu bulduğunuzda hemen altında" highlight="if (strArg1 == "r_info") { if (0 == arg2[0]) {"]Cube_request_result_list(ch);
[/CODE]
[CODE title="değiştirin" highlight="Cube_request_result_list(ch);"]//Cube_request_result_list(ch);
return;[/CODE]
# EDİT : Kesin çözümü WoM 2 ekibi tarafından yayınlandı. Paylaşmama gerek kalmadı sanırım. (Ben farklı çözdüm fakat yorumları baktığımda buda kesin sonucu elde ediyor.)
Src'nize girip (game/src/cube.cpp) açın ve aratın;
HTML:
if (false == bCatchInfo)
Değiştirin;
HTML:
if (!bCatchInfo || materialInfoText.size() == 0)
ve tekrar arayın;
HTML:
resultCount = resultList.size();
Ekleyin;
HTML:
if (resultCount == 0) { return;}
Fixlenmiştir.
if (0 == arg2[0])
{[/CODE]
[CODE title="bunu bulduğunuzda hemen altında" highlight="if (strArg1 == "r_info") { if (0 == arg2[0]) {"]Cube_request_result_list(ch);
[/CODE]
[CODE title="değiştirin" highlight="Cube_request_result_list(ch);"]//Cube_request_result_list(ch);
return;[/CODE]
# EDİT : Kesin çözümü WoM 2 ekibi tarafından yayınlandı. Paylaşmama gerek kalmadı sanırım. (Ben farklı çözdüm fakat yorumları baktığımda buda kesin sonucu elde ediyor.)
Src'nize girip (game/src/cube.cpp) açın ve aratın;
HTML:
if (false == bCatchInfo)
Değiştirin;
HTML:
if (!bCatchInfo || materialInfoText.size() == 0)
ve tekrar arayın;
HTML:
resultCount = resultList.size();
Ekleyin;
HTML:
if (resultCount == 0) { return;}
Fixlenmiştir.

Arkadaşlar silah veya zırh elimizdeyken o silah üzerindeki taşlarla yapılan bir bug'tur tam olarak yapılışını anlatmıyorum sebebi başka serverlerde kimsenin denememesidir.
Hemen anlatıma geçiyorum.
char_item.cpp açılır ve aşşağıdaki kod aratılır.
Kod:
Alttaki kod bulduğumuz kodun altına eklenir.
Kod:
Yine char_item.cpp içerisinde aşşağıdaki kod aratılır.
Kod:
if (item2->GetVnum() >= 28330 && item2->GetVnum() <= 28343)
Ve üstüne bu kod eklenir.
Kod:
if (item2->IsEquipped())
return false;
Hemen anlatıma geçiyorum.
char_item.cpp açılır ve aşşağıdaki kod aratılır.
Kod:
Kod:
if (item2->GetSocketCount() == 0)
return false;
Kod:
Kod:
if (item2->IsEquipped())
return false;
Kod:
if (item2->GetVnum() >= 28330 && item2->GetVnum() <= 28343)
Ve üstüne bu kod eklenir.
Kod:
if (item2->IsEquipped())
return false;
[CODE title="Char_battle.cpp Açılır"] if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% íë¥
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}[/CODE]
[CODE title="Arat Değiştir."] if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% Ä®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i && i > 0)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}[/CODE]
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}[/CODE]
[CODE title="Arat Değiştir."] if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% Ä®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i && i > 0)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}[/CODE]
[CODE title="game/src input_main.cpp Açılır VE Aratılır"] if (!ch->IsEmptyItemGrid(p->ItemPos, pkItem->GetSize()))
return;[/CODE]
[CODE title="Altına Eklenir."] for (WORD belt_index = BELT_INVENTORY_SLOT_START; belt_index < BELT_INVENTORY_SLOT_END; ++belt_index)
{
if (pkItem->GetType() != 3 && p->ItemPos.cell == belt_index)
{
if(pkItem->GetSubType() != 0 || pkItem->GetSubType() != 11 || pkItem->GetSubType() != 7)
{
ch->ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Check> Depodan Kemer Envanterine item yerlestiremezsin !");
return;
}
}
}[/CODE]
return;[/CODE]
[CODE title="Altına Eklenir."] for (WORD belt_index = BELT_INVENTORY_SLOT_START; belt_index < BELT_INVENTORY_SLOT_END; ++belt_index)
{
if (pkItem->GetType() != 3 && p->ItemPos.cell == belt_index)
{
if(pkItem->GetSubType() != 0 || pkItem->GetSubType() != 11 || pkItem->GetSubType() != 7)
{
ch->ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Check> Depodan Kemer Envanterine item yerlestiremezsin !");
return;
}
}
}[/CODE]
[CODE title="char_item.cpp 4495. satıra eklenir."]if (item2->IsEquipped())
return false;[/CODE]
return false;[/CODE]
[CODE title="Shop_Manager.cpp" highlight="arat"]dwPrice = item->GetShopBuyPrice();[/CODE]
[CODE title="değiştir"]if (dwPrice > item->GetGold()) dwPrice = item->GetGold();[/CODE]
[CODE title="değiştir"]if (dwPrice > item->GetGold()) dwPrice = item->GetGold();[/CODE]
Bugumuz takılan binek nesnelerinin sağ tıklayıp, ctrl+g uyguladıyıp indiğimiz veya öldüğümüz zaman, envanterimize çıkmamasını binek üzerinde olmadığımız halde takılı kalmasını fixliyecek kodlar;
[CODE title="Game / Src cmd_general.cpp açılır"]ACMD(do_unmount)
[/CODE][CODE title="Aratılır.. ve alttaki kodla değiştirilir."]https://paste2.org/HpE9BngM[/CODE]
[CODE title="char_battle.cpp açılır aratılır"]RemoveAffect(AFFECT_MOUNT_BONUS);[/CODE]
[CODE title="Aratılır ve alttaki kod altına eklenir."]https://paste2.org/8CBUzLd0
LPITEM item = GetWear(WEAR_UNIQUE1);
LPITEM item2 = GetWear(WEAR_UNIQUE2);
if (item && item->IsRideItem())
{
UnequipItem(item);
}
if (item2 && item2->IsRideItem())
{
UnequipItem(item2);
}[/CODE]
[CODE title="Game / Src cmd_general.cpp açılır"]ACMD(do_unmount)
[/CODE][CODE title="Aratılır.. ve alttaki kodla değiştirilir."]https://paste2.org/HpE9BngM[/CODE]
[CODE title="char_battle.cpp açılır aratılır"]RemoveAffect(AFFECT_MOUNT_BONUS);[/CODE]
[CODE title="Aratılır ve alttaki kod altına eklenir."]https://paste2.org/8CBUzLd0
LPITEM item = GetWear(WEAR_UNIQUE1);
LPITEM item2 = GetWear(WEAR_UNIQUE2);
if (item && item->IsRideItem())
{
UnequipItem(item);
}
if (item2 && item2->IsRideItem())
{
UnequipItem(item2);
}[/CODE]
[CODE title="*char_battle.cpp Aratın ve silin:"]enum DamageFlag
{
DAMAGE_NORMAL = (1 << 0),
DAMAGE_POISON = (1 << 1),
DAMAGE_DODGE = (1 << 2),
DAMAGE_BLOCK = (1 << 3),
DAMAGE_PENETRATE= (1 << 4),
DAMAGE_CRITICAL = (1 << 5),
};[/CODE]
[CODE title="arat"]Aratın:
bool CHARACTER:
amage(LPCHARACTER pAttacker, int dam, EDamageType type)[/CODE]
[CODE title="Üstüne ekle"]enum DamageFlag
{
DAMAGE_NORMAL = (1 << 0),
DAMAGE_POISON = (1 << 1),
DAMAGE_DODGE = (1 << 2),
DAMAGE_BLOCK = (1 << 3),
DAMAGE_PENETRATE= (1 << 4),
DAMAGE_CRITICAL = (1 << 5),
};[/CODE]
[CODE title="Aratın"]if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE)
{
if (IsAffectFlag(AFF_TERROR))
{
int pct = GetSkillPower(SKILL_TERROR) / 400;
if (number(1, 100) <= pct)
return false;
}
}[/CODE]
[CODE title="değiştirin" highlight="https://paste.ubuntu.com/23140537/"] if (IsAffectFlag(AFF_TERROR))
{
if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE)
{
int iTerrorPCT = GetSkillPower(SKILL_TERROR) / 3.3;
if (number(1, 100) <= iTerrorPCT)
{
SendDamagePacket(pAttacker, 0, DAMAGE_BLOCK);
return false;
}
}
}[/CODE]
Hata 1: pct değikeni aynı fonksiyonda 3 ayrı hesaplama için kullanılıyor, yanlış hesaplama yapması mümkün
Hata 2: GetSkillPower(SKILL_TERROR)' ün verdiği değerler;
M1: 50
G1: 82
P: 125
şeklinde. orjinal kısımda bu değerleri 400'e bölüyor!? ve en yüksek seviye dehşet için 125 / 400 den 0.3125 gibi komik bir rakam çıkıyor ve sistem yuvarladığında 1 bile etmiyor direk bu kısmı pas geçiyor. düzenlemesi için 3.3 olarak değiştirildi bu şekilde tam olarak skilldesc de yansıttığı oranda uyguluyor
Hata 3: Block paketi eklenmemiş eğer oran tutturulursa pas geçer, şuan block paketi eklendiğinden oran tutturulursa miss olarak gözükür
{
DAMAGE_NORMAL = (1 << 0),
DAMAGE_POISON = (1 << 1),
DAMAGE_DODGE = (1 << 2),
DAMAGE_BLOCK = (1 << 3),
DAMAGE_PENETRATE= (1 << 4),
DAMAGE_CRITICAL = (1 << 5),
};[/CODE]
[CODE title="arat"]Aratın:
bool CHARACTER:
amage(LPCHARACTER pAttacker, int dam, EDamageType type)[/CODE][CODE title="Üstüne ekle"]enum DamageFlag
{
DAMAGE_NORMAL = (1 << 0),
DAMAGE_POISON = (1 << 1),
DAMAGE_DODGE = (1 << 2),
DAMAGE_BLOCK = (1 << 3),
DAMAGE_PENETRATE= (1 << 4),
DAMAGE_CRITICAL = (1 << 5),
};[/CODE]
[CODE title="Aratın"]if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE)
{
if (IsAffectFlag(AFF_TERROR))
{
int pct = GetSkillPower(SKILL_TERROR) / 400;
if (number(1, 100) <= pct)
return false;
}
}[/CODE]
[CODE title="değiştirin" highlight="https://paste.ubuntu.com/23140537/"] if (IsAffectFlag(AFF_TERROR))
{
if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE)
{
int iTerrorPCT = GetSkillPower(SKILL_TERROR) / 3.3;
if (number(1, 100) <= iTerrorPCT)
{
SendDamagePacket(pAttacker, 0, DAMAGE_BLOCK);
return false;
}
}
}[/CODE]
Hata 1: pct değikeni aynı fonksiyonda 3 ayrı hesaplama için kullanılıyor, yanlış hesaplama yapması mümkün
Hata 2: GetSkillPower(SKILL_TERROR)' ün verdiği değerler;
M1: 50
G1: 82
P: 125
şeklinde. orjinal kısımda bu değerleri 400'e bölüyor!? ve en yüksek seviye dehşet için 125 / 400 den 0.3125 gibi komik bir rakam çıkıyor ve sistem yuvarladığında 1 bile etmiyor direk bu kısmı pas geçiyor. düzenlemesi için 3.3 olarak değiştirildi bu şekilde tam olarak skilldesc de yansıttığı oranda uyguluyor
Hata 3: Block paketi eklenmemiş eğer oran tutturulursa pas geçer, şuan block paketi eklendiğinden oran tutturulursa miss olarak gözükür
pasha37 nin konusudur isteyen daha rahat ulaşsın diye açıyorum
Hp çalma;
Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
iCurHP tanımlı olmadığı için sadece varolan orana "1" ekler, %5 HP Çalma efsunu varsa 6 hp çalar
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
iCurHP değeri CurrentHP yani o anki varolan hp miktarına tanımlandı dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutHP))
Koşullar düzenlendi, hp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi(
Sp çalma;
Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
Hedef mob ise sp yerine hp çalar
iCurHP ve iCurSP tanımlı olmadığı için var olan orana 1 ekler.
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
Hedef mob ise bu efsunu pas geçer
iCurSP değeri CurrentSP olarak düzenlendi, dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutSP))
Koşullar düzenlendi, sp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi
%5 oranla ortalama çalma miktarları 6-20 arası ikisi içinde maksimum oran %50 ayarlanmış. Maksimumda ortalama 60-200 arası çalma mevcut
[CODE title="*char_battle.cpp aç arat"] if (pAttacker->GetPoint(POINT_STEAL_HP))
{
int pct = 1;
if (number(1, 10) <= pct)
{
int iHP = MIN(dam, MAX(0, iCurHP)) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;
if (iHP > 0 && GetHP() >= iHP)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, iHP);
PointChange(POINT_HP, -iHP);
}
}
}
// SP ½ºÆ¿
if (pAttacker->GetPoint(POINT_STEAL_SP))
{
int pct = 1;
if (number(1, 10) <= pct)
{
int iCur;
if (IsPC())
iCur = iCurSP;
else
iCur = iCurHP;
int iSP = MIN(dam, MAX(0, iCur)) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;
if (iSP > 0 && iCur >= iSP)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, iSP);
if (IsPC())
PointChange(POINT_SP, -iSP);
}
}
}[/CODE]
[CODE title="değiştir"] int iStealHP_ptr = pAttacker->GetPoint(POINT_STEAL_HP);
if (iStealHP_ptr)
{
if (number(1, 100) <= iStealHP_ptr)
{
int iHP = MIN(dam, MAX(0, GetHP())) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;
if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHP < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHP > 0))
{
CreateFly(FLY_HP_MEDIUM, pAttacker);
pAttacker->PointChange(POINT_HP, iHP);
PointChange(POINT_HP, -iHP);
}
}
}
// SP ½ºÆ¿
int iStealSP_ptr = pAttacker->GetPoint(POINT_STEAL_SP);
if (iStealSP_ptr)
{
if (IsPC() && pAttacker->IsPC()) {
if (number(1, 100) <= iStealSP_ptr)
{
int iSP = MIN(dam, MAX(0, GetSP())) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;
if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSP < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSP > 0))
{
CreateFly(FLY_SP_MEDIUM, pAttacker);
pAttacker->PointChange(POINT_SP, iSP);
PointChange(POINT_SP, -iSP);
}
}
}
}[/CODE]
Hp çalma;
Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
iCurHP tanımlı olmadığı için sadece varolan orana "1" ekler, %5 HP Çalma efsunu varsa 6 hp çalar
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
iCurHP değeri CurrentHP yani o anki varolan hp miktarına tanımlandı dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutHP))
Koşullar düzenlendi, hp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi(
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Medium HP FLY ve SMALL SP FLY oranı )Sp çalma;
Önceki çalışma mantığı >
Efsun varsa her hasarda 1/10 oranla aktif olur
Hedef mob ise sp yerine hp çalar
iCurHP ve iCurSP tanımlı olmadığı için var olan orana 1 ekler.
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
Hedef mob ise bu efsunu pas geçer
iCurSP değeri CurrentSP olarak düzenlendi, dolayısıyla mantık şu şekil değiştirildi Minimum(hasar, Maksimum(0, MevcutSP))
Koşullar düzenlendi, sp kontrolü eklendi
FLY çok küçük olduğundan medium olarak düzenlendi
%5 oranla ortalama çalma miktarları 6-20 arası ikisi içinde maksimum oran %50 ayarlanmış. Maksimumda ortalama 60-200 arası çalma mevcut
[CODE title="*char_battle.cpp aç arat"] if (pAttacker->GetPoint(POINT_STEAL_HP))
{
int pct = 1;
if (number(1, 10) <= pct)
{
int iHP = MIN(dam, MAX(0, iCurHP)) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;
if (iHP > 0 && GetHP() >= iHP)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, iHP);
PointChange(POINT_HP, -iHP);
}
}
}
// SP ½ºÆ¿
if (pAttacker->GetPoint(POINT_STEAL_SP))
{
int pct = 1;
if (number(1, 10) <= pct)
{
int iCur;
if (IsPC())
iCur = iCurSP;
else
iCur = iCurHP;
int iSP = MIN(dam, MAX(0, iCur)) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;
if (iSP > 0 && iCur >= iSP)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, iSP);
if (IsPC())
PointChange(POINT_SP, -iSP);
}
}
}[/CODE]
[CODE title="değiştir"] int iStealHP_ptr = pAttacker->GetPoint(POINT_STEAL_HP);
if (iStealHP_ptr)
{
if (number(1, 100) <= iStealHP_ptr)
{
int iHP = MIN(dam, MAX(0, GetHP())) * pAttacker->GetPoint(POINT_STEAL_HP) / 100;
if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHP < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHP > 0))
{
CreateFly(FLY_HP_MEDIUM, pAttacker);
pAttacker->PointChange(POINT_HP, iHP);
PointChange(POINT_HP, -iHP);
}
}
}
// SP ½ºÆ¿
int iStealSP_ptr = pAttacker->GetPoint(POINT_STEAL_SP);
if (iStealSP_ptr)
{
if (IsPC() && pAttacker->IsPC()) {
if (number(1, 100) <= iStealSP_ptr)
{
int iSP = MIN(dam, MAX(0, GetSP())) * pAttacker->GetPoint(POINT_STEAL_SP) / 100;
if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSP < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSP > 0))
{
CreateFly(FLY_SP_MEDIUM, pAttacker);
pAttacker->PointChange(POINT_SP, iSP);
PointChange(POINT_SP, -iSP);
}
}
}
}[/CODE]
pasha37 nin konusudur isteyen daha rahat ulaşsın diye açıyorum
Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
%12 oran ile tek seferde 100-300 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi(
[CODE title="*char_battle.cpp aç arat"] if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}
// Ä¥ ¶§¸¶´Ù SPȸº¹
if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, i);
}
}[/CODE]
[CODE title="değiştir"] int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
if (iAbsoHP_ptr)
{
if (number(1, 100) <= iAbsoHP_ptr) {
int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
{
CreateFly(FLY_HP_BIG, pAttacker);
pAttacker->PointChange(POINT_HP, iHPAbso);
}
}
}
// Ä¥ ¶§¸¶´Ù SPȸº¹
int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
if (iAbsoSP_ptr)
{
if (number(1, 100) <= iAbsoSP_ptr) {
int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;
if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
{
CreateFly(FLY_SP_BIG, pAttacker);
pAttacker->PointChange(POINT_SP, iSPAbso);
}
}
}[/CODE]
*Not:
Kod:
POINT_ERROR:
şeklinde syserr alırsanız aşağıdaki işlemi yapın;
*char.cpp açın
Bul:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);
Değiştir:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);
Önceki çalışma mantığı >
Efsun varsa her hasarda %80 oranla aktif olur
Düzenlenmiş şekilde çalışma mantığı >
Efsun varsa her hasar efsun oranı % kaç ise o oranda aktif olur
%12 oran ile tek seferde 100-300 hp/sp emer
Koşullar düzenlendi, -(eksi) hp yada sp ile ölündüğünde kendi kendilerinden absorbe etme hatası vardı giderildi
FLY küçük olduğundan big olarak düzenlendi(
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
) [CODE title="*char_battle.cpp aç arat"] if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}
// Ä¥ ¶§¸¶´Ù SPȸº¹
if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% È®·ü
{
int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;
if (i)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, i);
}
}[/CODE]
[CODE title="değiştir"] int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
if (iAbsoHP_ptr)
{
if (number(1, 100) <= iAbsoHP_ptr) {
int iHPAbso = MIN(dam, GetHP()) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
{
CreateFly(FLY_HP_BIG, pAttacker);
pAttacker->PointChange(POINT_HP, iHPAbso);
}
}
}
// Ä¥ ¶§¸¶´Ù SPȸº¹
int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
if (iAbsoSP_ptr)
{
if (number(1, 100) <= iAbsoSP_ptr) {
int iSPAbso = MIN(dam, GetSP()) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;
if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
{
CreateFly(FLY_SP_BIG, pAttacker);
pAttacker->PointChange(POINT_SP, iSPAbso);
}
}
}[/CODE]
*Not:
Kod:
POINT_ERROR:
şeklinde syserr alırsanız aşağıdaki işlemi yapın;
*char.cpp açın
Bul:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), val, max_val);
Değiştir:
Kod:
sys_err("POINT_ERROR: %s type %d val %d (max: %d)", GetName(), type, val, max_val);
Kod:
Statünün 90 verilmesine rağmen karakter alanındaki statülerin tam dolmamasını görmüşsünüzdür mutlaka bu gün size bunun nasıl düzeltileceğini anlatacağım.
Root/introselect.py Açılır
Aratılır:
self.destGauge =[
float(valueHTH)/380,
float(valueINT)/380,
float(valueSTR)/380,
float(valueDEX)/380
]
Değiştirilir:
self.destGauge =[
float(valueHTH)/90, # max statünüze göre değiştirebilrisiniz.
float(valueINT)/90, # max statünüze göre değiştirebilrisiniz.
float(valueSTR)/90, # max statünüze göre değiştirebilrisiniz.
float(valueDEX)/90 # max statünüze göre değiştirebilrisiniz.
]
Root/introcreate.py Açılır
Aratılır:
float(self.stat[0])/float(statSummary),
float(self.stat[1])/float(statSummary),
float(self.stat[2])/float(statSummary),
float(self.stat[3])/float(statSummary),
Değiştirilir:
float(self.stat[0])/90,# max statünüze göre değiştirebilrisiniz.
float(self.stat[1])/90,# max statünüze göre değiştirebilrisiniz.
float(self.stat[2])/90,# max statünüze göre değiştirebilrisiniz.
float(self.stat[3])/90,# max statünüze göre değiştirebilrisiniz.
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
ilgi içi teşekkürler
teşekkürler bir çok kişi faydalanacaktır.
- Katılım
- 27 Haz 2014
- Konular
- 96
- Mesajlar
- 801
- Reaksiyon Skoru
- 34
- Altın Konu
- 0
- TM Yaşı
- 11 Yıl 11 Ay 15 Gün
- Başarım Puanı
- 67
- MmoLira
- 0
- DevLira
- 0
ilgi içi teşekkürler
- Katılım
- 2 Şub 2010
- Konular
- 226
- Mesajlar
- 2,606
- Çözüm
- 1
- Online süresi
- 7d 5h
- Reaksiyon Skoru
- 534
- Altın Konu
- 0
- TM Yaşı
- 16 Yıl 4 Ay 5 Gün
- Başarım Puanı
- 231
- MmoLira
- 2,884
- DevLira
- 3
teşekkürler bir çok kişi faydalanacaktır.
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Kilitli
- Cevaplar
- 359
- Görüntüleme
- 30K

