VegaS
Banned-
Posts
363 -
Joined
-
Last visited
-
Days Won
40 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by VegaS
-
You're welcome, we try to help as much as time allows. But nobody here is master, everyone is good at what he do and in different areas. Some of the world's more famous "programmers" are famous not so much for their programming skills (though they may be excellent) but for their innovations in certain aspects of this process - is the personality of that person.
-
This is a user contest and is not related in any form to metin2dev. Hello everybody and especially our artists, What you need to do in order to win is to create a signature for metin2dev. Deadline: 01.12.2016 (Need to be 15+ participants) Sizes of signatures: 450x200 or 600x300 (horizontal signature). PS: Need to contain the name of forums, logo or other text about (Metin2Dev). Prizes will be awarded from me via paypal. Theme: Winter: must be metin2 related and something about forums. No specific render to use: you can choose it freely! If you are really the best, i won't let you without being awarded. the prizes are: 1st place: 35E 2nd place: 20E 3rd place: 10E Rules: You can enter only 1 signature into this contest. Once you have entered a signature, you may not change your entry. The signature must fit the theme chosen. The signature cannot be pre-made. Ripping of any kind is strictly forbidden and will automatically remove you from the contest. Use an anonymous uploader such as Imgur or Tinypic. You can use every kind of editing program such as: Gimp, Photoshop, Paint etc A screenshot of the .psd of the signature must be posted too, so that we can see all the different layers of your work. This should represent the metin2dev board (no official), signature will be worn by many users even on other forums for a more intensive advertising, and for the intended uses of each user if desired. For people who appreciate the idea, and would not attend are asked to provide a post like this to know the number of like for this activity. Good luck, and sorry for my english ^^ PS: Prize is not very big, but it matters intent xD Copyrights about idea and some texts from topic: WoM2
-
I dont read all what you say but maybe this can be help you, idk. xD Here is better version via c++ //@ //server//locale/country/test.lua: quest get_duration begin state start begin when 70001.use begin local item_id = item.get_id() syschat("<Debug Mode> QUEST get_duration result : "..pc.get_duration(item_id).." xD") end end end //@ //server//locale/country/questfunction: //1.) Add where you want: pc.get_duration //@ /svn/Server/game/src/questlua_pc.cpp //1.) Search: { "reset_status", pc_reset_status }, //2.) Add bellow: { "get_duration", pc_get_duration }, //3.) Search: int pc_get_hp(lua_State * L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetHP()); return 1; } //4.) Add bellow: int pc_get_duration(lua_State * L) { if (!lua_isnumber(L, 1)) { sys_err("QUEST get_duration call error : wrong argument"); return 0; } int duration = lua_tonumber(L, 1); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch) lua_pushnumber(L, ch->GetDuration(duration)); return 1; } //@ /svn/Server/game/src/char.h //1.) Search: void ClearItem(); //2.) Add bellow: int GetDuration(int dwItem); //@ /svn/Server/game/src/char.cpp //1.) Add in end line: int CHARACTER::GetDuration(int dwItem) { char szQuery[CHAT_MAX_LEN + 1]; snprintf(szQuery, sizeof(szQuery), "SELECT duration FROM player.new_petsystem WHERE id = %d LIMIT 1", dwItem); std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery(szQuery)); int duration = 0; if (msg->Get()->uiNumRows == 0) { return duration; } else { MYSQL_ROW row = mysql_fetch_row(msg->Get()->pSQLResult); str_to_number(duration, row[0]); /* Poker face */ return duration; } }
-
Yes is released on category c++. 1. Version what is released is from 16.02.2016, is the first version of system. (some people was changed name and some informations, and put other date.) 2. Some bugs. 3. Ugly and crap code (sorry for that, was my first system without revision code). 4. Well, this is a prime indicator that tells whether or not you will succeed in life. 5. In the Holy Bible says: "Seek and you shall find." 6. Hint: Part python
-
[Hidden Content]
- 15 replies
-
- 4
-
Or much funny like this: if itemVnum in (50011, 50012, 50013): pItem_list = { 50011 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"], # bla bla bla 50012 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"], 50013 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"]} self.AppendSpace(5) for i in xrange(len(pItem_list[itemVnum])): self.AppendTextLine(pItem_list[itemVnum][i], self.SPECIAL_POSITIVE_COLOR)
-
File: root/uiInventory.py: //1.) Search: if self.wndBelt: self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory) //2.) Delete and replace with this: if self.wndBelt: self.wndBelt.Show() //1.) Search: def Show(self, openBeltSlot = FALSE): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) if openBeltSlot: self.OpenInventory() else: self.CloseInventory() //2.) Delete and replace with this: def Show(self): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) self.OpenInventory() Not tested, but need to work this shit xD ^^
-
[SEARCH] C++ Coder for Group System like Shiro3
VegaS replied to TekkForCe's topic in Paid Support / Searching / Recruiting
"Part python" fucking easy here (example): you need to duplicate other func haha if app.PARTY_EXP_DISTRIBUTION_EQUAL: partyEqual = ui.RadioButton() partyEqual.SetParent(self) partyEqual.SetWindowHorizontalAlignCenter() partyEqual.SetEvent(ui.__mem_func__(self.OnClickEXPDistributeEqual)) partyEqual.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") partyEqual.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") partyEqual.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") partyEqual.SetText(localeInfo.PARTY_EXP_DISTRIBUTION_MODE_EQUAL) partyEqual.SetToolTipText(localeInfo.PARTY_EXP_DISTRIBUTION_MODE_EQUAL_TOOLTIP, 70) partyEqual.Show() self.modeButtonList[player.PARTY_EXP_DISTRIBUTION_EQUAL] = partyEqual if app.PARTY_EXP_DISTRIBUTION_EQUAL: def OnClickEXPDistributeEqual(self): self.__SetModeButton(self.distributionMode) if self.isLeader: net.SendPartyParameterPacket(player.PARTY_EXP_DISTRIBUTION_EQUAL) if app.PARTY_EXP_DISTRIBUTION_EQUAL: partyMenu.SetSize(106, 70 + 70 + 30) else: partyMenu.SetSize(106, 70 + 70) -
Map1 no duel or free mode ?
VegaS replied to DeYaN.'s topic in Community Support - Questions & Answers
File: //UserInterface//InstanceBase.cpp: //1.) Search: if (GetVirtualID() == rkInstVictim.GetVirtualID()) return false; //2.) Add bellow: #ifdef ENABLE_DISABLE_ATTACK_SPECIALS_MAP //vegasfunctionTest874 std::string strGetMapName = CPythonBackground::Instance().GetWarpMapName(); const char* arrayMapList[] = {"metin2_map_a1", "metin2_map_b1", "metin2_map_c1"}; /* loaded from atlasinfo.txt */ for (int idx = 0; idx < _countof(arrayMapList); idx++) { if (IsPC() && rkInstVictim.IsPC() && arrayMapList[idx] == strGetMapName) return false; } #endif File: //UserInterface//Locale_inc.h: #define ENABLE_DISABLE_ATTACK_SPECIALS_MAP -
Ignore him, he searched only attention and make +1. Translate here (thanks to google) :
-
Haha bro, that is nice xD *this script and all script for pickup, called a simple function player.PickCloseItem() with delay automatically. He want to make a special functions to send to binary to check vnum xD. That means you need to make a new functions in binary. Ahh here is a point how to make, i made this long time ago. if app.ENABLE_SPECIAL_AUTOPICKUP_BY_VNUM def BINARY_AutoPickUp_Append(self, reason): import player as ch import chat as msg if reason == "open": global bCheckActive if bCheckActive == 0: bCheckActive = 1 ch.PickItemByVnum() # New Function need to create on binary msg.AppendChat(msg.CHAT_TYPE_INFO, "Enabled BINARY_AutoPickUp_Append") else: msg.AppendChat(msg.CHAT_TYPE_INFO, "Disabled BINARY_AutoPickUp_Append") bCheckActive = 0 #ifdef ENABLE_SPECIAL_AUTOPICKUP_BY_VNUM void CPythonPlayer::PickItemByVnum(DWORD dwItem) { /********* * author: VegaS * description: Function called from python for autopickup with check to pick item only if exist in dwTableAcces * date: Feb. 27 2016, 01:36 am */ CInstanceBase * ch = NEW_GetMainActorPtr(); if (!ch) return; TPixelPosition chPos; ch->NEW_GetPixelPosition(&chPos); DWORD dwTableAcces[] = { 50011, 53001, 53002, 53003, 53004, 53005, 53006, 53007, 53008, 53009, 53010, 53011, 53012, 53013, 53014, 53015, 53016, 53017, 53018, 53019, 53020, 53021, 53022, 53023, 53024, 53025 }; for (DWORD idxVnum = 0; idxVnum < _countof(dwTableAcces); idxVnum++) { if (dwItem == dwTableAcces[idxVnum]) { TraceError("CPythonPlayer::PickItemByVnum:: Vid = [%d] Name = [%s] Vnum = (%d)", ch->GetVirtualID(), ch->GetNameString(), dwItem); SendClickItemPacket(dwItem); } else TraceError("CPythonPlayer::PickItemByVnum:: Vnum %d is not in table for can pickup him.", dwItem); } } #endif If u use small part of brain you can do this fucking easy ^^.
-
You can not do that because there a lot the types of programs that you can find ip which are connected in launcher or with fucking shit command. You can find ip and port's core very easy and any guy can do that. - Open notepad - Copy the following lines @echo @color 09 @netstat -n @echo. @pause - Save as getip.cmd - Move it to the desktop (or anywhere that catches your fancy). - Run the launcher or main (much better if minimized). - And when you are on the server select screen double click on getip.cmd and you will see the IP and PORT address of the server. But it can be done through other methods, but not to protect you 100%.
-
Karma2/Curea2 game interface
VegaS replied to kieranFMT2's topic in Paid Support / Searching / Recruiting
Curea2 (Shit) - Stolen stuff from Karma2. Please no speak about curea2 here. Ok, i will speak with staff member today and if I receive consent i will post interface karma2 public for all people, to stop to sell other shit guy. -
Karma2/Curea2 game interface
VegaS replied to kieranFMT2's topic in Paid Support / Searching / Recruiting
It is not allowed to do so here. A member of staff was part of the team Karma2, so it no will be possible sale of free things or posting of links leading to their work. This topic is considered as part of the hacking, because the client is / was encrypted with a pretty good protection, and who will sell or will post it is not allowed. Than the main author of the server if I am not mistaken was * DeSkOrNeR, only he can post those links or sell these files. All the best, and next time try creating your own stuff. -
How can i remove this box?
VegaS replied to kieranFMT2's topic in Community Support - Questions & Answers
root/uiInventory,py (search and delete) this: if self.wndBelt: self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory) And delete EQUIPMENT_BELT from inventoryWindow. -
Hello Community, as you know, our serverstart was moved on to an indefinite time because of legal problems. But we have good news. The start will only be moved a couple of days. Please wait for more Information till tomorow. Then we have ALL INFORMATION for you. It will be before the evening tomorow! THANK YOU!.
-
if (!IsGM() && IsPolymorphed() && pkVictim->IsPC() && 5 <= GetLevel() && GetLevel() <= 15) { if (GetEmpire() != pkVictim->GetEmpire()){ const char * m_nEmpire[EMPIRE_MAX_NUM] = {"", "Red", "Yellow", "Jinno"}; for (int index = 1; index < 3; index++) { if (pkVictim->GetEmpire() == index) { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Informations about victim <Name: %s> <Level: %d> <Empire %s> cannot make that!", pkVictim->GetName(), pkVictim->GetLevel(), m_nEmpire[index]); return false; } } } }
-
Photo from me (discussion between me and an owner who is in that list, one of the largest.) Stop stealing this photo and put it on other forums.
-
The time has come. Congratulations, Gameforge (if it is true). http://lavanda2.net/ - Online
-
int m_nCheckMyLevel = 15, m_nCheckVictimLevel = 15; if (!IsGM() && IsPolymorphed() && pkVictim->IsPC()) /** If you are GM, you can attack other player when u are polymorphed, but if you not are a GM, cannot make this. **/ { if (GetLevel() < m_nCheckMyLevel && pkVictim->GetLevel() >= m_nCheckVictimLevel) /** If you have level the lesser 15 and your victim the level as high as 15, you will not be able to attack him. **/ { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Informations about victim <Name: %s> <Level: %d>, cannot make that.", pkVictim->GetName(), pkVictim->GetLevel()); return false; } } m_nCheckMyLevel = /** Check if you have the lesser 15 **/ m_nCheckVictimLevel = /** Check if the victim is greater than or equal to 15. **/
-
In much you were right about: your method might be correct depending on how you do it , but it will result in you having to wast more time. PS: For those who want another example to work more efficiently, feel free to forward your ideas. List = { "selected" : { 0 : 0, 1 : 0 } } self.m_nTCheckBox = { 0 : [uiModuleTest.CheckTable(self, x, x, lambda x = 0: self.SetArgument(x)), 0, self.SetText(x, y, "A")], 1 : [uiModuleTest.CheckTable(self, x, y, lambda x = 1: self.SetArgument(x)), 0, self.SetText(x, y, "B")], } def SetArgument(self, x): for index in xrange(len(List["selected"])): if x == index: if List["selected"][x] > 0: self.m_nTCheckBox[x][0].AppendCheck(false) List["selected"][x] = 0 else: self.m_nTCheckBox[x][0].AppendCheck(true) List["selected"][x] = 1 chat.AppendChat(chat.CHAT_TYPE_INFO, "<Index selected> <Argument %d> <Check %d>" % int(x), int(List["selected"][index]))
-
I would prefer to work more nice. List = [ ] List = [ [[ui.TextClass, 0], [0, 0], [x, y], [["SetDefaultFontName", [""]]], []], [[ui.ImageClass, ""], [0, 0], [x , y], [["LoadImage", ["image"]]], ["movable", "float"]], ] def SetText(self, index, msg = None): self.List[0].SetText("Text" + msg) self.List[1].Show() self.List = [ {"name": "A", "number": 1}, {"name": "B", "number": 2}, ] self.Select = {} self.Select["A"] = self.Loader.Button(self.Board, 'A', '', 15, 50, self.Main, 'A', 'A', 'A') self.Select["B"] = self.Loader.Button(self.Board, 'B', '', 15, 50*2, self.Main, 'B', 'B', 'B') for i in xrange(len(self.List)): self.Select[self.List[i]["name"]].Show()
-
[File: src/game/char_battle.cpp -> Function: bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)] if (!IsGM() && IsPolymorphed() && pkVictim->IsPC()) // If you are GM, you can attack other player when u are polymorphed, but if you not are a GM, cannot make this. { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Victim %s is a player, you cannot attack him!", pkVictim->GetName()); return false; }