Jump to content

TEH

Inactive Member
  • Posts

    9
  • Joined

  • Last visited

  • Feedback

    0%

About TEH

Informations

  • Gender
    Not Telling

Recent Profile Visitors

633 profile views

TEH's Achievements

Apprentice

Apprentice (3/16)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

3

Reputation

  1. Install boost from ports: and replace old boost dir in Makefile for game core:
  2. In cmd_general.cpp: ACMD(do_unmount) Exactly the same code in char_battle.cpp for CHARACTER::Dead (due to prevent some bugs)
  3. It's your call, when you extend levels to ex. 5000 you will need placeholder for that exptable. You can't assign 250 elements to an array of size 120. Chcek length.h file, there are all important enumerations defined so just compare and add/edit exact values.
  4. Have you considered that compiler could have something important to tell? Check the length of your array and count your added elements 121 != 251. Correct PLAYER_EXP_TABLE_MAX etc.
  5. @Rumor It is ugly way to do this. I did simulation and it creates bug. When player lefts 1 empty slot he can easier drop one-slot items with content that have items multi-slot. Better way is change function: bool CHARACTER::GiveItemFromSpecialItemGroup You have to check size of giving item and in case of 2 or more disable calling this function again with some bool var. Next send text packet to player with information that he must empty at least 3 slots to open box.
  6. I extended that one because of hardcoded changing only weapon attributes but ofc you can create another ACMD. As I said you can also make new function with ChangeRareAttribute. Depends on needs.
  7. Hi devs, I focused this easy topic on extra managing attributes by GMs (testing new bonus stuff etc) Here we go: open cmd_gm.cpp and find ACMD(do_change_attr) next replace whole function with ACMD(do_change_attr) { char cArg1[256]; one_argument(argument, cArg1, sizeof(cArg1)); if (!*cArg1) { ch->ChatPacket(CHAT_TYPE_INFO, "Syntax: /change_attr <EWearPositions>"); return; } BYTE byType = 0; str_to_number(byType, cArg1); BYTE byFlags = WEAR_BODY | WEAR_HEAD | WEAR_FOOTS | WEAR_WRIST | WEAR_WEAPON | WEAR_NECK | WEAR_EAR | WEAR_SHIELD; assert(byFlags & ~(WEAR_MAX-1) == 0); if (byFlags & byType) { LPITEM item = ch->GetWear(byType); if (item) item->ChangeAttribute(); } } That's it. Usage /change_attr and one argument based on EWearPositions enum in length.h (from 0 to 10 excluding 7,8,9) As you can see this function could be easily adapted to your needs. Try add more arguments and set sth. In this form you can also enable particular wear flags to be opened to if statement or.. disable some Do it similarly with add attribute function (or rare attr), just remember to change last function to thier equivalents. Post feedback and have nice day.
  8. Problem seems to be half solved. Everything works fine on bsd, only win definitions have bugs.
  9. Hi dev. Maybe someone knows the solution, when I compiled almost untouched core (refers to any dev lines) I experienced clientside packet errors. After loading screen occur: Unknown packet header: 50, last: 76 1, all the time and crashes client. Using debug binary there is empty inv and character doesn't appear. I use mainline/novaline/mainline_sg binaries and work fine but not with with my game. I think the problem should be serverside but when I compared packet.h files, found that the only missing GC packets (clientside) are 12, 24, 37 and probably not used by game anymore. Therefore I decided to remove them serverside, so client could no get any "unknows" but didn't help.
×
×
  • 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.