lTz
-
Posts
42 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by lTz
-
-
How do i add the sash gr file now?
till now i use a mse ssd mde to show it -
Hello
I have a question about the headers
All systems that i add got no problem but last one is the shop search
After i press the search button i got dc and the only error is
Process: UNKNOWN HEADER: 231, LAST HEADER: 0(1), REMAIN BYTES: 4, fd: 20
Now the problem i have is that i don't have that header and all other are in pair
server 225, 226 ,227 on CG
client 225, 226, 227 on CG
server 226,227 on GC
client 226, 227 on GC
this are the last headers and no header 231 , any idea on why i get an undefined header as an err?
ty
-
sorry bro , do u think i check that after 4 beers?
i see similar content on right i click, no harm in that
have an nice day:) -
open each config from ur serverfile
add BIND_IP ur ip
ex BIND_IP 85.23.32.111- 1
-
so i fixed the part with the yang and won overflow
cmd_general and shop long nTotalCheque = ch->GetCheque() + gold; if (CHEQUE_MAX <= nTotalCheque) { sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("To much won.")); return true; } long long nTotalMoney = ch->GetGold()+count; if (nTotalMoney > GOLD_MAX - 1) { sys_err("[OVERFLOW_GOLD] To much yang (GOLD_MAX) id %u name %s sum: %lld", ch->GetPlayerID(), ch->GetName(), nTotalMoney); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("To much yang.")); return true; }
but the problem with -won when i buy item with 0 won in inv remain
i added some chat txt to see if the checks work , but i get no replych->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Not enough yang or won to buy this item."));
Ty
Update:
fixed the won problem with thisshop.cpp if ((long long)dwPrice > 0 && (int)dwCheque > nTotalCheque) // Yang-Cheque { if (ch->GetGold() < (long long)dwPrice || ch->GetCheque() < (int)dwCheque) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Not enough yang or won to buy this item.")); return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } } if ((long long)dwPrice > 0 && (int)dwCheque <= nTotalCheque) // Yang { if (ch->GetGold() < (long long)dwPrice) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Not enough yang to buy this item.")); return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } } if ((long long)dwPrice <= 0 && (int)dwCheque > nTotalCheque) // cheque { if (ch->GetCheque() < (int)dwCheque) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Not enough won to buy this item.")); return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } }
TY all -
Hi, can you be more explicit on what type of tool you need?
- website page to moderate
- aplication
i have a stand alone app if you need , send a message for a photo
-
Hi, today i added the great offline shop to my test sv so i can make one like the one from IKARUS with that base
I fixed all i can about it :
- item dupe
- the core crash
and so on
Now i'm stuck with a problem:
Even if i put some checks so you can;t buy if won price > your won is not working like when i put the same for yang, it allow me to buy with 0 won and then it goes into negative
Same if i put the check for yang/won when getting the money from shop and goldget > maxgold -1 so i don't get them if yang overflow
it should not give me the money and give an lc_text and a return, but it give me the money more like the money disapear
Here are some lines of code where i have the checks :
shop.cpp int CShop::Buy(LPCHARACTER ch, BYTE pos) { if (r_item.price < 0) { LogManager::instance().HackLog("SHOP_BUY_GOLD_OVERFLOW", ch); return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } #ifdef __ENABLE_CHEQUE_SYSTEM__ if (r_item.cheque < 0) { LogManager::instance().HackLog("SHOP_BUY_CHEQUE_OVERFLOW", ch); return SHOP_SUBHEADER_GC_NOT_ENOUGH_CHEQUE; } #endif #ifdef __ENABLE_CHEQUE_SYSTEM__ if ((int)dwPrice>0 && (int)dwCheque > 0) // Yang-Cheque { if (ch->GetGold() < (int)dwPrice || ch->GetCheque() < (int)dwCheque) return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY_CHEQUE; } else if ((int)dwPrice>0 && (int)dwCheque <= 0) // Yang { if (ch->GetGold() < (int)dwPrice) return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } else if ((int)dwPrice<=0 && (int)dwCheque > 0) // cheque { if (ch->GetCheque() < (int)dwCheque) return SHOP_SUBHEADER_GC_NOT_ENOUGH_CHEQUE; } #else if (ch->GetGold() < r_item.price) { sys_log(1, "Shop::Buy : Not enough money : %s has %d, price %d", ch->GetName(), ch->GetGold(), dwPrice); return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; } #endif }
cmd_general.cpp bool GetGift(LPCHARACTER ch, DWORD id,bool all=false) { #ifdef FULL_YANG long long nTotalMoney = ch->GetGold()+count; if (nTotalMoney > GOLD_MAX-1) { sys_err("[OVERFLOW_GOLD] To much (GOLD_MAX) id %u name %s total: %lld", ch->GetPlayerID(), ch->GetName(), nTotalMoney); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have to much yang!.")); return; } #endif #ifdef FULL_YANG long long nTotalMoney = ch->GetCheque() + count; if (CHEQUE_MAX <= nTotalMoney) { sys_err("[OVERFLOW_CHEQUE] Overflow (CHEQUE_MAX) id %u name %s", ch->GetPlayerID(), ch->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[SYSTEM] You cannot exceed the limit of 99 won.")); return true; } #endif }
As you can see from this checks it should work , but not:))
Any idea why ?
Ty all -
5 hours ago, Amun said:
Hi, and ty for answer
I already tried with p3 and the only bug i found was that the client crash when over 2 clients are on on multiple occasions(this happen if in dungeon with multiple players but not everytime i think is a memory problem)(just for me idk others)
I use 2.7 rn and all feels good, i even edited ur code so that it work with right click as well (hope u don't mind that )
Ty for ur release and have a good time
If u don't mind i can look into it and give updates
- 1
-
HI, first u need to check if the key u want to press is in the right file
For example if u want to use alt to make the render target show make sure that u have the def for that key in the part u want to open
Lets say u want to open it from inventory
U need to have something like this
elif app.IsPressed(app.DIK_LALT): link = player.GetItemLink(itemSlotIndex) ime.PasteString(link)
In uiinventory.py and then in uitooltip.py before you call it for the rendertarget
If u need to make it to idk lets say offlineshop, go in idk offlineshopwindow.py and make sure u have the code about that key for example alt, it does not need to be the same as i posted above but you need to have it implemented so the rendertarget know . Otherwise u need to prerender that by presing alt and moving mouse in and out
make sure u have the rest of code if that file dont suport app.ispressed
Hope you solve it -
A server is made from multiple files
1. Serverfile
This is what u upload on the freebsd to have the server running
here u edit quests, drops, spawn, see problems and so on ( this is the ez stuff taht everyone can do)2. Mysql Database
This is where all the information about the server is hold on it also upload in freebsd or some other database server
Stuff like accounts, items, mobs, players, and so on
Here u can edit stuff if u want but be carefull to dont fucked up the server:)3. GameSource
This is the place where u include new codes for new sistems or edit code. This send data and receive data from client side
It work hand to hand with the ClientSource
This one need to be compiled on the serverside or a virtual machine on ur pc4. ClientSource
This is the same But for Client Side , u add edit code to do stuff
This to need to be compile with something like visual studio 20225. Client
In client u have all the resource that u need to make the game work
Items, mobs, how UI work, txt, etc
U also can add edit stuff to work with the server and client source
All of this work hand to hand
Client side need to be encrypted and crypted after each edit with something like eternexus6. Dump Proto
This is what u need to implement new items/mobs in the game
and then u move them to locale/ur lang/
All this said , if u only need a fun server u can do only with the serverfile
If u need to add ur own stuff u will need a source for themFor start you can experiment with some from the web
After i recomend to buy a full one from ppls that have years of experience in this domain and u can be sure that u will have no problems
There are also other stuff like DBmanager, MSAmaker , but for start focus on what u need -
hi , ty all for ur answers
i finaly found the problem
That item was somehow dupping in my inventory , and that was what made the sv crash (hard to see that cuz that item was invisible and stacked over another visible one, and no sys)
but i stil don't get why was crashing the server just when i move the window around , normal login didn;t have any problem
As for the window freeze i try this oneand i make it so i cant right click the window to so it avoid game freze
Ty all -
yes is a test server
all stuff is repaired ,fixed in the limit that i can
i don't know either why it does that , the problem is that beside that core dump i got nothing else
and about the move
the client window when is getting moved at the speed of light it make the game froze and then server crash idk how to how but its happening
ty for ur answers -
ty for answer
i tried an /ip all
i deleted that item nothing worked
the main problem is that when i log in the game and press start and the loading window come if i move the game window around a lot the server crashes
if i dont move it is ok
i gues is because when i move the window the game freeze and data are kept floating and never reaching the server
this is my ques i may be wrong -
Hello, so right now i discovered 1 bug , a big one to
So when i connect to the server nothing happen all god i can play the game
When i connect and start to move the game window around the game froze and the server crash
My only err is in the client side :
Phase HandShake does not handle this header (header: 86, last: 250, 86)
idk the reason i will come back later with the core dump , maybe that will help
Ty
Edit
core_dump
#0 CItem::GetName (this=0x50a38740) at item.h:104 #1 0x08192fd0 in ITEM_MANAGER::CreateItem (this=0xffffa3a8, vnum=41012, count=1, id=10003202, bTryMagic=false, iRarePct=-1, bSkipSave=false) at item_manager.cpp:178 #2 0x0816ab87 in CInputDB::ItemLoad (d=<optimized out>, c_pData=<optimized out>, this=<optimized out>) at ../../common/singleton.h:24 #3 0x0816d5b6 in CInputDB::Analyze (d=0xffff9cf8, c_pData=0x2a019e6e "]participante.", bHeader=0 '\000', this=0x2a8d647c) at input_db.cpp:3128 #4 CInputDB::Process (this=0x2a8d647c, d=0x2a8d6000, orig=0x2af9fe80, bytes=21875, r_iBytesProceed=@0xffff9cf8: 1857) at input_db.cpp:3491 #5 0x0812f7ee in DESC::ProcessInput (this=0x2a8d6000) at desc.cpp:312 #6 0x08294601 in io_loop (fdw=0x295b1540) at main.cpp:1022 #7 0x082947a1 in idle () at main.cpp:915 #8 idle () at main.cpp:884 #9 0x0807541d in main (argc=<optimized out>, argv=<optimized out>) at main.cpp:553
i don't see why it crash from an item or something cuz it was doing the same crash even before adding that , so rn my only lead is the client sys
Phase HandShake does not handle this header (header: 86, last: 250, 86) -
Well i did it , somehow is working as i wanted
You can t/c
ty all -
Edit : i manage to do it after some research
what i did was something like this:
public: bool test; void SetTest(bool value) {test = value;} PyObject* miniMapSetChose(PyObject* poSelf, PyObject* poArgs) { bool bValue; if (!PyTuple_GetBoolean(poArgs, 0, &bValue)) return Py_BuildException(); CPythonCharacterManager::Instance().SetChose(bValue); Tracef("SetChose: %s", bValue ? "True" : "False"); return Py_BuildNone(); } { "SetChose", miniMapSetChose, METH_VARARGS }, TraceF("code chose") if (test){ do stuff TraceF("true") } else{ do other sutff TraceF("false") } } TraceF("looping rest of code") rest of code logic and in client i call it like miniMap.SetChose(False) or True
now i have another problem
whatever i chose True or False the code is working with the true value the traceback only show true
and after some other edits i manage to make it so that is show true or false whatever i chose but when this happen the rest of the code is no longer working the traceback is not showing looping rest of code
If anyone know a fix or go around
Ty -
Hi , i'm kinda new here and i want to ask something
i have something like this in client sourceboll test = true; if(test){ do stuf else{ do other stuff } }
now the problem that i don't know how to do and pls don't make fun of me
i want a button in a window to acces this bool and based on the toggle of that button to select an if
ty for help:P -
@Torres do u remember the cause and fix , got the same problem and i check everything
ty:) -
-
fixed : i forget to add the new type item in dump_proto source (ITEM_ELEMENTAL )
- 1
-
Hi , i got a small problem with my items, i cant see the bonus in description
I change in navicat , item_proto client and server but same problem
I get the bonus for ex 2000 hp but i cant see it on the item
Do someone know where is the problem?
Here is the code
Navicat:
55040 test+0 test2+0 35 0 0 1 0 0 0 3000 3000 55041 280 0 10 1 10 0 0 1(hp) 2000(hp value) 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 0 0 0
item_proto:
55040 test+0 ITEM_ELEMENTAL 0 1 NONE NONE NONE NONE 3000 3000 55041 280 10 LEVEL 10 LIMIT_NONE 0 APPLY_MAX_HP 2000 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0
or
<ItemDef Vnum="55040" Name="test+0" LocalizedName="test2+0" Type="255" SubType="0" Weight="0" Size="1" AntiFlags="0" Flags="0" WearFlags="0" ImmuneFlags="0" Gold="3000" ShopBuyPrice="3000" LimitType0="1" LimitValue0="10" LimitType1="0" LimitValue1="0" ApplyType0="1" ApplyValue0="2000" 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="55041" RefineSet="280" AlterToMagicItemPercent="10" Specular="0" GainSocketPercent="0" AddonType="0" />
Ty for hep
-
Hello, today i just add the new pet system to my server, i fix all the stuff but i get stuck here cuz idk what make this error
When i sumon the pet in game he vanish after 1 sec
Serverside sysser is clean
And cliend sysser is :
1201 20:40:42657 :: File "game.py", line 1945, in BINARY_ServerCommand_Run 1201 20:40:42659 :: File "stringCommander.py", line 63, in Run 1201 20:40:42659 :: File "stringCommander.py", line 31, in __call__ 1201 20:40:42659 :: File "stringCommander.py", line 20, in __call__ 1201 20:40:42659 :: File "game.py", line 2002, in SetPetEvolution 1201 20:40:42659 :: IndexError 1201 20:40:42659 :: : 1201 20:40:42659 :: list index out of range 1201 20:40:42659 :: 1201 20:40:42659 :: Unknown Server Command PetEvolution 4320 | PetEvolution 1201 20:40:42707 :: Unknown Server Command PetExp 0 300 | PetExp
I have this commands in server/client but idk why i get this err,
If someone know the reason or have similar problem and he can tell me
Ty for help
-
hi , i need some help cuz is the first time when i work with dump_proto
So idk how to make dump_proto ok for my files, i added all the stuff like COSTUM_HAIR etc , but when i compile item/mob proto , i get this
1129 23:23:14585 :: LoadLocaleData - RegisterSkillDesc(locale/en/mob_proto) Error
An solution will be welcome .
Ty
-
nevermind , i just forgot to add that function in input.h ...
sorry for this
Gr2 export and questions
in Community Support - Questions & Answers
Posted · Edited by lTz
Hi, i just installed the stuff from this post
What i don't know is how does the new gr2 work
For example i want to add the wings from the tutorial folder, this have a gr2 file and a dds one
Till now all my wings had a mse , mde, dds file
i add them like this :
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 29, "Bip01", "d:/ymir work/wings/test/test1.mse")
But what if i don;t have the mse and mde , just gr2 and dds, is there a convertor ? or based on the post above i can just put them like wing.gr2 and it will work?
I'm kinda confused on this part so if anyone know and want to share how i will appreciate
Ty