Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

Çöp Butonu Sistemi 2025-06-02

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan brs77
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 611

brs77

Türkiye
Fahri Üye
Katılım
21 Eyl 2010
Konular
142
Mesajlar
1,589
Çözüm
47
Online süresi
2mo 8d
Reaksiyon Skoru
628
Altın Konu
34
Başarım Puanı
248
MmoLira
28,050
DevLira
102
Ticaret - 0%
0   0   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!

Untitled-8.png


Ekteki klasörde bulunan trashbutton klasörünü, ETC packi içindeki ymir work/ui/ dizinine atarsanız, buton örnekte olduğu gibi gözükecektir.
[CODE title="locale/tr/inventorywindow.py:"]# BURAYI BUL:
"name" : "InventoryWindow",

## 600 - (##dth + 오른쪽으로 부터 띄우기 24 px)
"x" : SCREEN_WIDTH - 176,
"y" : SCREEN_HEIGHT - 37 - 565,

"style" : ("movable", "float",),

"width" : 176,
"height" : 565,

# BU ŞEKİLDE DEĞİŞTİR:
"name" : "InventoryWindow",

## 600 - (width + 오른쪽으로 부터 띄우기 24 px## "x" : SCREEN_WIDTH - 176,
"y" : SCREEN_HEIGHT - 37 - 565 - 19,

"style" : ("movable", "float",),

"width" : 176,
"height" : 565 + 19,


## DÜZENLEDİĞİMİZ BÖLÜMÜN HEMEN ALTINDAKİ, CHILDREN'LARI##İÇİNDE EN TEPEDE OLANI, BUNU BUL:

