Jump to content

BreakDancer

Members
  • Posts

    34
  • Joined

  • Last visited

Posts posted by BreakDancer

  1. 9 hours ago, Start_ said:

    use bonus_script to handle droprate per rebirth. (See doc/script_command)

    ty for replay , can u give me example ?

    3 hours ago, BreakDancer said:

    ty for replay , can u give me example ?

    now i test it with an item to equip :

      - Id: 2742
        AegisName: Lucky_Clip
        Name: Lucky Clip
        Type: Armor
        Locations:
          Both_Accessory: true
        Trade:
          Override: 100
          NoDrop: true
          NoTrade: true
          NoSell: true
          NoCart: true
          NoStorage: true
          NoGuildStorage: true
          NoMail: true
          NoAuction: true
        Script: |
          bonus2 bDropAddRace,RC_All,10000;

    but drop rate doesn't affect with this item.

  2. 1 hour ago, Chaos92 said:

    if you @item, does the information shows or still unknown item ?

    Check your iteminfo.lua/lub

    yes information shown if i use @item

    items already in my iteminfo and i can get it in game .. 

    but still shown as unknown item with 0 price

     

    6 hours ago, Start_ said:

    It's show apple because your iteminfo have no data.

    no it's on my iteminfo and i can get the item with @item 

  3. Hello,

    I wanna edit my cash shop items so I go for import/item_cash_db.txt and edit it

    but in game some items doesn't show up it just appear an apple with name ( unknown item )

    I'm sure all item id is on my item_db and I use @item to check all of them

    that's my item_cash_db.txt

    // Cash Shop Database
    // Contains the items sold in the ingame cash shop.
    //
    // Structure of Database:
    // Type,ItemID,Price
    //
    // Type:
    //    0: New
    //    1: Hot
    //    2: Limited
    //    3: Rental
    //    4: Gear
    //    5: Buff
    //    6: Heal
    //    7: Other
    //    8: Sale
    //
    // Price:
    //    Item cost, in cash points (#CASHPOINTS).
    0,12411,30
    0,12411,30
    0,12412,30
    0,12412,30
    0,16267,250
    0,16267,250
    0,16268,250
    0,16268,250
    0,12903,50
    0,12903,50
    0,12904,50
    0,12900,50
    0,12906,50
    0,12907,50
    0,12908,50
    0,13989,5
    0,14004,10
    0,5370,350
    
    
    

     

  4. //===== rAthena Script =======================================
    //= Hunting Missions
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: =========================================
    //= Random hunting missions.
    //= Rewards are based on quest difficulty.
    //= 
    //= NOTE: Requires SQL mob database.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Small improvements and fixes.
    //= 1.2 Added party support and replaced blacklists with an
    //=     SQL query, both thanks to AnnieRuru.
    //= 1.3 Re-added a blacklist adapted for the SQL query.
    //= 1.3a Added mission reset options.
    //= 1.3b Function updates.
    //= 1.4 Check for deleted characters, thanks to AnnieRuru.
    //=     Syntax updates and style cleaning.
    //============================================================
    
    prontera,155,184,4	script	Hunting Missions	653,{
    function Chk;
    	mes "[Hunting Missions]";
    	mes "Hello, " + strcharinfo(0) + "!";
    	if (!#Mission_Delay) {
    		next;
    		mes "[Hunting Missions]";
    		mes "I can't find any records...";
    		mes "You must be new here!";
    		emotion ET_HUK;
    		next;
    		callsub Mission_Info;
    		emotion ET_GO;
    		#Mission_Delay = 1;
    		close;
    	}
    	mes rand(2) ? "Working hard, as always..." : "Not slacking, I hope...";
    	mes "Is there anything I can help";
    	mes "you with?";
    	mes " ";
    	mes "^777777~ You've completed " + callfunc("F_InsertPlural",Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000";
    	next;
    	switch(select(
    		((!Mission0) ? " ~ New Mission::" : ": ~ Mission Status: ~ Abandon Mission") +
    		": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000"
    	)) {
    	case 1:
    		mes "[Hunting Missions]";
    		if (#Mission_Count) {
    			mes "You've started a mission";
    			mes "on another character.";
    			if (!@hm_char_del_check) {  // check for deleted character
    				query_sql("SELECT 1 FROM `char_reg_num` WHERE `key` = 'Mission0' AND `char_id` IN(SELECT `char_id` FROM `char` WHERE `account_id` = " + getcharid(3) + ")", .@i);
    				if (!.@i) {
    					next;
    					mes "[Hunting Missions]";
    					mes "I can't seem to find any records";
    					mes "for that character, though...";
    					mes "One moment, please.";
    					emotion ET_SCRATCH;
    					#Mission_Count = 0;
    				}
    				@hm_char_del_check = 1;
    			}
    			close;
    		}
    		if (#Mission_Delay > gettimetick(2) && .Delay) {
    			mes "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission.";
    			close;
    		}
    		mes "You must hunt:";
    		query_sql("SELECT ID FROM `" + .mob_db$ + "` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT " + .Quests, .@mob);
    		for (.@i = 0; .@i < .Quests; .@i++) {
    			setd "Mission" + .@i, .@mob[.@i];
    			setd "Mission" + .@i +"_", 0;
    		}
    		#Mission_Count = rand(.Count[0], .Count[1]);
    		callsub Mission_Status;
    		next;
    		mes "[Hunting Missions]";
    		mes "Report back when";
    		mes "you've finished.";
    		mes "Good luck!";
    		close;
    	case 2:
    		mes "[Hunting Missions]";
    		mes "Mission status:";
    		callsub Mission_Status;
    		close;
    	case 3:
    		mes "[Hunting Missions]";
    		mes "Do you really want to";
    		mes "abandon your mission?";
    		if (.Reset < 0 && .Delay)
    			mes "Your delay time will not be reset.";
    		else if (.Reset > 0)
    			mes "It will cost " + callfunc("F_InsertComma",.Reset) + " Zeny.";
    		next;
    		switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {
    		case 1:
    			if (.Reset > 0) {
    				if (Zeny < .Reset) {
    					mes "[Hunting Missions]";
    					mes "You don't have enough";
    					mes "Zeny to drop this mission.";
    					emotion ET_SORRY;
    					close;
    				}
    				Zeny -= .Reset;
    				emotion ET_MONEY;
    			}
    			mes "[Hunting Missions]";
    			mes "Alright, I've dropped";
    			mes "your current mission.";
    			specialeffect2 EF_STORMKICK4;
    			for (.@i = 0; .@i < .Quests; .@i++) {
    				setd "Mission"+.@i, 0;
    				setd "Mission"+.@i+"_", 0;
    			}
    			#Mission_Count = 0;
    			if (.Reset < 0 && .Delay)
    				#Mission_Delay = gettimetick(2) + (.Delay * 3600);
    			close;
    		case 2:
    			mes "[Hunting Missions]";
    			mes "I knew you were kidding!";
    			mes "Keep up the good work.";
    			emotion ET_SMILE;
    			close;
    		}
    	case 4:
    		callsub Mission_Info;
    		close;
    	case 5:
    		mes "[Hunting Missions]";
    		mes "You have ^0055FF" + #Mission_Points + "^000000 Mission Points.";
    		mes "Use them well!";
    		callshop "mission_shop",1;
    		npcshopattach "mission_shop";
    		end;
    	case 6:
    		mes "[Hunting Missions]";
    		mes "The top hunters are:";
    		query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num` WHERE `key` = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5", .@id, .@name$, .@val);
    		for (.@i = 0; .@i < 5; .@i++)
    			mes "  [Rank " + (.@i+1) + "]  " + ((.@name$[.@i] == "") ? "^777777none" : "^0055FF" + .@name$[.@i]+"^000000 : ^FF0000" + .@val[.@i] + " pt.") + "^000000";
    		close;
    	case 7:
    		mes "[Hunting Missions]";
    		mes "Nothing? Okay...";
    		emotion ET_SCRATCH;
    		close;
    	}
    	end;
    
    Mission_Status:
    	@f = 0;
    	deletearray .@j[0], getarraysize(.@j);
    	for (.@i = 0; .@i < .Quests; .@i++) {
    		.@j[.@i] = getd("Mission" + .@i);
    		.@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]);
    		.@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]);
    		.@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]);
    		mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count) + strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")^000000";
    	}
    
    	// Reward formulas:
    	.@Mission_Points = 3 + (.@j[.Quests] / .Quests / 6);
    	.@Base_Exp = #Mission_Count * .@j[.Quests+1] / 5;
    	.@Job_Exp = #Mission_Count * .@j[.Quests+2] / 5;
    	.@Zeny = #Mission_Count * .Quests * .@j[.@i] * .Modifier[2];
    
    	next;
    	mes "[Hunting Missions]";
    	mes "Mission rewards:";
    	mes " > Mission Points: ^0055FF" + .@Mission_Points + "^000000";
    	mes " > Base Experience: ^0055FF" + callfunc("F_InsertComma",.@Base_Exp) + "^000000";
    	mes " > Job Experience: ^0055FF" + callfunc("F_InsertComma",.@Job_Exp) + "^000000";
    	mes " > Zeny: ^0055FF" + callfunc("F_InsertComma",.@Zeny) + "^000000";
    	if (@f) {
    		@f = 0;
    		return;
    	}
    	next;
    	mes "[Hunting Missions]";
    	mes "Oh, you're done!";
    	mes "Good work.";
    	mes "Here's your reward.";
    	emotion ET_BEST;
    	specialeffect2 EF_ANGEL;
    	specialeffect2 EF_TRUESIGHT;
    	#Mission_Points += .@Mission_Points;
    	BaseExp += .@Base_Exp;
    	JobExp += .@Job_Exp;
    	Zeny += .@Zeny;
    	for (.@i = 0; .@i < .Quests; .@i++) {
    		setd "Mission" + .@i, 0;
    		setd "Mission" + .@i+"_", 0;
    	}
    	#Mission_Count = 0;
    	if (.Delay)
    		#Mission_Delay = gettimetick(2) + (.Delay * 3600);
    	Mission_Total++;
    	if (Mission_Total == 1)
    		query_sql("INSERT INTO `char_reg_num` (`char_id`,`key`,`index`,`value`) VALUES (" + getcharid(0) + ",'Mission_Total','0',1)");
    	else
    		query_sql("UPDATE `char_reg_num` SET `value` = " + Mission_Total + " WHERE `char_id` = " + getcharid(0) + " AND `key` = 'Mission_Total'");
    	close;
    
    Mission_Info:
    	mes "[Hunting Missions]";
    	mes "If you so choose, I can assign";
    	mes "you a random hunting quest.";
    	mes "Some are easier than others, but";
    	mes "the rewards increase with difficulty.";
    	next;
    	mes "[Hunting Missions]";
    	mes "Missions points are shared";
    	mes "amongst all your characters.";
    	if (.Delay)
    		mes "Delay time is, too.";
    	mes "You can't take missions on";
    	mes "multiple characters at once.";
    	next;
    	mes "[Hunting Missions]";
    	mes "You can start a quest";
    	mes (.Delay ? "every " + ((.Delay == 1) ? "hour." : .Delay + " hours.") : "whenever you want.");
    	mes "That's everything~";
    	return;
    
    function Chk {
    	if (getarg(0) < getarg(1)) {
    		@f = 1;
    		return "^FF0000";
    	} else
    		return "^00FF00";
    }
    
    OnBuyItem:
    	@cost = 0;
    	for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++)
    		for (.@j = 0; .@j < getarraysize(.Shop); .@j += 2)
    			if (@bought_nameid[.@i] == .Shop[.@j]) {
    				set @cost, @cost + (.Shop[.@j+1] * @bought_quantity[.@i]);
    				break;
    			}
    	mes "[Hunting Missions]";
    	if (@cost > #Mission_Points)
    		mes "You don't have enough Mission Points.";
    	else {
    		for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++) {
    			getitem @bought_nameid[.@i], @bought_quantity[.@i];
    			dispbottom "Purchased " + @bought_quantity[.@i] + "x " + getitemname(@bought_nameid[.@i]) + ".";
    		}
    		#Mission_Points -= @cost;
    		mes "Deal completed.";
    		emotion ET_MONEY;
    	}
    	@cost = 0;
    	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
    	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
    	close;
    
    OnNPCKillEvent:
    	if (!getcharid(1) || !.Party) {
    		if (!#Mission_Count || !Mission0) end;
    		for (.@i = 0; .@i < .Quests; .@i++) {
    			if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission" + .@i))) {
    				if (getd("Mission" + .@i + "_") < #Mission_Count) {
    					dispbottom "[Hunting Mission] Killed " + (set(getd("Mission" + .@i + "_"),getd("Mission" + .@i + "_") + 1)) +
    					           " of " + #Mission_Count + " " + strmobinfo(1,killedrid) + ".";
    					end;
    				}
    			}
    		}
    	} else if (.Party) {
    		.@mob = killedrid;
    		getmapxy(.@map1$,.@x1,.@y1,UNITTYPE_PC);
    		getpartymember getcharid(1),1;
    		getpartymember getcharid(1),2;
    		for (.@i = 0; .@i < $@partymembercount; .@i++) {
    			if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {
    				set .@Mission_Count, getvar(#Mission_Count, $@partymembercid[.@i]);
    				set .@Mission0, getvar(Mission0, $@partymembercid[.@i]);
    				set .@HP, readparam(HP, $@partymembercid[.@i]);
    
    				if (.@Mission_Count && .@Mission0 && .@HP > 0) {
    					getmapxy(.@map2$,.@x2,.@y2,UNITTYPE_PC);
    					if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {
    						for (.@j = 0; .@j < .Quests; .@j++) {
    							.@my_mob_id = getvar( getd("Mission"+.@j),$@partymembercid[.@i] );
    							.@my_count = getvar( getd("Mission"+.@j+"_"), $@partymembercid[.@i] );
    							if (strmobinfo(1,.@mob) == strmobinfo(1,.@my_mob_id)) {
    								if (.@my_count < .@Mission_Count) {
    									setd "Mission"+.@j+"_", (.@my_count+1), $@partymembercid[.@i];
    									dispbottom "[Hunting Mission] Killed " + (.@my_count+1) + " of " + .@Mission_Count + " " + strmobinfo(1,.@mob) + ".", 0x777777, $@partymembercid[.@i];
    									break;
    								}
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    	end;
    
    OnInit:
    	.Delay = 3;            // Quest delay, in hours (0 to disable).
    	.Quests = 4;            // Number of subquests per mission (increases rewards).
    	.Party = 3;             // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)
    	.Reset = -1;            // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)
    	setarray .Count[0],     // Min and max monsters per subquest (increases rewards).
    		40,70;
    	setarray .Modifier[0],  // Multipliers for Base Exp, Job Exp, and Zeny rewards.
    		getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
    	.mob_db$ =              // Table name of SQL mob database
    		(checkre(0))?"mob_db_re":"mob_db";
    	setarray .Shop[0],      // Reward items: <ID>,<point cost> (about 10~20 points per hunt).
    	2899,500,18830,1000,18780,3000,20762,2500,19095,500,5376,350,7619,100,7620,100,6438,350,6439,350,12908,50,12903,50,12904,50,12905,50,12906,50,12907,50,7776,100,12412,50,14297,100;
    	.Blacklist$ =           // Blacklisted mob IDs.
    		"1038,1039,1046,1059,1062,1078,1079,1080,1081,1082,"+
    		"1083,1088,1085,1086,1087,1089,1090,1091,1092,1093,"+
    		"1096,1108,1112,1115,1120,1142,1147,1150,1157,1159,1182,"+
    		"1183,1185,1186,1190,1200,1203,1204,1205,1212,1220,"+
    		"1221,1230,1232,1234,1235,1245,1244,1250,1251,1252,"+
    		"1259,1262,1268,1270,1272,1283,1288,1289,1290,1293,1294,"+
    		"1295,1296,1298,1299,1300,1301,1302,1303,1304,1305,"+
    		"1306,1307,1308,1309,1311,1312,1313,1320,1324,1325,"+
    		"1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,"+
    		"1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,"+
    		"1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,"+
    		"1356,1357,1358,1359,1360,1361,1362,1363,1373,1388,"+
    		"1395,1396,1397,1398,1399,1418,1492,1497,1502,1511,1515,"+
    		"1582,1583,1588,1618,1623,1626,1630,1634,1635,1636,"+
    		"1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1648,"+
    		"1649,1650,1651,1647,1658,1676,1677,1678,1679,1681,"+
    		"1685,1686,1688,1704,1705,1706,1707,1708,1709,1710,"+
    		"1711,1712,1719,1720,1721,1732,1734,1750,1751,1754,"+
    		"1755,1765,1768,1779,1783,1785,1792,1796,1797,1802,"+
    		"1812,1815,1816,1829,1830,1831,1832,1839,1845,1846,"+
    		"1870,1871,1873,1874,1876,1877,1878,1885,1894,1905,"+
    		"1906,1908,1909,1910,1911,1913,1914,1917,1918,1919,"+
    		"1920,1921,1929,1934,1941,1946,1951,1953,1954,1956,1957,"+
    		"1958,1959,1960,1961,1966,1974,1980,1990,1991,1992,";
    
    	npcshopdelitem "mission_shop",512;
    	for (.@i = 0; .@i < getarraysize(.Shop); .@i += 2)
    		npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];
    	end;
    }
    -	shop	mission_shop	-1,512:-1
    

    try this :

     

  5. hi all ,,,

    i need rewards script

    give prizes for all online players

    and give only 1 time for the same ip "if can "

     

    and i talk to npc "with my gm " to give prize and i put id,amount

     

    any one can give me this script ?

     

    and thanks :D

  6. hi all i need to turn this script to auto event can any one help me ?

     

    here : 

    /*====================================================================================*/
    /*==============================Monster Invasion Event================================*/
    /*====================================================================================*/
    /*==============================By:Night Terror=======================================*/
    /*====================================================================================*/
    /*===Inspired by: Automated MVP Event by xMachina / Acetito and Emistry===============*/
    /*====================================================================================*/
    /*=== v0.9 ================================================English Version============*/
    
    
    function	script	F_IsMapValid	{ 				//Check if Map is set
    	if(getarg(0)!="")
    		return "["+getarg(0)+"]";
    	else
    		return "";
    }
    
    function	script	F_IsItemValid	{				//Check if Item is set
    	if(getarg(0)!=0)
    		return "["+getitemname(getarg(0))+" x "+$@Amount+"]";
    	else
    		return "";
    }
    
    function	script	F_IsMobValid	{				//Check if Monster is set
    	if(getarg(0)!=0)
    		return "["+getmonsterinfo(getarg(0),0) + " x " +getarg(1)+"]";
    	else
    		return "";
    }
    
    function	script	F_ChooseMob	{					//Monster & Monster amount list 
    
    	
    	switch(select("Weaker Monsters:Stronger Monsters")){
    	
    		Case 1:
    		
    		set @Monsters[getarg(0)],$@Monsteridstrong[select("Arclouse:Baba Yaga:Baby Leopard:Baphomet Jr.:Bloody Butterfly:Dark Frame:Dragon Tail:Evil Cloud Hermit:Giant Whisper:Grand Peco:Greatest General:High Orc:Hill Wind:Hyegun:Hylozoist:Li Me Mang Ryang / Jing Guai:Live Peach Tree / Enchanted Peach Tree:Marine Sphere:Miyabi Ningyo / Miyabi Doll:Myst Case:Nereid:Orc Archer:Orc Baby:Raydric Archer:Remover:Sea Otter:Side Winder:Stone Shooter:Wanderer:Wind Ghost:Wooden Golem")]; 
    
    		break;
    			
    		
    		Case 2:	
    		
    		set @Monsters[getarg(0)],$@Monsteridweak[select("Am Mut:Ancient Mummy:Firelock Soldier:Armeyer Dinze:Bloody Knight:Bloody Murderer:Bow Guardian:Cat o' Nine Tails:Dark Illusion:Eremes Guile:Errende Ebecee:Howard Alt-Eisen:Ice Titan:Imp:Kavach Icarus:Knight of Abyss:Loli Ruri:Margaretha Sorin:Mutant Dragonoid:Observation:Owl Duke:Ragged Zombie:Laurell Weinder:Retribution:Sword Guardian:The Paper:Tirfing/Ogretooth:Wickebine Tres:Wicked Nymph:Zealotus:Zombie Prisoner")]; 
    
    		break;
    	}	
    	for (set @i,0; @i < 7; set @i,@i+1)	{			//Check if Monster is already chosen
    		if (@Monsters[getarg(0)]==@Monsters[@i] && @i!=getarg(0)){ 			//Clean Monster from list if Monster is already chosen
    			set @Monsters[getarg(0)],0;
    		}
    	}
    	
    	input @MobAmount[getarg(0)],20,300;
    
    	return 0;
    
    
    }
    
    function	script	F_ClearGarbagez	{				//Clean previous inputs
    
    	cleararray @Monsters,0,7;
    	cleararray @MobAmount,0,7;
    	set $@ItemID,0;
    	set $@Map$,"prontera";
    	return 0;
    }
    
    
    prontera,139,173,5	script	Monster Invasion Helper::MonsterInvasion	402,{ 
    
    
    	//define monsterlist and itemlist
    	setarray $@Monsteridweak[1],1301,1297,1403,1654,1268,1507,1830,1307,1302,1635,1655,1636,1777,1837,1656,1219,1502,1637,1262,1700,1320,1865,1657,1702,1829,1375,1204,1653,1416,1200,1197;
    	setarray $@Monsteridstrong[1],1194,1882,1415,1101,1408,1260,1321,1412,1186,1369,1277,1213,1680,1512,1510,1517,1410,1142,1404,1249,1255,1189,1686,1276,1682,1323,1037,1495,1208,1236,1497;
    	setarray $@Healitem[1],521,12321,505,548,547,12123,12299,12320,12016,607;
    	setarray $@Useableitem[1],662,12354,12257,12704,14598,12212,12135,14607,12268,12128,12266,12310,14601,12019;
    	
    	if(getgmlevel() < 20) 				//check if GM Lvl is high enough
    		warp "prontera",156,184;
    		
    	if($@Event!=0){									//Check if Event is already running
    		mes "[ ^0C66C0Event Helper^000000 ]";
    		mes "Event is already running!";
    		close;
    	}
    	set $@Map$,"prontera";				//default map=prontera
    	while(1)
    	{
    		mes "[ ^0C66C0Event Helper^000000 ]";
    		mes "Please choose your parameters.";
    		next;
    		switch(select("Item "+callfunc("F_IsItemValid",$@ItemID)+":Map " +callfunc("F_IsMapValid",$@Map$)+":Monster:Clear current values:Start Event!")){
    			Case 1:   
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "The reward for the top 10 killers.";
    					mes "The player with the most kills gets the amount of items you choose, the following ranks get 10% less per rank.";
    					next;
    					message strcharinfo(0),"Please choose the item!";
    					switch(select("RMS Healing Items:RMS Useable Items")){			//Item & Item amount list, sorted like rms does
    						Case 1:
    						
    							set $@ItemID,$@Healitem[select("Aloe Leaflet:Arunafeltz Desert Sandwich:Blue Potion:Cheese:White Slim Potion:Honey Pastry:Status Resist Potion:Poison Bottle:Schwartzwald Pine Jubilee:Speed Potion:Yggdrasil Berry")]; 	
    		
    							break;
    						Case 2:
    											
    							set $@ItemID,$@Useableitem[select("Authoritative Badge:Buche De Noel:Cold Medicine:Elixir of Life:Ghostring Scroll:Giant Fly Wing:Green Ale:Luxurious Western Food:Rainbow Cake:Royal Cooking Kit:Sesame Pastry:Spray Of Flowers:Tyr's Blessing:Holy Egg")];
    						
    							break;
    							
    					}
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "Choose the desired amount, 1 is the minimum, 100 the maximum.";
    					next;
    					input $@Amount,1,100;								
    					break;						
    			Case 2:
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "Please choose your desired map!";
    					mes "Obviously, the map has to be valid.";    
    					next;
    					do{								//Loop to ensure valid map
    					input $@Map$;}while(getmapmobs($@Map$) == -1 );
    					break;
    			Case 3:
    			
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "Which monster do you want to spawn?";
    					mes "You can spawn 7 different monsters.";
    					mes "Minimum monster amount is 20, maximum is 300";
    					next;
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "Please choose the desired monster and the desired amount.";
    					next;
    					//Stay in menu until player has chosen all monsters he wants
    					while(1){
    						set @ChosenPlace,select("Mob 1 - "+callfunc("F_IsMobValid",@Monsters[0],@MobAmount[0])+":Mob 2 - "+callfunc("F_IsMobValid",@Monsters[1],@MobAmount[1])+":Mob 3 - "+callfunc("F_IsMobValid",@Monsters[2],@MobAmount[2])+":Mob 4 - "+callfunc("F_IsMobValid",@Monsters[3],@MobAmount[3])+":Mob 5 - "+callfunc("F_IsMobValid",@Monsters[4],@MobAmount[4])+":Mob 6 - "+callfunc("F_IsMobValid",@Monsters[5],@MobAmount[5])+":Mob 7 - "+callfunc("F_IsMobValid",@Monsters[6],@MobAmount[6])+":No more monsters.")-1;
    						
    						if(@ChosenPlace>6) break;
    							callfunc("F_ChooseMob",@ChosenPlace);
    					}
    					break;	
    						
    				
    			Case 4:	
    					callfunc("F_ClearGarbagez");
    					break;
    			Case 5:    
    
    					if( $@Map$ == "" || @Monsters[0] == 0){				//Check if Map and Monsters are set
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "Please check your parameters.";
    					next;
    					break;
    					}
    
    					setarray $@randnum[0],rand(30,60),rand(200,300),rand(450,500),rand(900,1000);
    					mes "[ ^0C66C0Event Helper^000000 ]";
    					mes "The Event has been started!";
    					set $@Event,1;
    					
    
    					close2;
    					announce "Monsters have been sighted at "+$@Map$+"! Keep pushing them back!",bc_all,0xFFFF86;
    					if ($@ItemID != 0)
    					announce "The reward for the best killer will be "+$@Amount+" x "+getitemname($@ItemID)+". Subsequent killers receive 10% less per rank until rank 10." ,bc_all,0xFFFF86;
    					sleep2 2500;
    					announce "The following monsters have been sighted:",bc_all,0xB7D2E9;
    					sleep2 1000;
    					for (set @i,0; @i < 7; set @i,@i+1){				//Spawn Monsters and announce them
    						if(@Monsters[@i]!=0){
    						announce getmonsterinfo(@Monsters[@i],0)+" x "+@MobAmount[@i],bc_all,0xB7D2E9;
    						monster $@Map$,0,0,"--ja--",@Monsters[@i],@MobAmount[@i],strnpcinfo(3)+"::OnMobKill";
    						}
    					}
    
    					end;
    				
    				
    		}
    		
    		
    	}
    			
    	    
    	OnMobKill:	
    		if (mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") <= $@randnum[0] && mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") > 5 || mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") == $@randnum[1] || mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") == $@randnum[2] || mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") == $@randnum[3]) 
    		announce "Only "+mobcount($@Map$,strnpcinfo(3)+"::OnMobKill")+" Monsters left to kill.",bc_all,0xFFFF46;		//announce remaining monsters
    		
    		for(set @i,0; @i < 127; set @i,@i+1){							//Register the killer and add points
    			if($@killer$[@i] == ""){
    					
    				for (set @j,0; @j < 127; set @j,@j+1){
    					if($@killer$[@i]==$@killer$[@j] && $@killer$[@i]!= "")
    						goto Nameexists;			
    				}
    
    				set $@killer$[@i],strcharinfo(0);
    				set $@kills[@i],$@kills[@i]+1;	
    				
    				break;
    			
    			}
    			else if($@killer$[@i] == strcharinfo(0)){
    				Nameexists:
    				set $@kills[@i],$@kills[@i]+1;
    				break;
    			}
    
    		}
    		
    		
    		if(mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") <=5){			//If 5 or less mobs remain: kill all mobs, bubblesort the top 15 killers,announce the top 15 killers and give items (if set) to the Top 10.
    			killmonster $@Map$,"All";
    			announce "Most of the monsters have been defeated!",bc_all,0xFFFF46;
    			sleep2 2000;
    			announce "Our local guards managed to fend the remaining monsters off.",bc_all,0xFFFF46;
    			sleep2 2000;
    			announce "Let's look at the results:",bc_all,0xFFFF46;
    			sleep2 1000;
    			
    			for (set @i,0; @i < 15; set @i,@i+1){						//Do the Bubblesort
    				for (set @j,0; @j < 15; set @j,@j+1){					
    					if ($@kills[@j] < $@kills[@j+1]){					
    						set @tmpkills, $@kills[@j+1];
    						set @tmpkillers$, $@killer$[@j+1];
    						set $@kills[@j+1], $@kills[@j];
    						set $@killer$[@j+1],$@killer$[@j];
    						set $@kills[@j], @tmpkills;
    						set $@killer$[@j], @tmpkillers$;
    					}
    				}
    			 }
    			 
    			for(set @i,0; @i < 15; set @i,@i+1){						//Announce Top 15
    				if($@killer$[@i] != "")
    				announce @i+1+". Place: "+$@killer$[@i]+" with "+$@kills[@i]+" Monsters killed.",bc_all,0xB7D2E9;
    			}	
    			
    			
    			if ($@ItemID != 0){											//Give item if set, 10% less per rank
    				for(set @i,0; @i < 10; set @i,@i+1){
    					if ($@killer$[@i]!=""){	
    						getitem $@ItemID,$@Amount-$@Amount*@i/10,getcharid(3,$@killer$[@i]);	
    						
    					}
    				}
    			}
    			
    			
    			logmes "Monster Invasion complete, the Top 1 Killer is " + $@killer$[0] + " with "+$@kills[0]+ " Kills. The reward was " +getitemname($@ItemID)+ " x "+$@Amount+". This was the "+$Invasioncount+". custom Monster Invasion.";
    			set $Invasioncount,$Invasioncount+1;
    			
    			//Clear variables
    			cleararray $@kills[0],0,200;
    			cleararray $@killer$[0],"",200;
    			cleararray $@flag[0],0,10;
    			set $@Event,0; 
    
    		}		
    	
    }
    
     
    
    
    
    
    
    
    
    
    
  7. hi all 

    pls help me i can't write arabic in server

    my server is last rathena vision

    and i use 2013-08-07aRagexe client

     

    my clientinfo.xml

    <?xml version="1.0"
    encoding="euc-kr" ?>
    <clientinfo>
    <servicetype>korea</servicetype>
    <servertype>primary</servertype>
    <connection>
    <display>Ragnarok</display> 
    <balloon>Ragnarok</balloon>    
    <desc>Ragnarok</desc>     
    <address>80.69.77.128</address>     
    <port>6900</port>     
    <version>45</version>     
    <langtype>19</langtype>     
    <registrationweb></registrationweb>     
    <aid>
                  <admin></admin>        
    <yellow></yellow>
          </aid>  
    </connection>
    </clientinfo>
     
    pls help me
×
×
  • Create New...