Krusty
-
Posts
221 -
Joined
-
Last visited
-
Days Won
1 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Krusty
-
-
-
yea thanks for help dudes... you are all fantastic! *sarkasm off
Fixed. -
Clientsyserr: Damage is equal or below 0.
Ive got no dmg from monster skills
-
Am 1.4.2017 um 14:31 schrieb xP3NG3Rx:
This isn't because of this, but If I remember as well it's a global problem, I don't know how do I fixed it already.
And you doesnt know the fix anymore?
-
How to do the scrollbar?
-
0314 13:12:18875 :: Traceback (most recent call last): 0314 13:12:18875 :: File "networkModule.py", line 239, in SetGamePhase 0314 13:12:18876 :: File "game.py", line 149, in __init__ 0314 13:12:18876 :: File "interfaceModule.py", line 409, in MakeInterface 0314 13:12:18876 :: File "interfaceModule.py", line 315, in __MakeDialogs 0314 13:12:18876 :: AttributeError 0314 13:12:18876 :: : 0314 13:12:18876 :: 'RefineDialogNew' object has no attribute 'SetInven' 0314 13:12:18876 ::
-
On 10.3.2015 at 19:54, xP3NG3Rx said:
Hello everyone,
It is a nice day to release my modifications to sell items from dragon soul inventory too
So let's go.
Serverside:
1) Open input_main.cpp
2.1) Search(CTRL+F) this:case SHOP_SUBHEADER_CG_SELL2:
2.2) Replace that whole case with this:
case SHOP_SUBHEADER_CG_SELL2: { if (uiBytes < sizeof(WORD) + sizeof(BYTE) + sizeof(BYTE)) return -1; const WORD wPos = *reinterpret_cast<const WORD*>(c_pData); const BYTE bCount = *(c_pData + sizeof(WORD)); const BYTE bType = *(c_pData + sizeof(WORD) + sizeof(BYTE)); sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName()); CShopManager::instance().Sell(ch, wPos, bCount, bType); return sizeof(WORD) + sizeof(BYTE) + sizeof(BYTE); }
3) Save and close it, now open shop_manager.h
3.1) And replace this:void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount = 0);
3.2) With this:
void Sell(LPCHARACTER ch, WORD wCell, BYTE bCount = 0, BYTE bType = 0);
4) Save it and close it.
4.1) Next step; open shop_manager.cpp and search this function:void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
4.2) Replace the parameters/arguments only with this:
LPCHARACTER ch, WORD wCell, BYTE bCount, BYTE bType
4.3) Search this line:
LPITEM item = ch->GetInventoryItem(bCell);
4.4) And replace it with this:
LPITEM item = ch->GetItem(TItemPos(bType, wCell));
4.5-Choosable) I added a log function too into the antiflag_sell check against hackers
4.5.1) Replace this:if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL)) return;
4.5.2) With this(as I said, this is choosable, not important change):
if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL)) { // In clientside the sell is blocked by python if a player arrive here he's a hacker, maybe. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't sell this item.")); sys_err("[HACKER] Force sell-script used by name [%u]%s.", ch->GetPlayerID(), ch->GetName()); return; }
5) Save and close the file, now you are ready to build your game.
Clientside-BIN:
1) Open PythonNetworkStream.h
1.1) Search this:bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount);
1.2) Replace it with this:
bool SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType);
2) Save it, close it. Open PythonNetworkStreamPhaseGameItem.cpp
2.1) Search this function:bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount)
2.2) Replace the whole function with this:
bool CPythonNetworkStream::SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType) { if (!__CanActMainInstance()) return true; TPacketCGShop PacketShop; PacketShop.header = HEADER_CG_SHOP; PacketShop.subheader = SHOP_SUBHEADER_CG_SELL2; if (!Send(sizeof(TPacketCGShop), &PacketShop)) { Tracef("SendShopSellPacket Errorn"); return false; } if (!Send(sizeof(WORD), &wSlot)) { Tracef("SendShopAddSellPacket Errorn"); return false; } if (!Send(sizeof(BYTE), &byCount)) { Tracef("SendShopAddSellPacket Errorn"); return false; } if (!Send(sizeof(BYTE), &byType)) { Tracef("SendShopAddSellPacket Errorn"); return false; } Tracef(" SendShopSellPacketNew(wSlot=%d, byCount=%d, byType=%d)n", wSlot, byCount, byType); return SendSequence(); }
3) Save and close. Open PythonNetworkStreamModule.cpp
3.1) Search this function:PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs)
3.2) And replace it with this:
PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs) { int iSlotNumber; if (!PyTuple_GetInteger(poArgs, 0, &iSlotNumber)) return Py_BuildException(); int iCount; if (!PyTuple_GetInteger(poArgs, 1, &iCount)) return Py_BuildException(); int iType; if (!PyTuple_GetInteger(poArgs, 2, &iType)) return Py_BuildException(); CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); rkNetStream.SendShopSellPacketNew(iSlotNumber, iCount, iType); return Py_BuildNone(); }
4) Save, close and build
Clientside-Python:
Here you have to do it by yourself.
The new function of the m2net/net module are called by 3 files- uiInventory.py
- uiDragonSoul.py
- uiShop.py
You have to edit these files if your files are not containing these updates, but thanks to [sA]Con for the newer root package from his release ^^
the "new" root package which is containing every changes for this and for wolfman.
I do not recomment to replace or overwrite your files with those files!
Use a comparer tool like Notepad++ Compare plugin to check the differences at "sell" keyword.
Tested and works, but if you found bug/mistake/error please write into this thread a detailed post.
So not like this:
ps.: I hope you understand everything, and sorry for my poor english:3ps2: In the official bin this message " SendShopSellPacketNew(bySlot=%d, byCount=%d, byType=%d)" can be found, but I renamed the variable too, hehe :-D.
With Regards,
P3NG3RI dont know, but there is a bug for all.
If you click in shop on sell the name of the item is right, but if you put the item to shop to sell it. You got the wrong name of item(you get the name of the first weapon). Do you have a solution for this? -
On 23.1.2017 at 00:59, Sayen said:
Anti Ghost mode its bugged.
When you are walking and you dying after 3 seconds you will get dc.
Looks like my gif.
Same Problem here
-
2 minutes ago, alg0r!thm said:
Srsly, you trolling right? Have you ever readed just one post in this topic? The problem is I got this error msg although the id and the password are right.
I think you are using the wrong table. Bcs maybe its not account.account but player.account. Try it.
-
On 28.2.2017 at 06:26, alg0r!thm said:
Good morning dudes, I got the problem that if I try to connect to my server he tolds me always that my accountname and password are wrong, wether they are right. First I thought its a clientbased problem so I tried another client but the problem stays. After that I thought it is a serverside problem but I cant find anything and the 'syserr.txt' are empty to this problem. I've also tried to remove the files and setup it again but it changes nothing the problem stays. I hope you can understand what I am trying to telling you. Because my English arent the best. And if you need some more informations about my server please tell me I'll give it to you.
I think, your password or accountname is wrong.
-
2 minutes ago, ShadowsPR0 said:
Nobody helped me after looking for few weeks, figure it out yourself !
HINT: Not directx and not MobColour
Its the environment, change it in the settings.txt
-
1 hour ago, daradevil124 said:
same problem how to fix it?
Open your eyes omg
-
-
-
-
-
-
I need the fix to, someone can fix this for money??
-
Dont trust t4ump he is a thief and sold unfinish stuff
- 1
-
How can i use item scale with mob_scale at the moment i have item scale and my old mob scale doesnt work anymore...
someone can do that for me? I want to pay him!
-
On 20.6.2015 at 16:27, VegaS said:
Open game.py add in def __ServerCommand_Build(self): serverCommandList={ "antiexp" : self.__antiexp, then add below function: # System Anti Exp - Start def __antiexp(self, qid): constInfo.antiexp= int(qid) # System Anti Exp - End Add in constinfo.py: antiexp = 0 Open uiinventory and search function: self.DSSButton = self.GetChild2("DSSButton") and add below: self.VegaS_button_Exp = self.GetChild2("VegaS_button_Exp") search function: self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton)) and add below: ## Button Anti-Experienta if self.VegaS_button_Exp: self.VegaS_button_Exp.SetEvent(ui.__mem_func__(self.ClickVegaS_button_Exp)) Then add the function below: ###Button anti-experienta### def ClickVegaS_button_Exp(self): import event qid = constInfo.antiexp event.QuestButtonClick(qid) Importing the module event earlier in uiinventory. Inventorywindow add : { "name" : "VegaS_button_Exp", "type" : "button", "x" : your details, "y" : your details, "tooltip_text" : "Anti-ExP", "default_image" : "you images", "over_image" : "you imagesa", "down_image" : "you images", }, And this quest: quest anti_exp begin state start begin when letter begin cmdchat("antiexp "..q.getcurrentquestindex()) end when button or info begin if pc.getqf("antiexp") == 0 then pc.setqf("antiexp", 1) chat("[System Anti_Experience] - Activated] Experience points will be reset to 0 every second!") local ep = pc.get_exp() pc.give_exp2(-ep) timer("vegas", 1) elseif pc.getqf("antiexp") == 1 then pc.setqf("antiexp", 0) chat("[System Anti_Experience] - Disabled] I've now receive experience points again!") end end when vegas.timer with pc.getqf("antiexp") == 1 begin local ep = pc.get_exp() pc.give_exp2(-ep) timer("vegas1", 1) pc.setqf("antiexp", 1) end when vegas1.timer with pc.getqf("antiexp") == 1 begin local ep = pc.get_exp() pc.give_exp2(-ep) timer("vegas", 1) pc.setqf("antiexp", 1) end when login with pc.getqf("antiexp") == 1 begin chat("[System Anti_Experience] - Activated]") local ep = pc.get_exp() pc.give_exp2(-ep) timer("vegas", 1) pc.setqf("antiexp", 1) end when login with pc.getqf("antiexp") == 0 begin chat("[System Anti_Experience] - It is not enabled!]") end end end
0208 10:05:38079 :: File "ui.py", line 1395, in CallEvent
0208 10:05:38079 :: TypeError
0208 10:05:38079 :: :
0208 10:05:38079 :: __antiexp() takes exactly 2 arguments (1 given)
0208 10:05:38079 :: -
Do you can send me the right tut for the exp_table.txt please? im still using constants from source and im using mob_proto.txt
-
59 minutes ago, .PolluX said:
You don't need to increase the exp.
Just divide the needed exp per level and the exp per mob(kill) by the same amount and you have smaller numbers but the same time you need to get to a higher level.
Easy to do...
Yea, thats what im thinking too... but more work u know?
-
Buy full english translate.lua
in Paid Support / Searching / Recruiting
Posted
Im searching for translate.lua in english.