-
Posts
798 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Sallycantdance
-
Hello everyone can someone experienced and have some idea in this error thanks in advance hope im in the right section
-
Body Relocation I Close Confine
Sallycantdance replied to Sallycantdance's question in Source Requests
thanks men -
Body Relocation I Close Confine
Sallycantdance replied to Sallycantdance's question in Source Requests
hello thanks for your reply can you send a example -
hello anybody have some idea how to disable body reloc when the player is under in close confine skill by rogue thanks in advance , i already added it in the src but its still not working thanks in advance
-
All-In-One Pet Shop (Pet Master)
Sallycantdance replied to StainSky93's topic in Utility Script Releases
thanks for this -
[Show Case] Monster Slot
Sallycantdance replied to pcmedias's topic in Game, Event, Quest Script Releases
Cool -
Baka meron kayo script nung mystery egg?
Sallycantdance replied to akosiesooon's topic in PEENOISE CLUB's Topics
function script CustomBox { setarray .i1[1],12221,12263,14765,12211; // Common Items set .i1rand,rand(1,4); // Randomize Common Items; just change max amount if you add items setarray .i2[1],12216,12215; // Rare Items set .i2rand,rand(1,2); // Randomize Rare Items; just change max amount if you add items setarray .i3[1],12412,677; // Super Rare Items set .i3rand,rand(1,2); //Randomize Super Rare Items; just change max amount if you add items set .chance, rand(100); // Super Rare Item 3% if (.chance < 3){ getitem .i3[.i3rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.i3[.i3rand])+"] from the Lucky Egg.",0; end; } // Rare Item 15% else if (.chance < 15){ getitem .i2[.i2rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.i2[.i2rand])+"] from the Lucky Egg.",0; end; } // Common Items else { getitem .i1[.i1rand],1; end; } } -
Emblem not showing during Guild war or GvG
Sallycantdance replied to AinsLord's question in General Support
Guild Emblem not showing - General Support - rAthena try this -
hello everyone i would like to ask how to update your current ragnarok database because some of the new players creating there accounts are not entering my sql data "Char" thanks in advance
-
o my haha thanks
-
try this MVP Invasion every hour. - Script Requests - rAthena
-
Hello Mam/Sir i would like to ask a help in @whosell Script im Getting this error heres the Script : /*========================================== * @whosell command *------------------------------------------*/ ACMD_FUNC(whosell) { struct map_session_data *pl_sd, *b_sd[MAX_SEARCH]; struct s_mapiterator* iter; struct item_data *item_array[MAX_SEARCH]; int total[MAX_SEARCH], amount[MAX_SEARCH]; unsigned int MinPrice[MAX_SEARCH], MaxPrice[MAX_SEARCH]; char output[256]; int i, j, count = 1; char item_name[100]; int minprice = 0; if (!message || !*message || ( sscanf(message, "\"%99[^\"]\" %11d", item_name, &minprice) < 1 && sscanf(message, "%99s %11d", item_name, &minprice) < 1) ) { clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @whosell <item name or ID> {<min price>})."); return -1; } if ((item_array[0] = itemdb_searchname(item_name)) == NULL && (item_array[0] = itemdb_exists(atoi(item_name))) == NULL) count = itemdb_searchname_array(item_array, MAX_SEARCH, message); if (count < 1) { // No items found clif_displaymessage(fd, msg_txt(sd,19)); return -1; } if (count > MAX_SEARCH) count = MAX_SEARCH; // Preparing Search Recorders for (i = 0; i < MAX_SEARCH; i++) { total = amount = MaxPrice = 0; MinPrice = battle_config.vending_max_value + 1; b_sd = NULL; } iter = mapit_getallusers(); for (pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter)) { if (!pl_sd->vender_id) continue; for (i = 0; i < pl_sd->vend_num; i++) { // Searching in the Vending List for (j = 0; j < count; j++) { // Compares with each search result if (pl_sd->status.cart[pl_sd->vending.index].nameid != item_array[j]->nameid) continue; if (pl_sd->vending.value < minprice) continue; amount[j] += pl_sd->vending.amount; total[j]++; if (pl_sd->vending.value < MinPrice[j]) { // Best Price MinPrice[j] = pl_sd->vending.value; b_sd[j] = pl_sd; } if (pl_sd->vending.value > MaxPrice[j]) MaxPrice[j] = pl_sd->vending.value; } } } mapit_free(iter); for (i = 0; i < count; i++) { if (total > 0 && b_sd != NULL) { sprintf(output, "[%d] The best price found for '%s' is %u sold by '%s' at %s <%d,%d>. Max Price %u. Item found in %d shops, %d pieces for sale.", item_array->nameid, item_array->jname, MinPrice, b_sd->status.name, map[b_sd->bl.m].name, b_sd->bl.x, b_sd->bl.y, MaxPrice, total, amount); if (sd->bl.m == b_sd->bl.m) clif_viewpoint(sd, 1, 1, b_sd->bl.x, b_sd->bl.y, i, 0xFFFFFF); } else sprintf(output, "[%d] '%s' is not being sold at the moment...", item_array->nameid, item_array->jname); clif_displaymessage(sd->fd, output); } return 0; }
-
hello why did im getting this error thanks in advance [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/thor/WhoSell.txt', line '4'. Stopping... * w1=ACMD_FUNC(whosell) * w2= * w3= * w4=
-
thanks i will try this later
-
hello sir emistry is it possible to duplicate this npc but theres a new items inside? in my case im trying to make to different npc and same script using your quest npc but even a change the requirements and item in the second npc the 1st npc quest is still appering in the second npc i would like to ask if i can use the same script in different contents thanks in advance
-
Hello i would like to ask how to set this floating rate every day and every 1pm-2pm and every 7pm to 8pm - script FloatingRates -1,{ OnInit: //add any other HOURS OnClock0000: if((gettime(4) == 6 || gettime(4) == 7)) { // Saturday, Sunday //------------------- atcommand "@reloadbattleconf"; //Base exp setbattleflag("base_exp_rate",1200); //Job exp setbattleflag("job_exp_rate",1200); //Drops setbattleflag("item_rate_common",600); setbattleflag("item_rate_heal",600); setbattleflag("item_rate_use",600); setbattleflag("item_rate_equip",600); //setbattleflag("item_rate_card",400); //setbattleflag("item_rate_common_boss",1); //setbattleflag("item_rate_heal_boss",1); //setbattleflag("item_rate_use_boss",1); //setbattleflag("item_rate_equip_boss",1); //setbattleflag("item_rate_card_boss",1); //setbattleflag("item_rate_common_mvp",1); //setbattleflag("item_rate_heal_mvp",1); //setbattleflag("item_rate_use_mvp",1); //setbattleflag("item_rate_equip_mvp",1); //setbattleflag("item_rate_card_mvp",1); //setbattleflag("item_rate_mvp",1); //setbattleflag("item_rate_adddrop",1); //setbattleflag("item_rate_treasure",1); //setbattleflag("item_rate_equip",1); // Apply new rates to configs set above //we don't change card drops rate, because these values won't change them anyway announce "Floating Rates every Saturday & Sunday Enjoy!",bc_all,0xFFFF00; announce "Increased Base and Job EXP by 200%.",bc_all,0xFFFF00; announce "Increased Normal Drops by 100%.",bc_all,0xFFFF00; announce "Card rates are fixed in 0.04%.",bc_all,0xFFFF00; end; OnClock0001: //OnMon: if((gettime(4) == 1)) { // Monday announce "Double Experience & Drop rates already finish!",bc_blue|bc_all; atcommand "@reloadbattleconf"; end; } } }
-
hello master i have a problem in this script hope you can help me 1st sometimes when the guild recall in the map both guilds are in the same sides 2nd i want to remove the debuffs script 3rd the event ends even there are still guild members alive thankyou in your time masters // Automated GvG Event 2.0 Beta version // Event runs every hour via OnMinute timer. // Feel free to edit as you wish // By : Mabuhay // Free release // Dont remove credit // Updated to v 2.0 /* - Added gepard support and check to every members - More flexible options - Can set cash, members, timer, and winpoints if gm starts the command. New mechanics. - When using @gvgeventjoin, all your members must be around you by 5x5 cell. NOTE: item rewards are only to be set here in script because adding them in the GM option would be quite troublesome for me */ // - script gvg_event -1,{ OnInit: // How many guild members are required? .membercount = 1; // registration timer in mins. .timer = 3; // how much points to win? Points is earned per kill .win_points = 2; // item reward // <item_id>, <amount> setarray .item, 12987, 5, // how much cash points earned // set to 0 to disable .cash = 0; .size = getarraysize(.item); bindatcmd "start", strnpcinfo(0)+"::OnStartEvent",60,60; bindatcmd "end", strnpcinfo(0)+"::OnEndEvent",60,60; bindatcmd "join", strnpcinfo(0)+"::OnJoinEvent"; end; OnStartEvent: mes "Hi GM, what do you want to do?"; mes "Current settings :"; mes "Member count : "+ $gvgevent_mem; mes "Registration time : "+ $gvgevent_time; mes "Win points : "+ $gvgevent_winpts; mes "Cashpoint reward : "+ $gvgevent_cash; next; switch(select("Start Event:Set Mem Count:Set Reg timer:Set Win Points:Set Cashpoint Reward")) { case 1: mes "Starting event.."; close2; break; case 2: mes "Enter member count value"; mes "current : "+ $gvgevent_mem; next; input .@amt, 1; mes "Do you want to set member count to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_mem = .@amt; end; case 3: mes "Enter registration time value"; mes "current : "+ $gvgevent_time; next; input .@amt, 1; mes "Do you want to set registration time to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_time = .@amt; end; case 4: mes "Enter win points value"; mes "current : "+ $gvgevent_winpts; next; input .@amt, 1; mes "Do you want to set win points to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_winpts = .@amt; end; case 5: mes "To disable, set to zero (0)"; mes "current : "+ $gvgevent_cash; next; input .@amt; mes "Do you want to set cashpoints to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_cash = .@amt; end; } OnMinute00: // runs every hour.. if ( .start ) end; .start = 1; .@m = $gvgevent_mem; gvgoff "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) enablenpc "#bari0"+.@j; setwall "guild_vs1", 12, 48, 4, DIR_NORTH, 0, "wonderwall_1"; setwall "guild_vs1", 87, 48, 4, DIR_NORTH, 0, "wonderwall_2"; for ( .@i = $gvgevent_time; .@i > 0; .@i-- ) { if ( .start < 2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event start in "+.@i+" min(s) until slots are taken. Register now! ", bc_all; announce "you should have a guild to join the event, type @join if you want to join", bc_all; sleep 60000; } } if ( !.slot1 || !.slot2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event is cancelled. Not enough participants.", bc_all; donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.slot1)+"] vs Guild ["+getguildname(.slot2)+"].", bc_all; end; OnJoinEvent: .@GID = getcharid(2); if (.@GID == 0) { mes "Sorry, you are not in a guild."; close; } if ( !.start ) { mes "Event has not started."; close; } else if ( .start == 2 ) { mes "Event is still on-going."; close; } else { if ( .slot1 && .slot2 ) { mes "All slots has been taken."; close; } if ( !.slot1 ) .@slot = 1; else if ( !.slot2) .@slot = 2; if ( .slot1 == .@GID ) { mes "You're guild has already registered."; close; } getmapxy(.@map$, .@x, .@y, BL_PC); getareaunits(BL_PC,.@map$,.@x+5,.@y+5,.@x-5,.@y-5,.@char_name$[0]); freeloop(true); for(.@i=0;.@i<getarraysize(.@char_name$);.@i++) if ( getcharid(2, .@char_name$[.@i] ) == .@GID ) { if ( .gepard ) { query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+ getcharid(3, .@char_name$[.@i] ) +"'", .@unique_id$); .@gvg_gepard$[.@gsize++] = .@unique_id$; if ( countinarray( .@gvg_gepard$[0], .@unique_id$ ) > 1 ) .@duplicate++; } .@current_mem++; .@aid[.@size++] = convertpcinfo(.@char_name$[.@i], CPC_ACCOUNT); .@validmem$[.@size2++] = .@char_name$[.@i]; } freeloop(false); if ( .@current_mem < $gvgevent_mem ) { mes "You need at least "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .@current_mem > $gvgevent_mem ) { mes "You need only need "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .gepard && .@duplicate ) { mes "Gepard ID duplicate detected."; mes "A member around you is using dual account."; close; } mes "Participating members are :"; for ( .@i = 0; .@i < .@size2; .@i++) mes "~ "+ .@validmem$[.@i]; next; mes "Are you ready ?"; next; select("Yes"); switch ( .@slot ) { case 1: .slot1 = .@GID; break; case 2: .slot2 = .@GID; break; } for ( .@j = 0; .@j < .@size; .@j++ ) { attachrid(.@aid[.@j]); .@gid = getcharid(2); sc_end SC_ALL; // remove all status buffs percentheal 100,100; // heals before warp warp "guild_vs1", ( .slot1 == .@gid ) ? 7 : 92, 50; } detachrid; if ( .slot1 && .slot2 ) { .start = 2; awake strnpcinfo(0); sleep 3000; mapannounce "guild_vs1", "Get ready !~", bc_blue; sleep 2000; for ( .@i = 20; .@i > 0; --.@i ) { mapannounce "guild_vs1", .@i +" !~", bc_blue; sleep 1000; } mapannounce "guild_vs1", "Start !~", bc_blue; gvgon "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) disablenpc "#bari0"+.@j; delwall "wonderwall_1"; delwall "wonderwall_2"; } } end; OnPCKillEvent: if ( .start && strcharinfo(3) == "guild_vs1" ) { .@GID = getcharid(2); if ( .@GID == .slot1 ) .guild1_score++; else if ( .@GID == .slot2 ) .guild2_score++; mapannounce "guild_vs1", strcharinfo(0) +" of Guild ["+getguildname(.@GID)+"] has pawned "+ rid2name(killedrid), bc_blue; mapannounce "guild_vs1", "Guild ["+getguildname(.slot1)+"] - "+.guild1_score+" || Guild ["+getguildname(.slot2)+"] - "+.guild2_score+"", bc_blue; if ( .guild1_score == $gvgevent_winpts || .guild2_score == $gvgevent_winpts ) { gvgoff "guild_vs1"; if ( .guild1_score > .guild2_score ) { .winner = .slot1; .loser = .slot2; } else { .winner = .slot2; .loser = .slot1; } .@m = $gvgevent_mem; announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.winner)+"] is victorious against Guild ["+getguildname(.loser)+"] !", bc_all; mapannounce "guild_vs1", "Rewards will be delivered in few seconds before warping out.", bc_blue; sleep 8000; // 8 sec pause so participating members can re-warp if dead getmapunits(BL_PC, "guild_vs1", .@aid[0]); for(.@i=0;.@i<getarraysize(.@aid);.@i++) { attachrid(.@aid[.@i]); if ( getcharid(2) == .winner ) { // if winner for ( .@j = 0; .@j < .size; .@j+=2 ) getitem .item[.@j], .item[.@j+1]; if ( $gvgevent_cash ) { #CASHPOINTS += $gvgevent_cash; dispbottom "You have gained "+$gvgevent_cash+" cashpoints. Total : "+ #CASHPOINTS; } } else if ( getcharid(2) == .loser ) { // if loser dispbottom "Thank you for participating GvG Event."; } } detachrid; sleep 2000; // 2 sec pause.. donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } attachrid( killedrid ); .@GID = getcharid(2); if ( .@GID == .slot1 || .@GID == .slot2 ) { dispbottom "You will be warped back to the battle area in few secs."; sleep2 4000; // return to battle in 5 sec warp "guild_vs1", (.@GID == .slot1) ? 7:(.@GID == .slot2) ? 92:50, 50; sleep2 1000; // heal in 1 sec percentheal 100,100; } } end; OnEndEvent: if ( !.start ) end; .start = .slot1 = .slot2 = .loser = .winner = .guild1_score = .guild2_score = false; mapwarp "guild_vs1", "prontera", 150, 180; end; } // Barricades guild_vs1,12,48,0 script #bari01 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,49,0 script #bari02 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,50,0 script #bari03 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,51,0 script #bari04 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,48,0 script #bari05 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,49,0 script #bari06 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,50,0 script #bari07 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,51,0 script #bari08 1906,{ end; OnInit: disablenpc strnpcinfo(0); }
-
i will try this thanks anyway
-
thank you sir !!!
-
hello everybody i would like to ask for help i already disable the expanded class here because my server only 1-1 2-2 job i already disable the expanded class "ninja ' super novice 'taekwon and gunslinger but it still appearing in the job selection heres the script of Euphy //===== rAthena Script ======================================= //= Job Master //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. [Euphy] //= 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. //= 1.5 Added option to disable RebirthClass. [mazvi] //= 1.6 Added option to get job related equipment on change. [Braniff] //= 1.7 Readability changes. Also added BabyExpanded and BabySummoner classes. [Jey] //= 1.8 Added option to disable Baby Novice Only but Baby Class can be Enabled [mazvi] //= 1.9 Migrate/Integrate to Global Functions Platinum Skills. [mazvi] //============================================================ prontera,153,193,6 script Job Master 123,{ function Get_Job_Equip; // Checks if the Player has the required level. // closes if not, returns if yes function Require_Level { if (BaseLevel < getarg(0) || JobLevel < getarg(1)) { .@blvl = getarg(0) - BaseLevel; .@jlvl = getarg(1) - JobLevel; mes "Level requirement:"; mes ((getarg(0)>1)? "^bb0000"+getarg(0)+"^000000 (^bb0000Base^000000) / ":"")+"^00bb00"+ getarg(1)+"^000000 (^00bb00Job^000000)"; mes "You need " + ((.@blvl > 0) ? "^bb0000"+.@blvl+"^000000 more base levels " + ((.@jlvl > 0) ? "and " : "") : "") + ((.@jlvl > 0) ? "^00bb00"+.@jlvl+"^000000 more job levels " : "") + "to continue."; close; } return; } // Checks if the given eac is a baby class function Is_Baby { return ((getarg(0, eaclass())&EAJL_BABY)>0); } // Checks if the player can change to third class. // Note: This does not include the level checks. function Can_Change_Third { // To change to third class you either need to be: // * Second Class // * Transcendent Second Class // * Baby Second Class if( !.ThirdClass ) return false; // Third job change disabled if( !(eaclass()&EAJL_2) ) return false; // Not second Class if( eaclass()&EAJL_THIRD ) return false; // Already Third Class if( roclass(eaclass()|EAJL_THIRD) < 0 ) return false; // Job has no third Class if( Is_Baby() && (!.BabyClass || !.BabyThird) ) return false; // No Baby (Third) change allowed return true; } function Can_Rebirth { // To rebirth, you need to be: // * Second Class if( !.RebirthClass ) return false; // Rebirth disabled if( !(eaclass()&EAJL_2) ) return false; // Not second Class if( eaclass()&EAJL_UPPER ) return false; // Already Rebirthed if( roclass(eaclass()|EAJL_UPPER) < 0 ) return false; // Job has no transcended class if( Is_Baby() && !.BabyClass ) return false; // No Baby changes allowed return true; } // Checks if the given eac is a first class function Is_First_Cls { return (getarg(0) <= EAJ_TAEKWON); } function Check_Riding { // Note: Why we should always check for Riding: // Mounts are considered as another class, which // would make this NPC bigger just to handle with // those special cases. if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } return; } function Check_SkillPoints { if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } return; } // addJobOptions is essentially the same like // setarray .@array[getarraysize(.@array)],opt1,opt2,...; // It's just easier to read, since we're using it very often function Job_Options { .@argcount = getargcount(); .@arr_size = getarraysize(getarg(0)); for( .@i = 1; .@i < .@argcount; .@i++) { setarray getelementofarray(getarg(0), .@arr_size++),getarg(.@i); } } // Begin of the NPC mes .NPCName$; Check_Riding(); Check_SkillPoints(); // initialisation deletearray .@job_opt[0],getarraysize(.@job_opt); .@eac = eaclass(); .@third_possible = Can_Change_Third(); .@rebirth_possible = Can_Rebirth(); .@first_eac = .@eac&EAJ_BASEMASK; .@second_eac = .@eac&EAJ_UPPERMASK; // Note: These are already set in pc.c // BaseClass = roclass(.@eac&EAJ_BASEMASK) which is the players First Class // BaseJob = roclass(.@eac&EAJ_UPPERMASK) which is the players Second Class //dispbottom "Debug: eac ("+.@eac+"), third ("+.@third_possible+"), rebirth("+.@rebirth_possible+"), BaseClass ("+BaseClass+"), BaseJob ("+BaseJob+")"; // From here on the jobmaster checks the current class // and fills the the array `.@job_opt` with possible // job options for the player. if( .@rebirth_possible ) { // Rebirth option (displayed on the top of the menu) Require_Level(.Req_Rebirth[0], .Req_Rebirth[1]); Job_Options(.@job_opt, Job_Novice_High); } if( .@third_possible ) { // Third Job change (displayed below rebirth) Require_Level(.Req_Third[0], .Req_Third[1]); Job_Options(.@job_opt, roclass(.@eac|EAJL_THIRD)); } // Player is Job_Novice, Job_Novice_High or Job_Baby if (.@first_eac == EAJ_NOVICE && .@second_eac != EAJ_SUPER_NOVICE) { // MAPID_NOVICE, MAPID_SUPER_NOVICE, MAPID_NOVICE_HIGH, MAPID_BABY Require_Level(.Req_First[0], .Req_First[1]); switch(Class) { case Job_Novice: // First job change Job_Options(.@job_opt,Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_Super_Novice, Job_Taekwon, Job_Gunslinger, Job_Ninja); if( .BabyNovice ) Job_Options(.@job_opt, Job_Baby); break; case Job_Novice_High: // Job change after rebirth if( .LastJob && lastJob ) Job_Options(.@job_opt, roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); else Job_Options(.@job_opt, Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High); break; case Job_Baby: if( !.BabyClass ) break; // First job change as a baby Job_Options(.@job_opt, Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer,Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief); if( .BabyExpanded ) Job_Options(.@job_opt, Job_Super_Baby, Job_Baby_Taekwon, Job_Baby_Gunslinger, Job_Baby_Ninja); if( .BabySummoner ) Job_Options(.@job_opt, Job_Baby_Summoner); break; default: mes "An error has occurred."; close; } } else if( Is_First_Cls(.@eac) || // First Class Is_First_Cls(.@eac&(~EAJL_UPPER)) || // Trans. First Cls (.BabyClass && Is_First_Cls(.@eac&(~EAJL_BABY))) ) { // Baby First Cls // Player is First Class (not Novice) // most jobs should have two options here (2-1 and 2-2) .@class1 = roclass(.@eac|EAJL_2_1); // 2-1 .@class2 = roclass(.@eac|EAJL_2_2); // 2-2 // dispbottom "Debug: Classes: class1 ("+.@class1+"), class2 ("+.@class2+")"; if(.LastJob && lastJob && (.@eac&EAJL_UPPER)) { // Player is rebirth Cls and linear class changes are enforced Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options(.@job_opt, lastJob + Job_Novice_High); } else { // Class is not enforced, player can decide. if( .@class1 > 0 ) { // 2-1 Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options(.@job_opt, .@class1); } if( .@class2 > 0 ) { // 2-2 Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options(.@job_opt, .@class2); } } } // Displaying the Job Menu defined by .@job_opt. // .@job_opt should not be changed below this line. function Job_Menu; Job_Menu(.@job_opt); close; // Displays the job menu function Job_Menu { // getarg(0) is the .@job_opt array holding all available job changes. function Confirm_Change; while(true) { .@opt_cnt = getarraysize(getarg(0)); if( .@opt_cnt <= 0 ) { mes "No more jobs are available."; close; } .@selected = 0; // Just a single job class given, no select needed if (.@opt_cnt > 1) { // Multiple job classes given. Select one and save it to .@class // After that confirm .@class mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < .@opt_cnt; .@i++) { if( getelementofarray(getarg(0), .@i) == Job_Novice_High) .@jobname$ = "^0055FFRebirth^000000"; else .@jobname$ = jobname(getelementofarray(getarg(0), .@i)); .@menu$ = .@menu$ + " ~ " + .@jobname$ + ":"; } .@menu$ = .@menu$+" ~ ^777777Cancel^000000"; .@selected = select(.@menu$) - 1; if( .@selected < 0 || .@selected >= .@opt_cnt ) close; next; mes .NPCName$; } .@class = getelementofarray(getarg(0), .@selected); if ((.@class == Job_Super_Novice || .@class == Job_Super_Baby) && BaseLevel < .SNovice) { // Special Level Requirement because Super Novice and // Super Baby can both be selected in one of the first class // changes. That's why the Level Requirement is after and not before // the selection. mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@class) + "."; return; } // Confirm the Class Confirm_Change(.@class, .@opt_cnt > 1); next; mes .NPCName$; } return; } // Executes the actual jobchange and closes. function Job_Change { .@to_cls = getarg(0); next; mes .NPCName$; mes "You are now " + callfunc("F_InsertArticle", jobname(.@to_cls)) + "!"; if (.@to_cls == Job_Novice_High && .LastJob) lastJob = Class; // Saves the lastJob for rebirth jobchange .@to_cls; if (.@to_cls == Job_Novice_High) resetlvl(1); else if (.@to_cls == Job_Baby) { resetstatus; resetskill; set SkillPoint,0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callfunc "F_GetPlatinumSkills"; if (.GetJobEquip) Get_Job_Equip(); close; // Always closes after the change } function Confirm_Change { // Player confirms he want to change into .@class .@class = getarg(0, -1); .@back = getarg(1, false); if( .@class < 0 ) { mes "Unknown Class Error."; close; } mes "Do you want to change into ^0055FF"+jobname(.@class)+"^000000 class?"; .@job_option$ = " ~ Change into ^0055FF"+jobname(.@class)+"^000000 class"; if( .@class == Job_Novice_High) .@job_option$ = " ~ ^0055FFRebirth^000000"; if (select(.@job_option$+": ~ ^777777" + ((.@back) ?"Go back" : "Cancel") + "^000000") == 1) { Job_Change(.@class); } if (!.@back) close; // "Cancel" pressed return; } // Function which gives a job related item to the player // the items are the rewards from the original job change quests function Get_Job_Equip { // Note: The item is dropping, when the player can't hold it. // But that's better than not giving the item at all. .@eac = eaclass(); if( .@eac&EAJL_THIRD ) { // Third Class Items getitem 2795,1; // Green Apple Ring for every 3rd Class switch(BaseJob) { // BaseJob of Third Cls // For Normal Third, Baby Third and Transcended Third Cls case Job_Knight: getitem 5746,1; break; // Rune Circlet [1] case Job_Wizard: getitem 5753,1; break; // Magic Stone Hat [1] case Job_Hunter: getitem 5748,1; break; // Sniper Goggle [1] case Job_Priest: getitem 5747,1; break; // Mitra [1] case Job_Blacksmith: getitem 5749,1; break; // Driver Band [1] case Job_Assassin: getitem 5755,1; break; // Silent Executor [1] case Job_Crusader: getitem 5757,1; break; // Dip Schmidt Helm [1] case Job_Sage: getitem 5756,1; break; // Wind Whisper [1] case Job_Bard: getitem 5751,1; break; // Maestro Song's Hat [1] case Job_Dancer: getitem 5758,1; break; // Dying Swan [1] case Job_Monk: getitem 5754,1; break; // Blazing Soul [1] case Job_Alchemist: getitem 5752,1; break; // Midas Whisper[1] case Job_Rogue: getitem 5750,1; // Shadow Handicraft [1] getitem 6121,1; // Makeover Brush getitem 6122,1; break; // Paint Brush } } else if (.@eac&EAJL_2) { // Second Class (And not Third Class) switch(BaseJob) { // Second Class case Job_Knight: getitem 1163,1; break; // Claymore [0] case Job_Priest: getitem 1522,1; break; // Stunner [0] case Job_Wizard: getitem 1617,1; break; // Survivor's Rod [0] case Job_Blacksmith: getitem 1360,1; break; // Two-Handed-Axe [1] case Job_Hunter: getitem 1718,1; break; // Hunter Bow [0] case Job_Assassin: getitem 1254,1; break; // Jamadhar [0] case Job_Crusader: getitem 1410,1; break; // Lance [0] case Job_Monk: getitem 1807,1; break; // Fist [0] case Job_Sage: getitem 1550,1; break; // Book [3] case Job_Rogue: getitem 1222,1; break; // Damascus [1] case Job_Alchemist: getitem 1126,1; break; // Saber [2] case Job_Bard: getitem 1907,1; break; // Guitar [0] case Job_Dancer: getitem 1960,1; break; // Whip [1] case Job_Super_Novice: getitem 1208,1; break; // Main Gauche [4] case Job_Gunslinger: getitem 13101,1; break; // Six Shooter [2] case Job_Ninja: getitem 13010,1; break; // Asura [2] case Job_Star_Gladiator: getitem 1550,1; break; // Book [3] case Job_Soul_Linker: getitem 1617,1; break; // Survivor's Rod [0] } } else { // Neither Second or Third Cls // => First Cls or not covered by the switch switch(BaseClass) { // First Class case Job_Swordman: getitem 1108,1; break; // Blade [4] case Job_Mage: getitem 1602,1; break; // Rod [4] case Job_Archer: getitem 1705,1; break; // Composite Bow [4] case Job_Acolyte: getitem 1505,1; break; // Mace [4] case Job_Merchant: getitem 1302,1; break; // Axe [4] case Job_Thief: getitem 1208,1; break; // Main Gauche [4] } } return; } OnInit: // Initialisation, do not edit these .NPCName$ = "[Job Master]"; // Settings .ThirdClass = false; // Enable third classes? .RebirthClass = false; // Enable rebirth classes? .SecondExpanded = false; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? .BabyNovice = false; // Enable Baby novice classes? Disable it if you like player must have parent to get job baby. .BabyClass = false; // Enable Baby classes? .BabyThird = false; // Enable Baby third classes? .BabyExpanded = false; // Enable Baby Expanded classes: Ex. Baby Ninja, Baby Taekwon, etc. .BabySummoner = false; // Enable Baby Summoner? .LastJob = false; // Enforce linear class changes? .SkillPointCheck = true; // Force player to use up all skill points? .Platinum = false; // Get platinum skills automatically? .GetJobEquip = false; // Get job equipment (mostly weapons) on job change? // Level Requirements setarray .Req_First[0],1,10; // Minimum base level, job level to turn into 1st class setarray .Req_Second[0],1,40; // Minimum base level, job level to turn into 2nd class setarray .Req_Rebirth[0],99,50; // Minimum base level, job level to rebirth setarray .Req_Third[0],99,50; // Minimum base level, job level to change to third class setarray .Req_Exp_NJ_GS[0],99,70; // Minimum base level, job level to turn into Expanded Ninja and Gunslinger setarray .Req_Exp_SNOVI[0],99,99; // Minimum base level, job level to turn into Expanded Super Novice .SNovice = 45; // Minimum base level to turn into Super Novice // Setting adjustments by PACKETVER if( PACKETVER < 20161207 ) { if( .BabyExpanded ) debugmes "jobmaster: BabyExpanded is disabled due to outdated PACKETVER."; if( .BabySummoner ) debugmes "jobmaster: BabySummoner is disabled due to outdated PACKETVER."; .BabyExpanded = false; .BabySummoner = false; } end; }
-
hello master after killing the player its not warping in prontera or not exiting the map can someone help me heres the script and the error - script LMS#disable -1,{ OnInit: disablenpc "Mr. Banker"; disablenpc "All Job Manager"; end; } - script LMS -1,{ OnClock000: OnClock0300: OnClock0600: OnClock0900: OnClock1200: OnClock1500: OnClock1821: OnClock2100:// Edit this to what ever you want. note : OnClock0000 is 12 midnight and OnClock1200 is 12 Noon goto startlmsevent; startlmsevent: announce "Mr. Manager: The Last Man Standing event will be starting shortly.",0; sleep 10000; announce "Mr. Manager: Those who want to play, please proceed to Prontera and Register.",0; sleep 10000; announce "Mr. Manager: After 1 Minute the Registration will close.",0; sleep 10000; announce "Mr. Manager: Please go to Prontera and Register now if you want to join.",0; enablenpc "All Job Manager"; initnpctimer; end; OnTimer30000: announce "Mr. Manager: Last 30 seconds.",0; sleep 5000; announce "Mr. Manager: If you want to join please Register in Prontera.",0; end; OnTimer50000: announce "Mr. Manager: Last 10 seconds.",0; end; OnTimer55000: announce "Mr. Manager: 5.",0; end; OnTimer56000: announce "Mr. Manager: 4.",0; end; OnTimer57000: announce "Mr. Manager: 3.",0; end; OnTimer58000: announce "Mr. Manager: 2.",0; end; OnTimer59000: announce "Mr. Manager: 1.",0; end; OnTimer60000: announce "Mr. Manager: Time's up.",0; end; OnTimer61000: disablenpc "All Job Manager"; donpcevent "Mr. Banker::OnEnable"; stopnpctimer; end; } //---------All Job Registration--------------- prontera,153,193,5 script All Job Manager 106,{ mes "[Mr. Manager]"; mes "Hello What can I do for you?"; next; menu "Register",-,"What is LMS?",what,"Leave",leave; next; mes "[Mr. Manager]"; mes "Thankyou for registering Mr. " + strcharinfo(0) + ", Have fun!"; warp "guild_vs1-1",50,50; end; what: mes "[Mr. Manager]"; mes "LMS is also known as Last Man Standing Event"; next; mes "[Mr. Manager]"; mes "LMS is also like a PvP."; mes "The only difference is at LMS you will get 10 PC Point if you are the Last Man Standing at the arena."; next; mes "[Mr. Manager]"; mes "That's all"; close; leave: mes "[Mr. Manager]"; mes "I hope you will register next time"; close; } //-------------------------- //-------------------------- guild_vs1-1,50,50,6 script Mr. Banker 56,{ mes "[banker]"; mes "Congrats. You've won."; next; announce "Mr. Manager: We have a winner! well done "+strcharinfo(0)+".",0; getitem 7227,1; // Change This item id to what ever you want . item id,amount dispbottom "+1 TCG"; mes "You will return now"; warp "prontera",155,182; disablenpc "Mr. Banker"; close; end; OnEnable: pvpoff "guild_vs1-1"; mapannounce "guild_vs1-1","Mr. Manager:The Last Man Standing Event will start shortly",0; sleep 10000; mapannounce "guild_vs1-1","Mr. Manager:But before we start this is just a few reminders..",0; sleep 10000; mapannounce "guild_vs1-1","Mr. Manager:Using Cloaking , Hiding is strictly not allowed..",0; sleep 10000; mapannounce "guild_vs1-1","Mr. Manager: Only the Last Man Standing will win this event!!",0; sleep 10000; mapannounce "guild_vs1-1","Mr. Manager: What are we waiting for?..Let's Get Ready to Rumble!!...",0; sleep 10000; goto L_Start; end; L_Start: if(getmapusers("guild_vs1-1") == 1) goto L_Champ; if(getmapusers("guild_vs1-1") == 0) goto L_None; if(getmapusers("guild_vs1-1") > 1) { mapannounce "guild_vs1-1","Mr. Manager: Get ready at the count of 5 we will start!....",0; sleep 10000; mapannounce "guild_vs1-1","Mr. Manager: 5",0; sleep 5000; mapannounce "guild_vs1-1","Mr. Manager: 4",0; sleep 4000; mapannounce "guild_vs1-1","Mr. Manager: 3",0; sleep 3000; mapannounce "guild_vs1-1","Mr. Manager: 2",0; sleep 2000; mapannounce "guild_vs1-1","Mr. Manager: 1",0; sleep 1000; pvpon "guild_vs1-1"; goto timer; end; } timer: initnpctimer; end; OnTimer1000: end; OnTimer1100: if(getmapusers("guild_vs1-1") == 1) goto L_Champ; if(getmapusers("guild_vs1-1") > 2) goto timer; if(getmapusers("guild_vs1-1") == 2) goto champ; stopnpctimer; end; champ: announce "Mr. Manager: Last 2 Brave warriors are still alive!",0; sleep 10000; if(getmapusers("guild_vs1-1") == 1) goto L_Champ; if(getmapusers("guild_vs1-1") > 1) goto timer; end; L_Champ: mapannounce "guild_vs1-1","Mr. Banker: Please talk to me to get your prize..",0; pvpoff "guild_vs1-1"; enablenpc "Mr. Banker"; end; L_None: disablenpc "Banker"; pvpoff "guild_vs1-1"; end; } //----- Die = warp prt ----- - script Kill_warp -1,{ OnPCDieEvent: getmapxy(.@map$,.@x,.@y,0); if(.@map$=="guild_vs1-1") { set #kill_point, 0; announce ""+strcharinfo(0)+" died, and out of the game!.",bc_all; warp "prontera",156,195; end; } OnPCKillEvent: getmapxy(.@map$,.@x,.@y,0); if(.@map$=="guild_vs1-1") { set #kill_point,#kill_point+1; if ( #kill_point % 4 == 0) { announce ""+strcharinfo(0)+" have made 4 Consecutive Kills!!He will be granted an item",bc_all; //getitem 7539, 20; end; } } } // == Mapflags guild_vs1-1 mapflag nowarp guild_vs1-1 mapflag nowarpto guild_vs1-1 mapflag noteleport guild_vs1-1 mapflag nosave guild_vs1-1 mapflag nomemo guild_vs1-1 mapflag nobranch guild_vs1-1 mapflag pvp_noparty guild_vs1-1 mapflag restricted 1
-
i copy it all maybe the original script is error , do you have some somple koe script?
-
hello masters can someone help me im always getting this error when im trying to start th event [Error]: npc_event: event not found [KoE::OnCommand] Heres the Script - script KoE -1,{ OnInit: disablenpc "The King#KoE"; disablenpc "Exit#KoE"; end; OnWhisperGlobal: if ( getgmlevel() < 99 ) end; else if ( compare ( @whispervar0$, "on" ) ) goto L_start; else if ( compare ( @whispervar0$, "off" ) ) goto L_end; else end; L_end: announce "The King of Emperium Hill is over!", 0; set .koe_start, 0; enablenpc "Exit#KoE"; disablenpc "The King#KoE"; killmonsterall "guild_vs1"; end; L_start: announce "The King of Emperium Hill has begun!", 0; set .koe_start, 1; enablenpc "The King#KoE"; disablenpc "Exit#KoE"; set $koegid, 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; OnEmpDead: set $koegid, getcharid(2); announce "The current King of Emperium Hill is the [" + strcharinfo(2) + "] guild.", 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; sleep 500; if ( .koe_start ) monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; } // KoE Entrance prontera,155,191,4 script The King#KoE 58,{ mes "[The King]"; if ( getcharid(2) == 0 ) { mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000."; close; } mes "Hello."; mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?"; if ( select ( "Yes", "No" ) == 2 ) close; switch( rand(1,4) ){ case 1: warp "guild_vs1", 50, 88; end; case 2: warp "guild_vs1", 88, 50; end; case 3: warp "guild_vs1", 50, 11; end; case 4: warp "guild_vs1", 11, 50; end; } } // KoE Exit guild_vs1,49,56,5 script Exit#KoE 51,{ mes "[Exit]"; mes "See ya."; if ( getcharid(2) == $koegid ) getitem 501, 1; // configure prize here next; warp "Save",0,0; close; } // Flags guild_vs1,49,38,4 script King of Emperium Hill#1::koe_flag 722,{ set .@gid, $koegid; if ( .@gid == 0 ) end; mes "[King of Emperium Hill]"; mes "The Current King of Emperium Hill is the ["+ getguildname(.@gid) +"] guild."; close; OnRevKoE: flagemblem $koegid; end; } guild_vs1,61,49,6 duplicate(koe_flag) King of Emperium Hill#2 722 guild_vs1,38,49,2 duplicate(koe_flag) King of Emperium Hill#3 722 guild_vs1,49,61,0 duplicate(koe_flag) King of Emperium Hill#4 722 guild_vs1 mapflag gvg guild_vs1 mapflag nobranch guild_vs1 mapflag nomemo guild_vs1 mapflag nopenalty guild_vs1 mapflag noreturn guild_vs1 mapflag nosave SavePoint guild_vs1 mapflag noteleport guild_vs1 mapflag gvg_noparty guild_vs1 mapflag nowarp guild_vs1 mapflag nowarpto
-
how to run this manually?
-
R > Working LMS Last Man Standing
Sallycantdance replied to AngelaKiss's question in Script Requests