xx
For : @
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
; <3EterPythonLib/PythonSlotWindow.cpp arat
Kod:
void CSlotWindow::SetSlot(DWORD dwIndex, DWORD dwVirtualNumber, BYTE byWidth, BYTE byHeight, CGraphicImage * pImage, D3DXCOLOR& diffuseColor) { TSlot * pSlot; if (!GetSlotPointer(dwIndex, &pSlot)) return; if (pSlot->isItem) if (pSlot->dwItemIndex == dwVirtualNumber) { pSlot->dwState = 0; pSlot->isItem = TRUE; if (pImage && pSlot->pInstance) { pSlot->pInstance->SetImagePointer(pImage); } return; } ClearSlot(pSlot); pSlot->dwState = 0; pSlot->isItem = TRUE; pSlot->dwItemIndex = dwVirtualNumber; if (pImage) { assert(NULL == pSlot->pInstance); pSlot->pInstance = CGraphicImageInstance::New(); pSlot->pInstance->SetDiffuseColor(diffuseColor.r, diffuseColor.g, diffuseColor.b, diffuseColor.a); pSlot->pInstance->SetImagePointer(pImage); } pSlot->byxPlacedItemSize = byWidth; pSlot->byyPlacedItemSize = byHeight; if (pSlot->pCoverButton) { pSlot->pCoverButton->Show(); } }
ALTINA EKLE
Kod:
void CSlotWindow::SetCardSlot(DWORD dwIndex, DWORD dwVirtualNumber, BYTE byWidth, BYTE byHeight, const char * c_szFileName, D3DXCOLOR& diffuseColor) { CGraphicImage * pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(c_szFileName); TSlot * pSlot; if (!GetSlotPointer(dwIndex, &pSlot)) return; if (pSlot->isItem) if (pSlot->dwItemIndex == dwVirtualNumber) { pSlot->dwState = 0; pSlot->isItem = TRUE; if (pImage && pSlot->pInstance) { pSlot->pInstance->SetImagePointer(pImage); } return; } ClearSlot(pSlot); pSlot->dwState = 0; pSlot->isItem = TRUE; pSlot->dwItemIndex = dwVirtualNumber; if (pImage) { assert(NULL == pSlot->pInstance); pSlot->pInstance = CGraphicImageInstance::New(); pSlot->pInstance->SetImagePointer(pImage); pSlot->pInstance->SetDiffuseColor(diffuseColor.r, diffuseColor.g, diffuseColor.b, diffuseColor.a); } pSlot->byxPlacedItemSize = byWidth; pSlot->byyPlacedItemSize = byHeight; if (pSlot->pCoverButton) { pSlot->pCoverButton->Show(); } }
EterPythonLib/PythonSlotWindow.h arat
Kod:
void SetSlot(DWORD dwIndex, DWORD dwVirtualNumber, BYTE byWidth, BYTE byHeight, CGraphicImage * pImage, D3DXCOLOR& diffuseColor);
EKLE
Kod:
void SetCardSlot(DWORD dwIndex, DWORD dwVirtualNumber, BYTE byWidth, BYTE byHeight, const char * c_szFileName, D3DXCOLOR& diffuseColor);
EterPythonLib/PythonWindowMangerModule.cpp arat
Kod:
PyObject * wndMgrSetSlot(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); int iItemIndex; if (!PyTuple_GetInteger(poArgs, 2, &iItemIndex)) return Py_BuildException(); int iWidth; if (!PyTuple_GetInteger(poArgs, 3, &iWidth)) return Py_BuildException(); int iHeight; if (!PyTuple_GetInteger(poArgs, 4, &iHeight)) return Py_BuildException(); int iImageHandle; if (!PyTuple_GetInteger(poArgs, 5, &iImageHandle)) return Py_BuildException(); D3DXCOLOR diffuseColor; PyObject* pTuple; if (!PyTuple_GetObject(poArgs, 6, &pTuple)) { diffuseColor = D3DXCOLOR(1.0, 1.0, 1.0, 1.0); //return Py_BuildException(); } else // get diffuse color from pTuple { if (PyTuple_Size(pTuple) != 4) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 0, &diffuseColor.r)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 1, &diffuseColor.g)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 2, &diffuseColor.b)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 3, &diffuseColor.a)) return Py_BuildException(); } if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow * pSlotWin = (UI::CSlotWindow *)pWin; pSlotWin->SetSlot(iSlotIndex, iItemIndex, iWidth, iHeight, (CGraphicImage *)iImageHandle, diffuseColor); return Py_BuildNone(); }
ALTINA EKLE
Kod:
PyObject * wndMgrSetCardSlot(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); int iItemIndex; if (!PyTuple_GetInteger(poArgs, 2, &iItemIndex)) return Py_BuildException(); int iWidth; if (!PyTuple_GetInteger(poArgs, 3, &iWidth)) return Py_BuildException(); int iHeight; if (!PyTuple_GetInteger(poArgs, 4, &iHeight)) return Py_BuildException(); char * c_szFileName; if (!PyTuple_GetString(poArgs, 5, &c_szFileName)) return Py_BuildException(); D3DXCOLOR diffuseColor; PyObject* pTuple; if (!PyTuple_GetObject(poArgs, 6, &pTuple)) { diffuseColor = D3DXCOLOR(1.0, 1.0, 1.0, 1.0); //return Py_BuildException(); } else // get diffuse color from pTuple { if (PyTuple_Size(pTuple) != 4) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 0, &diffuseColor.r)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 1, &diffuseColor.g)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 2, &diffuseColor.b)) return Py_BuildException(); if (!PyTuple_GetFloat(pTuple, 3, &diffuseColor.a)) return Py_BuildException(); } if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow * pSlotWin = (UI::CSlotWindow *)pWin; pSlotWin->SetCardSlot(iSlotIndex, iItemIndex, iWidth, iHeight, c_szFileName, diffuseColor); return Py_BuildNone(); }
arat
Kod:
PyObject * wndImageAppendImage(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWindow; if (!PyTuple_GetWindow(poArgs, 0, &pWindow)) return Py_BuildException(); char * szFileName; if (!PyTuple_GetString(poArgs, 1, &szFileName)) return Py_BuildException(); ((UI::CAniImageBox*)pWindow)->AppendImage(szFileName); return Py_BuildNone(); }
ALTINA EKLE
Kod:
PyObject * wndImageResetFrame(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWindow; if (!PyTuple_GetWindow(poArgs, 0, &pWindow)) return Py_BuildException(); ((UI::CAniImageBox*)pWindow)->ResetFrame(); return Py_BuildNone(); }
Kod:
{ "SetSlot", wndMgrSetSlot, METH_VARARGS },
ALTINA EKLE
Kod:
{ "SetCardSlot", wndMgrSetCardSlot, METH_VARARGS },
Kod:
{ "AppendImage", wndImageAppendImage, METH_VARARGS },
Kod:
{ "ResetFrame", wndImageResetFrame, METH_VARARGS },
UserInterface/PythonEventManagerMoudle.cpp arat
Kod:
PyObject * eventGetVisibleStartLine(PyObject * poSelf, PyObject * poArgs) { int iIndex; if (!PyTuple_GetInteger(poArgs, 0, &iIndex)) return Py_BuildException(); return Py_BuildValue("i", CPythonEventManager::Instance().GetVisibleStartLine(iIndex)); }
Kod:
PyObject * eventSetVisibleLineCount(PyObject * poSelf, PyObject * poArgs) { int iIndex; if (!PyTuple_GetInteger(poArgs, 0, &iIndex)) return Py_BuildException(); int iVisibletLine; if (!PyTuple_GetInteger(poArgs, 1, &iVisibletLine)) return Py_BuildException(); CPythonEventManager::Instance().SetVisibleLineCount(iIndex, iVisibletLine); return Py_BuildNone(); }
Kod:
{ "GetVisibleStartLine", eventGetVisibleStartLine, METH_VARARGS },
Kod:
{ "SetVisibleLineCount", eventSetVisibleLineCount, METH_VARARGS },
Kod:
else if (!strcmpi(szCmd, "ObserverTeamInfo")) { }
Kod:
else if (!strcmpi(szCmd, "cards")) { if (TokenVector.size() < 2) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } if ("open" == TokenVector[1]) { DWORD safemode = atoi(TokenVector[2].c_str()); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cards_Open", Py_BuildValue("(i)", safemode)); } else if ("info" == TokenVector[1]) { if (14 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } DWORD card_in_hand_1 = atoi(TokenVector[2].c_str()); DWORD card_in_hand_1_v = atoi(TokenVector[3].c_str()); DWORD card_in_hand_2 = atoi(TokenVector[4].c_str()); DWORD card_in_hand_2_v = atoi(TokenVector[5].c_str()); DWORD card_in_hand_3 = atoi(TokenVector[6].c_str()); DWORD card_in_hand_3_v = atoi(TokenVector[7].c_str()); DWORD card_in_hand_4 = atoi(TokenVector[8].c_str()); DWORD card_in_hand_4_v = atoi(TokenVector[9].c_str()); DWORD card_in_hand_5 = atoi(TokenVector[10].c_str()); DWORD card_in_hand_5_v = atoi(TokenVector[11].c_str()); DWORD cards_left = atoi(TokenVector[12].c_str()); DWORD points = atoi(TokenVector[13].c_str()); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cards_UpdateInfo", Py_BuildValue("(iiiiiiiiiiii)", card_in_hand_1, card_in_hand_1_v, card_in_hand_2, card_in_hand_2_v, card_in_hand_3, card_in_hand_3_v, card_in_hand_4, card_in_hand_4_v, card_in_hand_5, card_in_hand_5_v, cards_left, points)); } else if ("finfo" == TokenVector[1]) { if (9 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } DWORD hand_1 = atoi(TokenVector[2].c_str()); DWORD hand_1_v = atoi(TokenVector[3].c_str()); DWORD hand_2 = atoi(TokenVector[4].c_str()); DWORD hand_2_v = atoi(TokenVector[5].c_str()); DWORD hand_3 = atoi(TokenVector[6].c_str()); DWORD hand_3_v = atoi(TokenVector[7].c_str()); DWORD points = atoi(TokenVector[8].c_str()); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cards_FieldUpdateInfo", Py_BuildValue("(iiiiiii)", hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points)); } else if ("reward" == TokenVector[1]) { if (9 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } DWORD hand_1 = atoi(TokenVector[2].c_str()); DWORD hand_1_v = atoi(TokenVector[3].c_str()); DWORD hand_2 = atoi(TokenVector[4].c_str()); DWORD hand_2_v = atoi(TokenVector[5].c_str()); DWORD hand_3 = atoi(TokenVector[6].c_str()); DWORD hand_3_v = atoi(TokenVector[7].c_str()); DWORD points = atoi(TokenVector[8].c_str()); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cards_PutReward", Py_BuildValue("(iiiiiii)", hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points)); } else if ("icon" == TokenVector[1]) { if (2 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cards_ShowIcon", Py_BuildValue("()")); } }
Kod:
memset(&m_quickslot, 0, sizeof(m_quickslot));
Kod:
memset(&character_cards, 0, sizeof(character_cards)); memset(&randomized_cards, 0, sizeof(randomized_cards));
Kod:
#define AI_FLAG_STAYZONE (1 << 3)
Kod:
#define MAX_CARDS_IN_HAND 5 #define MAX_CARDS_IN_FIELD 3
Kod:
}; ESex GET_SEX(LPCHARACTER ch); #endif
Kod:
public: struct S_CARD { DWORD type; DWORD value; }; struct CARDS_INFO { S_CARD cards_in_hand[MAX_CARDS_IN_HAND]; S_CARD cards_in_field[MAX_CARDS_IN_FIELD]; DWORD cards_left; DWORD field_points; DWORD points; }; void Cards_open(DWORD safemode); void Cards_clean_list(); DWORD GetEmptySpaceInHand(); void Cards_pullout(); void RandomizeCards(); bool CardWasRandomized(DWORD type, DWORD value); void SendUpdatedInformations(); void SendReward(); void CardsDestroy(DWORD reject_index); void CardsAccept(DWORD accept_index); void CardsRestore(DWORD restore_index); DWORD GetEmptySpaceInField(); DWORD GetAllCardsCount(); bool TypesAreSame(); bool ValuesAreSame(); bool CardsMatch(); DWORD GetLowestCard(); bool CheckReward(); void CheckCards(); void RestoreField(); void ResetField(); void CardsEnd(); void GetGlobalRank(char * buffer, size_t buflen); void GetRundRank(char * buffer, size_t buflen); protected: CARDS_INFO character_cards; S_CARD randomized_cards[24];
Kod:
ACMD(do_cube);
Kod:
ACMD(do_cards);
Kod:
{ "cube", do_cube, 0, POS_DEAD, GM_PLAYER },
Kod:
{ "cards", do_cards, 0, POS_DEAD, GM_PLAYER },
Kod:
ACMD(do_cards) { const char *line; char arg1[256], arg2[256]; line = two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); switch (LOWER(arg1[0])) { case 'o': // open if (isdigit(*arg2)) { DWORD safemode; str_to_number(safemode, arg2); ch->Cards_open(safemode); } break; case 'p': // open ch->Cards_pullout(); break; case 'e': // open ch->CardsEnd(); break; case 'd': // open if (isdigit(*arg2)) { DWORD destroy_index; str_to_number(destroy_index, arg2); ch->CardsDestroy(destroy_index); } break; case 'a': // open if (isdigit(*arg2)) { DWORD accpet_index; str_to_number(accpet_index, arg2); ch->CardsAccept(accpet_index); } break; case 'r': // open if (isdigit(*arg2)) { DWORD restore_index; str_to_number(restore_index, arg2); ch->CardsRestore(restore_index); } break; default: return; } }
Kod:
void LogManager::ItemLog(DWORD dwPID, DWORD x, DWORD y, DWORD dwItemID, const char * c_pszText, const char * c_pszHint, const char * c_pszIP, DWORD dwVnum) { m_sql.EscapeString(__escape_hint, sizeof(__escape_hint), c_pszHint, strlen(c_pszHint)); Query("INSERT DELAYED INTO log%s (type, time, who, x, y, what, how, hint, ip, vnum) VALUES('ITEM', NOW(), %u, %u, %u, %u, '%s', '%s', '%s', %u)", get_table_postfix(), dwPID, x, y, dwItemID, c_pszText, __escape_hint, c_pszIP, dwVnum); }
Kod:
void LogManager::OkayEventLog(int dwPID, const char * c_pszText, int points) { Query("INSERT INTO okay_event%s (pid, name, points) VALUES(%d, '%s', %d)", get_table_postfix(), dwPID, c_pszText, points); }
Kod:
void CharLog(LPCHARACTER ch, DWORD dw, const char * c_pszText, const char * c_pszHint);
Kod:
void OkayEventLog(int dwPID, const char * c_pszText, int points);
Kod:
int pc_has_master_skill(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); bool bHasMasterSkill = false; for (int i=0; i< SKILL_MAX_NUM; i++) if (ch->GetSkillMasterType(i) >= SKILL_MASTER && ch->GetSkillLevel(i) >= 21) { bHasMasterSkill = true; break; } lua_pushboolean(L, bHasMasterSkill); return 1; }
Kod:
int pc_get_okay_global_rank(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!ch) return 0; char szBuf[4096+1]; ch->GetGlobalRank(szBuf, sizeof(szBuf)); lua_pushstring(L, szBuf); return 1; } int pc_get_okay_rund_rank(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!ch) return 0; char szBuf[4096+1]; ch->GetRundRank(szBuf, sizeof(szBuf)); lua_pushstring(L, szBuf); return 1; }
Kod:
{ "has_master_skill", pc_has_master_skill }
Kod:
{ "get_okay_global_rank", pc_get_okay_global_rank }, { "get_okay_rund_rank", pc_get_okay_rund_rank },
Kod:
def BINARY_Highlight_Item(self, inven_type, inven_pos): arat
Kod:
def BINARY_Cards_UpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points): self.interface.UpdateCardsInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points) def BINARY_Cards_FieldUpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.interface.UpdateCardsFieldInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def BINARY_Cards_PutReward(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.interface.CardsPutReward(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def BINARY_Cards_ShowIcon(self): self.interface.CardsShowIcon() def BINARY_Cards_Open(self, safemode): self.interface.OpenCardsWindow(safemode)
importlara ekle
Kod:
import uiCube import uiCards
Kod:
def __MakeCubeResultWindow(self):
Kod:
def __MakeCardsInfoWindow(self): self.wndCardsInfo = uiCards.CardsInfoWindow() self.wndCardsInfo.LoadWindow() self.wndCardsInfo.Hide() def __MakeCardsWindow(self): self.wndCards = uiCards.CardsWindow() self.wndCards.LoadWindow() self.wndCards.Hide() def __MakeCardsIconWindow(self): self.wndCardsIcon = uiCards.IngameWindow() self.wndCardsIcon.LoadWindow() self.wndCardsIcon.Hide()
Kod:
self.__MakeCubeResultWindow()
Kod:
self.__MakeCardsInfoWindow() self.__MakeCardsWindow() self.__MakeCardsIconWindow()
Kod:
def CloseWbWindow(self): self.wndWeb.Close()
Kod:
def OpenCardsInfoWindow(self): self.wndCardsInfo.Open() def OpenCardsWindow(self, safemode): self.wndCards.Open(safemode) def UpdateCardsInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points): self.wndCards.UpdateCardsInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points) def UpdateCardsFieldInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.wndCards.UpdateCardsFieldInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def CardsPutReward(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points): self.wndCards.CardsPutReward(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points) def CardsShowIcon(self): self.wndCardsIcon.Show()
Kod:
del self.wndHelp
Kod:
del self.wndCardsInfo del self.wndCards del self.wndCardsIcon
Kod:
if self.wndHelp: self.wndHelp.Destroy()
Kod:
if self.wndCardsInfo: self.wndCardsInfo.Destroy() if self.wndCards: self.wndCards.Destroy() if self.wndCardsIcon: self.wndCardsIcon.Destroy()
Kod:
def SetSlotCountNew(self, slotNumber, grade, count): wndMgr.SetSlotCountNew(self.hWnd, slotNumber, grade, count)
Kod:
def SetCardSlot(self, renderingSlotNumber, CardIndex, cardIcon, diffuseColor = (1.0, 1.0, 1.0, 1.0)): if 0 == CardIndex or None == CardIndex: wndMgr.ClearSlot(self.hWnd, renderingSlotNumber) return
Kod:
class AniImageBox(Window):
Kod:
class AniImageBox(Window): def __init__(self, layer = "UI"): Window.__init__(self, layer) self.eventEndFrame = None def __del__(self): Window.__del__(self) self.eventEndFrame = None def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterAniImageBox(self, layer) def SetDelay(self, delay): wndMgr.SetDelay(self.hWnd, delay) def AppendImage(self, filename): wndMgr.AppendImage(self.hWnd, filename) def SetPercentage(self, curValue, maxValue): wndMgr.SetRenderingRect(self.hWnd, 0.0, 0.0, -1.0 + float(curValue) / float(maxValue), 0.0) def ResetFrame(self): wndMgr.ResetFrame(self.hWnd) def SetOnEndFrame(self, event): self.eventEndFrame = event def OnEndFrame(self): if self.eventEndFrame: self.eventEndFrame()
Kod:
EMPIREDESC_C = "%s/empiredesc_c.txt" % (name)
Kod:
CARDS_DESC = "mini_game_okey_desc.txt"
Kod:
INSERT INTO `item_proto` VALUES ('79505', 0x3739353035, 0x4F6B65792D43617264, '18', '1', '0', '1', '237952', '4', '0', '', '1000', '1000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `item_proto` VALUES ('79506', 0x3739353036, 0x43617264736574, '14', '1', '0', '1', '0', '4', '0', '', '1000', '1000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `item_proto` VALUES ('71194', 0x3731313934, 0x4F6B657920476F6C64656E2D426F78, '18', '0', '0', '1', '32768', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `item_proto` VALUES ('71195', 0x3731313935, 0x4F6B65792053696C7665722D426F78, '18', '0', '0', '1', '32768', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `item_proto` VALUES ('71196', 0x3731313936, 0x4F6B65792042726F6E7A652D426F78, '18', '0', '0', '1', '32768', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');
quest fun
Kod:
pc.get_okay_global_rank pc.get_okay_rund_rank
Kod:
item_list.txt ekle 71194 ETC icon/item/71194.tga 71195 ETC icon/item/71195.tga 71196 ETC icon/item/71196.tga 79505 ETC icon/item/79505.tga 79506 ETC icon/item/79506.tga
Kod:
<ItemDef Vnum="79505" Name="ľÄâââââ¬Å¡¬¦ÁÅâââââ¬Å¡¬º°ËËÅâââ¬Åâ" LocalizedName="Okey-Card" Type="18" SubType="1" Weight="0" Size="1" AntiFlags="0" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="1000" ShopBuyPrice="0" 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" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" /> <ItemDef Vnum="79506" Name="ľÄâââââ¬Å¡¬¦ÁÅâââââ¬Å¡¬º°ËËÅâââ¬Åâ" LocalizedName="Cardset" Type="14" SubType="1" Weight="0" Size="1" AntiFlags="0" Flags="4" WearFlags="0" ImmuneFlags="0" Gold="1000" ShopBuyPrice="0" 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" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" /> <ItemDef Vnum="71194" Name="Åâââââ¬Å¡¬ÄÅ¡Äâââââ¬Å¡¬ ÄÅâââââ¬Å¡¬Ç Å¥óÅâââââ¬Å¡¬Ú" LocalizedName="Okey Golden-Box" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="32768" Flags="0" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" 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" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" /> <ItemDef Vnum="71195" Name="Åâââââ¬Å¡¬ÄÅ¡Äâââââ¬Å¡¬ ÄÅâââââ¬Å¡¬Ç Å¥óÅâââââ¬Å¡¬Ú" LocalizedName="Okey Silver-Box" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="32768" Flags="0" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" 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" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" /> <ItemDef Vnum="71196" Name="Åâââââ¬Å¡¬ÄÅ¡Äâââââ¬Å¡¬ ÄÅâââââ¬Å¡¬Ç Å¥óÅâââââ¬Å¡¬Ú" LocalizedName="Okey Bronze-Box" Type="18" SubType="0" Weight="0" Size="1" AntiFlags="32768" Flags="0" WearFlags="0" ImmuneFlags="0" Gold="0" ShopBuyPrice="0" 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" RefinedVnum="0" RefineSet="0" AlterToMagicItemPercent="0" Specular="0" GainSocketPercent="0" AddonType="0" />
Kod:
79505 Okey-Sammelkarte If you stapelst 24 Okey trading card, you get automatically Okey-card pack. 79506 Okey-Kartenset This map set you can start a Okey-round. That map set is automatically removed after starting the game from your inventory. 71194 Goldene Okey-Box You get a random number Okey trading cards. When the event is over, you can not get any more cards. 71195 Silberne Okey-Box You get a random number Okey trading cards. When the event is over, you can not get any more cards. 71196 Bronzene Okey-Box You get a random number Okey trading cards. When the event is over, you can not get any more cards.
Kod:
MINI_GAME_RUMI_DISCARD_QUESTION Do you want destroy card? MINI_GAME_RUMI_EXIT_QUESTION Do you want end game? MINI_GAME_RUMI_EXIT_QUESTION2 You will recieve reward depend of points. MINI_GAME_RUMI_START_QUESTION You need %d Yang and %d Kardsets to play. MINI_GAME_RUMI_START_QUESTION2 Do you want to play??
Kod:
MINI_GAME_RUMI_DISCARD_TEXT Secure Mode MINI_GAME_RUMI_EXIT End MINI_GAME_RUMI_LBUTTON_DESC Left-click to add card MINI_GAME_RUMI_RBUTTON_DESC Right-click to discard card MINI_GAME_RUMI_SCORE Score MINI_GAME_RUMI_START_TEXT Start MINI_GAME_RUMI_TITLE Metin2 Okey Card Game
Download Link
Kod:
[URL]http://www.dosyaupload.com/1iXF[/URL]
Kod:
https://www.virustotal.com/tr/file/d5da882eb452b2d66432868a215ae1b8b1cac1978a4425e33bec4d7913cc5c74/analysis/1456446274/
Eksik olan dosyalar:
DOSYA ICERISINDEKI ANLATIM YANLISTIR.
Piyasaya İnat Paylaşımlar Vol 2 #Okey Card System
Metin2lobby olarak, Metin2 özel sunucu geliştirme dünyasında sürekli yeniliklere imza atıyoruz. Bugün sizlere Piyasaya İnat Paylaşımlar serimizin ikinci sayısında Okey Card System adlı yenilikçi bir kart sistemi sunuyoruz. Bu sistem, oyuncuların koleksiyonculuk yapmasını teşvik ederken, aynı zamanda PvP deneyimini de ciddi anlamda zenginleştiriyor.
Okey Card System Nedir?
Okey Card System, C++ tabanlı bir script olup, Metin2 özel sunucularında kart toplama ve bu kartlarla bonus kazanma mekanizması sunar. Sistem, Martysama geliştirici ekibi tarafından titizlikle hazırlanmış olup, server src üzerinde kolayca entegre edilebilir şekilde tasarlanmıştır.
Sistemin Özellikleri
- Oyuncular kartları düşman öldürerek, görev tamamlayarak veya belirli eventlerle elde edebilirler.
- Her kart farklı bonuslar sağlar;攻击力, savunma, hız gibi özellikler artırılabilir.
- Kartlar koleksiyonlara ayrılabilir, belirli kombinasyonlar daha yüksek bonus verir.
- Sistem, uiscript[/COORD] ile entegre çalışarak kullanıcı dostu bir arayüz sunar.
Neden Okey Card System?
Geleneksel PvP sistemleriyle sınırlı kalmak yerine, Metin2 özel sunucularında oynanış dinamizmini artırmak istiyorsanız bu sistem tam size göre. Okey Card System, oyuncuların stratejik düşünmesini teşvik ederken, koleksiyoncu ruhunu da memnun edecek niteliktedir.
Kurulum ve Entegrasyon
Sistem, game core ve db core üzerinde çalışacak şekilde optimize edilmiştir. Python destekli py root dosyaları sayesinde geliştiriciler, kolayca özelleştirme yapabilir. Source edit süreci de oldukça sade tutulmuştur. Auth ve Game sunucuları arasında senkronizasyon sorunsuz bir şekilde sağlanır.
Topluluk Katkısı
Metin2lobby olarak, topluluk odaklı bir anlayış benimsemiştir. Okey Card System gibi sistemlerin geliştirilip paylaşılması, Metin2Dev camiasının büyümesine katkı sağlar. Geliştiriciler, bu sistemleri kendi özel sunucularına entegre ederek benzersiz oyun deneyimleri yaratabilirler.
Sonuç
Piyasaya İnat Paylaşımlar serisinin ikinci bölümü olan Okey Card System, Metin2 özel sunucu geliştiricileri için değerli bir araçtır. C++ bilgisi olan geliştiriciler, sistemi kolayca özelleştirebilir; PvP oyunlarını daha rekabetçi ve eğlenceli hale getirebilirler. Server src üzerinde test edilmiş bu sistem, güvenilir ve kararlı bir yapı sunmaktadır.
Kaynak Kodu[/BR][/BR]
Kaynak kodlarımıza Metin2Lobby üzerinden ulaşabilir, diğer sistemlerle birlikte inceleyebilirsiniz.
Against The Market Shares Vol 2 #Okey Card System
As Metin2lobby, we constantly innovate in the world of Metin2 private server development. Today, we present you with our second release of the Against The Market Shares series: the innovative Okey Card System. This system encourages players to collect cards while significantly enriching the PvP experience.
What Is the Okey Card System?
The Okey Card System is a C++-based script that introduces a card collection mechanism to Metin2 private servers, where players can earn bonuses by collecting cards. Designed carefully by the Martysama developer team, this system can be easily integrated into server src.
System Features
- Players can obtain cards by killing enemies, completing quests, or participating in special events.
- Each card provides different bonuses; attributes such as attack, defense, and speed can be increased.
- Cards are divided into collections, and specific combinations provide higher bonuses.
- The system integrates with uiscript to offer a user-friendly interface.
Why Use the Okey Card System?
Instead of limiting gameplay to traditional PvP systems, if you aim to enhance the dynamic nature of your Metin2 private server, this system is perfect for you. The Okey Card System encourages strategic thinking while satisfying the collector's spirit of players.
Installation and Integration
The system has been optimized to run on both game core and db core. With Python-supported py root files, developers can easily customize the system. The source edit process is kept simple. Synchronization between auth and game servers is seamless.
Community Contribution
At Metin2lobby, we embrace a community-driven approach. Sharing systems like Okey Card System contributes to the growth of the Metin2Dev community. Developers can integrate these systems into their own private servers to create unique gaming experiences.
Conclusion
Against The Market Shares Vol. 2, the Okey Card System, is a valuable tool for Metin2 private server developers. Developers with C++ knowledge can easily customize the system, making their PvP games more competitive and fun. Tested on server src, this system offers a stable and reliable structure.
Source Code
You can access our source codes through Metin2Lobby and examine them alongside other systems.
Kod:
[URL]http://www.dosyaupload.com/1iXH[/URL]
DOSYA ICERISINDEKI ANLATIM YANLISTIR.
Piyasaya İnat Paylaşımlar Vol 2 #Okey Card System
Metin2lobby olarak, Metin2 özel sunucu geliştirme dünyasında sürekli yeniliklere imza atıyoruz. Bugün sizlere Piyasaya İnat Paylaşımlar serimizin ikinci sayısında Okey Card System adlı yenilikçi bir kart sistemi sunuyoruz. Bu sistem, oyuncuların koleksiyonculuk yapmasını teşvik ederken, aynı zamanda PvP deneyimini de ciddi anlamda zenginleştiriyor.
Okey Card System Nedir?
Okey Card System, C++ tabanlı bir script olup, Metin2 özel sunucularında kart toplama ve bu kartlarla bonus kazanma mekanizması sunar. Sistem, Martysama geliştirici ekibi tarafından titizlikle hazırlanmış olup, server src üzerinde kolayca entegre edilebilir şekilde tasarlanmıştır.
Sistemin Özellikleri
- Oyuncular kartları düşman öldürerek, görev tamamlayarak veya belirli eventlerle elde edebilirler.
- Her kart farklı bonuslar sağlar;攻击力, savunma, hız gibi özellikler artırılabilir.
- Kartlar koleksiyonlara ayrılabilir, belirli kombinasyonlar daha yüksek bonus verir.
- Sistem, uiscript[/COORD] ile entegre çalışarak kullanıcı dostu bir arayüz sunar.
Neden Okey Card System?
Geleneksel PvP sistemleriyle sınırlı kalmak yerine, Metin2 özel sunucularında oynanış dinamizmini artırmak istiyorsanız bu sistem tam size göre. Okey Card System, oyuncuların stratejik düşünmesini teşvik ederken, koleksiyoncu ruhunu da memnun edecek niteliktedir.
Kurulum ve Entegrasyon
Sistem, game core ve db core üzerinde çalışacak şekilde optimize edilmiştir. Python destekli py root dosyaları sayesinde geliştiriciler, kolayca özelleştirme yapabilir. Source edit süreci de oldukça sade tutulmuştur. Auth ve Game sunucuları arasında senkronizasyon sorunsuz bir şekilde sağlanır.
Topluluk Katkısı
Metin2lobby olarak, topluluk odaklı bir anlayış benimsemiştir. Okey Card System gibi sistemlerin geliştirilip paylaşılması, Metin2Dev camiasının büyümesine katkı sağlar. Geliştiriciler, bu sistemleri kendi özel sunucularına entegre ederek benzersiz oyun deneyimleri yaratabilirler.
Sonuç
Piyasaya İnat Paylaşımlar serisinin ikinci bölümü olan Okey Card System, Metin2 özel sunucu geliştiricileri için değerli bir araçtır. C++ bilgisi olan geliştiriciler, sistemi kolayca özelleştirebilir; PvP oyunlarını daha rekabetçi ve eğlenceli hale getirebilirler. Server src üzerinde test edilmiş bu sistem, güvenilir ve kararlı bir yapı sunmaktadır.
Kaynak Kodu[/BR][/BR]
Kaynak kodlarımıza Metin2Lobby üzerinden ulaşabilir, diğer sistemlerle birlikte inceleyebilirsiniz.
Against The Market Shares Vol 2 #Okey Card System
As Metin2lobby, we constantly innovate in the world of Metin2 private server development. Today, we present you with our second release of the Against The Market Shares series: the innovative Okey Card System. This system encourages players to collect cards while significantly enriching the PvP experience.
What Is the Okey Card System?
The Okey Card System is a C++-based script that introduces a card collection mechanism to Metin2 private servers, where players can earn bonuses by collecting cards. Designed carefully by the Martysama developer team, this system can be easily integrated into server src.
System Features
- Players can obtain cards by killing enemies, completing quests, or participating in special events.
- Each card provides different bonuses; attributes such as attack, defense, and speed can be increased.
- Cards are divided into collections, and specific combinations provide higher bonuses.
- The system integrates with uiscript to offer a user-friendly interface.
Why Use the Okey Card System?
Instead of limiting gameplay to traditional PvP systems, if you aim to enhance the dynamic nature of your Metin2 private server, this system is perfect for you. The Okey Card System encourages strategic thinking while satisfying the collector's spirit of players.
Installation and Integration
The system has been optimized to run on both game core and db core. With Python-supported py root files, developers can easily customize the system. The source edit process is kept simple. Synchronization between auth and game servers is seamless.
Community Contribution
At Metin2lobby, we embrace a community-driven approach. Sharing systems like Okey Card System contributes to the growth of the Metin2Dev community. Developers can integrate these systems into their own private servers to create unique gaming experiences.
Conclusion
Against The Market Shares Vol. 2, the Okey Card System, is a valuable tool for Metin2 private server developers. Developers with C++ knowledge can easily customize the system, making their PvP games more competitive and fun. Tested on server src, this system offers a stable and reliable structure.
Source Code
You can access our source codes through Metin2Lobby and examine them alongside other systems.
