Jump to content

Kuroe

Members
  • Content Count

    23
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Kuroe


  1. //===== Hercules Script ======================================
    //= Warper
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4b
    //===== Description: =========================================
    //= A complete - but very condensed - warper script.
    //= Some coordinates written by Tekno-Kanix and ToastOfDoom.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Added missing duplicates and fixed coordinates.
    //= 1.2 Added new episodes and simplified functions.
    //= 1.3 Added Renewal checks and Instances menu.
    //=     Aligned coordinates with @go.
    //= 1.4 Added new Guild Dungeons.
    //= 1.4a Slight edits.
    //= 1.4b Added Wolfchev's Laboratory warp.
    //============================================================
    
    -	script	Warper	FAKE_NPC,{
    function Go; function Disp; function Pick; function Restrict;
    
    // --------------------------------------------------
    //	Main Menu:
    // --------------------------------------------------
    
    menu	"Last Warp ^777777["+lastwarp$+"]^000000",-,
    		" ~ Towns",Towns,
    		" ~ Fields",Fields,
    		" ~ Dungeons",Dungeons,
    		" ~ Guild Castles",Castles,
    		" ~ Guild Dungeons",Guild_Dungeons,
    		" ~ Instances",Instances,
    		" ~ Special Areas",Special;
    
    	if (lastwarp$ == "")
    		message strcharinfo(PC_NAME),"You haven't warped anywhere yet.";
    	else
    	mes ("Select payment method");
    	next;
    	switch(select("Zeny","Ticket","Cancel")) {
    	case 1:
    		if (Zeny < 3000) {
    		mes ("Sorry you don't have enough Zeny");
    		close;
    	}
    		warp lastwarp$,lastwarpx,lastwarpy;
    	end;
    	case 2:
    		if (countitem(7227) < 1) {
    		mes ("Sorry you don't have enough TCG Card(s)");
    		close;
    	}
    		delitem 7227,1;
    		warp lastwarp$,lastwarpx,lastwarpy;
    	end;
    	case 3:
    	close;
    }
    
    // ------------------- Functions -------------------
    // * Go("<map>",<x>,<y>);
    //	~ Warps directly to a map.
    //
    // * Disp("<Menu Option>",<first option>,<last option>);
    // * Pick("<map_prefix>"{,<index offset>});
    //	~ Dynamic menu and map selection (auto-numbered).
    //
    // * Disp("<Option 1>:<Option 2>:<etc.>");
    // * Pick("","<map1>","<map2>","<etc.>");
    //	~ Manual menu and map selection (listed).
    //
    // * Restrict("<RE | Pre-RE>"{,<menu option numbers>});
    //	~ Only allows map for Renewal or Pre-Renewal modes.
    //     If menu option numbers are given, only those maps
    //     will be restricted (i.e. not for "Go").
    //
    // Other notes:
    //   ~ Array @c[] holds all (x,y) coordinates.
    //   ~ Use @c[2] EXCEPT when maps begin dynamically
    //	  at 0: use @c[0] and Pick() offset 1.
    // --------------------------------------------------
    
    function Go {
    	mes ("Select payment method");
    	next;
    	switch(select("Zeny","Ticket","Cancel")) {
    	case 1:
    		if (Zeny < 3000) {
    		mes ("Sorry you don't have enough Zeny");
    		close;
    	}
    		Zeny -= 3000;
    		lastwarp$ = getarg(0);
    		lastwarpx = getarg(1,0);
    		lastwarpy = getarg(2,0);
    		warp getarg(0),getarg(1,0),getarg(2,0);
    		end;
    	
    
    	case 2:
    		if (countitem(7227) < 1) {
    		mes ("Sorry you don't have enough TCG Card(s)");
    		close;
    	}
    		delitem 7227,1;
    		lastwarp$ = getarg(0);
    		lastwarpx = getarg(1,0);
    		lastwarpy = getarg(2,0);
    		warp getarg(0),getarg(1,0),getarg(2,0);
    		end;
    	
    
    	case 3:
    	close;
    }
    }
    function Disp {
    	if (getargcount() < 3)
    		@menu$ = getarg(0);
    	else {
    		@menu$ = "";
    		for (.@i = getarg(1); .@i <= getarg(2); .@i++)
    			@menu$ = @menu$+getarg(0)+" "+.@i+":";
    	}
    	return;
    }
    function Pick {
    	.@warp_block = @warp_block;
    	@warp_block = 0;
    	.@select = select(@menu$);
    	if (getarg(0) == "") {
    		.@i = .@select;
    		.@map$ = getarg(.@i);
    	} else {
    		.@i = .@select-getarg(1,0);
    		.@map$ = getarg(0)+((.@i<10)?"0":"")+.@i;
    	}
    	if (.@warp_block & (1<<.@select)) {
    		message strcharinfo(PC_NAME),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal.";
    		end;
    	}
    	.@x = @c[.@i*2];
    	.@y = @c[.@i*2+1];
    	deletearray @c[0],getarraysize(@c);
    	Go(.@map$,.@x,.@y);
    }
    function Restrict {
    	if ((getarg(0) == "RE" && !RENEWAL) || (getarg(0) == "Pre-RE" && RENEWAL)) {
    		if (getarg(1,0)) {
    			@warp_block = 0;
    			for (.@i = 1; .@i < getargcount(); .@i++)
    				@warp_block = @warp_block | (1<<getarg(.@i));
    		} else {
    			message strcharinfo(PC_NAME),"This map is not enabled in "+(RENEWAL?"":"Pre-")+"Renewal.";
    			end;
    		}
    	}
    	return;
    }
    
    // --------------------------------------------------
    	Towns:
    // --------------------------------------------------
    menu	"Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
    		"Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
    		"Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15,
    		"Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20,
    		"Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24,
    		"Mora",T25, "Morroc",T26, "Moscovia",T27, "Nameless Island",T28,
    		"Niflheim",T29, "Payon",T30, "Rachel",T31, "Splendide",T32, "Thor Camp",T33,
    		"Umbala",T34, "Veins",T35, "Yuno",T36;
    
    T1: Go("prontera",155,183);
    T2: Go("alberta",28,234);
    T3: Go("aldebaran",140,131);
    T4: Go("amatsu",198,84);
    T5: Go("ayothaya",208,166);
    T6: Restrict("RE");
    	Go("brasilis",196,217);
    T7: Go("comodo",209,143);
    T8: Restrict("RE");
    	Go("dewata",200,180);
    T9: Restrict("RE");
    	Go("ecl_in01",48,53);
    T10: Go("einbech",63,35);
    T11: Go("einbroch",64,200);
    T12: Restrict("RE");
    	 Go("dicastes01",198,187);
    T13: Go("geffen",119,59);
    T14: Go("gonryun",160,120);
    T15: Go("hugel",96,145);
    T16: Go("izlude",128,(RENEWAL?146:114));
    T17: Go("jawaii",251,132);
    T18: Go("lighthalzen",158,92);
    T19: Go("louyang",217,100);
    T20: Go("xmas",147,134);
    T21: Restrict("RE");
    	 Go("malangdo",140,114);
    T22: Restrict("RE");
    	 Go("malaya",231,200);
    T23: Go("manuk",282,138);
    T24: Go("mid_camp",210,288);
    T25: Restrict("RE");
    	 Go("mora",55,146);
    T26: Go("morocc",156,93);
    T27: Go("moscovia",223,184);
    T28: Go("nameless_n",256,215);
    T29: Go("niflheim",202,174);
    T30: Go("payon",179,100);
    T31: Go("rachel",130,110);
    T32: Go("splendide",201,147);
    T33: Go("thor_camp",246,68);
    T34: Go("umbala",97,153);
    T35: Go("veins",216,123);
    T36: Go("yuno",157,51);
    
    // --------------------------------------------------
    	Fields:
    // --------------------------------------------------
    menu	"Amatsu Fields",F1, "Ayothaya Fields",F2, "Bifrost Fields", F3,
    		"Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F6,
    		"Eclage Fields",F7, "Einbroch Fields",F8, "El Dicastes Fields",F9,
    		"Geffen Fields",F10, "Gonryun Fields",F11, "Hugel Fields",F12,
    		"Lighthalzen Fields",F13, "Louyang Field",F14, "Lutie Field",F15,
    		"Malaya Fields",F16, "Manuk Fields",F17, "Mjolnir Fields",F18,
    		"Moscovia Fields",F19, "Niflheim Fields",F20, "Payon Forests",F21,
    		"Prontera Fields",F22, "Rachel Fields",F23, "Sograt Deserts",F24,
    		"Splendide Fields",F25, "Umbala Fields",F26, "Veins Fields",F27,
    		"Yuno Fields",F28;
    
    F1: setarray @c[2],190,197;
    	Disp("Amatsu Field",1,1); Pick("ama_fild");
    F2: setarray @c[2],173,134,212,150;
    	Disp("Ayothaya Field",1,2); Pick("ayo_fild");
    F3: Restrict("RE");
    	setarray @c[2],193,220,220,187;
    	Disp("Bifrost Field",1,2); Pick("bif_fild");
    F4: Restrict("RE");
    	setarray @c[2],74,32;
    	Disp("Brasilis Field",1,1); Pick("bra_fild");
    F5: Restrict("Pre-RE",5);
    	setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172;
    	Disp("Comodo Field",1,9); Pick("cmd_fild");
    F6: Restrict("RE");
    	setarray @c[2],371,212;
    	Disp("Dewata Field",1,1); Pick("dew_fild");
    F7: Restrict("RE");
    	setarray @c[2],97,314;
    	Disp("Eclage Field",1,1); Pick("ecl_fild");
    F8: Restrict("Pre-RE",2,10);
    	setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200;
    	Disp("Einbroch Field",1,10); Pick("ein_fild");
    F9: Restrict("RE");
    	setarray @c[2],143,132,143,217;
    	Disp("El Dicastes Field",1,2); Pick("dic_fild");
    F10: Restrict("Pre-RE",13,15);
    	 setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185;
    	 Disp("Geffen Field",0,14); Pick("gef_fild",1);
    F11: setarray @c[2],220,227;
    	 Disp("Gonryun Field",1,1); Pick("gon_fild");
    F12: Restrict("Pre-RE",3,7);
    	 setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197;
    	 Disp("Hugel Field",1,7); Pick("hu_fild");
    F13: setarray @c[2],240,179,185,235,240,226;
    	 Disp("Lighthalzen Field",1,3); Pick("lhz_fild");
    F14: setarray @c[2],229,187;
    	 Disp("Louyang Field",1,1); Pick("lou_fild");
    F15: setarray @c[2],115,145;
    	 Disp("Lutie Field",1,1); Pick("xmas_fild");
    F16: Restrict("RE");
    	 setarray @c[2],40,272,207,180;
    	 Disp("Malaya Field",1,2); Pick("ma_fild");
    F17: setarray @c[2],35,236,35,262,84,365;
    	 Disp("Manuk Field",1,3); Pick("man_fild");
    F18: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208;
    	 Disp("Mjolnir Field",1,12); Pick("mjolnir_");
    F19: setarray @c[2],82,104,131,147;
    	 Disp("Moscovia Field",1,2); Pick("mosk_fild");
    F20: setarray @c[2],215,229,167,234;
    	 Disp("Niflheim Field",1,2); Pick("nif_fild");
    F21: Restrict("Pre-RE",5,11);
    	 setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150;
    	 Disp("Payon Forest",1,11); Pick("pay_fild");
    F22: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164;
    	 Disp("Prontera Field",0,11); Pick("prt_fild",1);
    F23: Restrict("Pre-RE",2,7,9,10,11,13);
    	 setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197;
    	 Disp("Rachel Field",1,13); Pick("ra_fild");
    F24: setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,208,238,209,223,85,97,207,202,31,195,38,195;
    	 Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22");
    	 Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_fild20","moc_fild21","moc_fild22");
    F25: setarray @c[2],175,186,236,184,188,204;
    	 Disp("Splendide Field",1,3); Pick("spl_fild");
    F26: setarray @c[2],217,206,223,221,237,215,202,197;
    	 Disp("Umbala Field",1,4); Pick("um_fild");
    F27: Restrict("Pre-RE",5);
    	 setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307;
    	 Disp("Veins Field",1,7); Pick("ve_fild");
    F28: Restrict("Pre-RE",5,10);
    	 setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304;
    	 Disp("Yuno Field",1,12); Pick("yuno_fild");
    
    // --------------------------------------------------
    	Dungeons:
    // --------------------------------------------------
    menu	"Abyss Lakes",D1, "Amatsu Dungeon",D2, "Anthell",D3,
    		"Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bifrost Tower",D41,
    		"Bio Labs",D6, "Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9,
    		"Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D13,
    		"Einbroch Dungeon",D14, "Gefenia",D15, "Geffen Dungeon",D16,
    		"Glast Heim",D17, "Gonryun Dungeon",D18, "Hidden Dungeon",D19,
    		"Ice Dungeon",D20, "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23,
    		"Magma Dungeon",D24, "Malangdo Dungeon",D25, "Moscovia Dungeon",D26,
    		"Nidhogg's Dungeon",D27, "Odin Temple",D28, "Orc Dungeon",D29,
    		"Payon Dungeon",D30, "Pyramids",D31, "Rachel Sanctuary",D32,
    		"Scaraba Hole",D33, "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36,
    		"Thor Volcano",D37, "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40;
    
    D1: setarray @c[2],261,272,275,270,116,27;
    	Disp("Abyss Lakes",1,3); Pick("abyss_");
    D2: setarray @c[2],228,11,34,41,119,14;
    	Disp("Amatsu Dungeon",1,3); Pick("ama_dun");
    D3: setarray @c[2],35,262,168,170;
    	Disp("Anthell",1,2); Pick("anthell");
    D4: setarray @c[2],275,19,24,26;
    	Disp("Ancient Shrine Maze:Inside Ancient Shrine"); Pick("ayo_dun");
    D5: setarray @c[2],266,67,255,244,23,260;
    	Disp("Beach Dungeon",1,3); Pick("","beach_dun","beach_dun2","beach_dun3");
    D6: Restrict("RE",4);
    	setarray @c[2],150,288,150,18,140,134,244,52;
    	Disp("Bio Lab",1,4); Pick("lhz_dun");
    D7: Restrict("RE");
    	setarray @c[2],87,47,262,262;
    	Disp("Brasilis Dungeon",1,2); Pick("bra_dun");
    D8: Restrict("RE",6);
    	setarray @c[0],168,168,253,252,236,204,32,63,26,27,141,187;
    	Disp("Byalan Dungeon",1,6); Pick("iz_dun",1);
    D9: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74;
    	Disp("Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4");
    	Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04");
    D10: setarray @c[2],52,17,381,343,302,262;
    	 Disp("Coal Mines",1,3); Pick("mjo_dun");
    D11: setarray @c[2],131,247,19,19,180,169,100,92;
    	 Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4");
    D12: setarray @c[2],51,14,150,11,120,10;
    	 Disp("Cursed Abbey",1,3); Pick("abbey");
    D13: Restrict("RE");
    	 setarray @c[2],285,160,299,29;
    	 Disp("Dewata Dungeon",1,2); Pick("dew_dun");
    D14: setarray @c[2],22,14,292,290;
    	 Disp("Einbroch Dungeon",1,2); Pick("ein_dun");
    D15: setarray @c[2],40,103,203,34,266,168,130,272;
    	 Disp("Gefenia",1,4); Pick("gefenia",0);
    D16: setarray @c[0],104,99,115,236,106,132,203,200;
    	 Disp("Geffen Dungeon",1,4); Pick("gef_dun",1);
    D17: setarray @c[2],370,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14;
    	 Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2");
    	 Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1");
    D18: setarray @c[2],153,53,28,113,68,16;
    	 Disp("Gonryun Dungeon",1,3); Pick("gon_dun");
    D19: setarray @c[2],176,7,93,20,23,8;
    	 Disp("Hidden Dungeon",1,3); Pick("prt_maze");
    D20: setarray @c[2],157,14,151,155,149,22,33,158;
    	 Disp("Ice Dungeon",1,4); Pick("ice_dun");
    D21: setarray @c[2],140,51,53,247,37,63,150,285;
    	 Disp("Entrance:Juperos 1:Juperos 2:Core");
    	 Pick("","jupe_cave","juperos_01","juperos_02","jupe_core");
    D22: setarray @c[2],28,226,41,198;
    	 Disp("Kiel Dungeon",1,2); Pick("kh_dun");
    D23: setarray @c[2],218,196,282,20,165,38;
    	 Disp("The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun");
    D24: setarray @c[2],126,68,47,30;
    	 Disp("Magma Dungeon",1,2); Pick("mag_dun");
    D25: Restrict("RE");
    	 setarray @c[2],33,230;
    	 Disp("Malangdo Dungeon",1,1); Pick("mal_dun");
    D26: setarray @c[2],189,48,165,30,32,135;
    	 Disp("Moscovia Dungeon",1,3); Pick("mosk_dun");
    D27: setarray @c[2],61,239,60,271;
    	 Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun");
    D28: setarray @c[2],298,167,224,149,266,280;
    	 Disp("Odin Temple",1,3); Pick("odin_tem");
    D29: setarray @c[2],32,170,21,185;
    	 Disp("Orc Dungeon",1,2); Pick("orcsdun");
    D30: setarray @c[0],21,183,19,33,19,63,155,159,201,204;
    	 Disp("Payon Dungeon",1,5); Pick("pay_dun",1);
    D31: Restrict("RE",7,8);
    	 setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8,94,96,192,8;
    	 Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2:Basement 1 - Nightmare Mode:Basement 2 - Nightmare Mode");
    	 Pick("","moc_pryd01","moc_pryd02","moc_pryd03","moc_pryd04","moc_pryd05","moc_pryd06","moc_prydn1","moc_prydn2");
    D32: setarray @c[2],140,11,32,21,8,149,204,218,150,9;
    	 Disp("Rachel Sanctuary",1,5); Pick("ra_san");
    D33: Restrict("RE");
    	 setarray @c[2],364,44,101,141;
    	 Disp("Scaraba Hole",1,2); Pick("dic_dun");
    D34: setarray @c[2],288,9,149,81,210,54,10,222,100,99;
    	 Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5");
    D35: setarray @c[2],69,24,102,27;
    	 Disp("Sunken Ship",1,2); Pick("treasure");
    D36: setarray @c[2],150,39,150,136,220,158,59,143,62,11,89,221,35,166,93,148,29,107,159,138,19,20,130,52;
    	 Disp("Thanatos Tower",1,12); Pick("tha_t");
    D37: setarray @c[2],21,228,75,205,34,272;
    	 Disp("Thor Volcano",1,3); Pick("thor_v");
    D38: setarray @c[2],205,15,129,133;
    	 Disp("Toy Factory",1,2); Pick("xmas_dun");
    D39: setarray @c[2],154,49,148,261,132,189,100,192;
    	 Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun");
    D40: Restrict("Pre-RE",1,2);
    	 setarray @c[2],42,31,48,30,204,78;
    	 Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain");
    	 Pick("","um_dun01","um_dun02","yggdrasil01");
    D41: Restrict("RE");
    	 setarray @c[2],57,13,64,88,45,14,26,23;
    	 Disp("Bifrost Tower",1,4); Pick("ecl_tdun");
    
    // --------------------------------------------------
    	Castles:
    // --------------------------------------------------
    menu	"Aldebaran Castles",C1, "Geffen Castles",C2, "Payon Castles",C3,
    		"Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6;
    
    C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90;
    	Disp("Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg");
    	Pick("","alde_gld","alde_gld","alde_gld","alde_gld","alde_gld");
    C2: setarray @c[2],214,75,308,240,143,240,193,278,305,87;
    	Disp("Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz");
    	Pick("","gef_fild13","gef_fild13","gef_fild13","gef_fild13","gef_fild13");
    C3: setarray @c[2],121,233,295,116,317,293,140,160,204,266;
    	Disp("Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill");
    	Pick("","pay_gld","pay_gld","pay_gld","pay_gld","pay_gld");
    C4: setarray @c[2],134,65,240,128,153,137,111,240,208,240;
    	Disp("Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul");
    	Pick("","prt_gld","prt_gld","prt_gld","prt_gld","prt_gld");
    C5: setarray @c[2],158,272,83,47,68,155,299,345,292,107;
    	Disp("Mardol:Cyr:Horn:Gefn:Banadis");
    	Pick("","aru_gld","aru_gld","aru_gld","aru_gld","aru_gld");
    C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315;
    	Disp("Himinn:Andlangr:Viblainn:Hljod:Skidbladnir");
    	Pick("","sch_gld","sch_gld","sch_gld","sch_gld","sch_gld");
    
    // --------------------------------------------------
    	Guild_Dungeons:
    // --------------------------------------------------
    menu	"Baldur",G1, "Luina",G2, "Valkyrie",G3, "Britoniah",G4,
    		"Arunafeltz",G5, "Schwaltzvalt",G6;
    
    G1: Restrict("RE",2,3);
    	setarray @c[2],119,93,119,93,120,130;
    	Disp("Baldur F1:Baldur F2:Hall of Abyss");
    	Pick("","gld_dun01","gld_dun01_2","gld2_pay");
    G2: Restrict("RE",2,3);
    	setarray @c[2],39,161,39,161,147,155;
    	Disp("Luina F1:Luina F2:Hall of Abyss");
    	Pick("","gld_dun02","gld_dun02_2","gld2_ald");
    G3: Restrict("RE",2,3);
    	setarray @c[2],50,44,50,44,140,132;
    	Disp("Valkyrie F1:Valkyrie F2:Hall of Abyss");
    	Pick("","gld_dun03","gld_dun03_2","gld2_prt");
    G4: Restrict("RE",2,3);
    	setarray @c[2],116,45,116,45,152,118;
    	Disp("Britoniah F1:Britoniah F2:Hall of Abyss");
    	Pick("","gld_dun04","gld_dun04_2","gld2_gef");
    G5: Go("arug_dun01",199,195);
    G6: Go("schg_dun01",200,124);
    
    // --------------------------------------------------
    	Instances:
    // --------------------------------------------------
    menu	"Bakonawa Lake",I1, "Bangungot Hospital 2F",I2, "Buwaya Cave",I3,
    		"Endless Tower",I4, "Hazy Forest",I5, "Malangdo Culvert",I6, "Nidhoggur's Nest",I7,
    		"Octopus Cave",I8, "Old Glast Heim",I9, "Orc's Memory",I10, "Sealed Shrine",I11,
    		"Wolfchev's Laboratory",I12;
    
    I1: Restrict("RE");
    	Go("ma_scene01",172,175);
    I2: Restrict("RE");
    	Go("ma_dun01",151,8);
    I3: Restrict("RE");
    	Go("ma_fild02",316,317);
    I4: Go("e_tower",72,112);
    I5: Restrict("RE");
    	Go("bif_fild01",161,334);
    I6: Restrict("RE");
    	Go("mal_in01",164,21);
    I7: Go("nyd_dun02",95,193);
    I8: Restrict("RE");
    	Go("mal_dun01",152,230);
    I9: Restrict("RE");
    	Go("glast_01",204,268);
    I10: Go("gef_fild10",240,198);
    I11: Go("monk_test",306,143);
    I12: Restrict("RE");
    	Go("lhz_dun04",148,269);
    
    // --------------------------------------------------
    	Special:
    // --------------------------------------------------
    menu	"Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Eden Group Headquarters",S4,
    		"Gonryun Arena",S5, "Izlude Arena",S6, "Monster Race Arena",S7, "Turbo Track",S8;
    
    S1: Go("auction_01",22,68);
    S2: Go("bat_room",154,150);
    S3: Go("cmd_in02",179,129);
    S4: Restrict("RE");
    	Go("moc_para01",31,14);
    S5: Go("gon_test",48,10);
    S6: Go("arena_room",100,88);
    S7: Go("p_track01",62,41);
    S8: Go("turbo_room",99,114);
    }
    
    // --------------------------------------------------
    //	Duplicates:
    // --------------------------------------------------
    alb2trea,57,70,6	duplicate(Warper)	Warper#tre	4_F_VALKYRIE
    alberta,28,240,4	duplicate(Warper)	Warper#alb	4_F_VALKYRIE
    aldebaran,145,118,4	duplicate(Warper)	Warper#alde	4_F_VALKYRIE
    amatsu,203,87,4	duplicate(Warper)	Warper#ama	4_F_VALKYRIE
    ayothaya,209,169,6	duplicate(Warper)	Warper#ayo	4_F_VALKYRIE
    comodo,194,158,4	duplicate(Warper)	Warper#com	4_F_VALKYRIE
    einbech,59,38,6	duplicate(Warper)	Warper#einbe	4_F_VALKYRIE
    einbroch,69,202,4	duplicate(Warper)	Warper#einbr	4_F_VALKYRIE
    gef_fild10,71,339,4	duplicate(Warper)	Warper#orc	4_F_VALKYRIE
    geffen,124,72,4	duplicate(Warper)	Warper#gef	4_F_VALKYRIE
    glast_01,372,308,4	duplicate(Warper)	Warper#glh	4_F_VALKYRIE
    gonryun,162,122,4	duplicate(Warper)	Warper#gon	4_F_VALKYRIE
    hugel,101,151,4	duplicate(Warper)	Warper#hug	4_F_VALKYRIE
    izlu2dun,110,92,4	duplicate(Warper)	Warper#izd	4_F_VALKYRIE
    izlude,134,150,4	duplicate(Warper)	Warper#izl	4_F_VALKYRIE	//Pre-RE: (132,120)
    jawaii,253,138,4	duplicate(Warper)	Warper#jaw	4_F_VALKYRIE
    lighthalzen,162,102,4	duplicate(Warper)	Warper#lhz	4_F_VALKYRIE
    louyang,208,103,6	duplicate(Warper)	Warper#lou	4_F_VALKYRIE
    manuk,274,146,6	duplicate(Warper)	Warper#man	4_F_VALKYRIE
    mid_camp,216,288,4	duplicate(Warper)	Warper#mid	4_F_VALKYRIE
    mjolnir_02,85,364,4	duplicate(Warper)	Warper#mjo	4_F_VALKYRIE
    moc_ruins,64,164,4	duplicate(Warper)	Warper#moc	4_F_VALKYRIE
    morocc,159,97,4	duplicate(Warper)	Warper#mor	4_F_VALKYRIE
    moscovia,229,191,4	duplicate(Warper)	Warper#mos	4_F_VALKYRIE
    nameless_n,259,213,4	duplicate(Warper)	Warper#nam	4_F_VALKYRIE
    niflheim,205,179,4	duplicate(Warper)	Warper#nif	4_F_VALKYRIE
    pay_arche,42,134,4	duplicate(Warper)	Warper#arc	4_F_VALKYRIE
    payon,182,108,4	duplicate(Warper)	Warper#pay	4_F_VALKYRIE
    prontera,159,192,4	duplicate(Warper)	Warper#prt	4_F_VALKYRIE
    prt_fild05,279,223,6	duplicate(Warper)	Warper#cul	4_F_VALKYRIE
    rachel,135,116,4	duplicate(Warper)	Warper#rac	4_F_VALKYRIE
    splendide,205,153,4	duplicate(Warper)	Warper#spl	4_F_VALKYRIE
    thor_camp,249,76,4	duplicate(Warper)	Warper#thor	4_F_VALKYRIE
    umbala,106,150,3	duplicate(Warper)	Warper#umb	4_F_VALKYRIE
    veins,214,123,4	duplicate(Warper)	Warper#ve	4_F_VALKYRIE
    xmas,150,136,6	duplicate(Warper)	Warper#xmas	4_F_VALKYRIE
    yuno,162,47,4	duplicate(Warper)	Warper#yuno	4_F_VALKYRIE
    
    // --------------------------------------------------
    //	Duplicates (Renewal):
    // --------------------------------------------------
    brasilis,201,222,4	duplicate(Warper)	Warper#bra	4_F_VALKYRIE
    dewata,204,186,6	duplicate(Warper)	Warper#dew	4_F_VALKYRIE
    dicastes01,194,194,6	duplicate(Warper)	Warper#dic	4_F_VALKYRIE
    ecl_in01,51,60,4	duplicate(Warper)	Warper#ecl	4_F_VALKYRIE
    malangdo,134,117,6	duplicate(Warper)	Warper#mal	4_F_VALKYRIE
    malaya,231,204,4	duplicate(Warper)	Warper#ma	4_F_VALKYRIE
    mora,57,152,4	duplicate(Warper)	Warper#mora	4_F_VALKYRIE

    Not sure if this is what you wanted.


  2. -	script	Sample	FAKE_NPC,{
    OnInit:
    detachrid();
    .cdtime = 24*60*60;
    for (set .accid, 2000009; .accid<=2000030 ; .accid++)
    end;
    OnPCLoginEvent:
    attachrid(.accid);
    if (#gotone + .cdtime> gettimetick(2)) {
    	dispbottom "Daily reward have been distributed";
    	end;
    }
    else {
    	dispbottom "An apple a day takes the doctor away.";
    	getitem Apple,20;
    	#gotone = gettimetick(2);
    	end;
    }
    }

     


  3. 1 hour ago, AnnieRuru said:

    not working

    I equip a 'Secular_Mission' ItemID 2127, and expecting it to list all as 25,

    
    prontera,155,185,5	script	kjhdsfks	1_F_MARIA,{
    	for ( .@i = RC_Formless; .@i <= RC_Player; ++.@i )
    		dispbottom race_resist(.@i) +"";
    	end;
    }

    but it display all in 0 instead

    a few places are wrong in your plugin, but are actually correct in wolfie's version

     

    1. the constant case-sensitivity
    wolfie's constants are correct, but yours are wrong
    should follow the constants.md file, not the source file
    https://github.com/HerculesWS/Hercules/blob/stable/doc/constants.md#elements

    
    ### Elements
    
    - `Ele_Neutral`: 0
    - `Ele_Water`: 1
    - `Ele_Earth`: 2
    - `Ele_Fire`: 3
    - `Ele_Wind`: 4
    - `Ele_Poison`: 5
    - `Ele_Holy`: 6
    - `Ele_Dark`: 7
    - `Ele_Ghost`: 8
    - `Ele_Undead`: 9
    - `Ele_All`: 255
    
    ### Races
    
    - `RC_Formless`: 0
    - `RC_Undead`: 1
    - `RC_Brute`: 2
    - `RC_Plant`: 3
    - `RC_Insect`: 4
    - `RC_Fish`: 5
    - `RC_Demon`: 6
    - `RC_DemiHuman`: 7
    - `RC_Angel`: 8
    - `RC_Dragon`: 9
    - `RC_Player`: 10
    - `RC_Boss`: 11
    - `RC_NonBoss`: 12
    - `RC_NonDemiHuman`: 14
    - `RC_NonPlayer`: 15
    - `RC_DemiPlayer`: 16
    - `RC_NonDemiPlayer`: 17
    - `RC_All`: 255

     

    2. your plugin stop at RC_Player, which is 10, but I tested with 'Secular_Mission' which has
    Script: <" bonus2 bSubRace, RC_All, 25; ">
    RC_ALL is 255 ... lol

    Thank you for pointing it out. updated to ver 1.1


  4. race_resist


    A simple plugin that adds race_resist() into your emulator (Checks race resist of a player).

    //===== Description ==========================================
    //= Checks how much resistance a character has to a particular
    // race.
    //
    //= race_resist(<type>{, <account id>});
    //= E.g. race_resist(RC_Player);
    //= E.g. race_resist(RC_Player, getcharid(CHAR_ID_ACCOUNT));

    Its just actually a rip off plugin from @bWolfie's check_resist() plugin full credits goes to him.


     


  5. Just now, Dastgir said:

    Any Logs showing line number of leaks?

    Spoiler

    0001 : map.c line 6036 size 392 address 0x0x56448847a61c
    0002 : map.c line 6036 size 392 address 0x0x56448847a7cc
    0003 : map.c line 6036 size 392 address 0x0x56448847a97c
    0004 : map.c line 6036 size 392 address 0x0x56448847ab2c
    0005 : map.c line 6036 size 392 address 0x0x56448847acdc
    0006 : map.c line 6036 size 392 address 0x0x56448847ae8c
    0007 : map.c line 6036 size 392 address 0x0x56448847b03c
    0008 : map.c line 6036 size 392 address 0x0x56448847b1ec
    0009 : map.c line 6036 size 392 address 0x0x56448847b39c
    0010 : map.c line 6036 size 392 address 0x0x56448847b54c
    0011 : map.c line 6036 size 392 address 0x0x56448847b6fc
    0012 : map.c line 6036 size 392 address 0x0x56448847b8ac
    0013 : map.c line 6036 size 392 address 0x0x56448847ba5c
    0014 : map.c line 6036 size 392 address 0x0x56448847bc0c
    0015 : map.c line 6036 size 392 address 0x0x56448847bdbc
    0016 : script.c line 21291 size 8 address 0x0x56448a69c05c
    0017 : script.c line 21291 size 8 address 0x0x56448a69c0bc
    0018 : script.c line 21291 size 8 address 0x0x56448a69c11c
    0019 : script.c line 21291 size 8 address 0x0x56448a69c14c
    0020 : script.c line 21291 size 8 address 0x0x56448a69c1dc
    0021 : script.c line 21291 size 8 address 0x0x56448a9308dc
    0022 : script.c line 21291 size 8 address 0x0x56448a93093c
    0023 : script.c line 21291 size 8 address 0x0x56448a93099c
    0024 : script.c line 21291 size 8 address 0x0x56448a9309cc
    0025 : script.c line 21291 size 8 address 0x0x56448a930a5c
    0026 : script.c line 21291 size 8 address 0x0x56448ad2dbac
    0027 : script.c line 21291 size 8 address 0x0x56448ad2dc0c
    0028 : script.c line 21291 size 8 address 0x0x56448ad2dc6c
    0029 : script.c line 21291 size 8 address 0x0x56448ad2dc9c
    0030 : script.c line 21291 size 8 address 0x0x56448ad2dd2c

     


  6. In file included from marketclone.c:55:0:
    marketclone.c: In function plugin_init’:
    ../plugins/HPMHooking.h:49:11: error: HPMHOOK_pre_clif_charnameack undeclared                                 (first use in this function); did you mean HPMHOOK_pre_clif_charnameupdate’?
       (void)((HPMHOOK_pre_ ## ifname ## _ ## funcname)0 == (hook)), \
               ^
    marketclone.c:493:2: note: in expansion of macro addHookPre
      addHookPre(clif, charnameack, clif_charnameack_pre);
      ^~~~~~~~~~
    ../plugins/HPMHooking.h:49:11: note: each undeclared identifier is reported only                                 once for each function it appears in
       (void)((HPMHOOK_pre_ ## ifname ## _ ## funcname)0 == (hook)), \
               ^
    marketclone.c:493:2: note: in expansion of macro addHookPre
      addHookPre(clif, charnameack, clif_charnameack_pre);
      ^~~~~~~~~~
    ../plugins/HPMHooking.h:49:51: error: expected ‘)’ before numeric constant
       (void)((HPMHOOK_pre_ ## ifname ## _ ## funcname)0 == (hook)), \
                                                       ^
    marketclone.c:493:2: note: in expansion of macro addHookPre
      addHookPre(clif, charnameack, clif_charnameack_pre);
      ^~~~~~~~~~
    ../plugins/HPMHooking.h:49:63: warning: left-hand operand of comma expression ha                                s no effect [-Wunused-value]
       (void)((HPMHOOK_pre_ ## ifname ## _ ## funcname)0 == (hook)), \
                                                                   ^
    marketclone.c:493:2: note: in expansion of macro addHookPre
      addHookPre(clif, charnameack, clif_charnameack_pre);
      ^~~~~~~~~~

    I think the plugin isn't compatible with the latest herc?


  7. 3 hours ago, monchee said:

    I'm pretty sure it's similar, just wondering if there is any change up to 2019. The wiki page was last edited 2015

    if its just the installation then there's no changes i think been using the same method for the past few years


  8. Hello. I found this src edit on rathena by anacondaqq

    Quote
    
    // Blocks all guild skills which have a common delay time.
    int guild_block_skill_end(int tid, unsigned int tick, int id, intptr_t data) {
    	struct guild *g;
    	char output[128];
    	int idx = battle_config.guild_skills_separed_delay ? (int)data - GD_SKILLBASE : 0;
    
    	if( (g = guild_search(id)) == NULL )
    		return 1;
    
    	if( idx < 0 || idx >= MAX_GUILDSKILL )
    	{
    		ShowError("guild_block_skill_end invalid skill_id %d.\n", (int)data);
    		return 0;
    	}
    
    	if( tid != g->skill_block_timer[idx] )
    	{
    		ShowError("guild_block_skill_end %d != %d.\n", g->skill_block_timer[idx], tid);
    		return 0;
    	}
    
    HERE ---------->>>>>	sprintf(output, "%s : Guild Skill %s Ready!!", g->name, skill_get_desc((int)data));
    	g->skill_block_timer[idx] = INVALID_TIMER;
    	clif_guild_message(g, 0, output, strlen(output));
    
    	return 1;
    }

    It notifies the guild master and members if the guild skill is ready to use and if not it'll display the time in minutes:seconds before it is available again.

     

    May i request a plugin form of this thats working on the latest version of herc?

     

    Thank you in advance :D


  9. 40 minutes ago, AnnieRuru said:

    almost similar to this

     

    
    #include "common/hercules.h"
    #include "map/pc.h"
    #include "map/atcommand.h"
    #include "common/timer.h"
    #include "common/memmgr.h"
    #include "common/HPMDataCheck.h"
    
    HPExport struct hplugin_info pinfo = {
    	"die_delay",
    	SERVER_TYPE_MAP,
    	"x_O",
    	HPM_VERSION,
    };
    
    ACMD(kill) {
    	if ( DIFF_TICK( timer->gettick(), sd->canlog_tick ) < battle->bc->prevent_logout ) {
    		char msg[CHAT_SIZE_MAX];
    		safesnprintf( msg, CHAT_SIZE_MAX, "There is a %d seconds delay of using this command to kill the character again", battle->bc->prevent_logout /1000 );
    		clif->message( fd, msg );
    		return false;
    	}
    	status_kill( &sd->bl );
    	clif->message( sd->fd, msg_fd( fd, 13 )); // A pity! You've died.
    	if ( fd != sd->fd )
    		clif->message( fd, msg_fd( fd, 14 )); // Character killed.
    	return true;
    }
    
    HPExport void plugin_init (void) {
    	addAtcommand( "kill", kill );
    }

    this assume your prevent_logout in your battle_config has default setting

    
    // Prevent logout of players after being hit for how long (in ms, 0 disables)?
    prevent_logout: 10000
    
    // When should the server prevent a player from logging out? Have no effect if prevent_logout is disabled. (Note 3)
    // Official servers prevent players from logging out after attacking, casting skills, and taking damage.
    // 0 = Players can always logout
    // 1 = Prevent logout on login
    // 2 = Prevent logout after attacking
    // 4 = Prevent logout after casting skill
    // 8 = Prevent logout after being hit
    prevent_logout_trigger: 14

    prevent_logout_trigger have to at least has 2+8

    Thank you :)


  10. On 3/16/2019 at 5:46 PM, MikZ said:

    Hi!

    May I request a sample random prize giver.
    What I'm looking for is.

    This npc will give all 3 set  1 type of item from set A,B to C randomly, with random number of pieces too.

    Set A: random (1x,10x) pcs

    random :656 , 657 , 505 , 645 , 506 , 14510 

    Set B: random (5x,15x) pcs

    random :656 , 657 , 505 , 645 , 506 , 14510 

    Set C: random (10x,20x) pcs

    random :656 , 657 , 505 , 645 , 506 , 14510 

    please help me. 

    thanks!

    Like this?

    prontera,158,167,3	script	Sample	4_M_SIT_NOVICE,{
    if (#gotreward + .next_take> gettimetick(2)) {
    	mes "[Random Item Giver]";
    	mes "Please talk to me after 24 hours.";
    	close;
    }
    	else {
    	set .random1,rand(getarraysize (.count1));	
    	set .random2,rand(getarraysize (.count2));
    	set .random3,rand(getarraysize (.count3));
    	mes "[Random Item Giver]";
    	mes "Have some of these!";
    		getitem .item[rand(getarraysize (.item))],.count1[.random1];
    		getitem .item[rand(getarraysize (.item))],.count2[.random2];
    		getitem .item[rand(getarraysize (.item))],.count3[.random3];
    		#gotreward = gettimetick(2);
    		next;
         	close;
    }
    
    
    OnInit:
    .next_take = 24*60*60;
    setarray .item[0],656,657,505,645,506,14510;
    setarray .count1[0],1,10;
    setarray .count2[0],5,15;
    setarray .count3[0],10,20;
    end;
    }

    Edit: 
    Thought it was 1-10 , 5-15 , and 10-20 instead of 1,10 5,15 and 10,20


  11. https://github.com/HerculesWS/Hercules/blob/stable/npc/custom/quests/quest_shop.txt try using this one?
     

    setarray .Shops$[1],"Headgears","Weapons","Other";
    Where Shop #1 is Headgears, #2 Weapons, #3 Other
    Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    //	Add(<shop ID>,<reward ID>,<reward amount>,
    //	    <Zeny cost>,<point cost>,
    //	    <required item ID>,<required item amount>{,...});
      

    Sample:
     

    Add(1,909,1,0,0,7179,1);
    Reward to be given: Jellopy
    Amount: 1
    Zeny needed: 0
    Cashpoints needed: 0
    required item(s):Proof of donation
    Amount : 1

     


  12. 2 hours ago, Virtue said:
    
    hitdelay.c:105:94: error: unknown type name 'clr_type'
    hitdelay.c: In function 'plugin_init':
    hitdelay.c:208:2: error: 'pc_setpos_delay' undeclared (first use in this function)
    hitdelay.c:208:2: note: each undeclared identifier is reported only once for each function it appears in
    hitdelay.c:208:2: warning: left-hand operand of comma expression has no effect [-Wunused-value]

    Hit delay error.

    Find 

    int pc_setpos_delay(struct map_session_data **sd, unsigned short *map_index, int *x, int *y, clr_type *clrtype)

     and change it to 

    int pc_setpos_delay(struct map_session_data **sd, unsigned short *map_index, int *x, int *y, enum clr_type *clrtype)

     


  13. 19 minutes ago, Myriad said:

    Make sure you get auraset file from here: https://github.com/dastgirp/HPM-Plugins

    Is your Hercules updated? Since that error only should happen if this code missing from your clif.h

     

    
    enum clr_type {
        CLR_OUTSIGHT = 0,
        CLR_DEAD,
        CLR_RESPAWN,
        CLR_TELEPORT,
        CLR_TRICKDEAD,
    };
    

     

    Yep i just got it yesterday both the plugin and emulator from git
    Capture.PNG.3ec2dc747e7ba4565d00fcac744e86e8.PNG
    yep there's a list of clr_type in my clif.h

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.