Jump to content

PandaLovesHamster

Members
  • Posts

    452
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by PandaLovesHamster

  1. Refer to this https://rathena.org/board/topic/101727-job-master-script/ Just configure it the way you want. You set if statements to check for the level and etc when players can use that job changer.
  2. Is it based on player logging in and then timed to 1 hour then get warped to Jawaii or every 1 hour server time?
  3. Hi, you can this script I suppose, just need a little configuration. - script Freebies -1,{ OnInit: setarray .JobList[0],4008,4009,4010,4011,4012,4013,4015,4016,4017,4018,4019,4020,4021,4046,4047,4049,24,25,23; .BaseLevel = 99; // change to 1 .JobLevel = 70; // change to 1 .SkillPoints = 127; // just remove this .@size = getarraysize( .JobList ); for( .@i = 0; .@i < .@size; .@i++ ) .Menu$ = .Menu$ + jobname( .JobList[.@i] )+":"; end; if( Class != 0 ){ mes "You are not a novice!"; }else{ .@i = select( .Menu$ ) - 1; if( select( "Change to "+jobname( .JobList[.@i] )+"?:Cancel" ) == 1 ){ jobchange .JobList[.@i]; BaseLevel = .BaseLevel; JobLevel = .JobLevel; resetskill; resetstatus; SkillPoint = .SkillPoints; // you can comment this out to get no skill points mes "DONE"; } } end; } Please note, the above script turns a novice to a trans class regardless of level. I'm not good with scripting so if you're gonna need help with this, I might not be able to help you out that much.
  4. //= --- //= MvP Rank Improved v1.0 //= --- //= This Rank will count every MvP you kill, //= to be more clear, will count every mob //= defined inside the array ".mobid[0]", //= so, if you add the poring ID will count in the rank //= you can modify and ad miniBoss because this array //= only have all MvPs, that's the idea, only MvPs... //= --- - script Rank MvP -1,{ OnInit: // Script Configuration setarray .mobid[0],1511,1647,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1112,1115,1957,1418,1871,1252,1768,1086,1688,1646, 1373,1147,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,1708,1312,1751,1685,1648,1917,1658; // MvP Ids set .a, 1; // Broadcast who killed the MvP and wich MvP and wick Map [0 Off - 1 On] set $@top, 10; // Max. Top Rank (Hihgly recommended between 5~10, more maybe bug the server (limited variables) end; OnNPCKillEvent: // Script execution for (set .@c, 0; .@c < getarraysize(.mobid); set .@c, .@c + 1) if (killedrid == .mobid[.@c]) set .@s, 1; // If a MvP if (!.@s) end; if (.a) // If announce On announce "The user [" +strcharinfo(0) +"] has killed a [" +getmonsterinfo(killedrid,0) +"] in the map [" +strcharinfo(3) +"]",bc_blue|bc_all; set MvP, MvP + 1; specialeffect2 EF_HEAL2; callfunc ("MvPRank",MvP,strcharinfo(0)); end; } // End Script malaya,300,345,5 script MvP Ranking 416,{ mes "[^FF0000MvP ^0000FFRank ^00FF00Top ^FF0000" +$@top +"^000000]"; for (set .@c, 0; .@c < $@top; set .@c, .@c + 1) mes "Top ^FF0000" +(.@c + 1) +"^000000 ^0000FF" +getd("$topmvp" +.@c +"$") +"^000000 with ^FF0000" +getd("$topmvp" +.@c) +"^000000 MvP killed."; close; end; } OnInit: waitingroom "MvP Top 10",0; end; } function script MvPRank { set @mvptotal, getarg(0); set @nomb$, getarg(1); for (set .@c, 0; .@c < $@top; set .@c, .@c + 1) { if (@mvptotal >= getd("$topmvp" +.@c)) { if (strcharinfo(0) == getd("$topmvp" +.@c +"$")) { setd "$topmvp" +.@c, @mvptotal; setd "$topmvp" +.@c +"$", @nomb$; return; } else { if (getd("$topmvp" +(.@c + 1) +"$") == "") { setd "$topmvp" +.@c, @mvptotal; setd "$topmvp" +.@c +"$", @nomb$; return; } else { setd "$topmvp" +(.@c + 1), getd("$topmvp" +.@c); setd "$topmvp" +(.@c + 1) +"$", getd("$topmvp$" +.@c); setd "$topmvp" +.@c, @mvptotal; setd "$topmvp" +.@c +"$", @nomb$; return; } // End if } // End if } // End if } // End loop return; } // End function I wanted to add a reset option to this MVP where I can reset it weekly or it can reset itself automatically every week.
  5. Hi El Dragon, it works, but not the way I needed it, I tweaked it a bit and is working quite okay now, thank you for the base script. I'll post it here when it is done.
  6. Here's mine. You can try it as well if you like, it's not as good as the one from above, but is quite okay I guess. prontera,123,123,5 script Instant Job Changer 403,{ if( Class != 0 ){ mes "[ Instant Job Changer ]"; mes "You are not a novice."; set NPCTalk1, 1; close; } mes "[Ragnarok Online: ^FF0000 Flames of War^000000]"; mes "I was sent by ^FF0000 Admin Dusk ^000000 to assist you."; mes "Choose your class and join the war."; next; .@i = select( .Menu$ ) - 1; if( select( "Change to "+jobname( .JobList[.@i] )+"?:Cancel" ) == 1 ){ jobchange .JobList[.@i]; BaseLevel = .BaseLevel; JobLevel = .JobLevel; resetskill; resetstatus; atcommand "@allskill"; mes "[ Instant Job Changer ]"; mes "Now to talk to the ^0000FFGoddess of Fortune^000000"; set TalkNPC1, 1; close; } end; OnInit: setarray .JobList[0],4008,4009,4010,4011,4012,4013,4015,4016,4017,4018,4019,4020,4021,4046,4047,4049,24,25,23; //Insert Classes here. .BaseLevel = 99; .JobLevel = 70; waitingroom "Job Changer",0; .@size = getarraysize( .JobList ); for( .@i = 0; .@i < .@size; .@i++ ) .Menu$ = .Menu$ + jobname( .JobList[.@i] )+":"; end; }
  7. source: https://rathena.org/board/topic/90618-guild-limit-script/ - script kjdfhkdjsfs -1,{ OnPCLoadMapEvent: if ( !getd( "."+ strcharinfo(3) ) ) end; .checkmap$ = strcharinfo(3); .count = 0; .@origin = getcharid(3); addrid 3, 0, getcharid(2); if ( strcharinfo(3) == .checkmap$ ) .count++; if ( !.@origin ) end; if ( .count > 30 ) { message strcharinfo(0), "Your guild members are over the limit"; sleep2 2000; warp "Save", 0,0; } end; OnInit: setarray .@map$, "hugel", "payon"; .@size = getarraysize( .@map$ ); for ( .@i = 0; .@i < .@size; .@i++ ) { setmapflag .@map$[.@i], mf_loadevent; setd "."+ .@map$[.@i], 1; } end; } Credits to AnnieRuru for the script above. What I want this script to do is: 1. Game Master will REGISTER a guild. Any guild on the list will go through the check above. Any guild not registered on will skip the check entirely. I hope this is do-able. Thank you.
  8. Testing it right now. OMG, Didn't know it would be that long, thank you so much El Dragon. Will report back if I found anything wrong with the script.
  9. Source: https://rathena.org/board/topic/91886-requesting-a-restock-npc/ Script I need to be modified: prontera,159,184,5 script kjhfksjdfhs 100,{ if ( ( .@count = .cold_medicine - countitem( "Cold_Medicine" ) ) > 0 ) { if ( checkweight( "Cold_Medicine", .@count ) ) getitem "Cold_Medicine", .@count; else dispbottom "You can't carry enough Cold Medicine"; } if ( ( .@count = .halohalo - countitem( "Halohalo" ) ) > 0 ) { if ( checkweight( "Halohalo", .@count ) ) getitem "Halohalo", .@count; else dispbottom "You can't carry enough Halohalo"; } end; OnInit: .cold_medicine = 500; .halohalo = 10; } My idea: Available Item in the list: @potlist - use this to open menu for player to select which pot to use and how many HP Recovery 1. WoE White Potion 2. Light White Potion 3. Mastela Fruit SP Recovery 1. WoE Blue Potion 2. Light Blue Potion Player can only select one item for hp recovery, and same with sp recovery. After that player will input how many he wants example; Player selects WoE White Potion, 500 pcs .. automatically he will get 500 white potions into his inventory and his zeny will be reduced according to the buying price of the woe white pots.. Goal of this NPC: 1. Make players BUY pots automatically by just talking to the npc. They just need to set it up once using @potlist -- I hope someone will notice this, this will be very useful and i think lots of people can benefit if this somehow gets finished.
  10. Update on this? I'm also interested with this set up.
  11. Thank you sir Skorm. I'll test it right away. But reading through it, I think it's gonna work. Thank you so much.
  12. Lahat po na dedetect as long as d mo sinasali sa list of programs na pwedeng maka pasok sa server mo. www.hashield.net
  13. how did you install it meron kaba guide dyan?! client date version compatible? I can help you sa pag install po. Drop me PM for details. Medyo complicated xa
  14. Hi, I tried to make my own script for this NPC and failed miserably. I'd like to ask for a little help on this part. What I need is an NPC that will ask players 100 Gold and 10m zeny to create one random castle drop. It will have at least 40% success rate. Progressbar would be really appreciated and with accompanying upgrading/forging sound. Thank you in advance
  15. Compatible with any client versions. May guide po sila sa website nila.
  16. Yes it does, it will be saved in your database. Anyone, can help me please? I will need this piece of code for tomorrow's event at my server. Just the code to check the mac address and Plus this NPC will only cater the first 50 players who click him with different MAC ADDRESS.
  17. Hi, I'd like to request for a NPC script that will check the player's MAC ADDRESS first before they are awarded with a reward. Plus this NPC will only cater the first 50 players who click him with different MAC ADDRESS. Please just post snippets or the code or line that is essential for this, I can construct the remaining. I just need the proper lines I need to do the proper checks above. NOTE: We are using HaShield.
  18. Script Description: When the player uses this lotto ball they will be prompted if they want to job change to whatever class is assigned to that lotto ball or item. When they select YES, they will automatically be 99/70 and with the proper skill points as if they just did a skill reset. Note: Please help me out with this, anyone that will help, you can do only one job change lotto ball script, I can do the rest basing for the script you provide. Thank you so much. What will it be used for: An upcoming event in our server, it will be a RWC style game. Thank you so much.
  19. //===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Fixed reset on Baby job change. //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. //= 1.3 Kagerou/Oboro added. //= 1.4 Rebellion added. //============================================================ prontera,150,188,6 script Job Master 123,{ function Job_Menu; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } .@eac = eaclass(); .@i = ((.ThirdClass) ? roclass(.@eac&EAJ_UPPERMASK) : Class); if (.@i >= Job_Knight && .@i <= Job_Crusader2) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .Rebirth[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; .@i = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000"); if (.@i == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu(((.@i == 1) ? Job_Novice_High : roclass(.@eac|EAJL_THIRD))); mes "[Job Master]"; } } .@j1 = roclass(.@eac|EAJL_2_1); .@j2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0], roclass(.@eac|EAJL_THIRD), 99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0], .@j1, 70; if (.@exp[0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .@exp[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } mes "Switch to " + jobname(.@exp[0]) + "?"; next; Job_Menu(.@exp[0]); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class."; else if (Class == Job_Novice_High && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else { switch(Class) { case Job_Novice: Job_Menu( Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby ); break; case Job_Novice_High: Job_Menu( Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High ); break; case Job_Baby: Job_Menu( Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby ); break; default: mes "An error has occurred."; break; } } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob + Job_Novice_High); } else Job_Menu(.@j1, .@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); .@i++) .@menu$ = .@menu$ + " ~ " + jobname(getarg(.@i)) + ":"; .@menu$ = .@menu$+" ~ ^777777Cancel^000000"; next; .@i = getarg(select(.@menu$) - 1, 0); if (!.@i) close; if ((.@i == Job_SuperNovice || .@i == Job_Super_Baby) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@i) + "."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else .@i = getarg(0); if (select(" ~ Change into ^0055FF" + jobname(.@i) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) { mes "[Job Master]"; mes "You are now " + callfunc("F_InsertArticle", jobname(.@i)) + "!"; if (.@i == Job_Novice_High && .LastJob) lastJob = Class; jobchange .@i; if (.@i == Job_Novice_High) resetlvl(1); else if (.@i == Job_Baby) resetstatus; specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } Get_Platinum: skill "NV_FIRSTAID",1,0; switch (BaseClass) { case Job_Novice: if (Class != Job_SuperNovice) skill "NV_TRICKDEAD",1,0; break; case Job_Swordman: skill "SM_MOVINGRECOVERY",1,0; skill "SM_FATALBLOW",1,0; skill "SM_AUTOBERSERK",1,0; break; case Job_Mage: skill "MG_ENERGYCOAT",1,0; break; case Job_Archer: skill "AC_MAKINGARROW",1,0; skill "AC_CHARGEARROW",1,0; break; case Job_Acolyte: skill "AL_HOLYLIGHT",1,0; break; case Job_Merchant: skill "MC_CARTREVOLUTION",1,0; skill "MC_CHANGECART",1,0; skill "MC_LOUD",1,0; break; case Job_Thief: skill "TF_SPRINKLESAND",1,0; skill "TF_BACKSLIDING",1,0; skill "TF_PICKSTONE",1,0; skill "TF_THROWSTONE",1,0; break; default: break; } switch (BaseJob) { case Job_Knight: skill "KN_CHARGEATK",1,0; break; case Job_Priest: skill "PR_REDEMPTIO",1,0; break; case Job_Wizard: skill "WZ_SIGHTBLASTER",1,0; break; case Job_Blacksmith: skill "BS_UNFAIRLYTRICK",1,0; skill "BS_GREED",1,0; break; case Job_Hunter: skill "HT_PHANTASMIC",1,0; break; case Job_Assassin: skill "AS_SONICACCEL",1,0; skill "AS_VENOMKNIFE",1,0; break; case Job_Crusader: skill "CR_SHRINK",1,0; break; case Job_Monk: skill "MO_KITRANSLATION",1,0; skill "MO_BALKYOUNG",1,0; break; case Job_Sage: skill "SA_CREATECON",1,0; skill "SA_ELEMENTWATER",1,0; skill "SA_ELEMENTGROUND",1,0; skill "SA_ELEMENTFIRE",1,0; skill "SA_ELEMENTWIND",1,0; break; case Job_Rogue: skill "RG_CLOSECONFINE",1,0; break; case Job_Alchemist: skill "AM_BIOETHICS",1,0; break; case Job_Bard: skill "BA_PANGVOICE",1,0; break; case Job_Dancer: skill "DC_WINKCHARM",1,0; break; default: break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class .ThirdClass = 0; // Enable third classes? (1: yes / 0: no) .SecondExpanded = 0; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) .SNovice = 45; // Minimum base level to turn into Super Novice .LastJob = 1; // Enforce linear class changes? (1: yes / 0: no) .SkillPointCheck = 1; // Force player to use up all skill points? (1: yes / 0: no) .Platinum = 0; // Get platinum skills automatically? (1: yes / 0: no) end; } I want to add another requirement before Rebirthing, I want my players to pay 1285000 zeny before they can rebirth. No zeny cost for changing from Novice->1st Job->2nd job but will need zeny when going to trans. Please help me out. Thanks a lot.
  20. I have checked everything with that give above. They are there, however we are still getting errors. data.grf is also being read AFTER my RO's grf. Got this fixed by replacing my resname file with something more updated. It seems some lines have been deleted. Thanks for the advice.
×
×
  • Create New...