[Python + LUA] és [C++] Coins avagy SÉ mutatása leltárban (forrás is)

Indította Pisti95, 2015-03-09, 20:12:46

2015-03-09, 20:12:46 Utolsó szerkesztés: 2016-12-08, 20:21:49 Szerző: Pisti95
Sziasztok! :)

Privátban kértek tőlem leírást ahhoz, hogy, hogy jó lenne ha mutatná a leltárban, hogy mennyi sárkányérme (SÉ) van nála.
Ezért most hoztam nektek egy leírást!

Itt egy videó, hogy miről beszélek: https://www.youtube.com/watch?v=93aufcRE_4s#t=15


34k és az alatt lévő game fájlok esetén:
Kliens oldal:

root.eix/epk --> uiinventory.py

Rákerestek erre:

self.wndMoneySlot = self.GetChild("Money_Slot")



Alá teszitek ezt:

self.wndMds = self.GetChild("Mds")
self.wndMdsSlot = self.GetChild("Mds_Slot")



Ezután keresel erre:

def Destroy(self):



Megkeresed ebben a funkcióban a yang helyét (money):
Idéz
      self.wndMoney = 0
      self.wndMoneySlot = 0


A money alá teszed ezt:

self.wndMds = 0
self.wndMdsSlot = 0



Rákeresel erre:

def RefreshStatus(self):




Lecseréled az egész funkciót erre:

def RefreshStatus(self):
money = player.GetElk()
self.wndMoney.SetText(locale.NumberToMoneyString(money))
import constInfo
self.wndMds.SetText(str(constInfo.mds) + " Md's")


   
Rákeresel erre:

def OnUpdate(self):



Ha van alatta funkció akkor ezt alámásolod:

import constInfo
self.wndMds.SetText(str(constInfo.mds) + " Md's")



Ha nincs def OnUpdate(self) funkciód, akkor létehozod, ami így nézzen ki:

def RefreshStatus(self):
money = player.GetElk()
self.wndMoney.SetText(locale.NumberToMoneyString(money))
import constInfo
self.wndMds.SetText(str(constInfo.mds) + " SÉ") ###Md's helyett SÉ
def OnUpdate(self):
import constInfo
self.wndMds.SetText(str(constInfo.mds) + " SÉ")

      
###Figyelj, hogy az uiinventory.py végén legyen üres sor!###





game.py

Rákeresel erre:

def __ServerCommand_Build(self):



Alá írod ezt:

#Carga Mds Start
"Mds"                   : self.__Mds,
#Carga Mds End



A game.py végére (nem teljesen a végére) beilleszted ezt:

def __Mds(self, coins):
import constInfo
constInfo.mds = int(coins)






continfo.py

Beleírod ezt:

mds = 0









locale_**.eix/epk --> inventorywindow.py

Rákeresel erre:

"name":"Money_Slot",



A Money_Slot végére illeszted az Mds_Slot-ot.

Ezt beilleszted alá:

# Coins-system or SÉ
{
"name":"Mds_Slot",
"type":"button",
#x és y koordináta értékével tudod tologatni a leltáron belül a kis dobozt,
#ami mutatja a SÉ-t.
"x":-68,
"y":48,

"horizontal_align":"center",
"vertical_align":"bottom",

"default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

"children" :
(
{
"name":"Mds_Icon",
"type":"image",

"x":-21,
"y":2,

"image":"d:/ymir work/ui/game/windows/money_icon.sub",
},

{
"name" : "Mds",
"type" : "text",

"x" : 5,
"y" : 3,

"horizontal_align" : "right",
"text_horizontal_align" : "right",

"text" : "123456789",
},
),
},



Mentheted ezt is! Ezzel vége a kliens oldalnak!







Aztán már csak egy teendő van hátra, hogy a hozzátartozó quest-et berakod és lefuttatod ./qc-val.

Quest hozzá:

quest mds begin
state start begin
when login begin
loop_timer("carga_mds", 10) --10sec-enként ellenőrzi az értékét az Mds-nek (SÉ) (átírhatod az időzítőt)
end
when carga_mds.timer begin
local coins = mysql_query("SELECT coins from account.account WHERE id="..pc.get_account_id().." LIMIT 1;")[1][1]
cmdchat("Mds "..coins)
end
end
end



