Jump to content

minx123

Members
  • Content Count

    283
  • Joined

  • Last visited

Posts posted by minx123


  1. You need to configure it in the map_zone_db.conf.

     

    yes i already try but its not work.. 

    here my..

     

    map_zone_db

    {	name: "PVPZONE"		disabled_skills: {		HP_ASSUMPTIO: "PLAYER"		CASH_ASSUMPTIO: "PLAYER"	}		disabled_items: {		Seed_Of_Yggdrasil: true		Yggdrasilberry: true		Avillion_Potion: true	}},

     

     

     

    mapflag zone

     

    guild_vs5	mapflag	zone

  2. i have problem with disable buff in certain map..

    how to fix it?

     

    For this Script i want

    disable item 607 , 608 , custom potion

    disable skill assumption

     

    // -----------------------------//// ------- Free For All --------//// -------- By : Butch ---------//// A simple Free for all script //// -----------------------------//guild_vs5,48,51,6	script	FFA Master	999,{if(getmapusers("guild_vs5") != 1) 	{		mes "[^FF0000FFA Master^000000]";		mes "Current players - ^FF0000"+ getmapusers("guild_vs5") +"^000000.";		close;	}	else if(getmapusers("guild_vs5") == 1)	{				dispbottom "You are a winner of Event Free for all. Congratz!";		donpcevent "Free For All::OnStopEvent";		announce "Free for all winner : "+ strcharinfo(0) +"", bc_all, "0xFFCE00";		getitem 7227,5; // Reward		getitem 670,2; // Reward		getitem 7720,5; // Reward		getitem 673,5; // Reward		getitem 30225,5; // Reward		warp "invek", 147,164;		end;	}}// ------ FFA Warper -------//		invek,139,172,6	script	Free For All	999,{	if (.start != 1) {	mes "[^FF0000Agent Mil^000000]";	mes "Free for all is not available at the moment";	close;	}		mes "[^FF0000Agent Mil^000000]";		mes "What do you want?";		switch(select("Free for all")) {			case 1:				if( getcharid(1) ) { mes "Please leave your party."; close; }				if( getcharid(2) ) { mes "Please leave your guild."; close; }					else switch(rand(3)) {						case 0: .@x = 18; .@y = 50; break;						case 1: .@x = 50; .@y = 77; break;						case 2: .@x = 81; .@y = 49; break;						case 3: .@x = 49; .@y = 22; break; 					}					warp "guild_vs5", .@x,.@y;				break;						}	close;	OnStartEvent:	OnClock1245:OnClock1645:OnClock2045:OnClock0045:OnClock0445:OnClock0845:	.start = 1;	disablenpc "FFA Master";	announce "PVP Free for all will start in 5 minutes.", bc_all, "0x00b89d";	sleep 120000;	announce "PVP Free for all will start in 3 minutes.", bc_all, "0x00b89d";	sleep 120000;	announce "PVP Free for all will start in 1 minute.", bc_all, "0x00b89d";	sleep 60000;	announce "PVP Free for all has started!", bc_all, "0x00b89d";	.start = 2;	enablenpc "FFA Master";	sleep 2000;	if ( !getmapusers("guild_vs5") ) goto OnStopEvent;	mapannounce "guild_vs5", "PVP FFA starts in 5", bc_map;	sleep 1000;	mapannounce "guild_vs5", "PVP FFA starts in 4", bc_map;	sleep 1000;	mapannounce "guild_vs5", "PVP FFA starts in 3", bc_map;	sleep 1000;	mapannounce "guild_vs5", "PVP FFA starts in 2", bc_map;	sleep 1000;	mapannounce "guild_vs5", "PVP FFA starts in 1", bc_map;	sleep 1000;	mapannounce "guild_vs5", "GO! Kill all!", bc_map;	setmapflag "guild_vs5", mf_gvg;	removemapflag "guild_vs5", mf_noskill;	end;	OnStopEvent:	.start = 0;	disablenpc "FFA Master";	removemapflag "guild_vs5", mf_gvg;	setmapflag "guild_vs5", mf_noskill;	end;		OnInit:	waitingroom "[PVP Free For All]",0;	end;}guild_vs5	mapflag	partylockguild_vs5	mapflag	guildlockguild_vs5	mapflag	notradeguild_vs5	mapflag	nodropguild_vs5	mapflag	nomemoguild_vs5	mapflag	nobranchguild_vs5	mapflag	nosaveguild_vs5	mapflag	noexppenaltyguild_vs5	mapflag	pvp

     


  3. @@minx123

    you're using accname.lua / accessoryid.lua or accname.lub / accessoryid.lub ?

    and check your sprite if its named correctly (beginner.spr and beginner.act) in both gender

     

    im using accname.lua / accessoryid.lua

    yes all name sprite i already change..there is no problem when equip it.. only not show the sprite..


  4. i have problem with custom not show

    i change name to beginner..

    and i not use iteminfo.lua/iteminfo.lub

    here mine..

    @@Akaneharuka

    idnum2itemdesctable30249A costume awarded to adventurer who barely start his adventure.HIT +30MaxHP +1000MaxSP +200Variable cast time -10%.",Increase healing power by 150%Every 10 base level incrementHIT -3variable cast time +1%MaxHP -100, MaxSP -20Healing power -10%Increase healing received and restoration items by 10%.^FF0000Cannot be traded.^000000Class :^777777 Headgear^000000Equipped on :^777777 Upper^000000Weight :^777777 10^000000Applicable Job :^777777 Every Job^000000#idnum2itemdisplaynametable30249#Costume Beginner Cap#idnum2itemresnametable30249#Beginner#accessoryid.luaACCESSORY_Beginner = 1709,accname.lua[ACCESSORY_IDs.ACCESSORY_Beginner] = "_Beginner",Itemdb.conf{    Id: 30249    AegisName: "C_Beginner_Cap"    Name: "Costume Beginner Cap"    Type: 5    Loc: 4096    View: 1709    Script: <"        if(BaseLevel<100) {            bonus bHit,30-(3*(BaseLevel/10));            bonus bMaxHP,1000-(100*(BaseLevel/10));            bonus bMaxSP,200-(20*(BaseLevel/10));            bonus bVariableCastrate,-10+(BaseLevel/10);            bonus bHealPower,150-(10*(BaseLevel/10));            bonus bHealPower2,10*(BaseLevel/10);            bonus bAddItemHealRate,10*(BaseLevel/10);        }    ">},

    fwj6no.png


  5.  

    Preview:

     

    Info:

    Just like what video show you, winner is who can own EMP when time out,

    so Attacker need to break EMP to be a new owner,

    Defender need to protect EMP until time out.

     

    Setting:

    .sett_totaltime = 180; // total gaming time.sett_waitenemydelay = 10; // wait for enemy.sett_opendelay = 10; // wait for game map open.sett_startdelay = 10; // wait for game start, defender can enter now.sett_restartdelay = 60; // when EMP is down, how long that setting will restart.sett_respawnHEARTdelay = 60; // respawn time for obstacle.sett_respawnBOMBdelay = 60; // respawn time for bomber.sett_reBOMBdelay = 60; // cd for bomber

     

    Script:

    attachicon.gifAnother 1v1 KoE .txt

     

    db:

    mob_avail.txt

    2414,12882415,19082416,1906

    mob_db.txt

    2414,FAKE_EMP,FAKE_EMP,FAKE_EMP,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02415,FAKE_HEART_STONE,FAKE_HEART_STONE,FAKE_HEART_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02416,FAKE_DEF_STONE,FAKE_DEF_STONE,FAKE_DEF_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

     

     

    Preview:

     

    Info:

    Just like what video show you, winner is who can own EMP when time out,

    so Attacker need to break EMP to be a new owner,

    Defender need to protect EMP until time out.

     

    Setting:

    .sett_totaltime = 180; // total gaming time.sett_waitenemydelay = 10; // wait for enemy.sett_opendelay = 10; // wait for game map open.sett_startdelay = 10; // wait for game start, defender can enter now.sett_restartdelay = 60; // when EMP is down, how long that setting will restart.sett_respawnHEARTdelay = 60; // respawn time for obstacle.sett_respawnBOMBdelay = 60; // respawn time for bomber.sett_reBOMBdelay = 60; // cd for bomber

     

    Script:

    attachicon.gifAnother 1v1 KoE .txt

     

    db:

    mob_avail.txt

    2414,12882415,19082416,1906

    mob_db.txt

    2414,FAKE_EMP,FAKE_EMP,FAKE_EMP,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02415,FAKE_HEART_STONE,FAKE_HEART_STONE,FAKE_HEART_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02416,FAKE_DEF_STONE,FAKE_DEF_STONE,FAKE_DEF_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

    how to give reward?

    i cant find in script..


  6.  

    trunk/conf/battle/skill.conf

     

    FIND THIS

    // Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1)// Note: Setting this to anything above 0 can stop speedhacks.min_skill_delay_limit: 100

    CHANGE TO THIS

    // Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1)// Note: Setting this to anything above 0 can stop speedhacks.min_skill_delay_limit: 0

     

    thx its work.. 


  7. here the script..

    i want use for certain map only..

     

    -	script	mypvppoints	-1,{OnInit:	bindatcmd "pvppoints",strnpcinfo(3)+"::OnAtcommand";	end;OnAtcommand:dispbottom "[ PvP Points ] : Your PvP Points: "+PvPPoints;end;}-	script	check player	-1,{OnPCLoginEvent:	if(!PvPPoints) { PvPPoints = 0; PvPWarning = 0; }	end;}-	script	PvPPointTimer	-1,{OnTimerStart:	sleep2 90000;	PvPFlag = 0;	end;}-	script	PvP Points	-1,{OnPCKillEvent:for (set @i,0; @i < getarraysize(.Open_Maps$); set @i,@i+1)if( strcharinfo(3) == .Open_Maps$[@i] ) {	if(PvPFlag && (killedrid == PrevKilled)) {		PvPWarning += 1;		if(PvPWarning >= .cons_kill_count) {			PvPPoints -= .deducted_points;			callsub L_PointCheck,PvPPoints;			dispbottom "You've lost "+.deducted_points+" PvP Points.";			dispbottom "You now have "+PvPPoints+" Points.";			PvPWarning = 0;			callsub Timer;		}		PvPPoints += .added_points;		dispbottom "You've been awarded "+.added_points+" PvP Point.";		dispbottom "You now have "+PvPPoints+" Points.";	Timer:		awake "PvPPointTimer";		PvPFlag = 1;		doevent "PvPPointTimer::OnTimerStart";		end;	}	if ( killedrid == getcharid(3) ) {		PvPPoints -= .deducted_points;		callsub L_PointCheck,PvPPoints;		dispbottom "You've lost "+.deducted_points+" PvP Point.";		dispbottom "You now have "+PvPPoints+" Points.";		end;	}		callsub AddPoint;	attachrid(killedrid);	PvPPoints -= .deducted_points;	callsub L_PointCheck,PvPPoints;	dispbottom "You've lost "+.deducted_points+" PvP Point.";	dispbottom "You now have "+PvPPoints+" Points.";	detachrid;	AddPoint:	PvPPoints += .added_points;	dispbottom "You've been awarded "+.added_points+" PvP Point.";	dispbottom "You now have "+PvPPoints+" Points.";	PrevKilled = killedrid;	PvPFlag = 1;	doevent "PvPPointTimer::OnTimerStart";	end;L_PointCheck:	if(getarg(0) < 0) PvPPoints = 0;	return;	end;}

  8.  

     

     

    thank you @ but got one more problem..

    i cant remove all item..

     

    From This Add(1,20622,1,2000000000,0,20078,5,7227,150,673,60,969,500,20145,2,670,20);To ThisAdd(1,20622,1,0,100,0,0,0,0,0,0,0,0,0,0,0,0);

    if i change the list, custom will not show up..

    try this one.. i tested it .. i hope it works on you

    http://pastebin.com/X0ViAcxk

    ok its work..

    i need change currency from #pvppoint to pvppoints only..

    thx @

     

    Problem solve


  9.  

    Change shop ID and a little hint

     

    // Dummy shop data -- copy as needed.//============================================================-	shop	qshop1	-1,909:-1-	shop	qshop2	-1,909:-1-	shop	qshop3	-1,909:-1-	shop	qshop4	-1,909:-1-	shop	qshop5	-1,909:-1 

    still not work sir...

    here my script..

     

    //===== rAthena Script =======================================//= Euphy's Quest Shop//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.6b//===== Compatible With: =====================================//= rAthena SVN r16862+//===== Description: =========================================//= A dynamic quest shop based on Lunar's, with easier config.//= Includes support for multiple shops & cashpoints.//= Item Preview script by ToastOfDoom.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.2 Added category support.//= 1.3 More options and fixes.//= 1.4 Added debug settings.//= 1.5 Replaced categories with shop IDs.//= 1.6 Added support for purchasing stackables.//= 1.6a Added support for previewing costumes and robes.//= 1.6b Added 'disable_items' command.//============================================================// Shop NPCs -- supplying no argument displays entire menu.//	callfunc "PVPCUSTOM"{,<shop ID>{,<shop ID>{,...}}};//============================================================mid_campin,375,130,5	script	PVPCUSTOM	465,{ callfunc "PVPCUSTOM"; }// Script Core//============================================================-	script	PVPCUSTOM	-1,{ function Add; function Chk; function Slot; function A_An;OnInit:	freeloop(1);// -----------------------------------------------------------//  Basic shop settings.// -----------------------------------------------------------	set .Announce,1;	// Announce quest completion? (1: yes / 0: no)	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)	set .MaxStack,100;	// Max number of quest items purchased at one time.// -----------------------------------------------------------//  Points variable -- optional quest requirement.//	setarray .Points$[0],"<variable name>","<display name>";// -----------------------------------------------------------	setarray .Points$[0],"#CASHPOINTS","Cash Points";// -----------------------------------------------------------//  Shop IDs -- to add shops, copy dummy data at bottom of file.//	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};// -----------------------------------------------------------	setarray .Shops$[1],"Headgear","Middle","Lower","Weapon";// -----------------------------------------------------------//  Quest items -- do NOT use a reward item more than once!//	Add(<shop ID>,<reward ID>,<reward amount>,//	    <Zeny cost>,<point cost>,//	    <required item ID>,<required item amount>{,...});// -----------------------------------------------------------	Add(1,20622,1,2000000000,0,20078,5,7227,150,673,60,969,500,20145,2,670,20);		// -----------------------------------------------------------	freeloop(0);	set .menu$,"";	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {		set .menu$, .menu$+.Shops$[.@i]+":";		npcshopdelitem "PVPCUSTOM"+.@i,909;	}	end;OnMenu:	set .@size, getarraysize(@i);	if (!.@size) set .@i, select(.menu$);	else if (.@size == 1) set .@i, @i[0];	else {		for(set .@j,0; .@j<.@size; set .@j,.@j+1)			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";		set .@i, @i[select(.@menu$)-1];	}	deletearray @i[0],getarraysize(@i);	if (.Shops$[.@i] == "") {		message strcharinfo(0),"An error has occurred.";		end;	}	dispbottom "Select one item at a time.";	callshop "PVPCUSTOM"+.@i,1;	npcshopattach "PVPCUSTOM"+.@i;	end;OnBuyItem:	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);	copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));	set .@q[2],.@q[1]*.@q[3];	if (!.@q[2] || .@q[2] > 30000) {		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";		end;	}	mes "[PVPCUSTOM]";	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";	mes "Requirements:";	disable_items;	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";	next;	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);	if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))		set .@preview,1;	addtimer 1000, strnpcinfo(0)+"::OnEnd";	while(1) {		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {		case 1:			if (@qe[0]) { 				mes "[Quest Shop]";				mes "You're missing one or more quest requirements.";				close;			}			if (!checkweight(.@q[0],.@q[2])) {				mes "[Quest Shop]";				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";				close;			}			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)				delitem .@q[.@i],.@q[.@i+1]*.@q[1];			getitem .@q[0],.@q[2];			if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;			specialeffect2 EF_FLOWERLEAF;			close;		case 2:			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];			break;		case 3:			close;		}	}OnEnd:	if (@qe[7]) {		changelook LOOK_HEAD_BOTTOM, @qe[3];		changelook LOOK_HEAD_TOP, @qe[4];		changelook LOOK_HEAD_MID, @qe[5];		changelook LOOK_ROBE, @qe[6];	}	deletearray @qe[0],8;	end;function Add {	if (getitemname(getarg(1)) == "null") {		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";		return;	}	setarray .@j[0],getarg(2),getarg(3),getarg(4);	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {		if (getitemname(getarg(.@i)) == "null") {			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";			return;		} else			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);	}	copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);	return;}function Chk {	if (getarg(0) < getarg(1)) {		set @qe[0],1;		return "^FF0000";	} else		return "^00FF00";}function Slot {	set .@s$,getitemname(getarg(0));	switch(.ShowSlot) {		case 1: if (!getitemslots(getarg(0))) return .@s$;		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";		default: return .@s$;	}}function A_An {	setarray .@A$[0],"a","e","i","o","u";	set .@B$, "_"+getarg(0);	for(set .@i,0; .@i<5; set .@i,.@i+1)		if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);	return "a "+getarg(0);}}function	script	PVPCUSTOM	{	deletearray @i[0],getarraysize(@i);	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)		set @i[.@i],getarg(.@i);	doevent "PVPCUSTOM::OnMenu";	end;}// Dummy shop data -- copy as needed.//============================================================-	shop	PVPCUSTOM	-1,909:-1-	shop	PVPCUSTOM	-1,909:-1-	shop	PVPCUSTOM	-1,909:-1-	shop	PVPCUSTOM	-1,909:-1-	shop	PVPCUSTOM	-1,909:-1

  10. how to change from #cashpoint to #pvppoints?

    how to make this npc not duplicate? very time i add this npc it will detect another npc with using same script.

     

    //===== rAthena Script =======================================//= Euphy's Quest Shop//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.6b//===== Compatible With: =====================================//= rAthena SVN r16862+//===== Description: =========================================//= A dynamic quest shop based on Lunar's, with easier config.//= Includes support for multiple shops & cashpoints.//= Item Preview script by ToastOfDoom.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.2 Added category support.//= 1.3 More options and fixes.//= 1.4 Added debug settings.//= 1.5 Replaced categories with shop IDs.//= 1.6 Added support for purchasing stackables.//= 1.6a Added support for previewing costumes and robes.//= 1.6b Added 'disable_items' command.//============================================================// Shop NPCs -- supplying no argument displays entire menu.//	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};//============================================================sky_quest,42,48,5	script	Quest Shop#1	465,{ cutin "3rd_wl_queen04",2;callfunc "qshop"; }// Script Core//============================================================-	script	quest_shop	-1,{ function Add; function Chk; function Slot; function A_An;OnInit:	freeloop(1);// -----------------------------------------------------------//  Basic shop settings.// -----------------------------------------------------------	set .Announce,1;	// Announce quest completion? (1: yes / 0: no)	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)	set .MaxStack,100;	// Max number of quest items purchased at one time.// -----------------------------------------------------------//  Points variable -- optional quest requirement.//	setarray .Points$[0],"<variable name>","<display name>";// -----------------------------------------------------------	setarray .Points$[0],"#CASHPOINTS","Cash Points";// -----------------------------------------------------------//  Shop IDs -- to add shops, copy dummy data at bottom of file.//	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};// -----------------------------------------------------------	setarray .Shops$[1],"Headgear","Middle","Lower","Weapon";// -----------------------------------------------------------//  Quest items -- do NOT use a reward item more than once!//	Add(<shop ID>,<reward ID>,<reward amount>,//	    <Zeny cost>,<point cost>,//	    <required item ID>,<required item amount>{,...});// -----------------------------------------------------------	Add(1,20622,1,2000000000,10,20078,5,7227,150,673,60,969,500,20145,2,670,20);	// -----------------------------------------------------------	freeloop(0);	set .menu$,"";	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {		set .menu$, .menu$+.Shops$[.@i]+":";		npcshopdelitem "qshop"+.@i,909;	}	end;OnMenu:	set .@size, getarraysize(@i);	if (!.@size) set .@i, select(.menu$);	else if (.@size == 1) set .@i, @i[0];	else {		for(set .@j,0; .@j<.@size; set .@j,.@j+1)			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";		set .@i, @i[select(.@menu$)-1];	}	deletearray @i[0],getarraysize(@i);	if (.Shops$[.@i] == "") {		message strcharinfo(0),"An error has occurred.";		end;	}	dispbottom "Select one item at a time.";	callshop "qshop"+.@i,1;	npcshopattach "qshop"+.@i;	end;OnBuyItem:	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);	copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));	set .@q[2],.@q[1]*.@q[3];	if (!.@q[2] || .@q[2] > 30000) {		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";		end;	}	mes "[Quest Shop]";	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";	mes "Requirements:";	disable_items;	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";	next;	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);	if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))		set .@preview,1;	addtimer 1000, strnpcinfo(0)+"::OnEnd";	while(1) {		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {		case 1:			if (@qe[0]) { 				mes "[Quest Shop]";				mes "You're missing one or more quest requirements.";				close;			}			if (!checkweight(.@q[0],.@q[2])) {				mes "[Quest Shop]";				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";				close;			}			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)				delitem .@q[.@i],.@q[.@i+1]*.@q[1];			getitem .@q[0],.@q[2];			if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;			specialeffect2 EF_FLOWERLEAF;			close;		case 2:			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];			break;		case 3:			close;		}	}OnEnd:	if (@qe[7]) {		changelook LOOK_HEAD_BOTTOM, @qe[3];		changelook LOOK_HEAD_TOP, @qe[4];		changelook LOOK_HEAD_MID, @qe[5];		changelook LOOK_ROBE, @qe[6];	}	deletearray @qe[0],8;	end;function Add {	if (getitemname(getarg(1)) == "null") {		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";		return;	}	setarray .@j[0],getarg(2),getarg(3),getarg(4);	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {		if (getitemname(getarg(.@i)) == "null") {			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";			return;		} else			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);	}	copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);	return;}function Chk {	if (getarg(0) < getarg(1)) {		set @qe[0],1;		return "^FF0000";	} else		return "^00FF00";}function Slot {	set .@s$,getitemname(getarg(0));	switch(.ShowSlot) {		case 1: if (!getitemslots(getarg(0))) return .@s$;		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";		default: return .@s$;	}}function A_An {	setarray .@A$[0],"a","e","i","o","u";	set .@B$, "_"+getarg(0);	for(set .@i,0; .@i<5; set .@i,.@i+1)		if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);	return "a "+getarg(0);}}function	script	qshop	{	deletearray @i[0],getarraysize(@i);	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)		set @i[.@i],getarg(.@i);	doevent "quest_shop::OnMenu";	end;}// Dummy shop data -- copy as needed.//============================================================-	shop	qshop1	-1,909:-1-	shop	qshop2	-1,909:-1-	shop	qshop3	-1,909:-1-	shop	qshop4	-1,909:-1-	shop	qshop5	-1,909:-1 

    this is the pvppoint script

     

    -	script	mypvppoints	-1,{OnInit:	bindatcmd "pvppoints",strnpcinfo(3)+"::OnAtcommand";	end;OnAtcommand:dispbottom "[ PvP Points ] : Your PvP Points: "+PvPPoints;end;}-	script	check player	-1,{OnPCLoginEvent:	if(!PvPPoints) { PvPPoints = 0; PvPWarning = 0; }	end;}-	script	PvPPointTimer	-1,{OnTimerStart:	sleep2 90000;	PvPFlag = 0;	end;}-	script	PvP Points	-1,{OnPCKillEvent:for (set @i,0; @i < getarraysize(.Open_Maps$); set @i,@i+1)if( strcharinfo(3) == .Open_Maps$[@i] ) {	if(PvPFlag && (killedrid == PrevKilled)) {		PvPWarning += 1;		if(PvPWarning >= .cons_kill_count) {			PvPPoints -= .deducted_points;			callsub L_PointCheck,PvPPoints;			dispbottom "You've lost "+.deducted_points+" PvP Points.";			dispbottom "You now have "+PvPPoints+" Points.";			PvPWarning = 0;			callsub Timer;		}		PvPPoints += .added_points;		dispbottom "You've been awarded "+.added_points+" PvP Point.";		dispbottom "You now have "+PvPPoints+" Points.";	Timer:		awake "PvPPointTimer";		PvPFlag = 1;		doevent "PvPPointTimer::OnTimerStart";		end;	}	if ( killedrid == getcharid(3) ) {		PvPPoints -= .deducted_points;		callsub L_PointCheck,PvPPoints;		dispbottom "You've lost "+.deducted_points+" PvP Point.";		dispbottom "You now have "+PvPPoints+" Points.";		end;	}		callsub AddPoint;	attachrid(killedrid);	PvPPoints -= .deducted_points;	callsub L_PointCheck,PvPPoints;	dispbottom "You've lost "+.deducted_points+" PvP Point.";	dispbottom "You now have "+PvPPoints+" Points.";	detachrid;	AddPoint:	PvPPoints += .added_points;	dispbottom "You've been awarded "+.added_points+" PvP Point.";	dispbottom "You now have "+PvPPoints+" Points.";	PrevKilled = killedrid;	PvPFlag = 1;	doevent "PvPPointTimer::OnTimerStart";	end;L_PointCheck:	if(getarg(0) < 0) PvPPoints = 0;	return;	end;}OnInit:// Put the map you want to enable the PvP Points ( only for Option 1 )setarray .Open_Maps$[0],"izlude","geffen","morocc","prontera";set .cons_kill_count,5; // count consecutive kill in the same player ( Default 5 )set .deducted_points,30; // deducted points in killing the same player ( Default 5 )set .added_points,3; // Added Points when killing ( Default 3 )end;} 

     

     

     

     

  11. how to calculate coordinate when change map?

    how to make it announce. right now this script not make announce?

    how to make it on when using commands?

     

    invek,118,200,5	script	Monster Counting Game	757,{	function xy_wall;	end;		OnInit:		.max_round = 3;		.max_duration = 3;		.wall_mob_id = 1085;		setarray .xy_area,			151,169,			161,179;		setarray .monster,			PORING,			DROPS,			MARIN,			POPORING;					.monster_size = getarraysize( .monster );		.npc_name$ = strnpcinfo(0);		getmapxy( .map$,.npc_x,.npc_y,1 );		setmapflag .map$,mf_monster_noteleport;		end;			OnMinute00:	OnStartEvent:		if ( !.status ) {			areawarp .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],.map$,.npc_x,.npc_y;			killmonster .map$,.npc_name$+"::OnDied";			killmonster .map$,.npc_name$+"::OnWallDied";			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,1;			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;			.status = 1;						for( .@i = .xy_area[0]; .@i <= .xy_area[2]; .@i++ ){				xy_wall( .@i,.xy_area[1] );				xy_wall( .@i,.xy_area[3] );			}			for( .@i = .xy_area[1]; .@i <= .xy_area[3]; .@i++ ){				xy_wall( .xy_area[0],.@i,0 );				xy_wall( .xy_area[2],.@i );			}						do{				.@round++;				npctalk "Round # "+.@round;				sleep 5000;								.status = 2;				.@mob = .monster[ rand( .monster_size ) ];				.@amount = rand( 20,50 );				// add-on size influence ?				areamonster .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],"",.@mob,.@amount,.npc_name$+"::OnDied";							deletepset 1;				defpattern 1,"([^:]+):.*"+.@amount+".$", "OnRight";				activatepset 1;				waitingroom "How many's there?",0;				npctalk "Tell me the correct amount of monster in there.";				// debugmes " > "+.@amount+" "+getmonsterinfo( .@mob,MOB_NAME );								sleep ( .max_duration * 60000 );								killmonster .map$,.npc_name$+"::OnDied";				delwaitingroom;				deletepset 1;				.status = 1;				sleep 5000;							}while( .@round < .max_round );						npctalk "That's the Last, thank you for participating.";			emotion e_thx;						killmonster .map$,.npc_name$+"::OnDied";			killmonster .map$,.npc_name$+"::OnWallDied";			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,0;			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;			.status = 0;		}		end;			OnDied: 	OnWallDied: 		end;	OnRight:		getmapxy( .@map$,.@x,.@y,0 );		if ( .status == 0 ) {			dispbottom "[Counting Game] Event isnt running.";		}		else if ( .status == 1 ) {			dispbottom "[Counting Game] Please wait for the round to start.";		}		else if ( distance( .npc_x,.npc_y,.@x,.@y ) > 14 ) {			dispbottom "[Counting Game] You're too far away.";		}		else {			npctalk "Bravo!! "+strcharinfo(0)+" is correct!!";						// rewards			getitem 7227,2;						specialeffect2 EF_POTION_CON;			awake .npc_name$;		}		end;			function	xy_wall	{		.@x = getarg(0); 		.@y = getarg(1);		monster .map$,.@x,.@y,"",.wall_mob_id,1,.npc_name$+"::OnWallDied";		setcell .map$,.@x,.@y,.@x,.@y,cell_walkable,0;		// setcell .map$,.@x,.@y,.@x,.@y,cell_basilica,1;		return;	}}
×
×
  • Create New...

Important Information

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