Jump to content


  • Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

  • Days Won


Kreustoo last won the day on August 1

Kreustoo had the most liked content!

Community Reputation

34 Excellent


About Kreustoo

  • Rank
  • Birthday 07/03/1989

Profile Information

  • Gender
  • Location
  • Server
  • Github
  • Interests

Contact Methods

Recent Profile Visitors

2,089 profile views
  1. Hello, Split in different string [email protected]$, [email protected]$ 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([email protected][.idsalamvp],0)+" foi MORTO pel"+(Sex?"o":"a")+" guerreir"+(Sex?"o":"a")+" "+strcharinfo(0)+"!",bc_map; [email protected] It is a temporary array, change [email protected] 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!
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.