-
Posts
397 -
Joined
-
Last visited
-
Days Won
2 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by kodepiko
-
-
You have there 90% - it always fail? you can enable test_server: 1 at your actually game core at CONFIG file, to see debug chats <IMMUNE_FAIL> etc.
I'm not pretty sure that you need party to this or not
- 1
-
Well, I'll try to describe it better now.
I have maybe 30 quests on server, compilation is without problem.
make.sh:
LIST_FILE='quest_list' if [ -r $LIST_FILE ]; then rm -rdf object mkdir object while read line; do ./qc $line done < $LIST_FILE else echo $LIST_FILE' is missing' fi
Now, every quest is bugged like I write on the top.
Every quest is bugged and looks like on the screenshot at first post? - so they don't showing any other text than square?
Check syserr of your game core - it says you all, maybe it's questlib problem or ./make.sh / folder / qc don't have permission to something
- 1
-
yes I still to login channel, not crash in client but go to login again
sry for my bad english
If you write ps command at putty/virtualbox console you still see all processes?
Umm.. you can login again to the server after disconnect? or you need to restart your server?
It's important because only on that way we can say it's client or game problem
- 1
-
At now I have problem only with showing item price via private shop viewing by visitor (when I setup my shop I see correct price 2kkk+), if price extends 2kkk+ it shows 0 yang, but when I try to buy it I need real amount (for ex. 4kkk), so anyone can help me - where I should find this value?
I think it's this part: (PythonNetworkStreamPhaseGame.cpp)
case SHOP_SUBHEADER_GC_UPDATE_PRICE: PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetShopSellingPrice", Py_BuildValue("(i)", *(int *)&vecBuffer[0])); break;
but I don't really know how to deal with it to make it long long (I tried change (int *) to (long long *) but no effect
I have edited (PythonShop.cpp)
PyObject * shopGetPrivateShopItemPrice(PyObject * poSelf, PyObject * poArgs) { BYTE bItemWindowType; if (!PyTuple_GetInteger(poArgs, 0, &bItemWindowType)) return Py_BuildException(); WORD wItemSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &wItemSlotIndex)) return Py_BuildException(); long long iValue = CPythonShop::Instance().GetPrivateShopItemPrice(TItemPos(bItemWindowType, wItemSlotIndex)); return PyLong_FromLongLong(iValue); }
and
PyObject * shopAddPrivateShopItemStock(PyObject * poSelf, PyObject * poArgs) { BYTE bItemWindowType; if (!PyTuple_GetInteger(poArgs, 0, &bItemWindowType)) return Py_BuildException(); WORD wItemSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &wItemSlotIndex)) return Py_BuildException(); int iDisplaySlotIndex; if (!PyTuple_GetInteger(poArgs, 2, &iDisplaySlotIndex)) return Py_BuildException(); long long iPrice; if (!PyTuple_GetLongLong(poArgs, 3, &iPrice)) return Py_BuildException(); CPythonShop::Instance().AddPrivateShopItemStock(TItemPos(bItemWindowType, wItemSlotIndex), iDisplaySlotIndex, iPrice); return Py_BuildNone(); }
-
Ok, but even using my simple test quest when you write something at input - it crash your channel core or only crash your client, and you are still able to login again at this channel?
If it's core crash then you have something wrong in your source code or have mess with questlib.lua (you using files from someone so it can be)
-
Do you edit your client for client -> server quest communication? If not there is no possibility to not working input
Test this quest (you need to summon id 20001 npc and talk to him)
quest working begin state start begin when 20001.chat."Working input" begin say_title("TEST") say("write smth") local something = input() chat("INPUT: "..something.." ") end end end
-
You paste here wrong part of quest, I suggest you to paste complete OX quest or in best way you should find working OX event quest
here it is: (I got it from another site)
-------------------------------------------------------------- --- For Epvp --- Erza² --- Automatic Ox Event -------------------------------------------------------------- quest automaticoxevent begin state start begin -- Dialogue with Uriel when 20011.chat."GM: Automatic Ox Event" with pc.is_gm() and pc.get_name() == "Erza" begin say_title(mob_name(npc.get_race())..":") say("") say("Do you want to open the Ox Event? ") say("") local s = select(locale.yes,locale.no) if(s == 2) then return end say_title(mob_name(npc.get_race())..":") say("") say("Ox opened the event!. ") say("Please wait. ") server_timer("countdown",10) game.set_event_flag("automatic_oxevent_status",1) end --- Start Countdown !. when countdown.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") else notice_all("<Automatic-OxEvent> Ox opened the event!. ") notice_all("<Automatic-OxEvent> 5 Minutes the countdown has begun and Entries will be closed at the end of 5 minutes.. ") server_timer("countdownone",60) end end --- CountDown 2 when countdownone.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event !. ") else notice_all("<Automatic-OxEvent> Ox closing entries : 4 minutes left") server_timer("countdowntwo",60) end end --- CountDown 3 when countdowntwo.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event !. ") else notice_all("<Automatic-OxEvent> Ox closing entries : 3 minutes left") server_timer("countdownthre",60) end end --- CountDown 4 when countdownthre.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") else notice_all("<Automatic-OxEvent> Ox closing entries : 2 minutes left") server_timer("countdownfour",60) end end --- CountDown 5 when countdownfour.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") else notice_all("<Automatic-OxEvent> Ox closing entries : 1 minutes left") server_timer("countdownfive",60) end end --- Countdown 6 when countdownfive.server_timer begin if(game.get_event_flag("automatic_oxevent_status") == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") else notice_all("<Automatic-OxEvent> Ox entries closed. ") notice_all("<Automatic-OxEvent> Join as a spectator!. ") server_timer("playercheck",5) game.set_event_flag("automatic_oxevent_status",2) end end --- Player Check when playercheck.server_timer begin if(oxevent.get_attender() == 0) then notice_all("<Automatic-OxEvent> Event is closed because ; There's no one inside.. ") game.set_event_flag("automatic_oxevent_status",0) else server_timer("startox",5) end end --- Start Ox Event when startox.server_timer begin setskin(NOWINDOW) quiz = oxevent.quiz(1,30) if(quiz == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") game.set_event_flag("automatic_oxevent_status",0) warp_all_to_village() elseif(quiz == 1) then if(oxevent.get_attender() == 1) then game.set_event_flag("automatic_oxevent_status",0) notice_all("<Automatic-OxEvent> Event is over. See you soon ") warp_all_to_village() else server_timer("startoxone",40) end else notice_all("an unexpected error occurred") notice_all("closing event!. ") game.set_event_flag("automatic_oxevent_status",0) warp_all_to_village() end end --- Start Ox 1 when startoxone.server_timer begin setskin(NOWINDOW) quiz = oxevent.quiz(1,30) if(quiz == 0) then notice_all("an unexpected error occurred") notice_all("closing event!. ") game.set_event_flag("automatic_oxevent_status",0) warp_all_to_village() elseif(quiz == 1) then if(oxevent.get_attender() == 1) then game.set_event_flag("automatic_oxevent_status",0) notice_all("<Automatic-OxEvent> Event is over. See you soon ") warp_all_to_village() else server_timer("startox",40) end else notice_all("an unexpected error occurred") notice_all("closing event!. ") game.set_event_flag("automatic_oxevent_status",0) warp_all_to_village() end end when 20011.chat."Ox Event !. " begin say_title(mob_name(npc.get_race())..":") say("") --- if(game.get_event_flag("automatic_oxevent_status") == 1) then say("Do you want to enter the effectiveness of the Ox") say("") local s = select(locale.yes,locale.no) if(s == 2) then return end pc.warp(896500, 24600) elseif(game.get_event_flag("automatic_oxevent_status") == 2) then say("Do you want to enter the effectiveness of the Ox") say("") local s = select(locale.yes,locale.no) if(s == 2) then return end pc.warp(896300, 28900) elseif(game.get_event_flag("automatic_oxevent_status") == 0) then say("The effectiveness of the Ox now closed") say("") end end end end
Just replace yours OX EVENT quest and if this quest work and you want I can add for you a OX EVENT MEMBER LIMIT like in old quest
- 1
-
So none of quests are working for you?
try simple quest:
quest working begin state start begin when kill begin chat("YOU KILL MOB/PC") end end end
save it as working.quest and put in locale_list or compile it by ./qc and write /reload q in game
I think it depends on your quest which dumps core for ex. by wrong timer or smth like thatPaste here your OX event quest so we can check it
- 2
-
did you change the money in uicommon?
i mean this.
money = 0 if text and text.isdigit(): try: money = long(text) except ValueError: #money = 2110000000 money = 19999999999 // This is the money of your shop
Yes, as I writed this is OnValueUpdate, I do it this way:
def __OnValueUpdate(self): ui.EditLine.OnIMEUpdate(self.inputValue) text = self.inputValue.GetText() money = 0 if text: try: money = long(text) except ValueError: money = 9999999999999 self.moneyText.SetText(self.moneyHeaderText + localeInfo.NumberToMoneyString(money))
@update It's my fault, I missed some shop item price packets and values in client binary.
I don't know how to handle this:
PythonShop.cpp (if I edit it this way I have error -C2665: 'PyTuple_GetInteger' : none of the 4 overloads could convert all the argument types)
PyObject * shopAddPrivateShopItemStock(PyObject * poSelf, PyObject * poArgs) { BYTE bItemWindowType; if (!PyTuple_GetInteger(poArgs, 0, &bItemWindowType)) return Py_BuildException(); WORD wItemSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &wItemSlotIndex)) return Py_BuildException(); int iDisplaySlotIndex; if (!PyTuple_GetInteger(poArgs, 2, &iDisplaySlotIndex)) return Py_BuildException(); long long iPrice; if (!PyTuple_GetInteger(poArgs, 3, &iPrice)) return Py_BuildException(); CPythonShop::Instance().AddPrivateShopItemStock(TItemPos(bItemWindowType, wItemSlotIndex), iDisplaySlotIndex, iPrice); return Py_BuildNone(); }
and how handle PythonNetworkStreamPhaseGame.cpp ???
case SHOP_SUBHEADER_GC_UPDATE_PRICE: PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetShopSellingPrice", Py_BuildValue("(i)", *(int *)&vecBuffer[0]));
just change (int *) to (long long *)?
-
Hello,
I'm trying to raise limit of maximum item price at (private)shop, I change:
root/uitooltip.py - def CutMoneyString, int() to long()
root/uiprivateshopbuilder.py - def AcceptInputPrice, int to long
root/uicommon.py - __OnValueUpdate, int to long
root/uipickmoney.py (also for exchange yang) - def OnAccept, int to long
At server/client source I changed everything (when I try to buy an item which is showing 0 yang price, system says I dont have too much yang (for ex. 3.000.000.000) and it's correct - when my yang amount is lower of course so price is correct via packets, but I think it's problem by showing that price somewhere in python :/
I searched for int() but I didn't find anymore...
Maybe some of you did item prices 2kkk+ and can help me?
Regards
-
I've got a bug report that if your level is higher than 255, and you want to create a guild, it will fail, and your character will stuck. I will look after this ASAP, but now I don't have so much time. Sorry for this issue.
It's nice to see that you support this topic and don't forget about this
Yes, and also when you try to login with someone at guild... it disconnect
-
Are you kidding me?
Please read and do the whole tutorial...
This time you forget to do this:
guild.h
Replace this:typedef struct SGuildMemberPacketData { DWORD pid; BYTE grade; BYTE is_general; BYTE job; BYTE level; DWORD offer; BYTE name_flag; char name[CHARACTER_NAME_MAX_LEN+1]; } TGuildMemberPacketData;
To this:
typedef struct SGuildMemberPacketData { DWORD pid; BYTE byGrade; BYTE byIsGeneral; BYTE byJob; int byLevel; DWORD dwOffer; BYTE byNameFlag; } TGuildMemberPacketData;
If someone do this way, there is no more guild name in packet, so it doesn't appear at guild window.
I think you forgot about this?
-
Hello guys,
maybe you know exactly what sections of source code I need to edit, to properly show for ex. guild member list with correct character lvl if it is more than 255+
I have properly done showing lvl next to char etc. but have problems with guild member window and character select window (showing lvl of character)
Can someone point me at good way? I tried ofc editing at game side and at client side guild.cpp and packets with guild members etc but after that when I login to game my client turns off :/
if lvl of character is more than 255 for ex. 280 it show like 24 lvl
Regards.
-
I do everything again with focus and now it works
-
-
I give you idea guys, just create a new state for yours quests, for ex.
state start begin
-- play sound
set_state(next)
end
state next begin
-- begin quest text etc
end
Now it works only once and don't spam with music, otherwise may be better option but this is the easiest and not bad.
- 1
bug every event or quest
in Community Support - Questions & Answers
Posted
You compile client source binary? or you are using client from someone? It is game 40k+?
You can paste syserr.txt from client after client crash - so maybe we see what is wrong
If it's not a problem I suggest you to just change your client to working one.