Mt2Hizmet 1
Mt2Hizmet
kaptanmikro1 1
kaptanmikro1
Reklam vermek için turkmmo@gmail.com

Canavar Dedektörü (Azrail, cadı, ejderha vb.) c++

  • Konuyu başlatan Konuyu başlatan Black Widow
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 38
  • Görüntüleme Görüntüleme 8K
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.
e115a9a9e0494064ac50303d4f1226ab.png


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 ;
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 ;
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 ;
Kod:
item->SetSocket(0, item->GetSocket(0) + 1);

Navicat > item_proto eklenecek (query ile ekleyeceksiniz)
d0530f3fcead42d1b7b1773f2017ab19.png

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');
yapamayan olursa 27989 nolu itemi kopyalayıp kodunu 28001 yapsın.

locale_tr > item_proto'ya eklenecek
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 ( )

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 ;
Kod:
if 27989 == itemVnum or 76006 == itemVnum or 28001 == itemVnum:
a86d042d46714e50b10ea016f7c00fb6.png


Çalıştığına dair kanıt :
16621cdda78c4b91a33e56ff7498d8d5.png


Kötü yorumlarınızı kendinize saklayabilirsiniz, şimdiden kullanacak arkadaşlara hayırlı olsun.
+
///
 
Son düzenleme:

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst