Jump to content

dize11

Members
  • Posts

    93
  • Joined

  • Last visited

Posts posted by dize11

  1. OnInit:
    	set .maplist$, "|map1|map2|map3|map4|";
    	end;
    
    OnPCDieEvent:
    	if( !compare(.maplist$,"|"+strcharinfo(3)+"|") )
    	end; set(@life,@life+1); if( @life > 1 )
    	{ warp "SavePoint",0,0; set(@life,0); } end;
    

    How can i put in this script because not working if ill make another script file

     

    OnPCDieEvent:
    getmapxy .@map$, .@x, .@y, 0;
    for( set .@i, 0; .@i < getarraysize(.pvpmap$); set .@i, .@i+1 ) {
    if( .@map$ == .pvpmap$[.@i] ) {
    if ( #CASHPOINTS <= 0 ) end;
    set #CASHPOINTS,#CASHPOINTS-1;
    dispbottom "You have lose 1 Cash Point. Total is "+#CASHPOINTS+" Cash Points.";
    }
    }
    end;
    
    OnInit:
    setarray .pvpmap$[0],"guild_vs2","pvp_y_8-2","guild_vs1","guild_vs3","guild_vs4","guild_vs5","guild_vs1-2","1@orcs";
    setarray .announcements$[0],"was killed by","was violated by","was owned by";
    end;
    }
    
  2. Oh thank you very much!! Skorm!! All works now! But the windows of VIP system 3.0 once i upgrade it cannot been closed stock theres no 'mes close' something like that to close it.

     

    Another thing one last favour skorm and i leave this! Can the items once npc detected and and upgraded can be deleted!

     

    Thank you in advance!!!

  3.  

     Npc stop at upgrade my account value

    script:getarg: index <idx=2> out of range <nargs=2> and no default value found
    [debug]: source <npc>: VIP system at prontera <150,150>
    

     

    Oh ic looks like that error existed prior to my investments.

     

    Find:

    callfunc( "VIP_upgrade", 7, .item_premium );
    

     

    Replace With:

    callfunc( "VIP_upgrade", 7, .item_premium, X );
    

    Where "X" is the number of premium you want your player to upgrade to.

     

    0 = Bronze

    1 = Silver

    2 = Gold

     

    Also you might want to change .item_premium to the item id you want the player to use. Like POD or something, because it doesn't look like that was ever set.

     

    Example:

    callfunc( "VIP_upgrade", 7, 501, 2 );
    

    Is gold for the cost of one red potion.

    If i put in "x" one number they only able to chose only one not the the 3 types

  4. You have to run this code in your phpmyadmin...

     

    ALTER table `login` add column account_type varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type);
    UPDATE `login` SET `account_type` = 'NULL';
    

     

    And the rest of them as well if you haven't already.

    after clicking the button upgrade my account the window get stock heres the images.

    to this...

  5. Some one how to work this because im getting some problem with the npc cant click it.. anyway im using ea mod

    // base on victor's vip script
    
    /*
    CREATE TABLE IF NOT EXISTS `vip_bronze` (
      `account_id` int(11) unsigned NOT NULL default '0',
      `account_name` varchar(255) NOT NULL default 'NULL',
      `start_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `end_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `status` varchar(255) NOT NULL DEFAULT 'NULL',
      PRIMARY KEY  (`account_id`)
    ) ENGINE=MyISAM;
    
    CREATE TABLE IF NOT EXISTS `vip_silver` (
      `account_id` int(11) unsigned NOT NULL default '0',
      `account_name` varchar(255) NOT NULL default 'NULL',
      `start_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `end_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `status` varchar(255) NOT NULL DEFAULT 'NULL',
      PRIMARY KEY  (`account_id`)
    ) ENGINE=MyISAM;
    
    CREATE TABLE IF NOT EXISTS `vip_gold` (
      `account_id` int(11) unsigned NOT NULL default '0',
      `account_name` varchar(255) NOT NULL default 'NULL',
      `start_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `end_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `status` varchar(255) NOT NULL DEFAULT 'NULL',
      PRIMARY KEY  (`account_id`)
    ) ENGINE=MyISAM;
    
    ALTER table `login` add column account_type varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type);
    
    UPDATE `login` SET `account_type` = 'NULL';
    TRUNCATE `vip_bronze`;
    TRUNCATE `vip_gold`;
    TRUNCATE `vip_silver`;
    */
    
    prontera,150,150,5	script	VIP system	56,{
    function statusvip;
    function expirevip;
    function mainmenu;
    function showlist;
    function deletevip;
    function addvip;
    
    	mes .npc_Name$;
    	query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$;
    	while( .@i < 3 && strtolower( .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1;
    	if( .@i == 3 )
    		mes "Hello "+ strcharinfo(0) +" you have an normal account. Get an "+ getitemname( .item_premium_b ) +", "+ getitemname( .item_premium_s ) +", "+ getitemname( .item_premium_g ) +" to get a premium account.";
    	else {
    		set .@expiration_Date$, statusvip( .type_name$[.@i], .@i +1, 1 );
    		mes "Hello "+ strcharinfo(0) +" you have an "+ .type_name$[.@i] +" and it will expire in "+ .@expiration_Date$;
    	}
    	goto L_player;
    
    OnWhisperGlobal:
    	if ( getgmlevel() < 99 ) end;
    L_main:
    	mes .npc_Name$;
    	mes "Welcome, "+ strcharinfo(0) +"!";
    	mes "What can I do for you today?";
    L_player:
    	next;
    	set .@s, select( ( getgmlevel() < 99 ? "" : "VIP bronze Menu" ), ( getgmlevel() < 99 ? "" : "VIP silver Menu" ), ( getgmlevel() < 99 ? "" : "VIP gold Menu" ),
    			( ( countitem( .item_premium_b ) || countitem( .item_premium_s ) || countitem( .item_premium_g ) ) && .up_npc ? "Upgrade my account" : "" ), "Quit" ) -1;
    	if ( .@s == 4 ) close;
    	else if( .@s == 3 )
    		callfunc( "VIP_upgrade", 7, .item_premium );
    	set .@a$, "[VIP "+ strtoupper( .type_name$[.@s] ) +"]";
    
    	next;
    	mes .npc_Name$;
    	mes .@a$;
    	// if( getgmlevel() < 99 ) {
    		// set .@sub_s, select( "List Accounts", "Cancel" );
    		// if( .@sub_s == 2 ) close;
    		// mainmenu( .@sub_s +2, .@s );
    	// }
    	next;
    	set .@sub_s, select( "Add/Extend Account", "Delete Account", "List Accounts", "Back" );
    	if ( .@sub_s == 4 || mainmenu( .@sub_s, .@s, .@a$ ) ) goto L_main;
    
    // Setting
    // -------
    OnInit:
    	set .npc_Name$,"[VIP System v3.0]";
    
    	set .bronze_AccLvl, 1;		// VIP bronze Account Level
    	set .silver_AccLvl, 2;		// 	   silver
    	set .gold_AccLvl, 3;		// 	   gold
    
    	set .bronze_ExpRate, 25;	// VIP bronze Exp Boost in % ( 1 = 1% )
    	set .silver_ExpRate, 50;	// 	   silver
    	set .gold_ExpRate, 100;		//	   gold
    
    	set .bronze_ItemRate, 0;	// VIP bronze Item Drop Boost in % ( 1 = 1% )
    	set .silver_ItemRate, 5;	//	 silver
    	set .gold_ItemRate, 10;		//	 gold
    
    	set .item_premium_b, 501; // ID item to upgrade your account to bronze
    	set .item_premium_s, 501; // ID item to upgrade your account to silver
    	set .item_premium_g, 501; // ID item to upgrade your account to gold
    	set .fcp, 0;			// fcp for gold vip ? (0 : no) / (1 : yes)
    	set .up_npc, 0;				// player can upgrade to npc if items required 0 : no
    	setarray .type_name$, "bronze", "silver", "gold" ;
    	end;
    
    // On login
    // --------
    OnPCLoginEvent:
    	query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$;
    	while( .@i < 3 && strtolower( .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1;
    	if( .@i == 3 ) end;
    	sc_end sc_expboost;	
    	sc_end sc_itemboost;
    	set .@expiration_Date$, statusvip( .type_name$[.@i], .@i, 0 );
    	dispbottom "----------------------------------------------------------------------";
    	dispbottom "Account type:		 "+ .@acc_Type$;
    	dispbottom "Expiration date: "+ .@expiration_Date$;
    	dispbottom "----------------------------------------------------------------------";
    	end;
    
    // Check the VIP status ; bonus VIP
    // --------------------------------
    function statusvip {
    	query_sql "SELECT `status` FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@vip_Status$ ;
    	query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %m %d') FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@expiration_Date$ ;
    	if( getarg(2) ) return .@expiration_Date$;
    	if ( gettimestr("%Y %m %d",21) >= .@expiration_Date$ )
    		expirevip( "vip_"+ getarg(0), getcharid(3) );
    	else {
    		set .@time, 3600 * 60 * 1000;
    		set .@it_Rate, getd( "."+ getarg(0) +"_ItemRate" );
    		set .@exp_rate, getd( "."+ getarg(0) +"_ExpRate" );
    		if( .@exp_rate )
    			sc_start sc_expboost, .@time, .@exp_rate;
    		if( .@it_Rate )
    			sc_start sc_itemboost, .@time, .@it_Rate;
    		if( getarg(1) == 2 && .fcp ) {
    			sc_start SC_CP_WEAPON, .@time, 5;
    			sc_start SC_CP_SHIELD, .@time, 5;
    			sc_start SC_CP_ARMOR, .@time, 5;
    			sc_start SC_CP_HELM, .@time, 5;
    		}
    	}
    	return .@expiration_Date$;
    }
    
    // VIP expire : updates tables
    // ---------------------------
    function expirevip {
    	set .@T_Name$, getarg(0);
    	set .@acc_Id, getarg(1);
    	query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE account_id = "+ .@acc_Id;
    	query_sql "DELETE FROM "+ .@T_Name$ +" WHERE account_id = "+ .@acc_Id;
    	query_sql "ALTER TABLE "+ .@T_Name$ +" AUTO_INCREMENT = 1";
    	sc_end SC_CP_WEAPON;
    	sc_end SC_CP_SHIELD;
    	sc_end SC_CP_ARMOR;
    	sc_end SC_CP_HELM;
    	dispbottom "Your VIP expire.";
    	end;
    }
    
    function mainmenu {
    	switch( getarg(0) ) {
    		case 1: addvip( getarg(1), getarg(2) ); break;
    		case 2: deletevip( getarg(1), getarg(2) ); break;
    		case 3: showlist( getarg(1) );
    	}
    	return 1;
    }
    
    function addvip {
    	set .@s, getarg(0);
    	set .@a$, getarg(1);
    
    	mes .npc_Name$;
    	mes .@a$;
    	mes "Type the Account Name";
    	mes "you wish to add.";
    	input .@acc_Name$;
    	next;
    
    	mes .npc_Name$;
    	mes .@a$;
    	query_sql "SELECT `account_id` FROM login WHERE `userid` = '"+ escape_sql( .@acc_Name$ )+"'", .@acc_Id ;
    	mes "Identifying account: "+ .@acc_Name$ +".";
    	sleep2 500;
    	if ( !.@acc_Id ) {
    		mes "ERROR: Couldn't find account.";
    		mes "Verify if you dind't make a typo.";
    		close;
    	}
    
    	mes .npc_Name$;
    	mes .@a$;
    	mes "Type the number of days you";
    	mes "wish to add to the account's VIP";
    	mes "status.";
    	next;
    
    	while( input( .@Days, 1, 999 ) != 0 ) {
    		mes .npc_Name$;
    		mes .@a$;
    		mes "Put a number between 1 and 999.";
    		next;
    	}
    	mes .npc_Name$;
    	mes .@a$;
    	query_sql "SELECT `account_id` FROM vip_"+ .type_name$[.@s] +" WHERE `account_id` = "+ .@acc_Id, .@vip_accid;
    	if ( .@vip_accid == .@acc_Id ) {
    		mes "Account ID: "+ .@vip_accid +".";
    		sleep2 500;
    		query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(end_date, INTERVAL "+ .@Days +" DAY), `status` = 'ACTIVE' WHERE account_id = "+.@vip_accid;
    		query_sql "UPDATE login SET `account_type` = '"+ strtoupper( .type_name$[.@s] ) +"' WHERE account_id = "+ .@vip_accid;
    		mes "Account "+ .@acc_Id +" added successfuly!";
    	}
    	else {
    		mes "Account ID: "+ .@acc_Id +".";
    		sleep2 500;
    		query_sql "INSERT INTO vip_"+ .type_name$[.@s] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@acc_Id+",'"+ escape_sql( .@acc_Name$ ) +"','"+gettimestr("%Y-%m-%d",21)+"','"+gettimestr("%Y-%m-%d",21)+"','ACTIVE')";
    		sleep2 100;
    		query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(start_date, INTERVAL "+ .@Days +" DAY) WHERE account_id = "+.@acc_Id;
    		query_sql "UPDATE `login` SET `level` = "+ getd( "."+ .type_name$[.@s] +"_AccLvl" ) +", `account_type` = '"+ strtoupper( .type_name$[.@s] ) +"' WHERE `account_id` = "+.@acc_Id;
    		mes "Account "+ .@acc_Id +" added successfuly!";
    	}
    	close;
    }
    
    function deletevip {
    	set .@s, getarg(0);
    	set .@a$, getarg(1);
    	set .@size, query_sql( "SELECT account_name,`account_id`  FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$, .@acc_id );
    		mes .npc_Name$;
    		mes .@a$;
    	if ( .@size == 0 )
    		mes "There are currently no VIP "+ .type_name$[.@s] +" accounts.";
    	else {
    		mes "Select the account you wish ";
    		mes "to remove from VIP system.";
    		
    		set .@j$, "1. "+ .@List$;
    		for ( set .@i, 1; .@i < .@size; set .@i, .@i + 1 )
    			set .@j$, .@j$ +":"+ ( .@i +1 ) +". "+ .@List$[.@i];
    		set .@j$, .@j$ +":Cancel";
    		next;
    
    		mes .npc_Name$;
    		mes .@a$;
    		set .@menu_del, select( .@j$ ) -1;
    		if ( .@menu_del == .@size ) {
    			next;
    			return;
    		}
    		mes "Are you sure you want to remove the account ";
    		mes .@List$[ .@menu_del ] +" ?";
    		if ( select( "Yes", "No" ) -1 ) {
    			next;
    			return;
    		}
    		query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE `account_id` = '"+ .@acc_id +"'";
    		query_sql "DELETE FROM vip_"+ .type_name$[.@s] +" WHERE account_id = "+ .@acc_id;
    		query_sql "ALTER TABLE vip_"+ .type_name$[.@s] +" AUTO_INCREMENT = 1";
    		mes "VIP "+ .type_name$[.@s] +" account successfuly deleted!.";
    	}
    	close;
    }
    
    function showlist {
    	set .@s, getarg(0);
    	mes .npc_Name$;
    	mes "VIP "+ .type_name$[.@s] +" accounts list:";
    	set .@size, query_sql( "SELECT account_name FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$ );
    	if( .@size == 0 ) {
    		mes "The list is empty.";
    		close;
    	}
    	for ( set .@i, 0; .@i < .@size; set .@i, .@i + 1 )
    		mes ( .@i +1 )+". "+ .@List$[ .@i ];
    	close;
    }
    }
    
    // Upgrade via itemscript
    // ----------------------
    /*
    callfunc( "VIP_upgrade", 7, 12703, 0 );
    getarg(2) :
    	0 = up to bronze
    	1 = up to silver
    	2 = up to gold
    */
    function	script	VIP_upgrade	{
    	if( select( "^777777~ Upgrade my account", "~ Not today^000000" ) -1 ) close;
    	set .@acc_id, getcharid(3) ;
    	setarray .@type_name$, "bronze", "silver", "gold" ;
    	set .@bronze_AccLvl, 1;		// VIP bronze Account Level
    	set .@silver_AccLvl, 2;		// 	   silver
    	set .@gold_AccLvl, 3;		// 	   gold
    
    	query_sql "SELECT `userid`, `account_type` FROM `login` WHERE `account_id` = '"+ .@acc_id +"'", .@user_id$, .@acc_type$;
    	while( .@i < 3 && strtolower( .@acc_Type$ ) != .@type_name$[.@i] ) set .@i, .@i +1;
    
    	if ( .@i == 2 || ( .@i >= getarg(2) && .@i != 3 ) ) {
    		dispbottom "Your can't upgrade your account.";
    		close;
    	}
    	else if( .@i != 3 ) {
    		query_sql "DELETE FROM vip_"+ .@type_name$[.@i] +" WHERE account_id = '"+ .@acc_id +"'";
    		query_sql "ALTER TABLE vip_"+ .@type_name$[.@i] +" AUTO_INCREMENT = 1";
    	}
    	query_sql "INSERT INTO vip_"+ .@type_name$[ getarg(2) ] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+ .@acc_id +",'"+ escape_sql( .@user_id$ ) +"','"+gettimestr("%Y-%m-%d",21)+"', ( DATE_ADD('"+ gettimestr("%Y-%m-%d",21) +"', INTERVAL "+ getarg(0) +" DAY) ), 'ACTIVE') ";
    	query_sql "UPDATE `login` SET `level` = "+ getd( ".@"+ .@type_name$[ getarg(2) ] +"_AccLvl" ) +", `account_type` = '"+ strtoupper( .@type_name$[ getarg(2) ] ) +"' WHERE `account_id` = '"+ .@acc_id +"'";
    	query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %M %d') FROM vip_"+ .@type_name$[ getarg(2) ] +" WHERE `account_id` = '"+ .@acc_id +"'", .@exp_Date$;
    	message strcharinfo(0), "Account updated. Expiration : "+ .@exp_Date$;
    	delitem getarg(1), 1;
    	sleep2 1000;
    	message strcharinfo(0), "You must relog.";
    	sleep2 2000;
    	if( playerattached() )
    		atcommand "@kick "+ strcharinfo(0);
    	close;
    }
    
    // 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 0 ); /* 7 days, item ID to delete */ },{},{}
    // 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 1 ); /* 7 days, item ID to delete */ },{},{}
    // 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 2 ); /* 7 days, item ID to delete */ },{},{}
    

     

     

  6. It doesn't start in gvg, battleground maps and in the maps you want in the setting

    OnInit:
    	setarray .@tmp$, "prontera", "geffen";// yours maps no pvp
    

    It start at night.

     

    Also you must recompile your server...

    its any diference of about eathena in rathena mod? because i have eathena

  7. //===== eAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4a - eAthena
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
    					
    prontera,164,203,6	script	Quest Shop	998,{
    function Add; function Chk; function Slot; function A_An;
    
    	if(.Shops$ != "") set .@i,1;
    	else {
    		set .@menu$,"";
    		for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
    			set .@menu$, .@menu$+.Shops$[.@i]+":";
    		set .@i, select(.@menu$); }
    	dispbottom "Select one item at a time.";
    	callshop "qshop"+.@i,1;
    	npcshopattach "qshop"+.@i;
    	end;
    
    function Add {
    	if (getitemname(getarg(1))=="null") {
    		debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
    	for(set .@n,5; .@n<127; set .@n,.@n+2) {
    		if (!getarg(.@n,0)) break;
    		if (getitemname(getarg(.@n))=="null") {
    			debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
    	for(set .@i,2; .@i<.@n; set .@i,.@i+1)
    		set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
    	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    	sleep 1;
    	return; }
    function Chk {
    	if (getarg(0)<getarg(1)) { set @qe0,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),11)>0) 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); }
    
    OnBuyItem:
    	set .@q[0],@bought_nameid;
    	copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
    	if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
    	mes "[Quest Shop]";
    	mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
    	mes "Requirements:";
    	if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
    	if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
    	if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
    		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
    	next;
    	set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11);
    	addtimer 1000, strnpcinfo(1)+"::OnEnd";
    	while(1){
    		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    			case 1:
    				if (@qe0) { 
    					mes "[Quest Shop]";
    					mes "You're missing one or more quest requirements.";
    					close; }
    				if (!checkweight(.@q[0],.@q[1])) {
    					mes "[Quest Shop]";
    					mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    					close; }
    				if (.@q[2]) set Zeny, Zeny-.@q[2];
    				if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
    				if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
    					delitem .@q[.@i],.@q[.@i+1];
    				getitem .@q[0],.@q[1];
    				if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
    				specialeffect2 699;
    				close;
    			case 2:
    				set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
    				if (@qe1&1) atcommand "@changelook 3 "+@qe2;
    				if (@qe1&256) atcommand "@changelook 1 "+@qe2;
    				if (@qe1&512) atcommand "@changelook 2 "+@qe2;
    				set @qe6,1;
    				break;
    			case 3:
    				close; } }
    OnEnd:
    	if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
    	for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
    	end;
    OnInit:
    // --------------------- Config ---------------------
    // Custom points, if needed: "<variable>","<name to display>"
    	setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    	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 .DisplayID,0;	// Show item IDs? (1: yes / 0: no)
    	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)
    
    // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};
    // Duplicate dummy data for any additional shops (bottom of script).
    // If no categories, use the second line instead (remove //).
    
    	setarray .Shops$[1],"Headgears","Weapons","Other";
    	// set .Shops$,"n/a";
    
    // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,
    //     <required item ID>,<required item amount>{,...});
    // Shop number corresponds with order above (default is 1).
    // Note: Do NOT use a reward item more than once!
    
    	Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    	Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
    	Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
    	Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
    
    	Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
    	Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
    
    	Add(3,531,1,3,0,512,1,713,1);
    	Add(3,532,1,3,0,513,1,713,1);
    	Add(3,533,1,3,0,514,1,713,1);
    	Add(3,534,1,3,0,515,1,713,1);
    
    // --------------------------------------------------
    	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
    		npcshopdelitem "qshop"+.@i,909;
    	end;
    }
    3600
    // -------- Dummy data (duplicate as needed) --------
    -	shop	qshop1	-1,909:-1
    -	shop	qshop2	-1,909:-1
    -	shop	qshop3	-1,909:-1
    

     

     

×
×
  • Create New...