"children" :
(
## Inventory, Equipment Slots
{
"name" : "board"## "type" : "board",
"style" : ("attach",),

"x" : 0,
"y" : 0,

"width" : 176,
"height" : 565,

## BU ŞEKİLDE DEĞİŞTİR:

"children" :
(
## ##ventory, Equipment Slots
{
"name" : "board",
## "type" : "board",
"style" : ("attach",),

"x" : 0,
"y" : 0,

"width" : 176,
"height" : 565 + 19,


## BU KISMI BUL:

## Item Slot
{
## "name" : "ItemSlot",
## "type" : "grid_table",

"x" : 8,
"y" : 246,

"start_index" : 0,
"x_count" : 5,
"y_count" : 9,
"x_step" : 32,
"y_step" : 32,

"image" : "d:/ymir work/ui/public/Slot_Base.sub"
},

## EN SONDAKİ VİRGÜLDEN HEMEN SONRA BİR ALT SATIRA GEÇ VE BUNU YAPIŞTIR:
##
## Trash Button
{
"name" : "TrashButton",
## "type" : "button",

"x" : 8,
"y" : 246 + 289,

"default_image" : "d:/ymir work/ui/trashbutton/trashbutton_up.tga",
"over_image" : "d:/ymir work/ui/trashbutton/trashbutton_hover.tga",
"down_image" : "d:/ymir work/ui/trashbutton/trashbutton_down.tga",
},[/CODE]

[CODE title="UserInterface/Locale_inc.h:"]//en son define'ın altına ekle:
#define TRASHBUTTON[/CODE]

[CODE title="UserInterface/Packet.h:"]// HEADER_CG_...#define bittiği yere, HEADER_GC'lere geçmeden bunu ekle:
// örnek olarak, benimki şu satırın hemen altında:
// HEADER_CG_HANDSHAKE = 0xff,

#ifdef TRASHBUTTON
HEADER_CG_DELETEFROMINV = 220,
#endif


// A#ifdefypedef struct command_on_click
{
BYTE header;
DWORD #endif;
} TPacketCGOnClick;

// ALTINA EKLE:

#ifdef TRASHBUTTON
typedef struct packet_delfrominv
{
BYTE header;
DWORD position;#ifdefcketCGDelFromInv;
#endif[/CODE]

[CODE title="UserInterface/PythonNetworkStream.h:"]// ARAT:
bool Se#endiftConfirmPacket(BYTE byAnswer, DWORD dwPID);
// ALTINA YAPIŞTIR:
#ifdef TRASHBUTTON
// trash button
bool SendDeleteFromInvPacket(DWORD posit#ifdef#endif[/CODE]

[CODE title="UserInterface/PythonNetworkStreamModule.cpp:"]// BU FONKSİYONU #endifPyObject* netSendSelectItemPacket(PyObject* poSelf, PyObject* poArgs)
{
/*...fonksiyon içeriği...*/
}

// FONKSİYON BİTTİKTEN SONRA BİR ALT SATIRA GEÇ VE YAPIŞTIR:

#ifdef TRASHBUTTON
PyObject* netSendDeleteFromInventory(PyObject* poSelf, PyObject* poArgs)
{
in#ifdefmPos;
if (!PyTuple_GetInteger(poArgs, 0, &iItemPos))
return Py_BuildException();

CPythonNetworkStream& rns = CPythonNetworkStream::Instance();
rns.SendDeleteFromInvPacket(iItemPos);

return Py_BuildNone();
}
#endif

// ARAT:
{ "RegisterErrorLog", netRegisterErrorLog, #endif METH_VARARGS },

// ALTINA YAPIŞTIR:
#ifdef TRASHBUTTON
{ "SendDeleteFromInventory", netSendDeleteFromInven#ifdef METH_VARARGS },
#endif[/CODE]

[CODE title="UserInterface/PythonNetworkStreamPhaseGame.cpp:"]// BU FONKSİYONU BUL:
bo#endifthonNetworkStream::SendQuestConfirmPacket(BYTE byAnswer, DWORD dwPID)
{
/*..fonksiyon içeriği..*/
}

// FONKSİYON BİTTİKTEN SONRA BİR ALT SATIRA GEÇ VE YAPIŞTIR:
#ifdef TRASHBUTTON
bool CPythonNetworkStream::SendDeleteFromInvPacket(DWORD position)
{
TPacketCGDelFromIn#ifdefket;
kPacket.header = HEADER_CG_DELETEFROMINV;
kPacket.position = position;

if (!Send(sizeof(kPacket), &kPacket))
{
Tracen("SendDeleteFromInvPacket Error");
return false;
}
Tracef("SendDeleteFromInvPacket");
return SendSequence();
}#endif
[/CODE]

[CODE title="common/service.h:"]// en son define'ın altına ekle:
#define TRASHBUTTON[/CODE]
[CODE title="game/src/input_main.cpp:"]// CInputMain::Analyze(LPDESC d, BYTE bHeader,#definechar * c_pData) fonksiyonu
// içinde, şunu bul:

case HEADER_CG_PONG:
Pong(d);
break;

// ÜSTÜNE YAPIŞTIR:

#ifdef TRASHBUTTON
case HEADER_CG_DELETEFROMINV:
if (ch)
{
const TPac#ifdefelFromInv* p = reinterpret_cast<const TPacketCGDelFromInv*>(c_pData);
TItemPos Cell(INVENTORY, p->position);
LPITEM itemToDelete = ch->GetItem(Cell);
if (itemToDelete != NULL)
{
if (Cell.IsEquipPosition())
{
ch->ChatPacket(CHAT_TYPE_INFO, "Hayir.");
/*"Giyilen itemi silemezsin" uyarisi bu.*/
}
else
{
itemToDelete->RemoveFromCharacter();
}
}
}
break;
#endif[/CODE]
[CODE title="game/src/packet.h:"]// yine HEADER_CG...'ların en sonuna, GC'lere geçmeden bir satır ekley#endif,
// örnek olarak benimki şu satırın altında:
// HEADER_CG_CLIENT_VERSION2 = 0xf1,

#ifdef TRASHBUTTON
HEADER_CG_DELETEFROMINV = 220,
#endif

// ARAT:
typedef struct command_on_click
{
BYTE header;
#ifdefRD vid;
} TPacketCGOnClick;

// ALTINA YAPIŞT#endiffdef TRASHBUTTON
typedef struct packet_delfrominv
{
BYTE header;
DWORD position;
} TPacketCGDelFromInv;
#endif[/CODE]#ifdef title="game/src/packet_info.cpp:"]// ARAT:
Set(HEADER_CG_ON_CLICK, sizeof(TPacketCGOnClick), "OnClick",#endif;
// ALTINA YAPIŞTIR#ifdef TRASHBUTTON
Set(HEADER_CG_DELETEFROMINV, sizeof(TPacketCGDelFromInv), "DelFromInv", true);#endif
[/CODE]







Not:Sistemi test etmedim, alıntıdır paylaşıldıysa lütfen gereksiz yorumlardan kaçınarak raporlayınız.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler
 

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

Geri
Üst