Jump to content

mR L

Members
  • Posts

    177
  • Joined

  • Last visited

Posts posted by mR L

  1. Spoiler
    prontera,100,200,3	script	VIPBuffer	78,{
    
    	specialeffect2 EF_INCAGILITY;
    	sc_start SC_INCREASEAGI,600000,10;
    	specialeffect2 EF_BLESSING;
    	sc_start SC_BLESSING,600000,10;
    	if (countitem(30000) > 0) {
    		specialeffect2 EF_ANGELUS;
    		sc_start SC_ANGELUS,600000,10;
    		specialeffect2 EF_SUFFRAGIUM;
    		sc_start SC_SUFFRAGIUM,600000,3;
    		specialeffect2 EF_IMPOSITIO;
    		sc_start SC_IMPOSITIO,600000,5;
    		specialeffect2 EF_GLORIA;
    		sc_start SC_GLORIA,600000,5;
    		specialeffect2 EF_MAGNIFICAT;
    		sc_start SC_MAGNIFICAT,600000,5;
    		specialeffect2 EF_CHEMICALPROTECTIOn;
    		sc_start SC_CP_WEAPON,600000,5;
    		sc_start SC_CP_ARMOR,600000,5;
    		sc_start SC_CP_SHIELD,600000,5;
    		sc_start SC_CP_HELM,600000,5;
    		specialeffect2 EF_ASSUMPTIO;
    		sc_start SC_ASSUMPTIO,600000,5;
    		sc_start SC_ADRENALINE2,600000,1;
    		specialeffect2 EF_MAXPOWER;
    		sc_start SC_MAXIMIZEPOWER,600000,5;
    		specialeffect2 EF_PERFECTION;
    		sc_start SC_WEAPONPERFECTION,600000,5;
    		specialeffect2 EF_ENDURE;
    		sc_start SC_ENDURE,600000,10;
    		sc_start SC_KAUPE,600000,3;
    		sc_start SC_KAITE,600000,7;
    		sc_start SC_STRFOOD,600000,5;
    		sc_start SC_AGIFOOD,600000,5;
    		sc_start SC_VITFOOD,600000,5;
    		sc_start SC_INTFOOD,600000,5;
    		sc_start SC_DEXFOOD,600000,5;
    		sc_start SC_LUKFOOD,600000,5;
    		switch ( basejob ) {
    			case Job_Alchemist:
    				set .@spirit, 445;
    				break;
    			case Job_Monk:
    				set .@spirit, 447;
    				break;
    			case Job_Star_Gladiator:
    				set .@spirit, 448;
    				break;
    			case Job_Sage:
    				set .@spirit, 449;
    				break;
    			case Job_Crusader:
    				set .@spirit, 450;
    				break;
    			case Job_SuperNovice:
    				set .@spirit, 451;
    				break;
    			case Job_Knight:
    				set .@spirit, 452;
    				break;
    			case Job_Wizard:
    				set .@spirit, 453;
    				break;
    			case Job_Priest:
    				set .@spirit, 454;
    				break;
    			case Job_Bard:
    			case Job_Dancer:
    				set .@spirit, 455;
    				break;
    			case Job_Rogue:
    				set .@spirit, 456;
    				break;
    			case Job_Assassin:
    				set .@spirit, 457;
    				break;
    			case Job_Blacksmith:
    				set .@spirit, 458;
    				break;
    			case Job_Hunter:
    				set .@spirit, 460;
    				break;
    			case Job_Soul_Linker:
    				set .@spirit, 461;
    				break;
    			default:
    				if ( upper == 1 && baselevel < 70 )
    					set .@spirit, 494;
    		}
    		if ( .@spirit ) {
    			sc_start4 sc_spirit, 360000, 5, .@spirit,0,0;
    			skilleffect .@spirit, 5;
    		}
    	}
    	specialeffect2 EF_HEAL2; percentheal 100,100;
    	end;
    }
    

     

     

  2. Spoiler
    //mall01,99,134,5    script    Guild Package NPC    915,{
    
    dali02,64,122,5    script    Guild Package NPC    915,{
    	set .@frnd2$,strcharinfo(0);
    	if (##Gpack6 == 1) goto L_AG;
    	if (!getcharid(2)) goto L_NG;
    	if (BaseLevel < 50) goto L_NL;
    	mes "Hello Would you like to Claim your Guild Package";
    	mes "On our Server Let me Give you A Present for Joining and";
    	mes "Playing On Our Server We Hope You will enjoy this Present";
    	next;
    	mes "^FF0000These present are not tradable and not dropable^000000";
    	next;
    	switch (select("Yes:No")) {
    		case 1:
    			query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@lip$);		// recruits ip address
    			query_sql("SELECT last_ip FROM `guildpack`", .@flip$);						// recruiter ip address and information
    			if ( .@lip$ == .@flip$ ) {
    				mes "^616D7EIt seems you already claimed your Guild Package: ^ff0000" + .@flip$ + "^000000. Sorry, but its not allowed.";
    				close;
    			}
    			query_sql("INSERT INTO `guildpack` VALUES (NULL," + getcharid(3) + ",'" + escape_sql(strcharinfo(0)) + "','" + .@lip$ + "')");
    			// THIS PART WERE all items they will get
    			getitem 501,1;
    			set ##Gpack6,1;
    			warp "prontera",156,196;
    			end;
    		case 2:
    			mes "^616D7ENevermind~, You can come back again!";
    			close;
    	}
    	end;
    
    	L_AG:
    		mes "^616D7EYou Already Given a Package";
    	end;
    
    	L_NG:
    		mes "Sorry, you don't have a guild";
    	end;
    
    	L_NL:
    		mes "Sorry, you need level 50 or above to use this npc";
    		mes "Thank's";
    	end;
    
    OnInit:
    	//set .message$, "Claim your Guild Package Here!!";
    	set .message$, "Click my Boobs to Claim your Guild Package!!";
    	while (1) {
    		set .message$, delchar(.message$+charat(.message$,0),0);
    		delwaitingroom;
    		waitingroom .message$, 0;
    		sleep 200;
    	}
    	end;
    }
    
    
    // ==JUST RENAME or PLACE the Map Name here===//
    dali02	mapflag	nocommand	99
    dali02	mapflag	restricted	6
    dali02	mapflag	nosave	SavePoint
    dali02	mapflag	nomemo
    dali02	mapflag	noreturn
    dali02	mapflag	nobranch
    dali02	mapflag	noloot
    dali02	mapflag	noskill
    dali02	mapflag	novending
    dali02	mapflag	nowarpto	99

     

     

    • Upvote 1
  3. 3 hours ago, AOCzxc said:

    how to input on script?

     

    Spoiler
    prontera,150,150,3	script	test	2_COLAVEND,{
    
    	set @npc$, "[^0000ff test ^000000]";
    
    	mes @npc$;
    	mes "hello word";
    	close;
    
    OnInit:
    	while(1) {
    		showscript "Test", getnpcid(0);
    		sleep 1000;
    	}
    	end;
    }

     

     

  4. Spoiler
      - Id: 1201
        AegisName: Knife
        Name: Knife
        Type: Weapon
        SubType: Dagger
        Buy: 50
        Weight: 400
        Attack: 17
        Range: 1
        Slots: 3
        Jobs:
          Alchemist: true
          Archer: true
          Assassin: true
          BardDancer: true
          Blacksmith: true
          Crusader: true
          Hunter: true
          Knight: true
          Mage: true
          Merchant: true
          Ninja: true
          Novice: true
          Rogue: true
          Sage: true
          SoulLinker: true
          SuperNovice: true
          Swordman: true
          Thief: true
          Wizard: true
        Locations:
          Right_Hand: true
        WeaponLevel: 1
        EquipLevelMin: 1
        Refineable: true
        Script: |
          if (readparam(bAgi)>=100) { bonus bDelayRate,-50; }

     

     

  5. 2 hours ago, GM Winter said:

            switch ( select ( 
                "Izlude",
                "Prontera",
                "Death Match",
                "PVP Ranking",
                ( getgmlevel() >= 99 ) ? "^FF0000[GM] Reset PVP Ranking^000000":""
            )) {

     

    Replace with this :

    Spoiler
    	switch ( select ( 
    		"Izlude [ "+getmapusers("pvp_y_1-2")+" ]",
    		"Prontera [ "+getmapusers("prt_pvp")+" ]",
    		"Death Match [ "+getmapusers("bat_cc2")+" ]",
    		"PVP Ranking",
    		( getgmlevel() >= 99 ) ? "^FF0000[GM] Reset PVP Ranking^000000":""
    	)) {

     

     

    • Upvote 1
  6. 11 hours ago, WillJocker said:

    Options to invoke does not appear


    Here ~

    Spoiler
    //	....... if your server has { Overwriting user function [int__] } don't blame me ..........
    function	script	int__	{
    	set .@num, atoi(getarg(0)+"");
    	if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
    	set .@l, getstrlen(.@num+"");
    	for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
    		set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
    		if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
    	}
    	return .@num$;
    }
    
    //===== eAthena Script ======================================
    //= Private MVP/Branch Room
    //===== By: ===============================================
    //= by ~AnnieRuru~
    //===== Current Version: ======================================
    //= 1.4a
    //===== Compatible With: ===================================== 
    //= rathena 16819
    //===== Description: ========================================= 
    //= Player can rent MVP room for the player him/herself, for party or for guilds
    //===== Topic =================================================
    //= http://www.eathena.ws/board/index.php?showtopic=187654
    //===== Additional Comments: ================================== 
    //= 1.0 
    //= ---- break the tradition which a script only for a player, or only for a party.
    //=      now 1 room can be use for party and another room can use for guilds.
    //= ---- timeout feature to prevent player owns the room indefinitely,
    //=      by create a new account and sit/@at'ing inside overnight.
    //= ---- can disable mvp/boss summon via configuration and becomes a branch room script.
    //= ---- a double check to prevent players rent all the rooms for himself.
    //= 1.0a
    //= ---- fix a critial bug that the time count too fast -_-"
    //= 1.1
    //= ---- added item cost to rent or to summon
    //= ---- added a config to limit summoning per session
    //= ---- added flood control option
    //= 1.2
    //= ---- rewrite the waitingroom counter
    //= ---- optimize the script in a way can add custom summon group
    //= ---- add config to kill the monsters if the room just being left empty
    //= ---- add GM can kick room in use
    //= ---- add able to spawn in numbers
    //= ---- add limitspawn can configure to negative to limit spawn in that group instead of individual one
    //= 1.3
    //= ---- fix chatroom countdown issue due to rev13269
    //= ---- fix a bug if 2 people rent a room at same time, the later 1 will get the room
    //= ---- add a feature so the GM can know how long the room has rented or abandoned
    //= 1.4
    //= ---- update with new mvp and mini bosses
    //= ---- fix an exploit if server allow to use @mail, player can send item/zeny away to prevent item/zeny deletion when registering the room
    //= ---- players die inside mvp room shouldn't lose exp
    //= 1.4a
    //= ---- fix this to use in rathena
    //========================================================
    
    //	This is the shop for this Branch room IF you already enable it. Can sell whatever things you want.
    -	shop	MVP room#branch	-1,604:100000,12103:1000000
    
    
    
    -	script	MVP Summoner	-1,{
    	goto L_Start;
    
    OnInit:
    	getmapxy .@map$, .@x, .@y, BL_NPC;
    	if ( .@map$ == "" ) {
    
    //	Config ---------------------------------------------------------------------------------------
    
    	// Time for rent a room IN MINUTES. When time out, players inside the room will kick out. Do Not set this as 0
    	set .timeout, 60;
    	// if the room left empty for # minutes, will be treated as give up the room. Do Not set this as 0
    	set .nobodygiveup, 5;
    
    	// NOTE : The script only search item OR zeny. if you specify item amount, then it will ask for the item. If item amount is 0, then it will ask for zeny.
    
    	// the cost to rent a room
    	set .rentitemid, 674; // item id use for rent a room - 674 - mithil coin
    	set .rentitemamount, 0; // amount of items to rent a room
    	set .rentcost, 10000000; // otherwise, zeny cost to rent a room
    
    	// limit each room can only summon 1 monster at a time. (only the Summoning option)
    	// Turn it off (0) means the player can summon a lot of monsters as long as the player has enough zeny/item. High rate server players love the room with a lot MVPs
    	// Turn it on (1) means the player have to kill existing monster before can summon a new one. Low rate server player prefer to take out MVP 1 by 1
    	set .floodcontrol, 0;
    
    	// if .floodcontrol is turn off, your players might experience lag if they summoned too many MVPs
    	// so what is the maximum input to limit your players summon too many ?
    	set .inputlimit, 30;
    
    	// If the room has left over monsters while nobody in the room and the room not give up yet, shall we kill monsters in empty room ?
    	set .killmonster, 1; // Default is yes
    
    	//	Options menu setting for MVP Summoner NPC.
    	set .@menu[0], 1; // Turn Heal option On/Off
    	set .@menu[1], 1; // Turn Group 1 summons On/Off -> MVP
    	set .@menu[2], 1; // Turn Group 2 summons On/Off -> mini boss
    	set .@menu[3], 0; // Turn Group 3 summons On/Off
    	set .@menu[4], 0; // Turn Group 4 summons On/Off
    	set .@menu[5], 0; // Turn Group 5 summons On/Off
    	set .@menu[6], 0; // Turn Group 6 summons On/Off
    	set .@menu[7], 0; // Turn Group 7 summons On/Off
    	set .@menu[8], 0; // Turn Group 8 summons On/Off
    	set .@menu[9], 0; // Turn Group 9 summons On/Off
    	set .@menu[10], 0; // Sell shop items options On/Off ( shop npc above )
    
    	//	set respawn point when they leave the room. Obviously warp to the Private MVP Room Warper npc
    	set .respawnmap$, "prontera"; // Note : "SavePoint" does NOT work
    	set .respawnx, 156;
    	set .respawny, 191;
    
    	// The minimum GM level can kick a room in use
    	set .gmlvlkick, 80;
    
    	// .limitspawn in previous revision changed to .grouplimit .
    	// it is for limit each monster spawn per session, prevent them only killing same monster again and again
    	// Now you can configure one group has limited summon, and another group has unlimited summon
    	// Tips: if you server has an insane custom MVP, you can put your custom mob to Group 3~9 with insane item cost, and limit only 1 summon per session
    	// .grouplimit use amount, means if group1limit set to 10, then each session can only summon up to 10 amount of that kind of monster. 0 is unlimited
    
    	// ---------
    	// Group 1 -> MVP
    	// ---------
    	set .group1name$, "MVP"; // Group 1 name
    	set .group1itemid, 674; // item id use for summon any Group 1 monster - 674 - mithil coin
    	set .group1itemamount, 0; // amount of items to summon a Group 1 monster
    	set .group1cost, 10000000; // if no item is specify, zeny cost to summon a Group 1 monster
    	set .group1limit, 0; // limit of summon of Group 1 monster per session, prevent them only killing same monster again and again
    	setarray .group1id,
    		1511,//	Amon Ra
    		1647,// Assassin Cross Eremes
    		1785,//	Atroce
    		1630,//	Bacsojin
    		1039,//	Baphomet
    		1874,//	Beelzebub
    		1272,//	Dark Lord
    		1719,//	Datale
    		1046,//	Doppelgangger
    		1389,//	Dracula
    		1112,//	Drake
    		1115,//	Eddga
    		1418,//	Evil Snake Lord
    		1871,//	Fallen Bishop
    		1252,//	Garm
    		1768,//	Gloom Under Night
    		1086,//	Golden Thief Bug
    		1885,//	Gopinich
    		1649,// High Priest Magaleta
    		1651,// High Wizard Katrinn
    		1832,//	Ifrit
    		1492,//	Incantation Samurai
    		1734,//	Kiel D-01
    		1251,//	Knight of Windstorm
    		1779,//	Ktullanux
    		1688,//	Lady Tanee
    		1646,// Lord Knight Seyren
    		1373,//	Lord of Death
    		1147,//	Maya
    		1059,//	Mistress
    		1150,//	Moonlight Flower
    		1087,//	Orc Hero
    		1190,//	Orc Lord
    		1038,//	Osiris
    		1157,//	Pharaoh
    		1159,//	Phreeoni
    		1623,//	RSX 0806
    		1650,// Sniper Shecil
    		1583,//	Tao Gunka
    		1708,//	Thanatos
    		1312,//	Turtle General
    		1751,//	Valkyrie Randgris
    		1685,// Vesper
    		1648,// Whitesmith Harword
    		1917,// Wounded Morroc
    		1658;//	Ygnizem
    
    	// ---------
    	// Group 2 -> mini boss
    	// ---------
    	set .group2name$, "Mini-Boss"; // Group 2 name
    	set .group2itemid, 674; // item id use for summon any Group 2 monster - 674 - mithil coin
    	set .group2itemamount, 0; // amount of items to summon a Group 2 monster
    	set .group2cost, 5000000; // if no item is specify, zeny cost to summon a Group 2 monster
    	set .group2limit, 0; // limit of summon of Group 2 monster per session, prevent them only killing same monster again and again
    	setarray .group2id,
    		1096,// Angeling
    		1388,// Archangeling
    		1795,// Bloody Knight
    		1830,// Bow Guardian
    		1839,// Byorgue
    		1309,// Cat O' Nine Tail
    		1283,// Chimera
    		1302,// Dark Illusion
    		1198,// Dark Priest
    		1582,// Deviling
    		1091,// Dragon Fly
    		1093,// Eclipse
    		1205,// Executioner
    		1783,// Galion
    		1592,// Gangster
    		1120,// Ghostring
    		1259,// Gryphon
    		1720,// Hydro
    		1090,// Mastering
    		1289,// Maya Purple
    		1262,// Mutant Dragon
    		1203,// Mysteltainn
    		1870,// Necromancer
    		1295,// Owl Baron
    		1829,// Sword Guardian
    		1204,// Tirfing
    		1089,// Toad
    		1092,// Vagabond Wolf
    		1765;// Valkyrie
    
    	// ---------
    	// Group 3
    	// ---------
    	set .group3name$, "Poring-Family"; // Group 3 name
    	set .group3itemid, 674; // item id use for summon any Group 3 monster - 12109 - Poring box
    	set .group3itemamount, 0; // amount of items to summon a Group 3 monster
    	set .group3cost, 1000000; // if no item is specify, zeny cost to summon a Group 3 monster
    	set .group3limit, 0; // limit of summon of Group 3 monster per session, prevent them only killing same monster again and again
    	setarray .group3id,
    		1002,// Poring
    		1113,// Drops
    		1031,// Poporing
    		1242,// Marin
    		1062,// Santa Poring
    		1613,// Metaling
    		1784,// Stapo
    		1090,// Mastering
    		1096,// Angeling
    		1120,// Ghostring
    		1582,// Deviling
    		1388,// Arc Angeling
    		1502;// Pori Pori
    
    	// ---------
    	// Group 4
    	// ---------
    	set .group4name$, ""; // Group 4 name
    	set .group4itemid, 0; // item id use for summon any Group 4 monster
    	set .group4itemamount, 0; // amount of items to summon a Group 4 monster
    	set .group4cost, 0; // if no item is specify, zeny cost to summon a Group 4 monster
    	set .group4limit, 0; // limit of summon of Group 4 monster per session, prevent them only killing same monster again and again
    	setarray .group4id,
    		1001,
    		1002;
    
    	// ---------
    	// Group 5
    	// ---------
    	set .group5name$, ""; // Group 5 name
    	set .group5itemid, 0; // item id use for summon any Group 5 monster
    	set .group5itemamount, 0; // amount of items to summon a Group 5 monster
    	set .group5cost, 0; // if no item is specify, zeny cost to summon a Group 5 monster
    	set .group5limit, 0; // limit of summon of Group 5 monster per session, prevent them only killing same monster again and again
    	setarray .group5id,
    		1001,
    		1002;
    
    	// ---------
    	// Group 6
    	// ---------
    	set .group6name$, ""; // Group 6 name
    	set .group6itemid, 0; // item id use for summon any Group 6 monster
    	set .group6itemamount, 0; // amount of items to summon a Group 6 monster
    	set .group6cost, 0; // if no item is specify, zeny cost to summon a Group 6 monster
    	set .group6limit, 0; // limit of summon of Group 6 monster per session, prevent them only killing same monster again and again
    	setarray .group6id,
    		1001,
    		1002;
    
    	// ---------
    	// Group 7
    	// ---------
    	set .group7name$, ""; // Group 7 name
    	set .group7itemid, 0; // item id use for summon any Group 7 monster
    	set .group7itemamount, 0; // amount of items to summon a Group 7 monster
    	set .group7cost, 0; // if no item is specify, zeny cost to summon a Group 7 monster
    	set .group7limit, 0; // limit of summon of Group 7 monster per session, prevent them only killing same monster again and again
    	setarray .group7id,
    		1001,
    		1002;
    
    	// ---------
    	// Group 8
    	// ---------
    	set .group8name$, ""; // Group 8 name
    	set .group8itemid, 0; // item id use for summon any Group 8 monster
    	set .group8itemamount, 0; // amount of items to summon a Group 8 monster
    	set .group8cost, 0; // if no item is specify, zeny cost to summon a Group 8 monster
    	set .group8limit, 0; // limit of summon of Group 8 monster per session, prevent them only killing same monster again and again
    	setarray .group8id,
    		1001,
    		1002;
    
    	// ---------
    	// Group 9
    	// ---------
    	set .group9name$, ""; // Group 9 name
    	set .group9itemid, 0; // item id use for summon any Group 9 monster
    	set .group9itemamount, 0; // amount of items to summon a Group 9 monster
    	set .group9cost, 0; // if no item is specify, zeny cost to summon a Group 9 monster
    	set .group9limit, 0; // limit of summon of Group 9 monster per session, prevent them only killing same monster again and again
    	setarray .group9id,
    		1001,
    		1002;
    
    //	Config Ends ------------------------------------------------------------------------
    
    		if ( .timeout == 0 ) set .timeout, 60;
    		if ( .nobodygiveup == 0 ) set .nobodygiveup, 5;
    		if ( .inputlimit < 1 ) set .inputlimit, 1;
    
    		if ( .rentitemid && .rentitemamount ) {
    			if ( getitemname(.rentitemid) == "null" ) {
    				debugmes "Private MVP Room: Rent a room is using invalid item id.";
    			}
    		}
    		set .@i, 1;
    		while ( .@i <= 9 ) {
    			if ( .@menu[.@i] && getd(".group"+ .@i +"itemid") && getd(".group"+ .@i +"itemamount") ) {
    				if ( getitemname( getd(".group"+ .@i +"itemid") ) == "null" ) {
    					debugmes "Private MVP Room: Group no. "+ .@i +" is using invalid item id.";
    				}
    			}
    			set .@i, .@i +1 ;
    		}
    		set .menu$, ( (.@menu[0])?"Heal":"" )+":"+( (.@menu[1])?"Summon "+ .group1name$:"" )+":"+( (.@menu[2])?"Summon "+ .group2name$:"" )+":"+( (.@menu[3])?"Summon "+ .group3name$:"" )+":"+( (.@menu[4])?"Summon "+ .group4name$:"" )+":"+( (.@menu[5])?"Summon "+ .group5name$:"" )+":"+( (.@menu[6])?"Summon "+ .group6name$:"" )+":"+( (.@menu[7])?"Summon "+ .group7name$:"" )+":"+( (.@menu[8])?"Summon "+ .group8name$:"" )+":"+( (.@menu[9])?"Summon "+ .group9name$:"" )+":"+( (.@menu[10])?"Buy branches":"" )+":Leave this room:Give up this room";
    
    		set .@i, 1;
    		while ( .@i <= 9 ) {
    			setd ".group"+ .@i +"idsize", getarraysize( getd(".group"+ .@i +"id") );
    			if ( .@menu[.@i] && getd(".group"+ .@i +"limit") <= 0 ) {
    				set .@j, 0;
    				while ( .@j < getd(".group"+ .@i +"idsize") ) {
    					setd ".group"+ .@i +"menu$", getd(".group"+ .@i +"menu$") + getmonsterinfo( getd(".group"+ .@i +"id["+ .@j +"]"), 0) +":";
    					set .@j, .@j +1 ;
    				}
    			}
    			set .@i, .@i +1 ;
    		}
    	}
    	else {
    		sleep 1;
    		mapannounce .@map$, "Admin has refresh the server, please register the room again.", 1;
    		mapwarp .@map$, .respawnmap$, .respawnx, .respawny;
    	}
    	end;
    
    L_Start: // I hate gotos ... but ...
    	set .@dif, strnpcinfo(2);
    	if ( .remind[.@dif] == 0 ) {
    		set .remind[.@dif], 1;
    		initnpctimer;
    	}
    	mes "[MVP Summoner]";
    	mes "Hi, what can I do for you ?";
    	next;
    	switch ( select(.menu$) ) {
    		case 1:
    			mes "[MVP Summoner]";
    			if ( mobcount("this","") > 0 ) {
    				mes "I cannot offer heal service when there are monsters around.";
    				close;
    			}
    			sc_end sc_stone;
    			sc_end sc_slowdown;
    			sc_end sc_freeze;
    			sc_end sc_sleep;
    			sc_end sc_curse;
    			sc_end sc_silence;
    			sc_end sc_confusion;
    			sc_end sc_blind;
    			sc_end sc_bleeding;
    			sc_end sc_decreaseagi;
    			sc_end sc_poison;
    			sc_end sc_hallucination;
    			sc_end sc_stripweapon;
    			sc_end sc_striparmor;
    			sc_end sc_striphelm;
    			sc_end sc_stripshield;
    			sc_end sc_changeundead;
    			sc_end sc_orcish;
    			sc_end sc_berserk;
    			sc_end sc_ske;
    			sc_end sc_swoo;
    			sc_end sc_ska;
    			percentheal 100,100;
    			specialeffect2 7;
    			mes "You have completely healed.";
    			close;
    		default:
    			set .@group, @menu -1;
    			if ( .floodcontrol && mobcount("this","") > 0 ) {
    				mes "[MVP Summoner]";
    				mes "I cannot summon another monster when there are monsters around.";
    				close;
    			}
    			else if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    				mes "[MVP Summoner]";
    				mes "The cost to summon a "+ getd(".group"+ .@group +"name$") +" is "+ getd(".group"+ .@group +"itemamount") +" "+ getitemname( getd(".group"+ .@group +"itemid") ) +".";
    				if ( getd(".group"+ .@group +"limit") < 0 )
    					mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    				next;
    			}
    			else if ( getd(".group"+ .@group +"cost") ) {
    				mes "[MVP Summoner]";
    				mes "The cost to summon a "+ getd(".group"+ .@group +"name$") +" is "+ callfunc("int__", getd(".group"+ .@group +"cost") ) +" zeny.";
    				if ( getd(".group"+ .@group +"limit") < 0 )
    					mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    				next;
    			}
    			else if ( getd(".group"+ .@group +"limit") < 0 ) {
    				mes "[MVP Summoner]";
    				mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    				next;
    			}
    			if ( getd(".group"+ .@group +"limit") < 0 && getd(".group"+ .@group +"limit"+ .@dif) >= ~getd(".group"+ .@group +"limit")+1 ) {
    				mes "[MVP Summoner]";
    				mes "I'm sorry, but you can't summon any more monster for this group.";
    				close;
    			}
    			else if ( getd(".group"+ .@group +"limit") > 0 ) {
    				for ( set .@i, 0; .@i < getd(".group"+ .@group +"idsize"); set .@i, .@i +1 )
    					set .@menu$, .@menu$ +( ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") >= getd(".group"+ .@group +"limit") )?"^999999":"^000000" )+ getmonsterinfo( getd(".group"+ .@group +"id["+ .@i +"]"), 0) +" ("+ ( ( getd(".group"+ .@group +"limit") - getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") <= 0 )?0:( getd(".group"+ .@group +"limit") - getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") ) ) +")"+":";
    				set .@menu, select(.@menu$) -1;
    			}
    			else
    				set .@menu, select( getd(".group"+ .@group +"menu$") ) -1;
    			mes "[MVP Summoner]";
    			if ( .floodcontrol == 0 && .inputlimit > 1 ) {
    				mes "Input an amount of monsters to summon.";
    				next;
    				input .@amount;
    				if ( .@amount == 0 ) close;
    				else if ( .@amount > .inputlimit )
    					set .@amount, .inputlimit;
    				mes "[MVP Summoner]";
    			}
    			else
    				set .@amount, 1;
    			if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    				if ( countitem( getd(".group"+ .@group +"itemid") ) < getd(".group"+ .@group +"itemamount") * .@amount ) {
    					mes "You don't have enough "+ getitemname( getd(".group"+ .@group +"itemid") ) +" to summon a "+ getd(".group"+ .@group +"name$") +".";
    					close;
    				}
    			}
    			else if ( getd(".group"+ .@group +"cost") ) {
    				if ( zeny < getd(".group"+ .@group +"cost") * .@amount ) {
    					mes "You don't have enough zeny to summon a "+ getd(".group"+ .@group +"name$") +".";
    					close;
    				}
    			}
    			if ( .floodcontrol && mobcount("this","") > 0 ) {
    				mes "I cannot summon another monster when there are monsters around.";
    				close;
    			}
    			else if ( getd(".group"+ .@group +"limit") > 0 ) {
    				if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") >= getd(".group"+ .@group +"limit") ) {
    					mes "I'm sorry, but you already summoned that monster too much. Try summon another.";
    					close;
    				}
    				else if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount > getd(".group"+ .@group +"limit") ) {
    					mes "The amount you input is more than the limit you can summon. Try reduce the amount.";
    					close;
    				}
    			}
    			else if ( getd(".group"+ .@group +"limit") < 0 ) {
    				if ( getd(".group"+ .@group +"limit"+ .@dif) >= ~getd(".group"+ .@group +"limit")+1 ) {
    					mes "I'm sorry, but you can't summon any more monster for this group.";
    					close;
    				}
    				else if ( getd(".group"+ .@group +"limit"+ .@dif) + .@amount > ~getd(".group"+ .@group +"limit")+1 ) {
    					mes "The amount you input is more than the limit you can summon. Try reduce the amount.";
    					close;
    				}
    			}
    			mes "Summoning "+ .@amount +" "+ getmonsterinfo( getd(".group"+ .@group +"id["+ .@menu +"]"), 0) +".";
    			mes "Ok, get ready ?";
    			close2;
    			if ( .floodcontrol && mobcount("this","") > 0 ) end;
    			if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    				if ( countitem( getd(".group"+ .@group +"itemid") ) < getd(".group"+ .@group +"itemamount") * .@amount ) end;
    				delitem getd(".group"+ .@group +"itemid"), getd(".group"+ .@group +"itemamount") * .@amount;
    			}
    			else if ( getd(".group"+ .@group +"cost") ) {
    				if ( zeny < getd(".group"+ .@group +"cost") * .@amount ) end;
    				set zeny, zeny - getd(".group"+ .@group +"cost") * .@amount;
    			}
    			if ( getd(".group"+ .@group +"limit") > 0 ) {
    				if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount > getd(".group"+ .@group +"limit") ) end;
    				setd ".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]", getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount;
    			}
    			else if ( getd(".group"+ .@group +"limit") < 0 ) {
    				if ( getd(".group"+ .@group +"limit"+ .@dif) + .@amount > ~getd(".group"+ .@group +"limit")+1 ) end;
    				setd ".group"+ .@group +"limit"+ .@dif, getd(".group"+ .@group +"limit"+ .@dif) + .@amount;
    			}
    			monster "this", 0, 0, "--ja--", getd(".group"+ .@group +"id["+ .@menu +"]"), .@amount;
    			end;
    		case 11:
    			if ( mobcount("this","") > 0 ) {
    				mes "[MVP Summoner]";
    				mes "I cannot offer this service when there are monsters around.";
    				close;
    			}
    			close2;
    			callshop "MVP room#branch", 0;
    			end;
    		case 12:
    			mes "[MVP Summoner]";
    			mes "Are you sure you want to leave this room ?";
    			mes "If this room left empty for more than "+ .nobodygiveup +" minutes, you lost ownership for this room.";
    			if ( select( "Yes:No") == 2 ) close;
    			warp .respawnmap$, .respawnx, .respawny;
    			end;
    		case 13:
    			mes "[MVP Summoner]";
    			getmapxy .@map$, .@x, .@y, BL_NPC;
    			if ( getmapusers(.@map$) > 1 ) {
    				mes "There are still some players in this room. Make sure you are the last member in this room to use this option.";
    				close;
    			}
    			mes "Are you sure you want to give up this room ?";
    			if ( .rentcost )
    				mes "You will need to pay again to enter this room.";
    			next;
    			if ( select( "Yes:No" ) == 2 ) close;
    			warp .respawnmap$, .respawnx, .respawny;
    			set .remaintime[.@dif], -1;
    			end;
    	}
    	close;
    
    OnEnterMap:
    	set .@dif, strnpcinfo(2);
    	set .remind[.@dif], 0;
    	for ( set .@i, 1; .@i <= 9; set .@i, .@i +1 )
    		deletearray getd(".group"+ .@i +"limit"+ .@dif), getd(".group"+ .@i +"idsize");
    	set .nobodycounter[.@dif], 0;
    	getmapxy .@map$, .@x, .@y, BL_NPC;
    	set .starttime[.@dif], gettimetick(2);
    	do {
    		set .remaintime[.@dif], .timeout * 60 + .starttime[.@dif] - gettimetick(2);
    		set .@hour[.@dif], .remainTime[.@dif] / 3600 ;
    		set .@min[.@dif], .remainTime[.@dif] % 3600 / 60 ;
    		set .@sec[.@dif], .remainTime[.@dif] % 3600 % 60 ;
    		delwaitingroom strnpcinfo(0);
    		waitingroom "Time Left = "+( ( .@hour[.@dif] )?( .@hour[.@dif] +":"):"" )+( ( .@min[.@dif] < 10 )?"0"+ .@min[.@dif]: .@min[.@dif] )+":"+( ( .@sec[.@dif] < 10 )?"0"+ .@sec[.@dif]: .@sec[.@dif] ), 0;
    		if ( getmapusers(.@map$) )
    			set .nobodycounter[.@dif], 0;
    		else {
    			set .nobodycounter[.@dif], .nobodycounter[.@dif] +1 ;
    			if ( .nobodycounter[.@dif] > .nobodygiveup * 60 ) break;
    		}
    		sleep 995;
    	} while ( .remaintime[.@dif] > 1 );
    	set .remaintime[.@dif], 0;
    	delwaitingroom "MVP Summoner#"+ .@dif;
    	mapwarp .@map$, .respawnmap$, .respawnx, .respawny;
    	end;
    
    OnTimer100:
    	stopnpctimer;
    	npctalk "Hi ~ the bubble above my head is the countdown for using this room.";
    	sleep 2000;
    	npctalk "Sometimes, I can skip for about 1 second in the countdown.";
    	sleep 3000;
    	npctalk "That is because the server is experiencing minor lag problem.";
    	sleep 3000;
    	npctalk "So, don't complain about me cheated for the countdown ~ ^.^";
    	sleep 3000;
    	npctalk "Have a nice day ~";
    	end;
    }
    
    prontera,148,174,5	script	Private MVP Room	621,{
    	mes "[Private MVP Room]";
    	mes "Please select a private MVP room.";
    	if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") )
    		mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ getvariableofnpc(.rentitemamount, "MVP Summoner") +" "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +".";
    	else if ( getvariableofnpc(.rentcost, "MVP Summoner") )
    		mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ callfunc("int__", getvariableofnpc(.rentcost, "MVP Summoner") ) +" zeny.";
    	else
    		mes "You can only use the room for only "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes.";
    	mes " ";
    	for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
    		if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") ) {
    			switch ( .type[.@i] ) {
    				case 1: set .@color$, "^EE8800"; break;
    				case 2: set .@color$, "^70CC11"; break;
    				case 3: set .@color$, "^0000FF"; break;
    				default: set .@color$, "^000000";
    			}
    			mes "Room #"+ .@i +" = "+ .@color$ + .whoinuse$[.@i] +"^000000";
    		}
    	}
    	next;
    	set .@room, select("MVP Room 1 ["+ getmapusers("06guild_01") +"]",
    		"MVP Room 2 ["+ getmapusers("06guild_02") +"]",
    		"MVP Room 3 ["+ getmapusers("06guild_03") +"]",
    		"MVP Room 4 ["+ getmapusers("06guild_04") +"]",
    		"MVP Room 5 ["+ getmapusers("06guild_05") +"]",
    		"MVP Room 6 ["+ getmapusers("06guild_06") +"]",
    		"MVP Room 7 ["+ getmapusers("06guild_07") +"]",
    		"MVP Room 8 ["+ getmapusers("06guild_08") +"]");
    	if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {
    		if ( .inuseid[.@room] == getcharid(.type[.@room]) ) {
    			if ( getvariableofnpc(.killmonster,"MVP Summoner") && getmapusers("06guild_0"+ .@room) == 0 )
    				killmonsterall "06guild_0"+ .@room;
    			warp "06guild_0"+ .@room, 0,0;
    			end;
    		} else {
    			mes "[Private MVP Room]";
    			switch ( .type[.@room] ) {
    				case 1: set .@color$, "^EE8800Party "; break;
    				case 2: set .@color$, "^70CC11Guild "; break;
    				case 3: set .@color$, "^0000FFPlayer ";
    			}
    			mes "This room is reserved for ";
    			mes .@color$ + .whoinuse$[.@room] +"^000000 .";
    			if ( getgmlevel() < getvariableofnpc(.gmlvlkick,"MVP Summoner") ) {
    				mes "Please select another.";
    				close;
    			}
    			mes " ";
    			mes "Currently there are "+ getmapusers("06guild_0"+ .@room) +" players";
    			mes "in that room.";
    			set .@remaintime, getvariableofnpc(.remaintime[.@room],"MVP Summoner");
    			mes "It still has "+( .@remaintime /60 )+"mn "+( .@remaintime %60 )+"s left.";
    			set .@nobodycounter, getvariableofnpc(.nobodycounter[.@room],"MVP Summoner");
    			if ( .@nobodycounter )
    				mes "And have left empty for "+( .@nobodycounter /60 )+"mn "+( .@nobodycounter %60 )+"s.";
    			mes "Kick them ?";
    			next;
    			if ( select ( "No:Yes" ) == 1 ) close;
    			set getvariableofnpc(.remaintime[.@room],"MVP Summoner"), -1;
    			mes "[Private MVP Room]";
    			mes "Room#"+ .@room +" is empty now.";
    			close;
    		}
    	}
    	mes "[Private MVP Room]";
    	if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
    		if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
    			mes "You don't have enough "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";
    			close;
    		}
    	}
    	else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
    		if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) {
    			mes "You don't have enough zeny to rent a room.";
    			close;
    		}
    	}
    	mes "You reserve this room for ...";
    	next;
    	set .@type, select("For my party members", "For my guild members", "For personal account use" );
    	if ( getcharid(.@type) == 0 ) {
    		mes "[Private MVP Room]";
    		mes "You do not own a "+( (.@type == 1)?"Party":"Guild" )+".";
    		close;
    	}
    	else if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
    		if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
    			mes "You don't have enough "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";
    			close;
    		}
    	}
    	else if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {
    		mes "[Private MVP Room]";
    		mes "I'm sorry, somebody else has already register this room faster than you.";
    		close;
    	}
    	for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
    		if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") && .@type == .type[.@i] && getcharid(.@type) == .inuseid[.@i] ) {
    			mes "[Private MVP Room]";
    			mes "You already rented Room#"+ .@i +". Use that room instead.";
    			close;
    		}
    	}
    	set .type[.@room], .@type;
    	set .inuseid[.@room], getcharid(.@type);
    	set .whoinuse$[.@room], strcharinfo( (.@type == 3)?0:.@type );
    	if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
    		if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) end;
    		delitem getvariableofnpc(.rentitemid, "MVP Summoner"), getvariableofnpc(.rentitemamount, "MVP Summoner");
    	}
    	else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
    		if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) end;
    		set zeny, zeny - getvariableofnpc(.rentcost, "MVP Summoner");
    	}
    	warp "06guild_0"+ .@room, 0,0;
    	killmonsterall "06guild_0"+ .@room;
    	donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";
    	end;
    }
    
    06guild_01,49,49,4	duplicate(MVP Summoner)	MVP Summoner#1	116
    06guild_02,49,49,4	duplicate(MVP Summoner)	MVP Summoner#2	116
    06guild_03,49,49,4	duplicate(MVP Summoner)	MVP Summoner#3	116
    06guild_04,49,49,4	duplicate(MVP Summoner)	MVP Summoner#4	116
    06guild_05,49,49,4	duplicate(MVP Summoner)	MVP Summoner#5	116
    06guild_06,49,49,4	duplicate(MVP Summoner)	MVP Summoner#6	116
    06guild_07,49,49,4	duplicate(MVP Summoner)	MVP Summoner#7	116
    06guild_08,49,49,4	duplicate(MVP Summoner)	MVP Summoner#8	116
    
    
    06guild_01	mapflag	nowarpto
    06guild_02	mapflag	nowarpto
    06guild_03	mapflag	nowarpto
    06guild_04	mapflag	nowarpto
    06guild_05	mapflag	nowarpto
    06guild_06	mapflag	nowarpto
    06guild_07	mapflag	nowarpto
    06guild_08	mapflag	nowarpto
    06guild_01	mapflag	nomemo
    06guild_02	mapflag	nomemo
    06guild_03	mapflag	nomemo
    06guild_04	mapflag	nomemo
    06guild_05	mapflag	nomemo
    06guild_06	mapflag	nomemo
    06guild_07	mapflag	nomemo
    06guild_08	mapflag	nomemo
    06guild_01	mapflag	noteleport
    06guild_02	mapflag	noteleport
    06guild_03	mapflag	noteleport
    06guild_04	mapflag	noteleport
    06guild_05	mapflag	noteleport
    06guild_06	mapflag	noteleport
    06guild_07	mapflag	noteleport
    06guild_08	mapflag	noteleport
    06guild_01	mapflag	nosave	SavePoint
    06guild_02	mapflag	nosave	SavePoint
    06guild_03	mapflag	nosave	SavePoint
    06guild_04	mapflag	nosave	SavePoint
    06guild_05	mapflag	nosave	SavePoint
    06guild_06	mapflag	nosave	SavePoint
    06guild_07	mapflag	nosave	SavePoint
    06guild_08	mapflag	nosave	SavePoint
    06guild_01	mapflag	nopenalty
    06guild_02	mapflag	nopenalty
    06guild_03	mapflag	nopenalty
    06guild_04	mapflag	nopenalty
    06guild_05	mapflag	nopenalty
    06guild_06	mapflag	nopenalty
    06guild_07	mapflag	nopenalty
    06guild_08	mapflag	nopenalty

     

     

  7. 31 minutes ago, qabakrall said:

    So I have bug with this 49+69 skill point, all points I can learn all 118 point in Lord Knight without swordsman 's 49 point))) so I can use not 69 point at advance, I can use all points)) and that's  problem,  I can't fix this 49 skill point on swordman

     

    Change this : 'No'

    9 hours ago, qabakrall said:

    // When set to yes, forces skill points gained from 1st class to be put into 1st class
    // skills, and forces novice skill points to be put into the basic skill. (Note 1)
    player_skillup_limit: yes

  8. 1 hour ago, qabakrall said:

    Script is working fine BUT, I'm with novice after select direct Advance class, They gived me 99/70 and skillpoints. With any class i can direct use all skills in advance skill tree, without using 49 skill point in 1st class ( high merchant or high mage ) - Tested with all classes NOT GM))) Normal Char with 0 group_id... that's problem)

     

    you mean you want instant job change but without allskills ??

    new_1-2,98,112,6	script	Job Creater	123,{
    	mes "[ Instant Job Changer ]";
    	if ( Class != 0 ) {
    		mes "You must be a novice."; 
    		close;
    	}
    	if ( BaseLevel != 1 ) {
    		mes "You must Lv. 1."; 
    		close;
    	}
    	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;
    		if ( .JobList[.@i] == 23 || .JobList[.@i] == 4046 || .JobList[.@i] == 4047 ) SkillPoint = 110-1;
    		else if ( .JobList[.@i] == 24 || .JobList[.@i] == 25 ) SkillPoint = 60-1;
    		else SkillPoint = 130-1;
    		if ( .Allskills == 1 ) {
    			atcommand "@allskills";
    			callfunc "F_GetPlatinumSkills";
    			SkillPoint = 0;
    		}
    		percentheal 100,100;
    	}
    	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;
    	.AllSkills = 0;			// All Skills (0 = disable || 1 = enable)
    	waitingroom "Job Changer",0;
    
    	.@size = getarraysize( .JobList );
    	for( .@i = 0; .@i < .@size; .@i++ )
    		.Menu$ = .Menu$ + jobname( .JobList[.@i] )+":";
    	end;
    }
    

     

  9. 7 hours ago, qabakrall said:

    but after take level 9 basic skill novice i can take or jump to skill high wizard..
    With All Instant Job Master's) Anyone know how i can fix this??

    can you explain more, I checked your script everything is fine

    try to use player account, do not use GM account

  10. //===== rAthena Script =======================================
    //= Healer
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.1
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Basic healer script.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Aligned coordinates with @go.
    //============================================================
    
    -	script	Healer	-1,{
    
    	.@Price = 0;		// Zeny required for heal
    	.@Buffs = 1;		// Also buff players? (1: yes / 0: no)
    	.@Delay = 0;		// Heal delay, in seconds
    	.@cost_item = 7403;	// Cost Item
    
    	if (@HD > gettimetick(2))
    		end;
    	if (.@Price) {
    		message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",.@Price) + " Zeny.";
    		if (Zeny < .@Price)
    			end;
    		if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2)
    			end;
    		Zeny -= .@Price;
    	}
    	if (.@Buffs) {
    		if (countitem (.@cost_item) > 0) {
    			sc_start SC_STRFood,20*60000,5;
    			sc_start SC_AGIFood,20*60000,5;
    			sc_start SC_VITFood,20*60000,5;
    			sc_start SC_INTFood,20*60000,5;
    			sc_start SC_DEXFood,20*60000,5;
    			sc_start SC_LUKFood,20*60000,5;
    		}
    		specialeffect2 EF_INCAGILITY;
    		sc_start SC_INCREASEAGI,240000,10;
    		specialeffect2 EF_BLESSING;
    		sc_start SC_BLESSING,240000,10;
    	}
    	specialeffect2 EF_HEAL2;
    	percentheal 100,100;
    	if (.@Delay)
    		@HD = gettimetick(2) + .@Delay;
    	end;
    }
    
    
    // Duplicates
    //============================================================
    alberta,25,240,6	duplicate(Healer)	Healer#alb	909
    aldebaran,135,118,6	duplicate(Healer)	Healer#alde	909
    amatsu,200,79,4	duplicate(Healer)	Healer#ama	909
    ayothaya,207,169,6	duplicate(Healer)	Healer#ayo	909
    comodo,184,158,6	duplicate(Healer)	Healer#com	909
    einbech,57,36,6	duplicate(Healer)	Healer#einbe	909
    einbroch,57,202,6	duplicate(Healer)	Healer#einbr	909
    geffen,115,72,6	duplicate(Healer)	Healer#gef	909
    gonryun,156,122,6	duplicate(Healer)	Healer#gon	909
    hugel,89,150,6	duplicate(Healer)	Healer#hug	909
    izlude,121,150,6	duplicate(Healer)	Healer#izl	909	//Pre-RE: (125,118)
    jawaii,250,139,4	duplicate(Healer)	Healer#jaw	909
    lighthalzen,152,100,6	duplicate(Healer)	Healer#lhz	909
    louyang,226,103,4	duplicate(Healer)	Healer#lou	909
    manuk,272,144,6	duplicate(Healer)	Healer#man	909
    mid_camp,203,289,6	duplicate(Healer)	Healer#mid	909
    moc_ruins,72,164,4	duplicate(Healer)	Healer#moc	909
    morocc,153,97,6	duplicate(Healer)	Healer#mor	909
    moscovia,220,191,4	duplicate(Healer)	Healer#mos	909
    niflheim,212,182,5	duplicate(Healer)	Healer#nif	909
    payon,179,106,4	duplicate(Healer)	Healer#pay	909
    prontera,162,193,4	duplicate(Healer)	Healer#prt	909
    rachel,125,116,6	duplicate(Healer)	Healer#rac	909
    splendide,201,153,4	duplicate(Healer)	Healer#spl	909
    thor_camp,249,74,4	duplicate(Healer)	Healer#thor	909
    umbala,105,148,3	duplicate(Healer)	Healer#umb	909
    veins,217,121,4	duplicate(Healer)	Healer#ve	909
    xmas,143,136,4	duplicate(Healer)	Healer#xmas	909
    yuno,164,45,4	duplicate(Healer)	Healer#yuno	909
    
    // Duplicates (Renewal)
    //============================================================
    brasilis,194,221,6	duplicate(Healer)	Healer#bra	909
    dewata,195,187,4	duplicate(Healer)	Healer#dew	909
    dicastes01,201,194,4	duplicate(Healer)	Healer#dic	909
    ecl_in01,45,60,4	duplicate(Healer)	Healer#ecl	909
    malangdo,132,114,6	duplicate(Healer)	Healer#mal	909
    malaya,227,204,6	duplicate(Healer)	Healer#ma	909
    mora,55,152,4	duplicate(Healer)	Healer#mora	909
    

     

    Cost Item : 7403

  11. On 7/20/2022 at 12:25 PM, BabaVoss said:

    Hello sir pride, the announcer works now. but i have a debug error

    when an mvp is killed inside branch room, it shows this error message

    image.png.ca992c0f2bc50f5116a5a8885d89632c.png

     

    Try this :

    // =================== MVP KILL ===============
    // ====== MVP will drop an item only ==========
    // ====== at specific maps. ===================
    // ====== if players are on a party ===========
    // ====== item will be given randomly =========
    // ====== to any online party members =========
    // ============== by : pajodex ================
    // ==== Additional Comments: ==================
    // 1.0 - Initial release (MVP Kill standalone)
    // 1.1 - used setarray function to optimize script
    // 1.2 - Added modified Euphy MVP ladder
    //		 slight rework on the script
    // 1.3 - Fixed on reset function (Report by: celeron0134)
    // ============================================
    -	script	mvp_kill	-1,{
    
    OnInit:
    	setarray .p_rwd, 607,1;			// Party reward <item>,<amount>
    	setarray .s_rwd, 607,1;			// Solo reward <item>,<amount>
    	.chance = 50;				// Drop rate chances %
    	.gm = 10;				// Prevents gm level and above to trigger the event
    
    	// MVP Map list
    	setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02","gld_dun01_2","ba_lib","ba_lost","niflheim","ba_2whs01","ba_pw03","ba_pw01","ba_pw02";
    	end;
    
    OnNPCKillEvent:
    //	if (getgmlevel() >= .gm ) end;		// If gm = event wont happen
    	if ( getmonsterinfo( killedrid, MOB_MVPEXP )) {
    		for (.@a = 0; .@a < getarraysize(.t_maps$); .@a++) {
    			if ( strcharinfo(3) == instance_mapname("06guild_01") ) end; 
    			if ( strcharinfo(3) == instance_mapname("force_1-1") ) end;
    			if ( strcharinfo(3) == .t_maps$[.@a]) { 
    				if ( getcharid(1) ) {
    					getpartymember getcharid(1), 1;
    					getpartymember getcharid(1), 2;
    					for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
    						if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { 
    							.@partymemberaid[.@c] = $@partymemberaid[.@i];
    							.@c++;
    						}
    					}
    					if (rand(100) < .chance) getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[ rand( .@c ) ];
    					mapannounce .t_maps$[.@a],"[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
    				} else {
    					if (rand(100) < .chance) getitem .s_rwd[0], .s_rwd[1];
    					mapannounce .t_maps$[.@a],"[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all;
    				}
    				MVPKills = MVPKills+1;
    				dispbottom "---------------------------------------------------";
    				dispbottom "You killed a total of "+MVPKills+" MVP"+((MVPKills == 1)?"":"s")+".";
    				dispbottom "---------------------------------------------------";
    				end;
    			}
    		}
    		if ( getcharid(1) ) {
    			mapannounce .t_maps$[.@a],"[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
    		} else {
    			mapannounce .t_maps$[.@a], "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all;
    		}
    		end;
    	}
    }
    
    prontera,151,178,5	script	MVP Ladder#Euphy	891,{
    	mes "[ Rank MVP ]";
    	mes "Hello.";
    	mes "What are you doing here";
    	next;
    	switch(select("Check Ranking.",	"My stats.",( getgmlevel() >= 99 ) ? "RESET":"","Nothing...")) {
    		case 1:
    			mes "[ Rank MVP ]";
    			query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'MVPKills' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 20",.@cid,.@value);
    			for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1) {
    				query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$);
    				set .@name$[.@i], .@j$;
    			}
    			if (!getarraysize(.@cid))
    				mes "The rankings are empty.";
    			else {
    				for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1)
    					mes "["+(.@i+1)+"] "+.@name$[.@i]+" ~ "+.@value[.@i]+" kills";
    			}
    			break;
    		case 2:
    			mes "[ Rank MVP ]";
    			mes "You killed "+((MVPKills)?"^0055FF"+MVPKills:"no")+"^000000 MVP"+((MVPKills == 1)?".":"s.");
    			break;
    		case 3:
    			if ( select( "Confirm","Cancel" ) == 1 ) {
    				query_sql("UPDATE `char_reg_num` SET `value` = '0' WHERE `key` ='MVPKills'");
    				addrid(0);
    				MVPKills = 0;
    			}
    			break;
    		default:		
    			end;
    	}
    	end;
    	
    OnInit:
    	waitingroom "MVP LADDER!",0;
    	end;
    }

     

  12. Chaange this :

    On 7/7/2022 at 5:39 PM, kalabasa said:
    	if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
    		set .@bWeaponUp,1;
    	if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
    		set .@bArmorUp,1;

     

    To this :

    	if ( countitem(6230) > 0 )
    		set .@bWeaponUp,1;
    	if ( countitem(6234) > 0 )
    		set .@bArmorUp,1;

     

  13. askald,159,183,1	script	Private Branch Room	100,{
    	setarray $@maps$[1], "new_1-3", "06guild_01", "06guild_02", "06guild_03", "06guild_04", "06guild_05", "06guild_06";
    	for (.@b = 1; .@b < getarraysize($@maps$); .@b++) {
    		if (.@b == 1) {
    			set .@menu$, .@menu$  + "Public - "+((getmapusers($@maps$[.@b]) >= 30)?"^CD0000Closed^000000 ["+getmapusers($@maps$[.@b])+"]":"^007700Open^000000 ["+getmapusers($@maps$[.@b])+"]")+":";
    		} else {
    			set .@menu$, .@menu$  + "Private["+(.@b-1)+"] - "+((getmapusers(""+$@maps$[.@b]+"") >= 5)?"^CD0000Closed^000000 ["+getmapusers($@maps$[.@b])+"]":"^007700Open^000000 ["+getmapusers($@maps$[.@b])+"]")+":";
    		}
    	}
    	if (select(.@menu$)) {
    		callfunc "GRfunction",$@maps$[@menu],@menu;
    	}
    }
    
    function	script	GRfunction	{
    	if (getmapusers(getarg(0)) <= 30 && getarg(1) == 1) {
    		if (!getmapusers(getarg(0))) {
    			.@map$ = getarg(0);
    			killmonsterall ""+.@map$;
    		}
    		warp getarg(0),0,0;
    		end;
    	}
    	if (!getmapusers(getarg(0))){
    		mes "[ Private Branch Room ]";
    		mes "Input a new password.";
    		input($password$[getarg(1)]);
    		next;
    		.@map$ = getarg(0);
    		killmonsterall ""+.@map$;
    		warp getarg(0),0,0;
    		end;
    	}
    	if (getmapusers(getarg(0)) < 5 && getarg(1) != 1) {
    		mes "[ Private Branch Room ]";
    		mes "This room is password protected please input the password now.";
    		input(@name$);
    		if (@name$ == $password$[getarg(1)]) {
    			mes " ";
    			mes "^0000FFCorrect^000000 !";
    			close2;
    			warp getarg(0),0,0;
    			end;
    		} else {
    			mes " ";
    			mes "^FF0000Incorrect^000000 !";
    			close;
    		}
    	} else {
    		mes "I'm sorry this room is full.";
    		close;
    	}
    	end;
    }
    
    06guild_01	mapflag	nowarpto
    06guild_02	mapflag	nowarpto
    06guild_03	mapflag	nowarpto
    06guild_04	mapflag	nowarpto
    06guild_05	mapflag	nowarpto
    06guild_06	mapflag	nowarpto
    06guild_07	mapflag	nowarpto
    06guild_08	mapflag	nowarpto
    06guild_01	mapflag	nomemo
    06guild_02	mapflag	nomemo
    06guild_03	mapflag	nomemo
    06guild_04	mapflag	nomemo
    06guild_05	mapflag	nomemo
    06guild_06	mapflag	nomemo
    06guild_07	mapflag	nomemo
    06guild_08	mapflag	nomemo
    06guild_01	mapflag	noteleport
    06guild_02	mapflag	noteleport
    06guild_03	mapflag	noteleport
    06guild_04	mapflag	noteleport
    06guild_05	mapflag	noteleport
    06guild_06	mapflag	noteleport
    06guild_07	mapflag	noteleport
    06guild_08	mapflag	noteleport
    06guild_01	mapflag	nosave	SavePoint
    06guild_02	mapflag	nosave	SavePoint
    06guild_03	mapflag	nosave	SavePoint
    06guild_04	mapflag	nosave	SavePoint
    06guild_05	mapflag	nosave	SavePoint
    06guild_06	mapflag	nosave	SavePoint
    06guild_07	mapflag	nosave	SavePoint
    06guild_08	mapflag	nosave	SavePoint
    06guild_01	mapflag	nopenalty
    06guild_02	mapflag	nopenalty
    06guild_03	mapflag	nopenalty
    06guild_04	mapflag	nopenalty
    06guild_05	mapflag	nopenalty
    06guild_06	mapflag	nopenalty
    06guild_07	mapflag	nopenalty
    06guild_08	mapflag	nopenalty

     

    • Love 1
×
×
  • Create New...