Jump to content

Kreustoo

Members
  • Posts

    215
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Kreustoo

  1. Hello, Split in different string .@menu1$, .@menu2$ ect, with a next/previous, so you'll simulate pagination
  2. Hello Here is your problem: OnDeadMVP: areaannounce .mvp_mapa$,20,20,280,280, "O Mini-Chefe "+getmonsterinfo(.@idsalamvpmvp[.idsalamvp],0)+" foi MORTO pel"+(Sex?"o":"a")+" guerreir"+(Sex?"o":"a")+" "+strcharinfo(0)+"!",bc_map; .@idsalamvpmvp It is a temporary array, change .@ to .
  3. Hello, mmo.h #define MAX_INVENTORY 100 ///Maximum items in player inventory I used to read that you shouldn't go higher than 127, but maybe it changed.
  4. Damn, I just saw that I didn't followed that file discussion. A .diff is something you apply to your src, either you do it by hand, finding the lines, either you use a software like sourcetree to apply it. I didn't wrote any tutorial for applying a diff but I'm sure you can find many information everywhere.
  5. Hello, Just use getstatus on the SC of bubble gum (which is SC_ITEMBOOST) *getstatus(<effect type>{,<type>{,<char_id>}}) Retrieve information about a specific status effect when called. Depending on <type> specified the function will return different information. Possible <type> values: - 0 or undefined: whether the status is active - 1: the val1 of the status - 2: the val2 of the status - 3: the val3 of the status - 4: the val4 of the status - 5: the amount of time in milliseconds that the status has remaining If <type> is not defined or is set to 0, then the script function will either return 1 if the status is active, or 0 if the status is not active. If the status is not active when any of the <type> fields are provided, this script function will always return 0.
  6. Hello, Here it is! From: Kreustoo <[email protected]> Subject: Remove party requirement for Twilight alchemy --- src/map/party.cpp | 10 ++++++---- src/map/skill.cpp | 16 +++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/map/party.cpp b/src/map/party.cpp index 030adb86c..359bd5770 100644 --- a/src/map/party.cpp +++ b/src/map/party.cpp @@ -975,10 +975,12 @@ int party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id case MO_COMBOFINISH: //Increase Counter rate of Star Gladiators if (!p->state.sg) return 0; break; - case AM_TWILIGHT2: //Twilight Pharmacy, requires Super Novice - return p->state.snovice; - case AM_TWILIGHT3: //Twilight Pharmacy, Requires Taekwon - return p->state.tk; + //[Custom] Disable AM_TWILIGHT2 and AM_TWILIGHT3 party requirement + //case AM_TWILIGHT2: //Twilight Pharmacy, requires Super Novice + // return p->state.snovice; + //case AM_TWILIGHT3: //Twilight Pharmacy, Requires Taekwon + // return p->state.tk; + //[Custom] end default: return 0; //Unknown case? } diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 0a168837c..219675bfe 100644 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -15680,13 +15680,15 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i } } break; - case AM_TWILIGHT2: - case AM_TWILIGHT3: - if (!party_skill_check(sd, sd->status.party_id, skill_id, skill_lv)) { - clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); - return false; - } - break; + //[Custom] Disable AM_TWILIGHT2 and AM_TWILIGHT3 party requirement + //case AM_TWILIGHT2: + //case AM_TWILIGHT3: + // if (!party_skill_check(sd, sd->status.party_id, skill_id, skill_lv)) { + // clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + // return false; + // } + // break; + //[Custom] end case SG_SUN_WARM: case SG_MOON_WARM: case SG_STAR_WARM: -- 2.25.0.windows.1
  7. Hello, If I were you I'd write a npc function, call it and debug it inside of the function, way easier to read and faster to reload just one function that the whole item_db.
  8. Hello, I think you have to use uid to move (unitwalk) and check if there's any player in the area around the monster and make it attack the player (unitattack). As long as you make the unit walk he won't attack automatically. To ge the monster uid you can catch the id return by the monster command. The doc: *unitwalk <GID>,<x>,<y>{,"<event label>"}; *unitwalkto <GID>,<Target GID>{,"<event label>"}; This command will tell a <GID> to walk to a position, defined either as a set of coordinates or another object. The command returns a 1 for success and 0 upon failure. If coordinates are passed, the <GID> will walk to the given x,y coordinates on the unit's current map. While there is no way to move across an entire map with 1 command use, this could be used in a loop to move long distances. If an object ID is passed, the initial <GID> will walk to the <Target GID> (similar to walking to attack). This is based on the distance from <GID> to <Target ID>. This command uses a hard walk check, so it will calculate a walk path with obstacles. Sending a bad target ID will result in an error. An optional Event Label can be passed as well which will execute when the <GID> has reached the given coordinates or <Target GID>. Examples: // Makes player walk to the coordinates (150,150). unitwalk getcharid(3),150,150; // Performs a conditional check with the command and reports success or failure to the player. if (unitwalk(getcharid(3),150,150)) dispbottom "Walking you there..."; else dispbottom "That's too far away, man."; // Makes player walk to another character named "WalkToMe". unitwalkto getcharid(3),getcharid(3,"WalkToMe"); --------------------------------------- *unitattack <GID>,<Target ID>{,<action type>}; *unitattack <GID>,"<Target Name>"{,<action type>}; This command will make a <GID> attack the specified target. It returns true upon success and false for all failures. If <GID> is a player and a non-zero <action type> is given, the unit will perform a continuous attack instead of a single attack. Note: Using unitattack with <GID> 0 means that it will use the currently attached unit. For players any attack requests will fail, because talking to an NPC prevents attacking a monster. Therefore you need to detach the player from the NPC before using this command.
  9. Hello, If it's written WoE, it seems the item is well made. Did you add allow woe item mapflag on the woe's map?
  10. Or just rename the images (or at least one to test first) to something never used. I'm sure what is happening there, but it seems you have a kafra cutin loaded before your new kafra ones, and I don't think that's a so good idea to remove the official ones.
  11. Yeah that's why i'm guessing it's not loaded before the others. Did you put them on the folder directly or inside a grf? -data: Are you sure your exe is patched to read data first? -grf: Are you sure the grf is the first to be laoded (inside data.ini)
  12. Maybe you put them on the wrong folder? Or they are not loaded before the other real cutin? (not read in data - grf order) Just trying to guess :/.
  13. Hello, What are the names of the cutin that comes with the script? Maybe just edit .Cutins$ and .VIPCutins$ arrays?
  14. Hello, lunette,73,97,1 duplicate(Rewards#101) Rewards NPC 100 The 100 is the view you want, so change it to 2538 For the level 80 gm, we need your account id or character name you want to di the changes. replace this: if (getgmlevel() >= .gmlvl) by this: if (strcharinfo(0) == "YOUR_CHAR_NAME") with YOUR_CHAR_NAME being your actual admin char name. Don't remove the "", replace only YOUR_CHAR_NAME. And for the items, you choose the items, so you don't need to set anything before?
  15. Damn, do you have any idea how long it took you to do that map? Seems like a a really huge project, well done!
  16. Hello, Thoses are bindatcommand or defined custom command in src?
  17. Hello, AREA_SIZE being used in a lot of place I don't think you can do it like that, you have to change every AREA_SIZE by a new function (or use define function) that gives now another parameter, the map. I don't see any easy solution to have an area size depending of the map/cell :/.
  18. Hello, Did you check in groups.conf is the right "show_equip" (something like this) is set for normal players? If so, removes it
  19. Hello, I'd say it's only missing an "end;" after the set .GMLevel. OnInit is not attached to any player. But you'd have to move your OnInit or it won't work for the players when talking to it. If I'm nto clear enough, post the actual code and I'd just show you ?.
  20. Yeah you're right my reasoning is just plain wrong :D. I remembered some other game theroycrafting transforming resist in bonus hp and tryed to do it again but it's just wrong. 1) 2000+2000*0.75 -(500 * 4) = 1500 - 2k hp with 75% hp resist hit by 4* 500 damages, survive with 1500 HP 2) 2000-(500-500*0.75)*4 = 1500 - 2k hp with 75% resist hit by 4*500 damages, survive with 1500 HP But 1500 HP on the first case is really less %max hp than in case 2 and you'll die really faster. That's a good question, did you try to see how calculator like maybe diablo 3 evaluate that?
  21. Hello, Let's say we have just 1000hp 0 def, and we gain +5 def and it actually remove 5% of the damage, you'll need 1000+5% (1050) damage to kill him, which is stricly the same as +5% MaxHP. But let's say now with have 1000hp and already 50%def, we need 1000 + 1000*50% = 1500 damage to get killed. - +5% def will result in 1000 +1000*55% = 1550 damage to get killed - +5% max HP will be 1050 + 1050*50% = 1575 damage to get killed In both case max hp gave the maximum "damage to get killed". Max hp is then stricly better? So MaxHP is really pure 5% defense while other stat depends of what the player has already? (Maybe there's some bonus having def that make it better that I forgot tho.)
  22. Hello, I checked the src and the bonus is only working on normal dropped items, same for bubble gum. Normal drops and mvp drops are in 2 totally seperate check.
  23. That's really awesome as usual Adel! A lot of details added!
  24. Hello, On some crash there's some [FAIL] with the error, you can at least fix them, adding the missing files in your client.
×
×
  • Create New...