Merhaba arkadaşlar,
Bu paylaşacağım sistemi bugün kendim yazdım, satışı yapılanlarla alakası yoktur. Kodlar tamamen bana aittir ve hiçbir alıntı yoktur.
Sistem mantığı : Metin taşı dedektörü gibi lider olan canavarlar üzerinde çalışmaktadır.
Dedektörün izini süreceği canavarın navicatta rank değeri mutlaka 5 olmak zorundadır. Npc lerin rank değerleride 5 ama yazdığım kodlara göre sadece canavarlar üzerinde rank okunmaktadır.
char_item.cpp açılır ve aratılır ;
ve altına eklenilir ;
Bu paylaşacağım sistemi bugün kendim yazdım, satışı yapılanlarla alakası yoktur. Kodlar tamamen bana aittir ve hiçbir alıntı yoktur.
Sistem mantığı : Metin taşı dedektörü gibi lider olan canavarlar üzerinde çalışmaktadır.
Dedektörün izini süreceği canavarın navicatta rank değeri mutlaka 5 olmak zorundadır. Npc lerin rank değerleride 5 ama yazdığım kodlara göre sadece canavarlar üzerinde rank okunmaktadır.
char_item.cpp açılır ve aratılır ;
Kod:
const BYTE g_aBuffOnAttrPoints[] = { POINT_ENERGY, POINT_COSTUME_ATTR_BONUS };
ve altına eklenilir ;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
struct FFindCanavar
{
std::map<DWORD, LPCHARACTER> m_mapCanavar;
void operator()(LPENTITY pEnt)
{
if (pEnt->IsType(ENTITY_CHARACTER) == true)
{
LPCHARACTER pChar = (LPCHARACTER)pEnt;
if (pChar->IsMonster() == true && pChar->GetMobRank() == 5)
{
m_mapCanavar[(DWORD)pChar->GetVID()] = pChar;
}
}
}
};
aratılır ;
Kod:
case 71013:
break; ile biten satır altına eklenilir ;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
case 28001:
{
LPSECTREE_MAP pMap = SECTREE_MANAGER::instance().GetMap(GetMapIndex());
if (pMap != NULL)
{
item->SetSocket(0, item->GetSocket(0) + 1);
FFindCanavar f;
pMap->for_each(f);
if (f.m_mapCanavar.size() > 0)
{
std::map<DWORD, LPCHARACTER>::iterator canavar = f.m_mapCanavar.begin();
DWORD max = UINT_MAX;
LPCHARACTER pTarget = canavar->second;
while (canavar != f.m_mapCanavar.end())
{
DWORD dist = (DWORD)DISTANCE_SQRT(GetX()-canavar->second->GetX(), GetY()-canavar->second->GetY());
if (dist != 0 && max > dist)
{
max = dist;
pTarget = canavar->second;
}
canavar++;
}
if (pTarget != NULL)
{
int val = 3;
if (max < 10000) val = 2;
else if (max < 70000) val = 1;
ChatPacket(CHAT_TYPE_COMMAND, "StoneDetect %u %d %d", (DWORD)GetVID(), val,
(int)GetDegreeFromPositionXY(GetX(), pTarget->GetY(), pTarget->GetX(), GetY()));
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu mapta canavar yok."));
}
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu mapta canavar yok."));
}
if (item->GetSocket(0) >= 6)
{
ChatPacket(CHAT_TYPE_COMMAND, "StoneDetect %u 0 0", (DWORD)GetVID());
ITEM_MANAGER::instance().RemoveItem(item);
}
}
break;
}
break;
Sınırsız olmasını isteyenler şu satırı silebilir ;
Navicat > item_proto eklenecek (query ile ekleyeceksiniz)
yapamayan olursa 27989 nolu itemi kopyalayıp kodunu 28001 yapsın.
locale_tr > item_proto'ya eklenecek
Farklı item_proto kulllananlar aynı şekilde 27989 nolu itemi kopyalayarakta yapabilirler.
locale_tr > item_desc.txt eklenecek (
root > uitooltip.py açılır
aratılır ;
ve şu şekilde değiştirilir ;
Çalıştığına dair kanıt :
Kötü yorumlarınızı kendinize saklayabilirsiniz, şimdiden kullanacak arkadaşlara hayırlı olsun.
+
Kod:
item->SetSocket(0, item->GetSocket(0) + 1);
Navicat > item_proto eklenecek (query ile ekleyeceksiniz)
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
INSERT INTO item_proto VALUES ('28001', 0xBFB5BCAEB0A8C1F6B1E2, 0x43616E6176617220446564656B74F672FC, '3', '10', '0', '1', '106880', '0', '0', '', '100000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');
locale_tr > item_proto'ya eklenecek
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
<!--AddonType="0"--><Item vnum="28001" name="dedektor" gb2312name="Canavar Dedektörü" type="3" subtype="10" weight="0" size="1" antiflag="106880" flag="0" wearflag="0" immuneflag="0" gold="3000" buy_price="3000" limittype0="0" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="0" applyvalue0="0" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="0" value2="0" value3="0" value4="0" value5="0" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="0" refine_set="0" magic_pct="0" specular="0" socket_pct="0" />
Farklı item_proto kulllananlar aynı şekilde 27989 nolu itemi kopyalayarakta yapabilirler.
locale_tr > item_desc.txt eklenecek (
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
)
Kod:
28001 Canavar Dedektörü Pusula sana en yakın canavarın yönünü ve mesafesini gösterir. Ne kadar parlaksa, o kadar yakınsın demektir. 6 kez kullanılabilir.
root > uitooltip.py açılır
aratılır ;
Kod:
if 27989 == itemVnum or 76006 == itemVnum:
ve şu şekilde değiştirilir ;
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Kod:
if 27989 == itemVnum or 76006 == itemVnum or 28001 == itemVnum:
Çalıştığına dair kanıt :
Kötü yorumlarınızı kendinize saklayabilirsiniz, şimdiden kullanacak arkadaşlara hayırlı olsun.
///
Son düzenleme:
Güzel yorumun için teşekkür ederimEline sağlık.

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 0
- Görüntüleme
- 327
- Cevaplar
- 7
- Görüntüleme
- 565
- Cevaplar
- 15
- Görüntüleme
- 907
