Sell Interface Protocol 166

Looks like Vraekar patch for L2MegaPVP Classic...


Edit: Its, same patch from L2MegaPVP Classic, and there is open src...
rly :D:D:D
bruh...
1720885157571.png


p.s. глядеть там не на что, из шары bit_hack'а который я на ммо шарил собрали интерфейс, так чисто на свой страх и риск можете это поковырять)
 
Last edited:
rly :D:D:D
bruh...
View attachment 4158


p.s. глядеть там не на что, из шары bit_hack'а который я на ммо шарил собрали интерфейс, так чисто на свой страх и риск можете это поковырять)
эта красавица просила меня помочь (типа интерфейс он для себя делает)
Я не просто помог, а скинул готовое решение.
После этого я увидел тему о продаже и он обратился еще раз помочь, я сказал что с него 50$ и он ушел в игнор)
 
Вот немного понимания как он "ПИШЕТ КОД" и что вы у него купите:
Кто шарит тот поймет

/*******************************************************************************
* DropWnd generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2022 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class DropWnd extends UICommonAPI;

const MAX_ITEM = 99;

var ButtonHandle zzbtnDrop;
var ButtonHandle zzbtnSave;
var int adenaRate;
var int dropRate;
var int spoilRate;

function OnLoad()
{
zzbtnDrop = ButtonHandle(GetHandle("DropWnd.btnDrop"));
zzbtnSave = ButtonHandle(GetHandle("DropWnd.DropConfig.rateSave"));
zzbtnDrop.SetTooltipCustomType(SetTooltip("Reload"));
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtDrop", "Drop");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtSpoil", "Spoil");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtConfig", "Config");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtAdenaRate", "Server Adena Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtDropRate", "Server Drop Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtSpoilRate", "Server Spoil Rate");
adenaRate = GetOptionInt("DropWnd", "adenaRate");
dropRate = GetOptionInt("DropWnd", "dropRate");
spoilRate = GetOptionInt("DropWnd", "spoilRate");
// End:0x24D
if(adenaRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", string(adenaRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", "1");
}
// End:0x2BE
if(dropRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", string(dropRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", "1");
}
// End:0x32F
if(spoilRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", string(spoilRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", "1");
}
return;
}

function OnClickButton(string strID)
{
switch(strID)
{
// End:0x1C
case "btnDrop":
GetMobID();
// End:0x35
break;
// End:0x32
case "rateSave":
onSaveRate();
// End:0x35
break;
// End:0xFFFF
default:
break;
}
return;
}

function onSaveRate()
{
adenaRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.AdenaRate"));
dropRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.DropRate"));
spoilRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.SpoilRate"));
// End:0x155
if((((((adenaRate > 0) && adenaRate < 9001) && dropRate > 0) && dropRate < 9001) && spoilRate > 0) && spoilRate < 9001)
{
SetOptionInt("DropWnd", "adenaRate", adenaRate);
SetOptionInt("DropWnd", "dropRate", dropRate);
SetOptionInt("DropWnd", "spoilRate", spoilRate);
}
else
{
MessageBox("Wrong value! Available: (1 - 9000)");
}
return;
}

function GetMobID()
{
local UserInfo Info;

GetTargetInfo(Info);
// End:0xA4
if((Info.bNpc && !Info.bPet) && Info.bCanBeAttacked)
{
AddItemList(Info.nClassID);
AddSpoilList(Info.nClassID);
// Agregar llamadas para obtener información de drop y spoil usando RequestBypassToServer
// RequestDropInfo();
// RequestSpoilInfo();
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.Container.WindowName", Info.Name);
ShowWindow("DropWnd");
}
else
{
HideWindow("DropWnd");
}
return;
}

function AddItemList(int MobID)
{
local int i, R, G, B, Id;

local ItemInfo Info;
local string ItemInfo;
local int Min, Max, Categ;
local string Qnt;
local int Chance;
local float ChanceFloat;
local string ChanceString, strNodeName;
local XMLTreeNodeInfo zzinfNode;
local XMLTreeNodeItemInfo zzinfNodeItem;
local XMLTreeNodeInfo zzinfNodeClear;
local XMLTreeNodeItemInfo zzinfNodeItemClear;

Class'UIAPI_TREECTRL'.static.Clear("DropWnd.DropInfo");
zzinfNode.strName = "root";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "", zzinfNode);
// End:0xA8
if(Len(strNodeName) < 1)
{
Debug("ERROR: Can't insert root node. Name: " $ zzinfNode.strName);
return;
}
i = 0;
i = 0;
J0xB6:

// End:0x7F2 [Loop If]
if(i < 99)
{
GetINIString(string(MobID), string(i), ItemInfo, "mobdrop");
// End:0x7E8
if(ItemInfo != "")
{
ParseInt(ItemInfo, "ID", Id);
ParseInt(ItemInfo, "min", Min);
ParseInt(ItemInfo, "max", Max);
ParseInt(ItemInfo, "category", Categ);
ParseInt(ItemInfo, "chance", Chance);
Class'UIDATA_ITEM'.static.GetItemInfo(Id, Info);
zzinfNode = zzinfNodeClear;
// End:0x27A
if(Id != 57)
{
ChanceFloat = float(Chance * dropRate) / float(10000);
// End:0x1F1
if((Chance * dropRate) < 99)
{
ChanceString = "0.001";
// End:0x1EE
if((Chance * dropRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x218
if((Chance * dropRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x24F
if(Min == Max)
{
Qnt = ("(" $ string(Min)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min)) $ " - ") $ string(Max)) $ ") ";
}
}
else
{
ChanceFloat = float(Chance * adenaRate) / float(10000);
// End:0x2DB
if((Chance * adenaRate) < 99)
{
ChanceString = "0.001";
// End:0x2D8
if((Chance * adenaRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x302
if((Chance * adenaRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x340
if(Min == Max)
{
Qnt = ("(" $ string(Min * adenaRate)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min * adenaRate)) $ " - ") $ string(Max * adenaRate)) $ ") ";
}
}
R = (Categ + 2) * 100;
G = (Categ + 3) * 100;
B = (Categ + 4) * 100;
zzinfNode.strName = "" $ string(i);
zzinfNode.bShowButton = 0;
zzinfNode.ToolTip = SetTooltipItem(Id);
zzinfNode.nTexExpandedOffSetX = 2;
zzinfNode.nTexExpandedOffSetY = 3;
zzinfNode.nTexExpandedHeight = 38;
zzinfNode.nTexExpandedRightWidth = 0;
zzinfNode.nTexExpandedLeftUWidth = 32;
zzinfNode.nTexExpandedLeftUHeight = 34;
zzinfNode.strTexExpandedLeft = "L2UI_CH3.etc.IconSelect2";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "root", zzinfNode);
// End:0x4CA
if(Len(strNodeName) < 1)
{
// LogInternal("ERROR: Can't insert node. Name: " $ zzinfNode.strName);
return;
}
zzinfNode.ToolTip.DrawList.Remove(0, zzinfNode.ToolTip.DrawList.Length);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.u_nTextureWidth = 32;
zzinfNodeItem.u_nTextureHeight = 32;
zzinfNodeItem.u_strTexture = Class'UIDATA_ITEM'.static.GetItemTextureName(Id);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = -33;
zzinfNodeItem.nOffSetY = 4;
zzinfNodeItem.u_nTextureWidth = 34;
zzinfNodeItem.u_nTextureHeight = 34;
zzinfNodeItem.u_strTexture = "L2UI_CH3.Button.basic_outline1";
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = Class'UIDATA_ITEM'.static.GetItemName(Id);
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.t_color.R = byte(R);
zzinfNodeItem.t_color.G = byte(G);
zzinfNodeItem.t_color.B = byte(B);
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = (Qnt $ ChanceString) $ "%";
zzinfNodeItem.bLineBreak = true;
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 42;
zzinfNodeItem.nOffSetY = -15;
zzinfNodeItem.t_color.R = 168;
zzinfNodeItem.t_color.G = 168;
zzinfNodeItem.t_color.B = 168;
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
}
i++;
// [Loop Continue]
goto J0xB6;
}
return;
}

function RequestDropInfo()
{
// Usar RequestBypassToServer para obtener información de drop y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo DropInfo");
}

function RequestSpoilInfo()
{
// Usar RequestBypassToServer para obtener información de spoil y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo SpoilInfo");
}
 
Вот немного понимания как он "ПИШЕТ КОД" и что вы у него купите:
Кто шарит тот поймет

/*******************************************************************************
* DropWnd generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2022 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class DropWnd extends UICommonAPI;

const MAX_ITEM = 99;

var ButtonHandle zzbtnDrop;
var ButtonHandle zzbtnSave;
var int adenaRate;
var int dropRate;
var int spoilRate;

function OnLoad()
{
zzbtnDrop = ButtonHandle(GetHandle("DropWnd.btnDrop"));
zzbtnSave = ButtonHandle(GetHandle("DropWnd.DropConfig.rateSave"));
zzbtnDrop.SetTooltipCustomType(SetTooltip("Reload"));
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtDrop", "Drop");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtSpoil", "Spoil");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtConfig", "Config");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtAdenaRate", "Server Adena Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtDropRate", "Server Drop Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtSpoilRate", "Server Spoil Rate");
adenaRate = GetOptionInt("DropWnd", "adenaRate");
dropRate = GetOptionInt("DropWnd", "dropRate");
spoilRate = GetOptionInt("DropWnd", "spoilRate");
// End:0x24D
if(adenaRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", string(adenaRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", "1");
}
// End:0x2BE
if(dropRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", string(dropRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", "1");
}
// End:0x32F
if(spoilRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", string(spoilRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", "1");
}
return;
}

function OnClickButton(string strID)
{
switch(strID)
{
// End:0x1C
case "btnDrop":
GetMobID();
// End:0x35
break;
// End:0x32
case "rateSave":
onSaveRate();
// End:0x35
break;
// End:0xFFFF
default:
break;
}
return;
}

function onSaveRate()
{
adenaRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.AdenaRate"));
dropRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.DropRate"));
spoilRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.SpoilRate"));
// End:0x155
if((((((adenaRate > 0) && adenaRate < 9001) && dropRate > 0) && dropRate < 9001) && spoilRate > 0) && spoilRate < 9001)
{
SetOptionInt("DropWnd", "adenaRate", adenaRate);
SetOptionInt("DropWnd", "dropRate", dropRate);
SetOptionInt("DropWnd", "spoilRate", spoilRate);
}
else
{
MessageBox("Wrong value! Available: (1 - 9000)");
}
return;
}

function GetMobID()
{
local UserInfo Info;

GetTargetInfo(Info);
// End:0xA4
if((Info.bNpc && !Info.bPet) && Info.bCanBeAttacked)
{
AddItemList(Info.nClassID);
AddSpoilList(Info.nClassID);
// Agregar llamadas para obtener información de drop y spoil usando RequestBypassToServer
// RequestDropInfo();
// RequestSpoilInfo();
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.Container.WindowName", Info.Name);
ShowWindow("DropWnd");
}
else
{
HideWindow("DropWnd");
}
return;
}

function AddItemList(int MobID)
{
local int i, R, G, B, Id;

local ItemInfo Info;
local string ItemInfo;
local int Min, Max, Categ;
local string Qnt;
local int Chance;
local float ChanceFloat;
local string ChanceString, strNodeName;
local XMLTreeNodeInfo zzinfNode;
local XMLTreeNodeItemInfo zzinfNodeItem;
local XMLTreeNodeInfo zzinfNodeClear;
local XMLTreeNodeItemInfo zzinfNodeItemClear;

Class'UIAPI_TREECTRL'.static.Clear("DropWnd.DropInfo");
zzinfNode.strName = "root";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "", zzinfNode);
// End:0xA8
if(Len(strNodeName) < 1)
{
Debug("ERROR: Can't insert root node. Name: " $ zzinfNode.strName);
return;
}
i = 0;
i = 0;
J0xB6:

// End:0x7F2 [Loop If]
if(i < 99)
{
GetINIString(string(MobID), string(i), ItemInfo, "mobdrop");
// End:0x7E8
if(ItemInfo != "")
{
ParseInt(ItemInfo, "ID", Id);
ParseInt(ItemInfo, "min", Min);
ParseInt(ItemInfo, "max", Max);
ParseInt(ItemInfo, "category", Categ);
ParseInt(ItemInfo, "chance", Chance);
Class'UIDATA_ITEM'.static.GetItemInfo(Id, Info);
zzinfNode = zzinfNodeClear;
// End:0x27A
if(Id != 57)
{
ChanceFloat = float(Chance * dropRate) / float(10000);
// End:0x1F1
if((Chance * dropRate) < 99)
{
ChanceString = "0.001";
// End:0x1EE
if((Chance * dropRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x218
if((Chance * dropRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x24F
if(Min == Max)
{
Qnt = ("(" $ string(Min)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min)) $ " - ") $ string(Max)) $ ") ";
}
}
else
{
ChanceFloat = float(Chance * adenaRate) / float(10000);
// End:0x2DB
if((Chance * adenaRate) < 99)
{
ChanceString = "0.001";
// End:0x2D8
if((Chance * adenaRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x302
if((Chance * adenaRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x340
if(Min == Max)
{
Qnt = ("(" $ string(Min * adenaRate)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min * adenaRate)) $ " - ") $ string(Max * adenaRate)) $ ") ";
}
}
R = (Categ + 2) * 100;
G = (Categ + 3) * 100;
B = (Categ + 4) * 100;
zzinfNode.strName = "" $ string(i);
zzinfNode.bShowButton = 0;
zzinfNode.ToolTip = SetTooltipItem(Id);
zzinfNode.nTexExpandedOffSetX = 2;
zzinfNode.nTexExpandedOffSetY = 3;
zzinfNode.nTexExpandedHeight = 38;
zzinfNode.nTexExpandedRightWidth = 0;
zzinfNode.nTexExpandedLeftUWidth = 32;
zzinfNode.nTexExpandedLeftUHeight = 34;
zzinfNode.strTexExpandedLeft = "L2UI_CH3.etc.IconSelect2";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "root", zzinfNode);
// End:0x4CA
if(Len(strNodeName) < 1)
{
// LogInternal("ERROR: Can't insert node. Name: " $ zzinfNode.strName);
return;
}
zzinfNode.ToolTip.DrawList.Remove(0, zzinfNode.ToolTip.DrawList.Length);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.u_nTextureWidth = 32;
zzinfNodeItem.u_nTextureHeight = 32;
zzinfNodeItem.u_strTexture = Class'UIDATA_ITEM'.static.GetItemTextureName(Id);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = -33;
zzinfNodeItem.nOffSetY = 4;
zzinfNodeItem.u_nTextureWidth = 34;
zzinfNodeItem.u_nTextureHeight = 34;
zzinfNodeItem.u_strTexture = "L2UI_CH3.Button.basic_outline1";
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = Class'UIDATA_ITEM'.static.GetItemName(Id);
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.t_color.R = byte(R);
zzinfNodeItem.t_color.G = byte(G);
zzinfNodeItem.t_color.B = byte(B);
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = (Qnt $ ChanceString) $ "%";
zzinfNodeItem.bLineBreak = true;
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 42;
zzinfNodeItem.nOffSetY = -15;
zzinfNodeItem.t_color.R = 168;
zzinfNodeItem.t_color.G = 168;
zzinfNodeItem.t_color.B = 168;
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
}
i++;
// [Loop Continue]
goto J0xB6;
}
return;
}

function RequestDropInfo()
{
// Usar RequestBypassToServer para obtener información de drop y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo DropInfo");
}

function RequestSpoilInfo()
{
// Usar RequestBypassToServer para obtener información de spoil y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo SpoilInfo");
}
Та ты тоже не особо чистотой блещешь)
 
эта красавица просила меня помочь (типа интерфейс он для себя делает)
Я не просто помог, а скинул готовое решение.
После этого я увидел тему о продаже и он обратился еще раз помочь, я сказал что с него 50$ и он ушел в игнор)
Am I obligated to pay you? He charged me $50 for a question, I don't have to pay! He hasn't said anything yet!
 
Вот немного понимания как он "ПИШЕТ КОД" и что вы у него купите:
Кто шарит тот поймет

/*******************************************************************************
* DropWnd generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2022 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class DropWnd extends UICommonAPI;

const MAX_ITEM = 99;

var ButtonHandle zzbtnDrop;
var ButtonHandle zzbtnSave;
var int adenaRate;
var int dropRate;
var int spoilRate;

function OnLoad()
{
zzbtnDrop = ButtonHandle(GetHandle("DropWnd.btnDrop"));
zzbtnSave = ButtonHandle(GetHandle("DropWnd.DropConfig.rateSave"));
zzbtnDrop.SetTooltipCustomType(SetTooltip("Reload"));
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtDrop", "Drop");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtSpoil", "Spoil");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtConfig", "Config");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtAdenaRate", "Server Adena Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtDropRate", "Server Drop Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtSpoilRate", "Server Spoil Rate");
adenaRate = GetOptionInt("DropWnd", "adenaRate");
dropRate = GetOptionInt("DropWnd", "dropRate");
spoilRate = GetOptionInt("DropWnd", "spoilRate");
// End:0x24D
if(adenaRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", string(adenaRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", "1");
}
// End:0x2BE
if(dropRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", string(dropRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", "1");
}
// End:0x32F
if(spoilRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", string(spoilRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", "1");
}
return;
}

function OnClickButton(string strID)
{
switch(strID)
{
// End:0x1C
case "btnDrop":
GetMobID();
// End:0x35
break;
// End:0x32
case "rateSave":
onSaveRate();
// End:0x35
break;
// End:0xFFFF
default:
break;
}
return;
}

function onSaveRate()
{
adenaRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.AdenaRate"));
dropRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.DropRate"));
spoilRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.SpoilRate"));
// End:0x155
if((((((adenaRate > 0) && adenaRate < 9001) && dropRate > 0) && dropRate < 9001) && spoilRate > 0) && spoilRate < 9001)
{
SetOptionInt("DropWnd", "adenaRate", adenaRate);
SetOptionInt("DropWnd", "dropRate", dropRate);
SetOptionInt("DropWnd", "spoilRate", spoilRate);
}
else
{
MessageBox("Wrong value! Available: (1 - 9000)");
}
return;
}

function GetMobID()
{
local UserInfo Info;

GetTargetInfo(Info);
// End:0xA4
if((Info.bNpc && !Info.bPet) && Info.bCanBeAttacked)
{
AddItemList(Info.nClassID);
AddSpoilList(Info.nClassID);
// Agregar llamadas para obtener información de drop y spoil usando RequestBypassToServer
// RequestDropInfo();
// RequestSpoilInfo();
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.Container.WindowName", Info.Name);
ShowWindow("DropWnd");
}
else
{
HideWindow("DropWnd");
}
return;
}

function AddItemList(int MobID)
{
local int i, R, G, B, Id;

local ItemInfo Info;
local string ItemInfo;
local int Min, Max, Categ;
local string Qnt;
local int Chance;
local float ChanceFloat;
local string ChanceString, strNodeName;
local XMLTreeNodeInfo zzinfNode;
local XMLTreeNodeItemInfo zzinfNodeItem;
local XMLTreeNodeInfo zzinfNodeClear;
local XMLTreeNodeItemInfo zzinfNodeItemClear;

Class'UIAPI_TREECTRL'.static.Clear("DropWnd.DropInfo");
zzinfNode.strName = "root";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "", zzinfNode);
// End:0xA8
if(Len(strNodeName) < 1)
{
Debug("ERROR: Can't insert root node. Name: " $ zzinfNode.strName);
return;
}
i = 0;
i = 0;
J0xB6:

// End:0x7F2 [Loop If]
if(i < 99)
{
GetINIString(string(MobID), string(i), ItemInfo, "mobdrop");
// End:0x7E8
if(ItemInfo != "")
{
ParseInt(ItemInfo, "ID", Id);
ParseInt(ItemInfo, "min", Min);
ParseInt(ItemInfo, "max", Max);
ParseInt(ItemInfo, "category", Categ);
ParseInt(ItemInfo, "chance", Chance);
Class'UIDATA_ITEM'.static.GetItemInfo(Id, Info);
zzinfNode = zzinfNodeClear;
// End:0x27A
if(Id != 57)
{
ChanceFloat = float(Chance * dropRate) / float(10000);
// End:0x1F1
if((Chance * dropRate) < 99)
{
ChanceString = "0.001";
// End:0x1EE
if((Chance * dropRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x218
if((Chance * dropRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x24F
if(Min == Max)
{
Qnt = ("(" $ string(Min)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min)) $ " - ") $ string(Max)) $ ") ";
}
}
else
{
ChanceFloat = float(Chance * adenaRate) / float(10000);
// End:0x2DB
if((Chance * adenaRate) < 99)
{
ChanceString = "0.001";
// End:0x2D8
if((Chance * adenaRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x302
if((Chance * adenaRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x340
if(Min == Max)
{
Qnt = ("(" $ string(Min * adenaRate)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min * adenaRate)) $ " - ") $ string(Max * adenaRate)) $ ") ";
}
}
R = (Categ + 2) * 100;
G = (Categ + 3) * 100;
B = (Categ + 4) * 100;
zzinfNode.strName = "" $ string(i);
zzinfNode.bShowButton = 0;
zzinfNode.ToolTip = SetTooltipItem(Id);
zzinfNode.nTexExpandedOffSetX = 2;
zzinfNode.nTexExpandedOffSetY = 3;
zzinfNode.nTexExpandedHeight = 38;
zzinfNode.nTexExpandedRightWidth = 0;
zzinfNode.nTexExpandedLeftUWidth = 32;
zzinfNode.nTexExpandedLeftUHeight = 34;
zzinfNode.strTexExpandedLeft = "L2UI_CH3.etc.IconSelect2";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "root", zzinfNode);
// End:0x4CA
if(Len(strNodeName) < 1)
{
// LogInternal("ERROR: Can't insert node. Name: " $ zzinfNode.strName);
return;
}
zzinfNode.ToolTip.DrawList.Remove(0, zzinfNode.ToolTip.DrawList.Length);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.u_nTextureWidth = 32;
zzinfNodeItem.u_nTextureHeight = 32;
zzinfNodeItem.u_strTexture = Class'UIDATA_ITEM'.static.GetItemTextureName(Id);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = -33;
zzinfNodeItem.nOffSetY = 4;
zzinfNodeItem.u_nTextureWidth = 34;
zzinfNodeItem.u_nTextureHeight = 34;
zzinfNodeItem.u_strTexture = "L2UI_CH3.Button.basic_outline1";
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = Class'UIDATA_ITEM'.static.GetItemName(Id);
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.t_color.R = byte(R);
zzinfNodeItem.t_color.G = byte(G);
zzinfNodeItem.t_color.B = byte(B);
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = (Qnt $ ChanceString) $ "%";
zzinfNodeItem.bLineBreak = true;
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 42;
zzinfNodeItem.nOffSetY = -15;
zzinfNodeItem.t_color.R = 168;
zzinfNodeItem.t_color.G = 168;
zzinfNodeItem.t_color.B = 168;
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
}
i++;
// [Loop Continue]
goto J0xB6;
}
return;
}

function RequestDropInfo()
{
// Usar RequestBypassToServer para obtener información de drop y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo DropInfo");
}

function RequestSpoilInfo()
{
// Usar RequestBypassToServer para obtener información de spoil y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo SpoilInfo");
}
This code was taken from an interlude, but I didn't use it and made a new one.
I thank BIThack who helped me and receives several tips.
 
Вот немного понимания как он "ПИШЕТ КОД" и что вы у него купите:
Кто шарит тот поймет

/*******************************************************************************
* DropWnd generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2022 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class DropWnd extends UICommonAPI;

const MAX_ITEM = 99;

var ButtonHandle zzbtnDrop;
var ButtonHandle zzbtnSave;
var int adenaRate;
var int dropRate;
var int spoilRate;

function OnLoad()
{
zzbtnDrop = ButtonHandle(GetHandle("DropWnd.btnDrop"));
zzbtnSave = ButtonHandle(GetHandle("DropWnd.DropConfig.rateSave"));
zzbtnDrop.SetTooltipCustomType(SetTooltip("Reload"));
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtDrop", "Drop");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtSpoil", "Spoil");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.txtConfig", "Config");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtAdenaRate", "Server Adena Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtDropRate", "Server Drop Rate");
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.DropConfig.txtSpoilRate", "Server Spoil Rate");
adenaRate = GetOptionInt("DropWnd", "adenaRate");
dropRate = GetOptionInt("DropWnd", "dropRate");
spoilRate = GetOptionInt("DropWnd", "spoilRate");
// End:0x24D
if(adenaRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", string(adenaRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.AdenaRate", "1");
}
// End:0x2BE
if(dropRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", string(dropRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.DropRate", "1");
}
// End:0x32F
if(spoilRate > 0)
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", string(spoilRate));
}
else
{
Class'UIAPI_EDITBOX'.static.SetString("DropWnd.DropConfig.SpoilRate", "1");
}
return;
}

function OnClickButton(string strID)
{
switch(strID)
{
// End:0x1C
case "btnDrop":
GetMobID();
// End:0x35
break;
// End:0x32
case "rateSave":
onSaveRate();
// End:0x35
break;
// End:0xFFFF
default:
break;
}
return;
}

function onSaveRate()
{
adenaRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.AdenaRate"));
dropRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.DropRate"));
spoilRate = int(Class'UIAPI_EDITBOX'.static.GetString("DropWnd.DropConfig.SpoilRate"));
// End:0x155
if((((((adenaRate > 0) && adenaRate < 9001) && dropRate > 0) && dropRate < 9001) && spoilRate > 0) && spoilRate < 9001)
{
SetOptionInt("DropWnd", "adenaRate", adenaRate);
SetOptionInt("DropWnd", "dropRate", dropRate);
SetOptionInt("DropWnd", "spoilRate", spoilRate);
}
else
{
MessageBox("Wrong value! Available: (1 - 9000)");
}
return;
}

function GetMobID()
{
local UserInfo Info;

GetTargetInfo(Info);
// End:0xA4
if((Info.bNpc && !Info.bPet) && Info.bCanBeAttacked)
{
AddItemList(Info.nClassID);
AddSpoilList(Info.nClassID);
// Agregar llamadas para obtener información de drop y spoil usando RequestBypassToServer
// RequestDropInfo();
// RequestSpoilInfo();
Class'UIAPI_TEXTBOX'.static.SetText("DropWnd.Container.WindowName", Info.Name);
ShowWindow("DropWnd");
}
else
{
HideWindow("DropWnd");
}
return;
}

function AddItemList(int MobID)
{
local int i, R, G, B, Id;

local ItemInfo Info;
local string ItemInfo;
local int Min, Max, Categ;
local string Qnt;
local int Chance;
local float ChanceFloat;
local string ChanceString, strNodeName;
local XMLTreeNodeInfo zzinfNode;
local XMLTreeNodeItemInfo zzinfNodeItem;
local XMLTreeNodeInfo zzinfNodeClear;
local XMLTreeNodeItemInfo zzinfNodeItemClear;

Class'UIAPI_TREECTRL'.static.Clear("DropWnd.DropInfo");
zzinfNode.strName = "root";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "", zzinfNode);
// End:0xA8
if(Len(strNodeName) < 1)
{
Debug("ERROR: Can't insert root node. Name: " $ zzinfNode.strName);
return;
}
i = 0;
i = 0;
J0xB6:

// End:0x7F2 [Loop If]
if(i < 99)
{
GetINIString(string(MobID), string(i), ItemInfo, "mobdrop");
// End:0x7E8
if(ItemInfo != "")
{
ParseInt(ItemInfo, "ID", Id);
ParseInt(ItemInfo, "min", Min);
ParseInt(ItemInfo, "max", Max);
ParseInt(ItemInfo, "category", Categ);
ParseInt(ItemInfo, "chance", Chance);
Class'UIDATA_ITEM'.static.GetItemInfo(Id, Info);
zzinfNode = zzinfNodeClear;
// End:0x27A
if(Id != 57)
{
ChanceFloat = float(Chance * dropRate) / float(10000);
// End:0x1F1
if((Chance * dropRate) < 99)
{
ChanceString = "0.001";
// End:0x1EE
if((Chance * dropRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x218
if((Chance * dropRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x24F
if(Min == Max)
{
Qnt = ("(" $ string(Min)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min)) $ " - ") $ string(Max)) $ ") ";
}
}
else
{
ChanceFloat = float(Chance * adenaRate) / float(10000);
// End:0x2DB
if((Chance * adenaRate) < 99)
{
ChanceString = "0.001";
// End:0x2D8
if((Chance * adenaRate) < 9)
{
ChanceString = "0.0001";
}
}
else
{
// End:0x302
if((Chance * adenaRate) > 999999)
{
ChanceString = "100.00";
}
else
{
ChanceString = string(ChanceFloat);
}
}
// End:0x340
if(Min == Max)
{
Qnt = ("(" $ string(Min * adenaRate)) $ ") ";
}
else
{
Qnt = ((("(" $ string(Min * adenaRate)) $ " - ") $ string(Max * adenaRate)) $ ") ";
}
}
R = (Categ + 2) * 100;
G = (Categ + 3) * 100;
B = (Categ + 4) * 100;
zzinfNode.strName = "" $ string(i);
zzinfNode.bShowButton = 0;
zzinfNode.ToolTip = SetTooltipItem(Id);
zzinfNode.nTexExpandedOffSetX = 2;
zzinfNode.nTexExpandedOffSetY = 3;
zzinfNode.nTexExpandedHeight = 38;
zzinfNode.nTexExpandedRightWidth = 0;
zzinfNode.nTexExpandedLeftUWidth = 32;
zzinfNode.nTexExpandedLeftUHeight = 34;
zzinfNode.strTexExpandedLeft = "L2UI_CH3.etc.IconSelect2";
strNodeName = Class'UIAPI_TREECTRL'.static.InsertNode("DropWnd.DropInfo", "root", zzinfNode);
// End:0x4CA
if(Len(strNodeName) < 1)
{
// LogInternal("ERROR: Can't insert node. Name: " $ zzinfNode.strName);
return;
}
zzinfNode.ToolTip.DrawList.Remove(0, zzinfNode.ToolTip.DrawList.Length);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.u_nTextureWidth = 32;
zzinfNodeItem.u_nTextureHeight = 32;
zzinfNodeItem.u_strTexture = Class'UIDATA_ITEM'.static.GetItemTextureName(Id);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXTURE;
zzinfNodeItem.nOffSetX = -33;
zzinfNodeItem.nOffSetY = 4;
zzinfNodeItem.u_nTextureWidth = 34;
zzinfNodeItem.u_nTextureHeight = 34;
zzinfNodeItem.u_strTexture = "L2UI_CH3.Button.basic_outline1";
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = Class'UIDATA_ITEM'.static.GetItemName(Id);
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 5;
zzinfNodeItem.nOffSetY = 6;
zzinfNodeItem.t_color.R = byte(R);
zzinfNodeItem.t_color.G = byte(G);
zzinfNodeItem.t_color.B = byte(B);
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
zzinfNodeItem = zzinfNodeItemClear;
zzinfNodeItem.eType = XTNITEM_TEXT;
zzinfNodeItem.t_strText = (Qnt $ ChanceString) $ "%";
zzinfNodeItem.bLineBreak = true;
zzinfNodeItem.t_bDrawOneLine = true;
zzinfNodeItem.nOffSetX = 42;
zzinfNodeItem.nOffSetY = -15;
zzinfNodeItem.t_color.R = 168;
zzinfNodeItem.t_color.G = 168;
zzinfNodeItem.t_color.B = 168;
zzinfNodeItem.t_color.A = byte(255);
Class'UIAPI_TREECTRL'.static.InsertNodeItem("DropWnd.DropInfo", strNodeName, zzinfNodeItem);
}
i++;
// [Loop Continue]
goto J0xB6;
}
return;
}

function RequestDropInfo()
{
// Usar RequestBypassToServer para obtener información de drop y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo DropInfo");
}

function RequestSpoilInfo()
{
// Usar RequestBypassToServer para obtener información de spoil y guardarla en el mobinfo.ini

RequestBypassToServer("GetDropInfo SpoilInfo");
}
там же сурс есть в файлике)
 
Позвольте мне хотя бы сообщить вам, кто собирается это купить.
просто будьте осторожны: вы купите что-то, что было копипастом из разных проектов и работы других людей.
Если не верите, скачайте патч L2MegaPvP и убедитесь сами.
 
Позвольте мне хотя бы сообщить вам, кто собирается это купить.
просто будьте осторожны: вы купите что-то, что было копипастом из разных проектов и работы других людей.
Если не верите, скачайте патч L2MegaPvP и убедитесь сами.
You're talking shit, the auto login code I bought from BitHack, and the l2J Mega Pvp interface the owner gave me the classes so I can add this to it.
 
Позвольте мне хотя бы сообщить вам, кто собирается это купить.
просто будьте осторожны: вы купите что-то, что было копипастом из разных проектов и работы других людей.
Если не верите, скачайте патч L2MegaPvP и убедитесь сами.
ссылки не работают у них на сайте... глянуть хотел
 
ссылки не работают у них на сайте... глянуть хотел
видимо админ решил продолжить работу только с сервером интерлюдий, классик закрыли
 
2 new updates.
Auto potions with control
Auto argument with information
 

Attachments

  • 1724444412510.webp
    1724444412510.webp
    28.2 KB · Views: 65
  • 1724444432007.webp
    1724444432007.webp
    36.2 KB · Views: 64
Back
Top