Jump to content

Forshaken

Members
  • Posts

    111
  • Joined

  • Last visited

Everything posted by Forshaken

  1. You can use the OnTouch event script then just disable it upon defeating the monster on the first map then enable the next OnTouch event script going to the next map.
  2. What is your basis then? - Location of party leader ? - Specific location chosen by you?
  3. try using this sample script - script killplayerbonus -1,{ OnNPCKillEvent: OnPCKillEvent: if(isequipped(Beholder_Ring_ID)){ BaseExp += n; JobExp +=n; end; } end; }
  4. try using getmapusers instead of getmapunits
  5. Navigate Beholder Ring in db/pre-re/item_db.txt then simply change the exp bonus value of beholder ring from that file.
  6. //==============================================================================// //= Script Release : Job Changer + Max Leveler [ Version 1.5 ] //==================================By==========================================// //= ManiacSociety //==============================================================================// //= Idea Came From : ManiacSociety //= Helper : Emistry & Kenpachi //==============================================================================// //= D E S C R I P T I O N S //==============================================================================// // -- 1. Character can choose a Job which he like to be. // -- 2. This NPC only have 1 Time Usage. // If it is set to Account Based then that account can use 1 times. // If it is set to Character Based then all new character can use 1 times. // -- 3. Complete skills / Skill Points will be given if it is set to be. // -- 4. Base Level and Job Level will be given upon Job Change. //==============================================================================// //= V E R S I O N S //==============================================================================// // -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings // -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes. // -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations. // -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts. // -- [ 1.1 ] : Added New Job Change Option. // -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer. //==============================================================================// //= R U L E S //==============================================================================// // -- 1. Do not use for exchanging purpose. // -- 2. Do not claim it as yours. // -- 3. Do not change or remove the credits. // -- 4. Do not sell the script in order to get paid. // -- 5. Do not re-sharing upon modified without permission. //==============================================================================// new_1-1,57,124,1 script Instant Job Master 651,{ if (#FreeInstaJob == 1) { mes "[Starter NPC]"; mes "You can only use my services"; mes "once per account, sorry."; close; } if (BaseClass == Job_Novice) goto Main_Menu; // -- Configuration Option set .npcname$,"[ ^0000FF Class Helper ^000000 ]"; set .InfoMenu,0; // Classes Informations Option [ 0 - Disable / 1 - Enable ] set .1stClassMenu,0; // First Job Class Option [ 0 - Disable / 1 - Enable ] set .2ndClassMenu,0; // Second Job Class Option [ 0 - Disable / 1 - Enable ] set .High1stClassMenu,0; // High 1st Class Option [ 0 - Disable / 1 - Enable ] set .Trans2ndClassMenu,1; // Transcendent Class Option [ 0 - Disable / 1 - Enable ] set .Trans3rdClassMenu,0; // Third Job Class Option [ 0 - Disable / 1 - Enable ] set .ExpandedClassMenu,1; // Expanded Class Option [ 0 - Disable / 1 - Enable ] set .BabyClassMenu,0; // Baby Job Class Option [ 0 - Disable / 1 - Enable ] set .Baby3rdClassMenu,0; // Baby Third Job Class Option [ 0 - Disable / 1 - Enable ] set .allskills,1; // Complete Skills Option [ 0 - Disable / 1 - Enable ] Main_Menu: mes "[Instant Job Master]"; mes "Nice to meet you "+ strcharinfo ( 0 ) +", my name is Instant Job Master"; mes "Welcome to ^E066FFScarsRO!^000000"; next; switch(select(( .InfoMenu == 0 )?"":"Classes Information", ( .1stClassMenu == 0 )?"":"First Job Classes", ( .2ndClassMenu == 0 )?"":"Second Job Classes", ( .High1stClassMenu == 0 )?"":"High First Job Classes", ( .Trans2ndClassMenu == 1 )?"":"Transcendent Job Classes", ( .Trans3rdClassMenu == 0 )?"":"Third Job Classes", ( .ExpandedClassMenu == 0 )?"":"Expanded Job Classes", ( .BabyClassMenu == 0 )?"":"Baby Normal Job Classes", ( .Baby3rdClassMenu == 0 )?"":"^Baby Third Job Classes", "^FF0000Sorry, i admire nobody....^000000")) { Case 1: goto Classes_info; Case 2: goto FirstJob_Classes; Case 3: goto SecondJob_Classes; Case 4: goto HighFirstJob_Classes; Case 5: goto TransSecondJob_Classes; Case 6: goto TransThirdJob_Classes; Case 7: goto ExpandedJob_Classes; Case 8: goto BabyJob_Classes; Case 9: goto BabyThirdJob_Classes; Case 10: close; } FirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("Swordman", "Magician", "Archer", "Acolyte", "Merchant", "Thief", "Back")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,1,99,50,60,"All"; Case 2: callsub Job_Changing,2,99,50,60,"All"; Case 3: callsub Job_Changing,3,99,50,60,"All"; Case 4: callsub Job_Changing,4,99,50,60,"All"; Case 5: callsub Job_Changing,5,99,50,60,"All"; Case 6: callsub Job_Changing,6,99,50,60,"All"; Case 7: goto Main_Menu; } HighFirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("High Swordman", "High Magician", "High Archer", "High Acolyte", "High Merchant", "High Thief", "Back")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4002,99,50,60,"All"; Case 2: callsub Job_Changing,4003,99,50,60,"All"; Case 3: callsub Job_Changing,4004,99,50,60,"All"; Case 4: callsub Job_Changing,4005,99,50,60,"All"; Case 5: callsub Job_Changing,4006,99,50,60,"All"; Case 6: callsub Job_Changing,4007,99,50,60,"All"; Case 7: goto Main_Menu; } SecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("Knight", "Priest", "Wizard", "Blacksmith", "Hunter", "Assassin", "Crusader", "Monk", "Sage", "Rogue", "Alchemist", ( Sex == 0 )?"":"Dancer", ( Sex == 1 )?"":"Bard", "Back")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,7,99,50,110,"All"; Case 2: callsub Job_Changing,8,99,50,110,"All"; Case 3: callsub Job_Changing,9,99,50,110,"All"; Case 4: callsub Job_Changing,10,99,50,110,"All"; Case 5: callsub Job_Changing,11,99,50,110,"All"; Case 6: callsub Job_Changing,12,99,50,110,"All"; Case 7: callsub Job_Changing,14,99,50,110,"All"; Case 8: callsub Job_Changing,15,99,50,110,"All"; Case 9: callsub Job_Changing,16,99,50,110,"All"; Case 10: callsub Job_Changing,17,99,50,110,"All"; Case 11: callsub Job_Changing,18,99,50,110,"All"; Case 12: callsub Job_Changing,20,99,50,110,"All"; Case 13: callsub Job_Changing,19,99,50,110,"All"; Case 14: goto Main_Menu; } TransSecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("Lord Knight", "High Priest", "High Wizard", "Whitesmith", "Sniper", "Assassin Cross", "Paladin", "Champion", "Professor", "Stalker", "Creator", ( Sex == 0 )?"":"Gypsy", ( Sex == 1 )?"":"Clowm", "Back")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4008,99,70,127,"All"; Case 2: callsub Job_Changing,4009,99,70,127,"All"; Case 3: callsub Job_Changing,4010,99,70,127,"All"; Case 4: callsub Job_Changing,4011,99,70,127,"All"; Case 5: callsub Job_Changing,4012,99,70,127,"All"; Case 6: callsub Job_Changing,4013,99,70,127,"All"; Case 7: callsub Job_Changing,4015,99,70,127,"All"; Case 8: callsub Job_Changing,4016,99,70,127,"All"; Case 9: callsub Job_Changing,4017,99,70,127,"All"; Case 10: callsub Job_Changing,4018,99,70,127,"All"; Case 11: callsub Job_Changing,4019,99,70,127,"All"; Case 12: callsub Job_Changing,4021,99,70,127,"All"; Case 13: callsub Job_Changing,4020,99,70,127,"All"; Case 14: goto Main_Menu; } ExpandedJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("Super Novice", "Back")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,23,255,120,110,"All"; Case 2: callsub Job_Changing,24,255,120,600,"All"; Case 3: callsub Job_Changing,25,255,120,60,"All"; Case 4: callsub Job_Changing,4046,255,120,60,"All"; Case 5: callsub Job_Changing,4047,255,120,110,"All"; Case 6: callsub Job_Changing,4049,255,120,110,"All"; Case 7: goto Main_Menu; } Job_Changing: mes .npcname$; mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000."; if (compare(getarg(4),"All")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00; } if (compare(getarg(4),"Map")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00; } if (compare(getarg(4),"Area")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00; } if (compare(getarg(4),"Self")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00; } jobchange getarg(0); set BaseLevel,getarg(1); set JobLevel,getarg(2); ResetSkill; ResetStatus; set SkillPoint,getarg(3); if ( .allskills == 1 ){ atcommand "@allskills"; set SkillPoint,0; } set #FreeInstaJob,1; percentheal 100,100; close; Classes_info: mes .npcname$; mes "=====[^76EE00 Swordman Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Archer Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Mage Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Thief Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Acolyte Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Merchant Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Super Novice ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Gunslinger ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Ninja ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Taekwon ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. "; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Star Gladiator ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Soul Linker ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability."; mes " ^FF0000________________________________^000000"; next; goto Main_Menu; OnInit: waitingroom " Instant Job Master",0; end; }
  7. try to edit your lua files inside LuaFiles514/Lua Files/skillinfoz
  8. For portals you have to do what the first guy who replied to your question about "OnTouch" Event but for priest warp you have to edit src codes as far as i know.
  9. this is a paid service and if you wish someone to update it for you personally, you had to negotiate with them or with the author of this mod.
  10. try to indicate inside the txt file of the the script the loadevent mapflag. You have to put it after the script just like how we do on the other mapflags or try to set an array to blocklist some maps to your list. ex. prontera mapflag loadevent
  11. care to share how we can do this? as far as i know you can only use that effects on top of the player.
  12. Here you go sir ^_^. @ignoredropV1.1.patch
  13. yes. ACMD_FUNC(resist) { char output[CHAT_SIZE_MAX]; int i; struct { const char* format; int value; } output_table[] = { { " [ %d ] Neutral Resist", 0 }, { " [ %d ] Water Resist", 0 }, { " [ %d ] Earth Resist", 0 }, { " [ %d ] Fire Resist", 0 }, { " [ %d ] Wind Resist", 0 }, { " [ %d ] Poison Resist", 0 }, { " [ %d ] Holy Resist", 0 }, { " [ %d ] Dark Resist", 0 }, { " [ %d ] Ghost Resist", 0 }, { " [ %d ] Undead Resist", 0 }, ++ { " [ %d ] Long Range Resistance", 0 }, ++ { " [ %d ] Magic Resistance", 0 }, ++ { " [ %d ] Demi-Human Resist", 0 }, { NULL, 0 } }; memset(output, '\0', sizeof(output)); clif_displaymessage(sd->fd, "========= Resistance Values (in percentage) ========="); output_table[0].value = (sd->indexed_bonus.subele[ELE_NEUTRAL] + sd->indexed_bonus.subele_script[ELE_NEUTRAL] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[1].value = (sd->indexed_bonus.subele[ELE_WATER] + sd->indexed_bonus.subele_script[ELE_WATER] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[2].value = (sd->indexed_bonus.subele[ELE_EARTH] + sd->indexed_bonus.subele_script[ELE_EARTH] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[3].value = (sd->indexed_bonus.subele[ELE_FIRE] + sd->indexed_bonus.subele_script[ELE_FIRE] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[4].value = (sd->indexed_bonus.subele[ELE_WIND] + sd->indexed_bonus.subele_script[ELE_WIND]) + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]; output_table[5].value = (sd->indexed_bonus.subele[ELE_POISON] + sd->indexed_bonus.subele_script[ELE_POISON] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[6].value = (sd->indexed_bonus.subele[ELE_HOLY] + sd->indexed_bonus.subele_script[ELE_HOLY] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[7].value = (sd->indexed_bonus.subele[ELE_DARK] + sd->indexed_bonus.subele_script[ELE_DARK] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[8].value = (sd->indexed_bonus.subele[ELE_GHOST] + sd->indexed_bonus.subele_script[ELE_GHOST] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); output_table[9].value = (sd->indexed_bonus.subele[ELE_UNDEAD] + sd->indexed_bonus.subele_script[ELE_UNDEAD] + sd->indexed_bonus.subele[ELE_ALL] + sd->indexed_bonus.subele_script[ELE_ALL]); ++ output_table[10].value = (sd->bonus.long_attack_def_rate); ++ output_table[11].value = (sd->special_state.no_magic_damage + sd->bonus.magic_def_rate); ++ output_table[12].value = (sd->subrace[RC_DEMIHUMAN]); for (i = 0; output_table.format != NULL; i++) { sprintf(output, output_table.format, output_table.value); clif_displaymessage(fd, output); } return 0; }
  14. Ok guys here is the bug fix for dispel mechanics. SC_ITEMSCRIPT ManualV2.txt
  15. @Mabuhay . I was able to update this src but there is some kind of memory leak issue after updating it. Hi Guys! I manage to update the src but there is a memory leak issue after updating and fixing it is out of my skills. Use it at your own risk. Please do share your src if you manage to fix the memory leak issue. marketclone.txt
  16. Up for this. OnPCStatCalcEvent has been removed from the latest git.
  17. Im having the same issue. I have fixed the problem. so far there is no disconnection issue. add this codes on your PC.CPP struct map_session_data { struct block_list bl; struct unit_data ud; struct view_data vd; struct status_data base_status, battle_status; struct status_change sc; struct regen_data regen; struct regen_data_sub sregen, ssregen; ++struct autoattack_delay; // autoattack timer //NOTE: When deciding to add a flag to state or special_state, take into consideration that state is preserved in //status_calc_pc, while special_state is recalculated in each call. [Skotlex] struct s_state { unsigned int active : 1; //Marks active player (not active is logging in/out, or changing map servers) unsigned int menu_or_input : 1;// if a script is waiting for feedback from the player unsigned int dead_sit : 2; unsigned int lr_flag : 3;//1: left h. weapon; 2: arrow ------------------------------------------------------------------------------------------------- unsigned int lesseffect : 1; unsigned int vending : 1; unsigned int noks : 3; // [Zeph Kill Steal Protection] ++unsigned autoattack : 1; // Keitenai unsigned int changemap : 1; unsigned int callshop : 1; // flag to indicate that a script used callshop; on a shop ------------------------------------------------------------------------------------------------- int invincible_timer; t_tick canlog_tick; t_tick canuseitem_tick; // [Skotlex] t_tick canusecashfood_tick; t_tick canequip_tick; // [Inkfish] t_tick cantalk_tick; t_tick canskill_tick; // used to prevent abuse from no-delay ACT files t_tick cansendmail_tick; // [Mail System Flood Protection] t_tick ks_floodprotect_tick; // [Kill Steal Protection] ++t_tick autoattack_delay; // Keitenai t_tick equipswitch_tick; // Equip switch
  18. @sader1992 This will also solve the compatibility for 2015 + clients right????
  19. error still persist even thou the players ram is 8gb and we only run 1 client
  20. you can make your own mapflag script and dig deeper on your itemdb.cpp
  21. why not use OnPCLoginEvent and use changelook script?
  22. Good day everyone! I just wanted to ask if how to fix elemental resist healing on woe/gvg? Elemental resist healing is where if your resistance exceeds to 100% on a certain element, that element will heal you when you take damage on it. ex. If you got 110% Wind resist and you got hit by Lightning bolt or anything that is wind element will heal you instead of taking damage. My current situation is it works on PvP but not on GvG. Please help!!!
×
×
  • Create New...

Important Information

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