Apropó!!
A quest rendes futásához szükség van a MYSQL adatfeldolgozó parancsra:

http://metin2hungary.net/index.php/topic,151357.msg825882.html#msg825882


Üdvözlettel,

Pisti95

2016-12-08, 20:03:24 #1 Utolsó szerkesztés: 2016-12-08, 20:06:35 Szerző: Pisti95
40k avagy forrás esetén:

Game fájl forrás:

Server/game/src/

input_login.cpp


#include -ok alá egyből bemásolod ezt:

static void _send_coins(LPCHARACTER ch)
{
if (ch)
{
SQLMsg * pMsg = DBManager::instance().DirectQuery("select coins from account.account WHERE id = %d",ch->GetDesc()->GetAccountTable().id);
if (pMsg->Get()->uiNumRows > 0)
{
MYSQL_ROW  row = mysql_fetch_row(pMsg->Get()->pSQLResult);
ch->ChatPacket(CHAT_TYPE_COMMAND, "BINARY_Update_Coins %s", row[0]);
delete pMsg;
}
}
}



Rákeresel erre:

void CInputLogin::Entergame(LPDESC d, const char * data)



Ezen belül pedig ezt a sort keresd meg:

_send_bonus_info(ch);



Alá írod ezt:

_send_coins(ch);







Kliens oldal

root.eix/epk

constinfo.py

Elejére ezt írod:

mds = 0






game.py

Rákeresel erre:

serverCommandList={



Alá írod a többi közé ezt:

"BINARY_Update_Coins" :self.BINARY_Update_Coins,



A végére ezt írod:

def BINARY_Update_Coins(self, coins):
constInfo.mds =(str(coins))





uiinventory.py


Rákerestek erre:

self.wndMoneySlot = self.GetChild("Money_Slot")



Alá teszitek ezt:

self.wndMds = self.GetChild("Mds")
self.wndMdsSlot = self.GetChild("Mds_Slot")



Ezután keresel erre:

def Destroy(self):



Megkeresed ebben a funkcióban a yang helyét (money):
Idéz
      self.wndMoney = 0
      self.wndMoneySlot = 0


A money alá teszed ezt:

self.wndMds = 0
self.wndMdsSlot = 0



Rákeresel erre:

def RefreshStatus(self):



Lecseréled az egész funkciót erre:

def RefreshStatus(self):
money = player.GetElk()
self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))
import constInfo
self.wndMds.SetText(str(constInfo.mds) + " SÉ")

   

Rákeresel erre:

def OnUpdate(self):



Ha van alatta funkció akkor ezt alámásolod:

import constInfo
self.wndMds.SetText(str(constInfo.mds) + " SÉ")




Ha nincs, akkor bemásolod a def RefreshStatus(self): alá:

def OnUpdate(self):
import constInfo
self.wndMds.SetText(str(constInfo.mds) + " SÉ")





locale_**.eix/epk

inventorywindow.py


Rákeresel erre:

"name":"Money_Slot",



A Money_Slot végére illeszted az Mds_Slot-ot.
Ezt beilleszted alá:

# Coins-system
{
"name":"Mds_Slot",
"type":"button",
#x és y koordináta értékével tudod tologatni a leltáron belül a kis dobozt,
#ami mutatja a SÉ-t.
"x":-68,
"y":48,

"horizontal_align":"center",
"vertical_align":"bottom",

"default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

"children" :
(
{
"name":"Mds_Icon",
"type":"image",

"x":-21,
"y":2,

"image":"d:/ymir work/ui/game/windows/money_icon.sub",
},

{
"name" : "Mds",
"type" : "text",

"x" : 5,
"y" : 3,

"horizontal_align" : "right",
"text_horizontal_align" : "right",

"text" : "123456789",
},
),
},



Ezzel készen is vagyunk!

Megjegyzés: A leltárban lévő mennyiség, csak teleportálásnál fog frissülni!



Üdvözlettel,

Pisti95