Jump to content

Yami

Members
  • Posts

    111
  • Joined

  • Last visited

Posts posted by Yami

  1. But in other server I have played, when we add a slot in the temporal boots we still have the enchants that we already had.

     

    I think we can change the script into getitem2 so we can retain the enchants, but i dont know the exact codes for it. That's why i came here for help =))


    NVM, I've fixed it myself. Thanks anyways =)

  2. I can enchant the boots, i have a different script for that. But this one specifically is for adding slot [1] only. BUT, when you add the slot [1] enchants should be RETAINED or NOT REMOVED. But what's happening is, when I add the slot [1], all enchants are removed. I'm given the slotted boots but without the enchants.

     

    For Example, I have 1 Temporal STR Boots with Bear Power and Fighting Spirit 7 as enchants. I added the slot and it was a success.

    I should receive 1 Temportal STR Boots [1] with  Bear Power and Fighting Spirit 7 as enchants still.

  3. Can someone help me with this script please. This is the NPC that adds a slot [1] to temporal boots. But the thing is, when he adds the slot all the enchantments are removed. It's not supposed to remove the enchants after adding the slot. I don't know the exact script to make that happen.
    Please help me. I just need it to retain the enchants on the 3rd and 4th card slot, and add the [1] into the item.

     

    Here's my script.

    glast_01,210,270,0	script	Hugin's Craftsman	726,{
    	disable_items;
    	if (MaxWeight - Weight < 1000) {
    		mes "Your bag is too heavy. Reduce some weight and come back.";
    		close;
    	}
    	mes "[Hugin's Craftsman]";
    	mes "That Magic Master always says that enchanting Temporal Boots is the best. But, I think quite different.";
    	next;
    	mes "[Hugin's Craftsman]";
    	mes "I think putting a slot into the item would be the best. Even with some risk of failing.";
    	next;
    	mes "[Hugin's Craftsman]";
    	mes "Bring me ^0000FF5 Temporal Crystals^000000, and I will try to put a slot into your advanced Temporal Boots. But, it's possible to ^FF0000fail and break the item^000000. Is that ok?";
    	next;
    	if (select("Cancel","Take the risk and try to add a slot") == 1) {
    		mes "[Hugin's Craftsman]";
    		mes "Ok, come back anytime you want.";
    		close;
    	}
    	set .@part,EQI_SHOES;
    	if (!getequipisequiped(.@part)) {
    		mes "[Hugin's Craftsman]";
    		mes "Are you sure you are wearing the item?";
    		close;
    	}
    	set .@equip_id,getequipid(.@part);
    	switch (.@equip_id) {
    	case 22000: //Temporal_Str_Boots
    	case 22001: //Temporal_Int_Boots
    	case 22002: //Temporal_Agi_Boots
    	case 22003: //Temporal_Vit_Boots
    	case 22004: //Temporal_Dex_Boots
    	case 22005: //Temporal_Luk_Boots
    		mes "[Hugin's Craftsman]";
    		mes "And ^FF0000all enchant or refine rates will be lost if you fail this.^000000";
    		mes "Still want to risk it?";
    		next;
    		if (select("Cancel","I am ok with it!") == 1) {
    			mes "[Hugin's Craftsman]";
    			mes "Ok, come back anytime you want.";
    			close;
    		}
    		mes "[Hugin's Craftsman]";
    		mes "Once again, ^FF0000That Magic Master won't enchant any item with a slot.^000000";
    		mes "Still want to proceed?";
    		next;
    		if (select("Cancel","I understand. Try to slot it.") == 1) {
    			mes "[Hugin's Craftsman]";
    			mes "Ok, come back anytime you want.";
    			close;
    		}
    		if (countitem(6607) < 5) {
    			mes "[Hugin's Craftsman]";
    			mes "You must bring ^0000FF5 Temporal Crystal items^000000. Nothing is free you know...";
    			close;
    		}
    		set .@random,rand(1,100);
    		if (.@random <= 80) { //Custom rates
    			mes "[Hugin's Craftsman]";
    			mes "Arrggg, we failed. Better luck next time.";
    			specialeffect2 EF_PHARMACY_FAIL;
    			delitem 6607,5; //Temporal_Crystal
    			delequip .@part;
    			close;
    		}
    		mes "[Hugin's Craftsman]"; //Custom text
    		mes "Yuhuu~ we succeed. Here you are...";
    		mes "A slot has been added to your advanced Temporal Boots.";
    		mes "Thank you for believing in me.";
    		specialeffect2 EF_PHARMACY_OK;
    		delitem 6607,5; //Temporal_Crystal
    		delequip .@part;
    		if (.@equip_id == 22000) {
    			getitem 22006,1; //Temporal_Str_Boots_
    		} else if (.@equip_id == 22001) {
    			getitem 22009,1; //Temporal_Int_Boots_
    		} else if (.@equip_id == 22002) {
    			getitem 22010,1; //Temporal_Agi_Boots_
    		} else if (.@equip_id == 22003) {
    			getitem 22007,1; //Temporal_Vit_Boots_
    		} else if (.@equip_id == 22004) {
    			getitem 22008,1; //Temporal_Dex_Boots_
    		} else if (.@equip_id == 22005) {
    			getitem 22011,1; //Temporal_Luk_Boots_
    		}
    		close;
    	default:
    		mes "[Hugin's Craftsman]";
    		mes "This is not it! We need ^0000FFAdvanced Temporal Boots^000000 items! The item ^0000FFwith a stat effect and without a slot^000000!";
    		close;
    	}
    }
    
    
  4. Hi there, Can someone help me with this script. Its used to give items to online players, on the map you're on or everyone in the server.

    But the thing is, I dont want @autotrade characters to get the items aswell. Some are using this style so they get more items even if they're not online. And I don't want that. Can someone please help? Thanks alot.

     

    I tried adding checkvending() == 0 on some parts of the script, experimented on the codes but it doesn't work, it still gives vending characters the items

    //===== eAthena Script ============================================
    //= #itemall
    //===== By: =======================================================
    //= Originally by goddameit
    //= redo by ~AnnieRuru~
    //===== Current Version: ==========================================
    //= 1.0
    //===== Compatible With: ==========================================
    //= eAthena 14910 Trunk TXT/SQL
    //===== Description: ==============================================
    //= give items to all players in the map, or on the server
    //===== Topic =====================================================
    //= http://www.eathena.ws/board/index.php?showtopic=276326
    //===== Additional Comments: ======================================
    //= topic splitted
    //=================================================================
    // npc:itemall
    //map#<item ID>#<amount> if you want to give prices on your current map
    //all#<item ID>#<amount> if you want to give prices on all of your players
    
    -	script	itemall	-1,{
    OnWhisperGlobal:
    	if ( getgmlevel() < 99 ) end; // configure minimum GM level here
    	if ( compare( @whispervar0$, "map" ) )
    		set .@map$, strcharinfo(3);
    	else if ( compare( @whispervar0$, "all" ) == 0 ) {
    		dispbottom "[itemall] Please enter \"map#<item id>#<item amount>\" or \"all#<item id>#<item amount>\"";
    		end;
    	}
    	set .@itemid, atoi( @whispervar1$ );
    	set .@amount, atoi( @whispervar2$ );
    	if ( getiteminfo( .@itemid, 0 ) == -1 ) {
    		dispbottom "[itemall] Invalid item ID";
    		end;
    	}
    	if ( .@amount == 0 )
    		set .@amount, 1;
    	set .@origin$, strcharinfo(0);
    	while ( .@i < $online_count ) {
    		attachrid getd("$online_aid"+ .@i );
    		if ( .@map$ == "" || strcharinfo(3) == .@map$ ) {
    			message strcharinfo(0), .@origin$ +" gives all players online in this map "+ .@amount +" "+ getitemname(.@itemid);
    			getitem .@itemid, .@amount;
    		}
    		set .@i, .@i +1;
    	}
    	end;
    
    OnPCLoginEvent:
    	setd "$online_aid"+ $online_count, getcharid(3);
    	set $online_count, $online_count +1;
    	end;
    OnPCLogoutEvent:
    	while ( .@i < $online_count && getd("$online_aid"+ .@i ) != getcharid(3) )
    		set .@i, .@i +1;
    	if ( $online_count == .@i ) end; // prevent @loadnpc/@reloadscript bug becos not in the array
    	while ( .@i < $online_count ) {
    		setd "$online_aid"+ .@i, getd("$online_aid"+ ( .@i +1 ) );
    		set .@i, .@i +1;
    	}
    	set $online_count, $online_count -1;
    	end;
    OnInit:
    	if ( getusers(1) ) end;
    	while ( .@i < $online_count ) {
    		setd "$online_aid"+ .@i, 0;
    		set .@i, .@i +1;
    	}
    	set $online_count, 0;
    	end;
    }
    
  5. Hi there, I need help making this script not autoresurecting dead players.

    I plan on making this BG more like WOE, but when you die. You just stay dead, do not ressurect or anything. I will block resu skill on the map.

    I just dont know what to change to make this script not ressurecting dead players. Thanks in advance.

    //===== rAthena Script =======================================
    //= Battleground: Emperium
    //===== By: ==================================================
    //= AnnieRuru
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A simple battleground script:
    //= Destroy the opponent's Emperium to win the match.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    // Battle Ground HQ
    -	script	Maroll Battle Recruiter::BatRecruit	728,{
    	mes " [Maroll Battle Recruiter]";
    	mes " Good day, adventurer.";
    	mes " I'm a knight from a far country called Maroll Kingdom.";
    	next;
    	mes " [Maroll Battle Recruiter]";
    	mes " The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you.";
    	mes " How would you like to lend your power to one of the princes in the Maroll Kingdom?";
    	next;
    	switch(select("Join:Don't Join")) {
    	case 1:
    		mes "[Maroll Battle Recruiter]";
    		mes "May the war god bless you.";
    		close2;
    		getmapxy(.@mapname$,.@x,.@y,1);
    		if (.@mapname$ == "prontera")
    			set bat_return,1;
    		else if (.@mapname$ == "moc_ruins")
    			set bat_return,2;
    		else if (.@mapname$ == "aldebaran")
    			set bat_return,3;
    		else if (.@mapname$ == "geffen")
    			set bat_return,4;
    		else if (.@mapname$ == "payon")
    			set bat_return,5;
    		else if (.@mapname$ == "lighthalzen")
    			set bat_return,6;
    		else if (.@mapname$ == "rachel")
    			set bat_return,7;
    		else
    			set bat_return,1;
    		warp "bat_room",154,150;
    		break;
    	case 2:
    		mes " [Maroll Battle Recruiter]";
    		mes " I'll always be stationed here for more soldiers. Feel free to come back whenever you're interested.";
    		close;
    	}
    	end;
    }
    
    prontera,164,184,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit1	728
    moc_ruins,75,162,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit2	728
    aldebaran,146,109,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit3	728
    geffen,109,66,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit4	728
    payon,189,105,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit5	728
    lighthalzen,153,86,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit6	728
    rachel,149,138,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit7	728
    
    // Script Start
    -	script	bg_emp#control	-1,{
    OnInit:
    	.minplayer2start = 5;      // minimum players to start (ex. if 3vs3, set to 3)
    	.eventlasting    = 5*60;  // event duration before auto-reset (20 minutes * seconds)
    	setarray .rewarditem[0],   // rewards for the winning team: <item>,<amount>,...
    		7773,5;
    	.team1name$ = "Red";
    	.team2name$ = "Blue";
    	end;
    OnStart:
    	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
    		end;
    
    	// create Battleground and teams
    	.red = waitingroom2bg( "bat_a01", 176,345, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
    	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    	.team1count = .minplayer2start;
    	.blue = waitingroom2bg( "bat_a01", 167,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
    	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    	.team2count = .minplayer2start;
    	delwaitingroom .rednpcname$;
    	delwaitingroom .bluenpcname$;
    	disablenpc .rednpcname$;
    	disablenpc .bluenpcname$;
    	setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
    	setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
    	bg_warp .red, "bat_a01", 171,346;
    	bg_warp .blue, "bat_a01", 162,50;
    	bg_updatescore "bat_a01", 0, 0;
    
    	// delay before match begins
    	sleep 6000;
    	mapannounce "bat_a01", "The rules are simple. The first team to break the opponent's Emperium wins!", bc_map;
    	sleep 3000;
    	for ( .@i = 5; .@i > 0; .@i-- ) {
    		mapannounce "bat_a01", "["+ .@i +"]", bc_map;
    		sleep 1000;
    	}
    	mapannounce "bat_a01", "Start!", bc_map;
    
    	// spawn Emperiums
    	bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
    	bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
    	delwall "bg_emp_town_red";
    	delwall "bg_emp_town_blue";
    
    	// match duration
    	sleep .eventlasting * 1000;
    
    	// end match, destroy Battleground, reset NPCs
    	killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
    	killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
    	if ( .winside ) {
    		mapannounce "bat_a01", "- "+ getd( ".team"+ .winside +"name$" ) +" Team is victorious! -", bc_map;
    		for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ )
    			getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
    	} else
    		mapannounce "bat_a01", "- The match has ended in a draw! -", bc_map;
    	sleep 5000;
    	bg_warp .red, "bat_room",154,150;
    	bg_warp .blue, "bat_room",154,150;
    	bg_destroy .red;
    	bg_destroy .blue;
    	delwall "bg_emp_town_red";
    	delwall "bg_emp_town_blue";
    	deletearray .team1aid;
    	deletearray .team2aid;
    	.winside = .team1count = .team2count = 0;
    	enablenpc .rednpcname$;
    	enablenpc .bluenpcname$;
    	donpcevent .rednpcname$ +"::OnStart";
    	donpcevent .bluenpcname$ +"::OnStart";
    	end;
    
    // Emperium destroyed
    OnRedDown:  callsub L_EmpDown, 1, 2;
    OnBlueDown: callsub L_EmpDown, 2, 1;
    L_EmpDown:
    	mapannounce "bat_a01", strcharinfo(0) +" has destroyed "+ getd( ".team"+ getarg(0) +"name$" ) +" Team's Emperium.", bc_map;
    	.winside = getarg(1);
    	awake strnpcinfo(0);
    	end;
    
    // "OnDeath" event
    OnRedDead:
    OnBlueDead:
    	sleep2 1250;
    	percentheal 100,100;
    	specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10;
    	specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10;
    	end;
    
    // "OnQuit" event
    OnRedQuit:  callsub L_Quit, 1, 2;
    OnBlueQuit: callsub L_Quit, 2, 1;
    L_Quit:
    	percentheal 100, 100;
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	if ( getd(".team"+ getarg(0) +"count") ) end;
    	mapannounce "bat_a01", "All "+ getd( ".team"+ getarg(0) +"name$" ) +" team members have quit!", bc_map, 0xff3333;
    	end;
    }
    
    bat_room,161,155,3	script	Red Team#bg_emp	416,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
    	end;
    }
    
    bat_room,161,145,3	script	Blue Team#bg_emp	420,{
    	end;
    OnInit:
    	sleep 1;
    	set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
    	end;
    }
    
    bat_a01	mapflag	battleground
    bat_a01	mapflag	nosave	SavePoint
    bat_a01	mapflag	nowarp
    bat_a01	mapflag	nowarpto
    bat_a01	mapflag	noteleport
    bat_a01	mapflag	nomemo
    bat_a01	mapflag	nopenalty
    bat_a01	mapflag	nobranch
    bat_a01	mapflag	noicewall
    
    
  6. Hi, I tried to edit the scripts you guys gave me and got this script.
    there's no error but I can't click the NPC. Anyone can help me with this?

     

    I made the 2 scripts as a function then the main npc will call on them depending if they already got the autojob or not.

    //===== 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,153,193,6	script	Job Master	923,{
    
    if (#auto == 0) { callfunc "autojob"; }
    
    else { callfunc "Class Master"; }
    }
    
    
    function	script	autojob	{
    OnInit:
    setarray .JobList[0],4060,4061,4062,4063,4064,4065,4015,4073,4074,4075,4076,4077,4078,4079;
    .BaseLevel = 175; // change to 1
    .JobLevel = 60; // 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;
    		SkillPoint = .SkillPoints; // you can comment this out to get no skill points
    		set #auto, 1;
    		mes "DONE";
    	}
    }
    end;
    }	//end autojob
    
    
    function	script	Class Master	{
    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;
    				resetskill;
    				set SkillPoint,0;
    			}
    			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,SKILL_PERM;
    	switch (BaseClass) {
    	case Job_Novice:
    		if (Class != Job_SuperNovice)
    			skill "NV_TRICKDEAD",1,SKILL_PERM;
    		break;
    	case Job_Swordman:
    		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
    		skill "SM_FATALBLOW",1,SKILL_PERM;
    		skill "SM_AUTOBERSERK",1,SKILL_PERM;
    		break;
    	case Job_Mage:
    		skill "MG_ENERGYCOAT",1,SKILL_PERM;
    		break;
    	case Job_Archer:
    		skill "AC_MAKINGARROW",1,SKILL_PERM;
    		skill "AC_CHARGEARROW",1,SKILL_PERM;
    		break;
    	case Job_Acolyte:
    		skill "AL_HOLYLIGHT",1,SKILL_PERM;
    		break;
    	case Job_Merchant:
    		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
    		skill "MC_CHANGECART",1,SKILL_PERM;
    		skill "MC_LOUD",1,SKILL_PERM;
    		break;
    	case Job_Thief:
    		skill "TF_SPRINKLESAND",1,SKILL_PERM;
    		skill "TF_BACKSLIDING",1,SKILL_PERM;
    		skill "TF_PICKSTONE",1,SKILL_PERM;
    		skill "TF_THROWSTONE",1,SKILL_PERM;
    		break;
    	default:
    		break;
    	}
    	switch (BaseJob) {
    	case Job_Knight:
    		skill "KN_CHARGEATK",1,SKILL_PERM;
    		break;
    	case Job_Priest:
    		skill "PR_REDEMPTIO",1,SKILL_PERM;
    		break;
    	case Job_Wizard:
    		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
    		break;
    	case Job_Blacksmith:
    		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
    		skill "BS_GREED",1,SKILL_PERM;
    		break;
    	case Job_Hunter:
    		skill "HT_PHANTASMIC",1,SKILL_PERM;
    		break;
    	case Job_Assassin:
    		skill "AS_SONICACCEL",1,SKILL_PERM;
    		skill "AS_VENOMKNIFE",1,SKILL_PERM;
    		break;
    	case Job_Crusader:
    		skill "CR_SHRINK",1,SKILL_PERM;
    		break;
    	case Job_Monk:
    		skill "MO_KITRANSLATION",1,SKILL_PERM;
    		skill "MO_BALKYOUNG",1,SKILL_PERM;
    		break;
    	case Job_Sage:
    		skill "SA_CREATECON",1,SKILL_PERM;
    		skill "SA_ELEMENTWATER",1,SKILL_PERM;
    		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
    		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
    		skill "SA_ELEMENTWIND",1,SKILL_PERM;
    		break;
    	case Job_Rogue:
    		skill "RG_CLOSECONFINE",1,SKILL_PERM;
    		break;
    	case Job_Alchemist:
    		skill "AM_BIOETHICS",1,SKILL_PERM;
    		break;
    	case Job_Bard:
    		skill "BA_PANGVOICE",1,SKILL_PERM;
    		break;
    	case Job_Dancer:
    		skill "DC_WINKCHARM",1,SKILL_PERM;
    		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 = 1;			// Enable third classes? (1: yes / 0: no)
    	.SecondExpanded = 1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
    	.SNovice = 50;				// 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 = 1;				// Get platinum skills automatically? (1: yes / 0: no)
    	end;
    }	// end jobmaster
    
    

    Nvm guys, I got it working :)

  7. Hi there, need help with a script that I saw on a server I played before.

    You have an option to have 1 Instant Job changed character per account. When you used the instant the only option your account will get is the regular job master script. 

     

    I have the job change script, but I don't know how to make the 1 instant change. Can someone help me please. Thank you!

    BTW, my server is Renewal, 3rd Jobs with Base Level 175 and Job level 60.

  8. Hi there, I have an idea for a guild package npc script, but lacks knowledge of making it into script. Can someone help me with this please.

     

    The idea is, the NPC will first check if you are on a Guild, doesn't matter which guild as long as you're on a guild.

    Then check for a specific item, I plan to give an Item like a Master Card for Guild Master and Member Card for Guild Members.

    So if the NPC detects you have guild master's card, it will give you guild master package items. If it detects you have member card it will give you members package item which is a little different from the master's. You will basically exchange that card for the items.

    Then the ACCOUNT will be blocked from getting another guild package from any guild, any character in the account.

     

    I hope someone can help me with this, im planning on giving upgraded items on both so will be using getitem2 and getitem.

    Thank you in advance!! Kuddos

  9. Hi, I just want to change the Badge Reward of this Battlegrounds script. This is the default script in my rathena. I think it was changed sometime when I wasn't doing servers. And now I cant seem to find the REWARD line for this script. Maybe someone can help me please.

     

    I want to change the WINNER Reward to 7773 2pcs, and LOSER Reward to 7773 1pc. Instead of the default Bravery/Valor Badges.

     

    I will attach the script below. Thank you in advance!

    //===== rAthena Script ======================================= 
    //= BattleGround System - Flavius
    //===== By: ================================================== 
    //= L0ne_W0lf
    //===== Current Version: ===================================== 
    //= 1.7
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: ========================================= 
    //= [Official Conversion]
    //= Flavius Battleground.
    //= - Winning Team: 9 badges (11 if VIP)
    //= - Losing Team: 3 badges (5 if VIP)
    //===== Additional Comments: ================================= 
    //= 1.0 First Version.
    //= 1.1 Fixed pink crystal spawning as blue. [L0ne_W0lf]
    //= 1.2 Updated 'waitingroom' to support required zeny/lvl. [Kisuka]
    //= 1.3 Removed MaxLvl check in waitingrooms. Replaced setwall with setcell.
    //= 1.4 Label standardization. [Euphy]
    //= 1.5 Added GM management function. [Euphy]
    //= 1.6 Added VIP features and created a reward function. [Euphy]
    //= 1.7 Made Crystals immune to attacks until Guardians are defeated. [Cydh/Aleos]
    //============================================================
    
    // Waiting Room NPCs
    //============================================================
    bat_room,86,227,4	script	Lieutenant Ator	418,{
    	end;
    OnInit:
    	waitingroom "Battle Station",6,"start#bat_b01::OnReadyCheck",1,0,175;
    	end;
    OnEnterBG:
    	set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit","");
    	end;
    }
    
    bat_room,85,204,0	script	Lieutenant Thelokus	414,{
    	end;
    OnInit:
    	waitingroom "Battle Station",6,"start#bat_b01::OnReadyCheck",1,0,175;
    	end;
    OnEnterBG:
    	set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit","");
    	end;
    }
    
    bat_room,85,220,0	warp	back_bgroomb01a	1,1,bat_room,154,150
    bat_room,85,211,0	warp	back_bgroomb01b	1,1,bat_room,154,150
    
    bat_room,2,151,3	script	#bat_b01_timer	844,{
    	end;
    
    OnInit:
    OnEnable:
    	initnpctimer;
    	end;
    
    OnStop:
    	stopnpctimer;
    	end;
    
    OnTimer1000:
    	stopnpctimer;
    	initnpctimer;
    	set .@chk_bat_a01,getmapusers("bat_b01");
    	if (.@chk_bat_a01 < 1) {
    		set $@FlaviusBG1, 0;
    		if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; }
    		if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; }
    		donpcevent "start#bat_b01::OnReadyCheck";
    	}
    	end;
    }
    
    
    // Flavius Battleground Engine
    //============================================================
    bat_b01,15,15,3	script	start#bat_b01	844,{
    OnInit:
    	mapwarp "bat_b01","bat_room",154,150;
    	end;
    
    OnReadyCheck:
    	if( $@FlaviusBG1 )
    		end;
    	set .@Guillaume, getwaitingroomstate(0,"Lieutenant Ator");
    	set .@Croix, getwaitingroomstate(0,"Lieutenant Thelokus");
    	if( !.@Guillaume && !.@Croix ) {
    		donpcevent "#bat_b01_timer::OnStop";
    		end;
    	}
    	if( .@Guillaume < 5 || .@Croix < 5 )
    		end;
    	set $@FlaviusBG1, 1;
    	set $@FlaviusBG1_Victory, 0;
    	set $@Croix_ScoreBG1, 0;
    	set $@Guill_ScoreBG1, 0;
    	bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
    
    	donpcevent "Lieutenant Ator::OnEnterBG";
    	donpcevent "Lieutenant Thelokus::OnEnterBG";
    	donpcevent "OBJ#bat_b01_a::OnKill";
    	donpcevent "OBJ#bat_b01_a::OnEnable";
    	donpcevent "OBJ#bat_b01_b::OnKill";
    	donpcevent "OBJ#bat_b01_b::OnEnable";
    	donpcevent "guardian#bat_b01_a::OnKill";
    	donpcevent "guardian#bat_b01_b::OnKill";
    	donpcevent "guardian#bat_b01_a::OnEnable";
    	donpcevent "guardian#bat_b01_b::OnEnable";
    	donpcevent "cell#bat_b01_a::OnRed";
    	donpcevent "cell#bat_b01_b::OnRed";
    	donpcevent "time#bat_b01::OnEnable";
    	disablenpc "Guillaume Vintenar#b01_a";
    	disablenpc "Croix Vintenar#b01_b";
    	disablenpc "Vintenar#bat_b01_aover";
    	disablenpc "Vintenar#bat_b01_bover";
    	bg_warp $@FlaviusBG1_id1,"bat_b01",87,75;
    	bg_warp $@FlaviusBG1_id2,"bat_b01",311,224;
    	donpcevent "countdown#bat_b01::OnEnable";
    	initnpctimer;
    	end;
    
    OnReset:
    	donpcevent "OBJ#bat_b01_a::OnKill";
    	donpcevent "OBJ#bat_b01_a::OnEnable";
    	donpcevent "OBJ#bat_b01_b::OnKill";
    	donpcevent "OBJ#bat_b01_b::OnEnable";
    	donpcevent "guardian#bat_b01_a::OnKill";
    	donpcevent "guardian#bat_b01_b::OnKill";
    	donpcevent "guardian#bat_b01_a::OnEnable";
    	donpcevent "guardian#bat_b01_b::OnEnable";
    	donpcevent "cell#bat_b01_a::OnRed";
    	donpcevent "cell#bat_b01_b::OnRed";
    	donpcevent "time#bat_b01::OnEnable";
    	disablenpc "Guillaume Vintenar#b01_a";
    	disablenpc "Croix Vintenar#b01_b";
    	disablenpc "Vintenar#bat_b01_aover";
    	disablenpc "Vintenar#bat_b01_bover";
    	bg_warp $@FlaviusBG1_id1,"bat_b01",87,75;
    	bg_warp $@FlaviusBG1_id2,"bat_b01",311,224;
    	end;
    
    OnGuillaumeQuit:
    OnCroixQuit:
    	bg_leave;
    	end;
    
    OnTimer10000:
    	stopnpctimer;
    	donpcevent "#bat_b01_timer::OnEnable";
    	end;
    }
    
    bat_b01,1,1,3	script	OBJ#bat_b01_a	844,{
    OnEnable:
    	$@FlavBG1_C1_ID = bg_monster($@FlaviusBG1_id1,"bat_b01",61,150,"Pink Crystal",1915,"OBJ#bat_b01_a::OnMyMobDead");
    	setunitdata $@FlavBG1_C1_ID,30,1; // Make Crystal immune to damage until Guardians are defeated
    	end;
    
    OnKill:
    	killmonster "bat_b01","OBJ#bat_b01_a::OnMyMobDead";
    	end;
    
    OnMyMobDead:
    	if (mobcount("bat_b01","OBJ#bat_b01_a::OnMyMobDead") < 1) {
    		mapannounce "bat_b01", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00";
    		if ($@Croix_ScoreBG1 > 0) {
    			set $@FlaviusBG1_Victory,2;
    			set $@Croix_ScoreBG1,$@Croix_ScoreBG1+1;
    			enablenpc "Guillaume Vintenar#b01_a";
    			enablenpc "Croix Vintenar#b01_b";
    			donpcevent "time#bat_b01::OnStop";
    		}
    		else {
    			set $@Croix_ScoreBG1,1;
    			donpcevent "time#bat_b01::OnEnable";
    			donpcevent "start#bat_b01::OnReset";
    		}
    		donpcevent "#bat_b01_timer::OnStop";
    		bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
    		bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
    		bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
    		donpcevent "#bat_b01_timer::OnEnable";
    	}
    	end;
    }
    
    bat_b01,1,2,3	script	OBJ#bat_b01_b	844,{
    OnEnable:
    	$@FlavBG1_C2_ID = bg_monster($@FlaviusBG1_id2,"bat_b01",328,150,"Blue Crystal",1914,"OBJ#bat_b01_b::OnMyMobDead");
    	setunitdata $@FlavBG1_C2_ID,30,1; // Make Crystal immune to damage until Guardians are defeated
    	end;
    
    OnKill:
    	killmonster "bat_b01","OBJ#bat_b01_b::OnMyMobDead";
    	end;
    
    OnMyMobDead:
    	if (mobcount("bat_b01","OBJ#bat_b01_b::OnMyMobDead") < 1) {
    		mapannounce "bat_b01", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00";
    		if ($@Guill_ScoreBG1 > 0) {
    			set $@FlaviusBG1_Victory,1;
    			set $@Guill_ScoreBG1,$@Guill_ScoreBG1+1;
    			enablenpc "Guillaume Vintenar#b01_a";
    			enablenpc "Croix Vintenar#b01_b";
    			donpcevent "time#bat_b01::OnStop";
    		}
    		else {
    			set $@Guill_ScoreBG1,1;
    			donpcevent "time#bat_b01::OnEnable";
    			donpcevent "start#bat_b01::OnReset";
    		}
    		donpcevent "#bat_b01_timer::OnStop";
    		bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
    		bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
    		bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
    		donpcevent "#bat_b01_timer::OnEnable";
    	}
    	end;
    }
    
    bat_b01,1,3,3	script	guardian#bat_b01_a	844,{
    OnEnable:
    	bg_monster $@FlaviusBG1_id1,"bat_b01",108,159,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead";
    	bg_monster $@FlaviusBG1_id1,"bat_b01",108,141,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead";
    	end;
    
    OnKill:
    	killmonster "bat_b01","guardian#bat_b01_a::OnMyMobDead";
    	end;
    
    OnMyMobDead:
    	if (mobcount("bat_b01","guardian#bat_b01_a::OnMyMobDead") < 1) {
    		donpcevent "cell#bat_b01_a::OnGreen";
    		mapannounce "bat_b01", "The Guardian protecting Guillaume's Crystal has been slain.",bc_map,"0xFFCE00";
    		setunitdata $@FlavBG1_C1_ID,30,0; // Make Crystal damageable again
    	}
    	end;
    }
    
    bat_b01,1,3,3	script	guardian#bat_b01_b	844,{
    OnEnable:
    	bg_monster $@FlaviusBG1_id2,"bat_b01",307,160,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead";
    	bg_monster $@FlaviusBG1_id2,"bat_b01",307,138,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead";
    	end;
    
    OnKill:
    	killmonster "bat_b01","guardian#bat_b01_b::OnMyMobDead";
    	end;
    
    OnMyMobDead:
    	if (mobcount("bat_b01","guardian#bat_b01_b::OnMyMobDead") < 1) {
    		donpcevent "cell#bat_b01_b::OnGreen";
    		mapannounce "bat_b01", "The Guardian protecting Croix's Crystal has been slain.",bc_map,"0xFFCE00";
    		setunitdata $@FlavBG1_C2_ID,30,0; // Make Crystal damageable again
    	}
    	end;
    }
    
    bat_b01,1,4,3	script	cell#bat_b01_a	844,{
    OnRed:
    	setcell "bat_b01",62,149,60,151,cell_basilica,1;
    	setcell "bat_b01",62,149,60,151,cell_walkable,0;
    	end;
    
    OnGreen:
    	setcell "bat_b01",62,149,60,151,cell_basilica,0;
    	setcell "bat_b01",62,149,60,151,cell_walkable,1;
    	end;
    }
    
    bat_b01,1,5,3	script	cell#bat_b01_b	844,{
    OnRed:
    	setcell "bat_b01",327,151,329,149,cell_basilica,1;
    	setcell "bat_b01",327,151,329,149,cell_walkable,0;
    	end;
    
    OnGreen:
    	setcell "bat_b01",327,151,329,149,cell_basilica,0;
    	setcell "bat_b01",327,151,329,149,cell_walkable,1;
    	end;
    }
    
    bat_b01,1,6,1	script	time#bat_b01	844,{
    OnEnable:
    	donpcevent "Battle Therapist#b01_a::OnEnable";
    	donpcevent "Battle Therapist#b01_b::OnEnable";
    	end;
    
    OnStop:
    	donpcevent "Battle Therapist#b01_a::OnStop";
    	donpcevent "Battle Therapist#b01_b::OnStop";
    	end;
    }
    
    bat_b01,10,294,3	script	Battle Therapist#b01_a	95,{
    	specialeffect2 EF_HEAL;
    	mes "[Battle Therapist]";
    	mes "Just close your eyes,";
    	mes "and take a deep breath.";
    	mes "You can be free from pain.";
    	close;
    
    OnTimer25000:
    	specialeffect EF_SANCTUARY;
    	enablenpc "bat_b01_rp1_a_warp";
    	end;
    
    OnTimer26000:
    	disablenpc "bat_b01_rp1_a_warp";
    	end;
    
    OnTimer26500:
    	stopnpctimer;
    	donpcevent "Battle Therapist#b01_a::OnEnable";
    	end;
    
    OnEnable:
    	initnpctimer;
    	enablenpc "Battle Therapist#b01_a";
    	end;
    
    OnStop:
    	disablenpc "bat_b01_rp1_a_warp";
    	disablenpc "Battle Therapist#b01_a";
    	stopnpctimer;
    	end;
    }
    
    bat_b01,10,290,0	script	bat_b01_rp1_a_warp	45,10,10,{
    OnInit:
    	disablenpc "bat_b01_rp1_a_warp";
    	end;
    
    OnTouch:
    	percentheal 100,100;
    	warp "bat_b01",87,73;
    	end;
    }
    
    bat_b01,389,14,3	script	Battle Therapist#b01_b	95,{
    	specialeffect2 EF_HEAL;
    	mes "[Battle Therapist]";
    	mes "Just close your eyes,";
    	mes "and take a deep breath.";
    	mes "You can be free from pain.";
    	close;
    
    OnTimer25000:
    	specialeffect EF_SANCTUARY;
    	enablenpc "bat_b01_rp1_b_warp";
    	end;
    
    OnTimer26000:
    	disablenpc "bat_b01_rp1_b_warp";
    	end;
    
    OnTimer26500:
    	stopnpctimer;
    	donpcevent "Battle Therapist#b01_b::OnEnable";
    	end;
    
    OnEnable:
    	initnpctimer;
    	enablenpc "Battle Therapist#b01_b";
    	end;
    
    OnStop:
    	disablenpc "bat_b01_rp1_b_warp";
    	disablenpc "Battle Therapist#b01_b";
    	stopnpctimer;
    	end;
    }
    
    bat_b01,389,10,0	script	bat_b01_rp1_b_warp	45,9,9,{
    OnInit:
    	disablenpc "bat_b01_rp1_a_warp";
    	end;
    
    OnTouch:
    	percentheal 100,100;
    	warp "bat_b01",312,225;
    	end;
    }
    
    bat_b01,87,76,0	script	A_CODE#bat_b01	-1,5,5,{
    OnTouch:
    	if (checkquest(2070) < 0)
    		setquest 2070;
    	end;
    }
    
    bat_b01,312,224,0	script	B_CODE#bat_b01	-1,5,5,{
    OnTouch:
    	if (checkquest(2070) < 0)
    		setquest 2070;
    	end;
    }
    
    bat_b01,10,294,3	script	Guillaume Vintenar#b01_a	934,{
    	if ($@FlaviusBG1_id1 == getcharid(4)) {
    		if ($@FlaviusBG1_Victory == 1)
    			callfunc "F_BG_Badge",1,"Guillaume","Flavius";
    		else
    			callfunc "F_BG_Badge",0,"Guillaume","Flavius";
    	}
    	bg_leave;
    	warp "bat_room",154,150;
    	end;
    
    OnInit:
    	disablenpc "Guillaume Vintenar#b01_a";
    	end;
    }
    
    bat_b01,389,14,3	script	Croix Vintenar#b01_b	934,{
    	if ($@FlaviusBG1_id2 == getcharid(4)) {
    		if ($@FlaviusBG1_Victory == 2)
    			callfunc "F_BG_Badge",1,"Croix","Flavius";
    		else
    			callfunc "F_BG_Badge",0,"Croix","Flavius";
    	}
    	bg_leave;
    	warp "bat_room",154,150;
    	end;
    
    OnInit:
    	disablenpc "Croix Vintenar#b01_b";
    	end;
    }
    
    bat_b01,1,5,3	script	countdown#bat_b01	844,{
    OnInit:
    	stopnpctimer;
    	end;
    
    OnEnable:
    	stopnpctimer;
    	initnpctimer;
    	end;
    
    OnStop:
    	stopnpctimer;
    	end;
    
    OnTimer7000:
    	mapannounce "bat_b01", "Guillaume Vintenar Axl Rose : Let's attack to destroy that Crystal!",bc_map,"0xFF9900";
    	end;
    
    OnTimer8000:
    	mapannounce "bat_b01", "Croix Vintenar Swandery : Even though Guillaume is struggling to win against us, the victory is ours. Let's show them our power.",bc_map,"0xFF99CC";
    	end;
    
    OnTimer1800000:
    	mapannounce "bat_b01", "Marollo VII : Guillaume Marollo, Croix Marollo! And their followers!",bc_map,"0x99CC00";
    	end;
    
    OnTimer1803000:
    	mapannounce "bat_b01", "Marollo VII : Both camps are competitive, so it's hard to judge which team is superior.",bc_map,"0x99CC00";
    	end;
    
    OnTimer1808000:
    	mapannounce "bat_b01", "Marollo VII : This battle of Flavian is such a waste of time. I will decide victory and defeat by your progress.",bc_map,"0x99CC00";
    	end;
    
    OnTimer1822000:
    	mapannounce "bat_b01", "Marollo VII : If you can't accept the results, try again in another valley battle!",bc_map,"0x99CC00";
    	end;
    
    OnTimer1825000:
    	mapannounce "bat_b01", "Axl Rose, Swandery : Yes, sir.",bc_map,"0x99CC00";
    	end;
    
    OnTimer1830000:
    	donpcevent "time#bat_b01::OnStop";
    	bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
    	bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
    	enablenpc "Vintenar#bat_b01_aover";
    	enablenpc "Vintenar#bat_b01_bover";
    	end;
    
    OnTimer1900000:
    	mapwarp "bat_b01","bat_room",154,150;
    	donpcevent "countdown#bat_b01::OnStop";
    	end;
    }
    
    bat_b01,81,83,3	script	Guillaume Camp#flag21	973,{ end; }
    bat_b01,94,83,3	script	Guillaume Camp#flag22	973,{ end; }
    bat_b01,81,66,3	script	Guillaume Camp#flag23	973,{ end; }
    bat_b01,94,66,3	script	Guillaume Camp#flag24	973,{ end; }
    bat_b01,139,142,3	script	Guillaume Camp#flag25	973,{ end; }
    bat_b01,139,158,3	script	Guillaume Camp#flag26	973,{ end; }
    bat_b01,110,161,3	script	Guillaume Camp#flag27	973,{ end; }
    bat_b01,110,137,3	script	Guillaume Camp#flag28	973,{ end; }
    bat_b01,63,135,3	script	Guillaume Camp#flag29	973,{ end; }
    bat_b01,63,165,3	script	Guillaume Camp#flag30	973,{ end; }
    bat_b01,10,296,3	script	Guillaume Camp#flag31	973,{ end; }
    
    bat_b01,306,233,3	script	Croix Camp#flag21	974,{ end; }
    bat_b01,317,233,3	script	Croix Camp#flag22	974,{ end; }
    bat_b01,306,216,3	script	Croix Camp#flag23	974,{ end; }
    bat_b01,317,216,3	script	Croix Camp#flag24	974,{ end; }
    bat_b01,257,158,3	script	Croix Camp#flag25	974,{ end; }
    bat_b01,257,141,3	script	Croix Camp#flag26	974,{ end; }
    bat_b01,297,164,3	script	Croix Camp#flag27	974,{ end; }
    bat_b01,297,136,3	script	Croix Camp#flag28	974,{ end; }
    bat_b01,336,161,3	script	Croix Camp#flag29	974,{ end; }
    bat_b01,336,139,3	script	Croix Camp#flag30	974,{ end; }
    bat_b01,389,16,3	script	Croix Camp#flag31	974,{ end; }
    
    bat_b01,10,294,3	script	Vintenar#bat_b01_aover	419,{
    	set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
    	if ($@FlaviusBG1_id1 == getcharid(4)) {
    		if (.@A_B_gap > 0)
    			callfunc "F_BG_Badge",1,"Guillaume","Flavius";
    		else if (.@A_B_gap == 0)
    			callfunc "F_BG_Badge",0,"Guillaume","Flavius";
    		else
    			callfunc "F_BG_Badge",0,"Guillaume","Flavius";
    	}
    	else {
    		mes "[Axl Rose]";
    		mes "Why are you here, Croix mercenary? I am definitely sure of victory against foolish Croix such as you. Ha!";
    		close;
    	}
    	bg_leave;
    	warp "bat_room",154,150;
    	end;
    
    OnInit:
    	disablenpc "Vintenar#bat_b01_aover";
    	end;
    }
    
    bat_b01,389,14,3	script	Vintenar#bat_b01_bover	415,{
    	set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
    	if ($@FlaviusBG1_id2 == getcharid(4)) {
    		if (.@A_B_gap > 0)
    			callfunc "F_BG_Badge",1,"Croix","Flavius";
    		else if (.@A_B_gap == 0)
    			callfunc "F_BG_Badge",0,"Croix","Flavius";
    		else
    			callfunc "F_BG_Badge",1,"Croix","Flavius";
    	}
    	else {
    		mes "[Swandery]";
    		mes "Why do you come here as a Guillaume? You will be sent to where you should be!";
    		close;
    	}
    	bg_leave;
    	warp "bat_room",154,150;
    	end;
    
    OnInit:
    	disablenpc "Vintenar#bat_b01_bover";
    	end;
    }
    
    bat_b01,1,10,3	script	Release all#b01	81,{
    	set .@i, callfunc("F_GM_NPC",1854,0);
    	if (.@i == -1) {
    		mes "Cancelled.";
    		close;
    	} else if (.@i == 0) {
    		end;
    	} else {
    		mes "May I help you?";
    		next;
    		switch(select("Release all.:Cancel.")) {
    		case 1:
    			mes "Bye.";
    			close2;
    			mapwarp "bat_b01","bat_room",154,150;
    			end;
    		case 2:
    			mes "Cancelled.";
    			close;
    		}
    	}
    }
    
    

    Oh shoot, NVM. I found the reward line. It was on another script. 

  10. Hi there, I need help for this script. It will randomly choose online players at the time given.

    But I want it to pick 5 Players instead of 1, and will not pick from Autovended characters. Is this possible? I will attach the script below.
    Thank you in advance!

    prontera,155,181,5	script	2X NPC	-1,{
    if( .name_list_size ){
    	for( .@i = 0; .@i < .name_list_size; .@i++ )
    		mes ""+.name_list$[.@i];
    }
    else{
    	mes "Doesnt have any record yet.";
    }
    close;
    
    
    OnClock1900:
    .@hour = 24;
    .@player = 5;
    
    query_sql( "SELECT `account_id`,`name` FROM `char` WHERE `online` = 1 ORDER BY RAND() LIMIT "+.@player,.@aid,.name_list$ );
    .name_list_size = getarraysize( .@aid );
    for( .@i = 0; .@i < .name_list_size; .@i++ )
    	if( attachrid( .@aid[.@i] ) ){
    		dispbottom "Gained 2X DROP for next "+.@hour+" Hours.";
    		sc_start SC_ITEMBOOST,( .@hour * 3600000 ),100;
    		.@name$ = .@name$ + .name_list$[.@i] + ",";
    	}
    detachrid;
    announce "Congratulations "+.@name$+" You have been selected as Winner for 2X Event for today.",bc_all;
    end;
    }
    
  11. Can someone help me with my healer script.

    I want it to have Zeny Burn of 10,000 everytime you heal. But I don't want the healer to open a dialogue box or menu box.

    Just burns the zeny when you heal, just a display on the chat box that 10,000z was removed for payment.

    And if current zeny is below 10,000, display on bottom "You don't have enough Zeny for the Service" and you will not be healed/Buffed.

     

    Thanks in advanced! I will attach my healer script below.

     

     

    //===== rAthena Script =======================================//= Healer

    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena SVN
    //===== Description: =========================================
    //= Basic healer script.
    //============================================================
     
    - script Healer 909,{
     
    if( getbrokenid(1) ) repairall;
    getinventorylist;
    while( .@i < @inventorylist_count ){
    if ( !@inventorylist_identify[.@i] ){
    delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;
    getitem @inventorylist_id[.@i],1;
    }
    .@i++;
    }
     
    set .@t, 0; // Delay Seconds.
    if ( ! @h ) {
    set @h, 1;
    set .@hp, MaxHP - HP;
    while ( .@t ) {
    dispbottom "Wait for "+ .@t +" second"+ ( ( .@t > 1 ) ? "s" : "" ) +".";
    sleep2 1000 ;
    set .@t, .@t - 1;
    }
     
    percentheal 100,100;
    specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10;
    specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10;
    set @h, 0;
    }
    end ;
    }
     

     

  12. I have Bakonawa Instance and Old Glast Heim Instance on my Server, but it seems to have a problem or incomplete.

     

    1st - the Bakonawa Quest / Bakonawa Extermination Quest

    - Tiyanak Mob doesn't drop the "Lost Belonging" item even after an hour of hunting for it. Tried it on 3 different characters and not one of them can get atleast 1 "Lost Belonging".

     

    2nd - Old Glast Heim Instance

    - After defeating the 1st MVP, Varmundt should give 1 Temporal Crystal and 1 Coagulating Spell. But in my server, he gives 1 Coagulating Spell ONLY.

    - And after defeating the 2nd MVP, Hugin should randomly give 1 to 5 Temporal Crystals and Coagulated Spells. But in my server, he gives 1 Coagulating Spell ONLY (Again).

    - And I can't find the NPC named Hugin's Butler outside Glast Heim, where I can exchange 1 Temporal Crystal for 1 normal Temporal Boots.

     

    I'm using the script provided by rathena on re/instances folder and re/quests folder.

    -OldGlastHeim v1.1

    -BakonawaLake v1.2

    -quests_malaya v1.2

     

    Thank you for Help

  13. thanks @neomind, but is it okay to copy this as is? coz some of the characters are showing this - unidentifiedResourceName = "��������",

    im not sure if it'll work on the file itself when copied. thanks for the answer, appreciate it.

×
×
  • Create New...