Jump to content

im4x8061

Member
  • Posts

    20
  • Joined

  • Last visited

  • Feedback

    0%

About im4x8061

Recent Profile Visitors

1018 profile views

im4x8061's Achievements

Contributor

Contributor (5/16)

  • One Year In
  • Collaborator Rare
  • Conversation Starter
  • First Post
  • Very Important Person Rare

Recent Badges

1

Reputation

  1. The error was a mistake in item_proto.txt: The item type "COSTUME_SASH" did not exist. -> Change to "COSTUME_ACCE" did the trick As the system was applied to TMP4 reference client, Here are some more bug fixes: - Missing GUI slots for sash and moun: - Questfiles call a function pc.open_sash, which should be pc.open_acce - There is a "WOLFMAN" flags in uitooltip And a few more things, like wrong function names. Quite a bit to debug.
  2. Hey together, after adding the Shoulder Sash System with Scale by Lennt in version 0.3, there is the syserr on client side simply stating "invalid idx 0". Server, db, dump_proto and client compile just fine. The error occurs in the transition from login screen to character select. When then selecting a character, one gets thrown back to the login screen instead of entering the loading screen. Here are the logs/errors: - client/syserr.txt - auth/syserr : no error here - auth/syslog - db/syserr : no error here - db/syslog game99/syserr: no error game99/syslog: no log The serverfiles and client are TMP4 source. The implementation was compared with ULTHAR V2 source. The names were changed from "acce" to "sash", but the paths were kept the same as in TMP4 original client. The paths were updated in locale/xxx/item_list.txt to match "sash" theme. The error must be inside the Svn/Client, right? Only alternative is db, but as the char loads correctly, this is also unlikely? Any hint is appreciated. Thanks in advance!
  3. Excuse me? I am sorry if I offended you, but I stated the question correctly and even acknoledged your reply. But your reply was not the answer to my question. The answer was: There was a typo in my code hence the function name in quest_function did not match my function call. It just took me some time to realize this, as this happened in a copy&paste mistake. My issue was not providing the whole code here, as you may have found this mistake much sooner than I have.
  4. Hey, very much thank you for your effort! Everything is working just fine and it is very easy to work with! I know, that you are not a support guy, but maybe you could hint me in the right direction. I tried installing Lennt sash system, as this was the only one I found. Source and client compile just fine, but now I am getting: "connect: connection refused" with the syserr "socket_connect: HOST 127.0.0.1:15000, could not connect.". To me, this sounds like it can be anything, but maybe you have a good guess? Thanks
  5. Thanks for the release! Can you tell me, what sash system you used and where you found it? I am working on TMP4 files and I found Lennt's system, with which I am struggling. A hint into some direction would already be helpful
  6. There was a typo, that took some time to be found... If anyone is interested in dropping items with attributes and ownership: queslua_game.cpp Obviously: quick and dirty. if you feel like it, you can implement the functionality of handling 4 function arguments into the already existing `int game_drop_item_with_ownership(lua_State* L)`but this one is up to you. Also: add `{ "drop_item_with_attr_own", game_drop_item_with_attr_own },`in `void RegisterGameFunctionTable()`and add the function in `server/share/locale/xxx/quest/quest_functions` as `game.drop_item_with_attr_own`. The quest call can look like this:
  7. Thanks for sharing! This might be a stupid question, but when you look at the definition of `int CHARACTER::ComputeSkillParty(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel)`, it expects 3 input arguments, but you called it with only two arguments: `ComputeSkillParty(dwVnum, this);` Did I miss something? Wouldn't `BYTE bSkillLevel = GetSkillLevel(dwVnum); for calling it again like `ComputeSkillParty(dwVnum, this,bSkillLevel);` be required? Thanks in advance!
  8. Thanks for the reply. I actually did try this before, but good to know, that it was correct. I finally understood, that there is login interface by Chitra, which is why my buttons won't work. I tried using standard buttons instead, but they are non-clickable.. Do you have any idea with this? I looked into Chitras system but all I found was the intrologin.py (which I can't use right away without ruining my channel switcher). Where are the buttons defined?
  9. Hmm.. I read that and thereforeI copied all the stuff from your other topic. It took me quite some time to find out, that stuff was missing. I searched the topic and did not find anything. I guess, that this one is still my fault, but if I messed it up, maybe someone else did too. So what ever you say: it was not useless, thanks.
  10. For anyone who was also looking for a quick and dirty solution: I installed the quest functions mentioned by Syreldar, but there were a few problems for me: some quest functions had different names and also the skill_names table did not exist. I created a new quest function with the correct names (was not necessary, but made debugging easier for me. You can also rework the BuildSKillList function by Syrelda). My rainbow stone check if a skill is in between a min and max skill level and then sets it to lvl 30 (grandmaster). Thanks a lot for the functions @ Syreldar! So here is my implementation with some insights on what to do: rainbow_stone.quest add in questlib.lua This solution is not smooth or idea, but works. Please check, if special.active_skill_list already exists. Add the function in quest_functions Add the quest in locale_list.txt
  11. I did do that, as I found this hint in multiple posts already, but without any effect. I thought, that there may be some cache I have to clear manually first? I used `gameclean`command to delete all binaries and recompiled without effect.
  12. Ahh, okay. I am sorry for not getting it right away. I found that function when I was messing around with the definition of the "game.drop_item_with_ownership" function. I'll checkout where to define an item creation event for certain boss kills. I am really newbie with the structure as you can see. But thanks for your patience! Thanks for the tip, I only know VScode (ctrl + click) and am not used to visual studio
  13. Thanks, I found out about that one, but I failed to add a bonus to it. I tried "item.set_value" but with no effect. I used it in the line right after the drop command. The dropping of the item worked though
  14. I was trying to get a new quest function that combines the "drop_item_with_ownership" from questlua_game.cpp with the "item_set_value" function from questlua_item.cpp. The file compiles just fine but when trying to call the new function from a *.quest file and compiling quests, the function is said to be not declared. I did the following in questlua_game.cpp: int game_drop_item_with_attr_own(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); LPITEM item = NULL; switch (lua_gettop(L)) { case 1: item = ITEM_MANAGER::instance().CreateItem((DWORD) lua_tonumber(L, 1)); break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: item = ITEM_MANAGER::instance().CreateItem((DWORD) lua_tonumber(L, 1), (int) lua_tonumber(L, 2)); break; default: return 0; } if (item == NULL) { return 0; } if (lua_isnumber(L, 3)) { int sec = (int) lua_tonumber(L, 3); if (sec <= 0) { item->SetOwnership(ch); } else { item->SetOwnership(ch, sec); } } else { item->SetOwnership(ch); } // Set attributes if provided for (int i = 4; i <= lua_gettop(L); i += 3) { if (lua_isnumber(L, i) && lua_isnumber(L, i + 1) && lua_isnumber(L, i + 2)) { int index = (int) lua_tonumber(L, i); int apply_type = (int) lua_tonumber(L, i + 1); int apply_value = (int) lua_tonumber(L, i + 2); item->SetForceAttribute(index, apply_type, apply_value); } } PIXEL_POSITION pos; pos.x = ch->GetX() + number(-200, 200); pos.y = ch->GetY() + number(-200, 200); item->AddToGround(ch->GetMapIndex(), pos); item->StartDestroyEvent(); return 0; } int game_web_mall(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if ( ch != NULL ) { do_in_game_mall(ch, const_cast<char*>(""), 0, 0); } return 0; } void RegisterGameFunctionTable() { luaL_reg game_functions[] = { { "get_safebox_level", game_get_safebox_level }, { "request_make_guild", game_request_make_guild }, { "set_safebox_level", game_set_safebox_level }, { "open_safebox", game_open_safebox }, { "open_mall", game_open_mall }, { "get_event_flag", game_get_event_flag }, { "set_event_flag", game_set_event_flag }, { "drop_item", game_drop_item }, { "drop_item_with_ownership", game_drop_item_with_ownership }, { "drop_item_with_attr_own", game_drop_item_with_attr_own }, { "open_web_mall", game_web_mall }, { NULL, NULL } }; CQuestManager::instance().AddLuaFunctionTable("game", game_functions); } } and added the function into the quest_functions file. But no matter what I do, the functions are not recognized. Even when chaning the name of existing functions, the new names are not availble, but the old names. Could anyone tell me, what I am doing wrong? Best regards
  15. Thanks for the input! I actually thought about the latter as my main issue would be to find the right cpp files for implementing your 2nd suggestion. I am still very much confused about where stuff happens in the source and how the files are inter connected. I know how to put items into a drop table, but I did not see any option to include boni? In combination with your suggestion to create a new item, this would work obviously. I'm currently testing the quest approach where I make the mob drop an item although I am just learning that and trying to figure out how to do add bonus to said item. But if this fails, the I'm going for the the new item approach
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.