Jump to content

jacky

Members
  • Posts

    51
  • Joined

  • Last visited

Posts posted by jacky

  1. On 11/7/2014 at 12:44 PM, Emistry said:
    
    -	script	pvp_point	-1,{
    	OnPCKilLEvent:
    		if ( killedrid == @last_killedrid )
    			@last_killedrid_count++;
    		else 
    			@last_killedrid_count = 0;
    		
    		@last_killedrid = killedrid;
    		
    		if ( getcharid(3) != killedrid && strcharinfo(3) == "guild_vs3" && @last_killedrid_count < 3 ) {
    			PVP_POINT++;
    			dispbottom " +1 PVP Point.";
    		}
    		end;
    }

    i write the script based on 1st post, didnt check the rest of the post.

     

     

    anyway i was just try to show him how the shop can be done easily using the pointshop instead of still using dynamic npc shop script for it.

    btw , how to change value of PK point kill. i will per Killed get 2 PK point ? thanks u

  2. Helo all im newbie here.
    Anybody can help me for build NPC Kill Bos monster. with ths consept.like this :

    1.If want go to  Room must Party Min 5 Player.
    2.In npc ROOM - Monster Boss spawn 2x /Day [ on Day 12 : 00 and Night on 22:00 ]
    3.Boss Monster Have soldier /Guard Monster 
    4.Boss Monster Have skill random : asura , tarot ,fire bolt, storm gust, Meteor Storm, Stun and Silent [ Agresift like champion champ ]
    5.when player has killed Boss Monster ,all monster in the room has die [ killmonster ]
    6.Player Killer boss Monster autoloot to inventory the drop Item from Boss Monster [ Just drop from boss monster ]
    7.After Boss Monster Die ,next spawn 100 monster, but has killed auto [ killmonster ] and Drop item.
    8.Player can't autoloot item but Must loot manual.
    9.CleanMap after 30 second


    in room Can PK mode / pvpon
    in room can more 1 party  [ party 1 ,party 2 and party 3 ]

    thanks alot and sorry with my engglish.

  3.  

    PLACE THIS IN THE START OF THE SCRIPT

     

    OnInit:

    hideonnpc "Private MVP";
    end;
     
    AND THIS WHERE YOU WANT IT TO HIDE IT 
     
    hideonnpc "Private MVP;

     

    thanks u very much angela... hehehe

    work it . hehe

    now i want to ask about Vending Cashpoint Mode.

    so i looks at other server , there is can vending with cash System.

    how to make vending cash system that ?  hehe 

     

  4. OnInit:
    	.color$[1] =  "^EE8800"; // party color
    	.color$[2] =  "^70CC11"; // guild color
    	.color$[3] =  "^0000FF"; // account color
    	// end;
    
    // add belows.	
    OnSun1600:
    	hideonnpc strnpcinfo(0);
    	end;
    
    OnSun1400:
    	hideoffnpc strnpcinfo(0);
    	end;
    

    auto hide/show NPC on sunday.

     

    adjust the settings for auto kickout.

    	// Room rental time, in minutes.
    	// When time runs out, all players inside the room will be kicked out.
    	// Do NOT set this to zero!
    	set .timeout, 10;
    

    big thanks For u Moderators.

    Maybe Like This sir ?

     

  5. hi there ....
    please hlep me with my npc Private MVP
    1. Iwant make this npc can Auto Hide / auto disable and enable onclok
     example : iwant this npc  Enable onclock 14:00 and Disable onclock 16:00   Just in Sunday.

    2.On this npc have timer 10 minute but i want every timer out this character/player AutoKick from room.

    Anybody help me 
    and so sorry but my english . hehehe

    this is my npc script : 

    //===== rAthena Script =======================================
    //= Private MVP & Branch Room
    //===== By: ==================================================
    //= AnnieRuru
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Allows players to rent an MVP room for personal use,
    //= or for a party or guild.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    prontera,143,193,5	script	Private MVP	100,{
    	mes "[Private MVP Room]";
    	mes "Please select a private MVP room.";
    	if ( getvariableofnpc( .rentcost, "MVP Summoner" ) )
    		mes "The cost to rent a room for "+ getvariableofnpc( .timeout, "MVP Summoner" ) +" minutes is "+ callfunc("F_InsertComma", getvariableofnpc( .rentcost, "MVP Summoner" ) ) +" zeny.";
    	else
    		mes "You can only use the room for only "+ getvariableofnpc( .timeout, "MVP Summoner" ) +" minutes.";
    	mes " ";
    	for ( .@i = 1; .@i <= 8; .@i++ )
    		if ( getvariableofnpc( .renttime[.@i], "MVP Summoner" ) )
    			mes "Room #"+ .@i +" = "+ .color$[ .type[.@i] ] + .whoinuse$[.@i] +"^000000";
    	next;
    	.@room = select(
    		"MVP Room 1 ["+ getmapusers("06guild_01") +"]",
    		"MVP Room 2 ["+ getmapusers("06guild_02") +"]",
    		"MVP Room 3 ["+ getmapusers("06guild_03") +"]",
    		"MVP Room 4 ["+ getmapusers("06guild_04") +"]",
    		"MVP Room 5 ["+ getmapusers("06guild_05") +"]",
    		"MVP Room 6 ["+ getmapusers("06guild_06") +"]",
    		"MVP Room 7 ["+ getmapusers("06guild_07") +"]",
    		"MVP Room 8 ["+ getmapusers("06guild_08") +"]");
    	if ( getvariableofnpc( .renttime[.@room], "MVP Summoner" ) ) {
    		if ( .inuseid[.@room] == getcharid( .type[.@room] ) ) {
    			warp "06guild_0"+ .@room, 0,0;
    			close;
    		} else {
    			mes "[Private MVP Room]";
    			mes "This room is reserved for ";
    			mes .color$[ .type[.@room] ] + .whoinuse$[.@room] +"^000000.";
    			mes "Please select another.";
    			close;
    		}
    	}
    	mes "[Private MVP Room]";
    	mes "Reserve this room for...";
    	next;
    	set .@type, select( "For my party members", "For my guild members", "For personal account use" );
    	if ( !getcharid(.@type) ) {
    		mes "[Private MVP Room]";
    		mes "You do not own a "+( ( .@type == 1 )? "Party" : "Guild" )+".";
    		close;
    	}
    	else if ( Zeny < getvariableofnpc( .rentcost, "MVP Summoner" ) ) {
    		mes "You don't have enough zeny to rent a room.";
    		close;
    	}
    	else if ( getvariableofnpc( .renttime[.@room], "MVP Summoner" ) ) {
    		mes "[Private MVP Room]";
    		mes "I'm sorry, somebody else has already registered this room faster than you.";
    		close;
    	}
    	for ( .@i = 1; .@i <= 8; .@i++ ) {
    		if ( ( getvariableofnpc( .renttime[.@i], "MVP Summoner" ) ) && .@type == .type[.@i] && getcharid(.@type) == .inuseid[.@i] ) {
    			mes "[Private MVP Room]";
    			mes "You already rented Room#"+ .@i +". Use that room instead.";
    			close;
    		}
    	}
    	set .type[.@room], .@type;
    	set .inuseid[.@room], getcharid(.@type);
    	set .whoinuse$[.@room], strcharinfo( ( .@type == 3 )? 0 : .@type );
    	Zeny -= getvariableofnpc( .rentcost, "MVP Summoner" );
    	warp "06guild_0"+ .@room, 0,0;
    	killmonsterall "06guild_0"+ .@room;
    	donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";
    	close;
    OnInit:
    	.color$[1] =  "^EE8800"; // party color
    	.color$[2] =  "^70CC11"; // guild color
    	.color$[3] =  "^0000FF"; // account color
    	end;
    }
    
    -	script	MVP Summoner	-1,{
    	mes "[MVP Summoner]";
    	mes "Time left: " + callfunc( "Time2Str", .renttime[ atoi( strnpcinfo(2) ) ] + .timeout * 60 );
    	mes "Hi, what can I do for you?";
    	next;
    	switch ( select(.menu$) ) {
    	case 1:
    		mes "[MVP Summoner]";
    		if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
    			mes "I cannot offer heal service when there are monsters around.";
    			close;
    		}
    		sc_end SC_STONE;
    		sc_end SC_SLOWDOWN;
    		sc_end SC_FREEZE;
    		sc_end SC_SLEEP;
    		sc_end SC_CURSE;
    		sc_end SC_SILENCE;
    		sc_end SC_CONFUSION;
    		sc_end SC_BLIND;
    		sc_end SC_BLEEDING;
    		sc_end SC_DECREASEAGI;
    		sc_end SC_POISON;
    		sc_end SC_HALLUCINATION;
    		sc_end SC_STRIPWEAPON;
    		sc_end SC_STRIPARMOR;
    		sc_end SC_STRIPHELM;
    		sc_end SC_STRIPSHIELD;
    		sc_end SC_CHANGEUNDEAD;
    		sc_end SC_ORCISH;
    		sc_end SC_BERSERK;
    		sc_end SC_SKE;
    		sc_end SC_SWOO;
    		sc_end SC_SKA;
    		percentheal 100,100;
    		specialeffect2 EF_HEAL;
    		mes "You are completely healed.";
    		close;
    	case 2:
    		if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
    			mes "[MVP Summoner]";
    			mes "I cannot summon another MVP when there are monsters around.";
    			close;
    		} else if ( .mvpcost ) {
    			mes "[MVP Summoner]";
    			mes "The cost to summon an MVP is "+ callfunc( "F_InsertComma", .mvpcost ) +" zeny.";
    			next;
    			set .@menu, select(.mvpid_menu$) -1;
    			mes "[MVP Summoner]";
    			if ( Zeny < .mvpcost ) {
    				mes "You don't have enough zeny to summon an MVP.";
    				close;
    			}
    		} else {
    			set .@menu, select(.mvpid_menu$) -1;
    			mes "[MVP Summoner]";
    		}
    		mes "Please get ready.";
    		close2;
    		if ( Zeny < .mvpcost ) end;
    		Zeny -= .mvpcost;
    		monster "this", 0, 0, "--ja--", .mvpid[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
    		end;
    	case 3:
    		if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
    			mes "[MVP Summoner]";
    			mes "I cannot summon another mini-boss when there are monsters around.";
    			close;
    		} else if ( .bosscost ) {
    			mes "[MVP Summoner]";
    			mes "The cost to summon a mini-boss is "+ callfunc( "F_InsertComma", .bosscost ) +" zeny.";
    			next;
    			set .@menu, select(.bossid_menu$) -1;
    			mes "[MVP Summoner]";
    			if ( Zeny < .bosscost ) {
    				mes "You doesn't have enough zeny to summon a mini-boss.";
    				close;
    			}
    		} else {
    			set .@menu, select(.bossid_menu$) -1;
    			mes "[MVP Summoner]";
    		}
    		mes "Please get ready.";
    		close2;
    		if ( Zeny < .bosscost ) end;
    		Zeny -= .bosscost;
    		monster "this", 0, 0, "--ja--", .bossid[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
    		end;
    	case 4:
    		if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) > 0 ) {
    			mes "[MVP Summoner]";
    			mes "I cannot offer this service when there are monsters around.";
    			close;
    		}
    		close2;
    		callshop "MVP room#branch", 1;
    		end;
    	case 5:
    		mes "[MVP Summoner]";
    		mes "Are you sure you want to leave this room?";
    		next;
    		if ( select( "Yes:No") == 1 )
    			warp .respawnmap$, .respawnx, .respawny;
    		close;
    	case 6:
    		mes "[MVP Summoner]";
    		if ( getmapusers( strcharinfo(3) ) > 1 ) {
    			mes "There are still some players in this room. Make sure you are the last member in this room to use this option.";
    			close;
    		}
    		mes "Are you sure you want to give up this room?";
    		if ( .rentcost )
    			mes "You will need to pay again to enter this room.";
    		next;
    		if ( select( "Yes", "No" ) == 2 ) close;
    		awake strnpcinfo(0);
    		end;
    	}
    	close;
    
    OnMobDead:
    	end;
    
    OnEnterMap:
    	.@id = atoi( strnpcinfo(2) );
    	.renttime[.@id] = gettimetick(2);
    	sleep .timeout * 360000;
    	mapwarp strnpcinfo(4), .respawnmap$, .respawnx, .respawny;
    	.renttime[.@id] = 0;
    	killmonsterall strnpcinfo(4);
    	end;
    
    OnInit:
    	if ( !getstrlen( strnpcinfo(2) ) ) {
    
    //	Config ---------------------------------------------------------------------------------------
    
    	// Room rental time, in minutes.
    	// When time runs out, all players inside the room will be kicked out.
    	// Do NOT set this to zero!
    	set .timeout, 10;
    
    	set .rentcost, 100000;	// Zeny cost for renting a room (0 = free)
    	set .mvpcost, 20000000;	// Zeny cost to summon an MVP (0 = free)
    	set .bosscost, 10000000;	// Zeny cost to summon a boss monster (0 = free)
    
    	//	Options setting inside MVP room
    	set .@menu[1], 1;	// Turn Heal option On/Off
    	set .@menu[2], 1;	// Turn MVP Summoning On/Off
    	set .@menu[3], 1;	// Turn Mini boss Summoning On/Off
    	set .@menu[4], 0;	// Sell items (branches) On/Off (see shop below, before the mapflags)
    
    	// Respawn point when players leave the room
    	set .respawnmap$, "prontera";
    	set .respawnx, 150;
    	set .respawny, 174;
    
    	setarray .mvpid[0],
    		1511,//	Amon Ra
    		1647,// Assassin Cross Eremes
    		1785,//	Atroce
    		1630,//	Bacsojin
    		1039,//	Baphomet
    		1874,//	Beelzebub
    		1272,//	Dark Lord
    		1719,//	Datale
    		1046,//	Doppelgangger
    		1389,//	Dracula
    		1112,//	Drake
    		1115,//	Eddga
    		1418,//	Evil Snake Lord
    		1871,//	Fallen Bishop
    		1252,//	Garm
    		1768,//	Gloom Under Night
    		1086,//	Golden Thief Bug
    		1885,//	Gopinich
    		1649,// High Priest Magaleta
    		1651,// High Wizard Katrinn
    		1832,//	Ifrit
    		1492,//	Incantation Samurai
    		1734,//	Kiel D-01
    		1251,//	Knight of Windstorm
    		1779,//	Ktullanux
    		1688,//	Lady Tanee
    		1646,// Lord Knight Seyren
    		1373,//	Lord of Death
    		1147,//	Maya
    		1059,//	Mistress
    		1150,//	Moonlight Flower
    		1087,//	Orc Hero
    		1190,//	Orc Lord
    		1038,//	Osiris
    		1157,//	Pharaoh
    		1159,//	Phreeoni
    		1623,//	RSX 0806
    		1650,// Sniper Shecil
    		1583,//	Tao Gunka
    		1708,//	Thanatos
    		1312,//	Turtle General
    		1751,//	Valkyrie Randgris
    		1685,// Vesper
    		1648,// Whitesmith Harword
    		1917,// Wounded Morroc
    		1658;//	Ygnizem
    
    	setarray .bossid[0],
    		1096,// Angeling
    		1388,// Archangeling
    		1795,// Bloody Knight
    		1830,// Bow Guardian
    		1839,// Byorgue
    		1309,// Cat O' Nine Tail
    		1283,// Chimera
    		1302,// Dark Illusion
    		1198,// Dark Priest
    		1582,// Deviling
    		1091,// Dragon Fly
    		1093,// Eclipse
    		1205,// Executioner
    		1783,// Galion
    		1592,// Gangster
    		1120,// Ghostring
    		1259,// Gryphon
    		1720,// Hydro
    		1090,// Mastering
    		1289,// Maya Purple
    		1262,// Mutant Dragon
    		1203,// Mysteltainn
    		1870,// Necromancer
    		1295,// Owl Baron
    		1829,// Sword Guardian
    		1204,// Tirfing
    		1089,// Toad
    		1092,// Vagabond Wolf
    		1765;// Valkyrie
    
    //	Config Ends ------------------------------------------------------------------------
    
    		if ( !.timeout ) set .timeout, 60;
    		.menu$ = ( .@menu[1] ? "Heal" : "" ) +":" ;
    		.menu$ = .menu$ + ( .@menu[2] ? "Summon MVP" : "" ) +":";
    		.menu$ = .menu$ + ( .@menu[3] ? "Summon Mini-boss" : "" ) +":";
    		.menu$ = .menu$ + ( .@menu[4] ? "Buy branches" : "" ) +":";
    		.menu$ = .menu$ + "Leave this room:Give up this room";
    		if ( .@menu[2] ) {
    			.@size = getarraysize( .mvpid );
    			for ( .@i = 0; .@i < .@size; .@i++ )
    				.mvpid_menu$ = .mvpid_menu$ + getmonsterinfo( .mvpid[.@i], MOB_NAME ) +":";
    		}
    		if ( .@menu[3] ) {
    			.@size = getarraysize( .bossid );
    			for ( .@i = 0; .@i < .@size; .@i++ )
    				.bossid_menu$ = .bossid_menu$ + getmonsterinfo( .bossid[.@i], MOB_NAME ) +":";
    		}
    	}
    	else {
    		mapannounce strnpcinfo(4), "An administrator has refreshed the server. Please re-register this room.", bc_map;
    		mapwarp strnpcinfo(4), .respawnmap$, .respawnx, .respawny;
    	}
    	end;
    }
    
    -	shop	MVP room#branch	-1,604:100000,12103:1000000
    
    06guild_01,49,49,4	duplicate(MVP Summoner)	MVP Summoner#1	116
    06guild_02,49,49,4	duplicate(MVP Summoner)	MVP Summoner#2	116
    06guild_03,49,49,4	duplicate(MVP Summoner)	MVP Summoner#3	116
    06guild_04,49,49,4	duplicate(MVP Summoner)	MVP Summoner#4	116
    06guild_05,49,49,4	duplicate(MVP Summoner)	MVP Summoner#5	116
    06guild_06,49,49,4	duplicate(MVP Summoner)	MVP Summoner#6	116
    06guild_07,49,49,4	duplicate(MVP Summoner)	MVP Summoner#7	116
    06guild_08,49,49,4	duplicate(MVP Summoner)	MVP Summoner#8	116
    
    06guild_01	mapflag	nowarpto
    06guild_02	mapflag	nowarpto
    06guild_03	mapflag	nowarpto
    06guild_04	mapflag	nowarpto
    06guild_05	mapflag	nowarpto
    06guild_06	mapflag	nowarpto
    06guild_07	mapflag	nowarpto
    06guild_08	mapflag	nowarpto
    06guild_01	mapflag	nomemo
    06guild_02	mapflag	nomemo
    06guild_03	mapflag	nomemo
    06guild_04	mapflag	nomemo
    06guild_05	mapflag	nomemo
    06guild_06	mapflag	nomemo
    06guild_07	mapflag	nomemo
    06guild_08	mapflag	nomemo
    06guild_01	mapflag	noteleport
    06guild_02	mapflag	noteleport
    06guild_03	mapflag	noteleport
    06guild_04	mapflag	noteleport
    06guild_05	mapflag	noteleport
    06guild_06	mapflag	noteleport
    06guild_07	mapflag	noteleport
    06guild_08	mapflag	noteleport
    06guild_01	mapflag	nosave	SavePoint
    06guild_02	mapflag	nosave	SavePoint
    06guild_03	mapflag	nosave	SavePoint
    06guild_04	mapflag	nosave	SavePoint
    06guild_05	mapflag	nosave	SavePoint
    06guild_06	mapflag	nosave	SavePoint
    06guild_07	mapflag	nosave	SavePoint
    06guild_08	mapflag	nosave	SavePoint
    06guild_01	mapflag	nopenalty
    06guild_02	mapflag	nopenalty
    06guild_03	mapflag	nopenalty
    06guild_04	mapflag	nopenalty
    06guild_05	mapflag	nopenalty
    06guild_06	mapflag	nopenalty
    06guild_07	mapflag	nopenalty
    06guild_08	mapflag	nopenalty
    
  6. its no work EL Dragon :(
    after Players Killing MVp AutoSeend ITem

     

     

    -    script    #mithril_coin    -1,{

    OnNPCKillEvent:

        if (getmonsterinfo(killedrid,22)) // If mob has MOB_MVPEXP, it's an MVP.

            if (rand(100) < 10) // 10% chance of activating.

                getitem 674,1;


        end;

    }

  7. -	script	mvp_reward_ea	-1,{OnNPCKillEvent:if( compare( .mvp_list$,"|"+killedrid+"|" ) ){	set #EVENTPOINTS,#EVENTPOINTS + 123456789;	dispbottom "Gained 123456789 Event point for killing MVP.";}end;OnInit:// list of mvp.setarray .@mvp_list,1002,1003,1004,1005,1006;set .@mvp_size,getarraysize( .@mvp_list );for( set .mvp_list$,"|"; .@i < .@mvp_size; set .@i,.@i + 1 )	set .mvp_list$,.mvp_list$ + .@mvp_list[.@i] + "|";end;}

    Like This , then how to change with Item ?

    add 2 itemor 3item, 607,50 and 608 50 ?

    with Chance 10%

     

    Rewards Kill Mvp monster thx autosend bro  thx master

  8.  

    -    script    hourlygift    -1,{

    OnPCLoginEvent:

    set .Hour,1;

    if( #dailytimer < gettimetick(2) ) {

    mes "You have Gained a Hourly Gift.";

    set #dailytimer,gettimetick(2) + ( .Hour * 3600 );

    getitem 7539,35; //set the price here

    }else{

    set .@last,#dailytimer - gettimetick(2);

    set .@hour, .@last % ( 24 * 3600 ) / 3600;

    set .@min, .@last % ( 24 * 3600 ) % 3600 / 60;

    set .@sec, .@last % ( 24 * 3600 ) % 3600 % 60;

    mes "You have to wait to get your next Hourly Gift.";

    mes "Time CountDown : ^FF0000"+.@hour+":"+.@min+":"+.@sec+"^000000";

    }

    close;

    }

     

    its bro :D thx

  9.  

    //===== eAthena Script =======================================================

    //= Dota Allstars announcement ( TXT & SQL )

    //===== By: ==================================================================

    //= ~AnnieRuru~

    //===== Current Version: =====================================================

    //= 1.11

    //===== Compatible With: =====================================================

    //= eAthena 14279 Trunk

    //===== Topic: ===============================================================

    //= http://www.eathena.ws/board/index.php?showtopic=237765

    //===== Description: =========================================================

    //= Dota Announcement script

    //= plus anti-sit-killer feature

    //============================================================================

    -    script    DOTAPVP    -1,{

    OnInit:

    // Config

        set .sound, 1; // soundeffect : 0 - disable, 1 - play soundeffect to all players on map, 2 - play soundeffect to an area around the killer, 3 - play soundeffect to killer only

        set .ownage, 2; // ownage announcement : 0 - disable, 1 - party owns, 2 - guild owns

        set .announce, 0; // make announce to : 0 - global, 1 - map

        set .announcemap, 1; // announce the map name in the announcement ? : 0 - off, 1 - on

        set .announcekill, 1; // announce who pawn who's head : 0 - off, 1- on

        set .msg_die, 0; // show message who kill you when die : 0 - off, 1- on

        set .msg_kill, 0; // show message you kill who when killed someone : 0 - off, 1- on

        set .gmnokill, 0; // GMs are not suppose to kill players. A GM with <this number> level or higher will do nothing. IF set to 60, GM60 and above kill any player will not get anything : 0 - off

        set .killingspree, 3;

        set .dominating, 4;

        set .megakill, 5;

        set .unstoppable, 6;

        set .wickedsick, 7;

        set .monsterkill, 8;

        set .godlike, 9;

        set .holyshit, 10;

        set .continue, 1; // after beyond-godlike, every <this number> kills will make announcement again

        set .owned, 5; // how many times the party/guild has to kill to announce ownage

        set .owncontinue, 1; // after ownage, every <this number> party/guild cumulative kills will make ownage announce again

        setarray .maptrigger$, // only these maps will trigger this script

            "all", // comment this line to only trigger this script on these listed maps

            "guild_vs1",

            "guild_vs2",

            "guild_vs3",

            "guild_vs4",

            "guild_vs5";

        // anti-sit-killer system

        // a player must kill another player with this minimum <this number> level to get the announcement and in the ladder.

        // Otherwise only have streak ended announcement and killed player's streak reset.

        // Its possible for a level 1 novice to kill a level 55 player and he/she will still get in the ladder

        // but a level 55 kill a level 1 player will get nothing

        // 0 - off this system ( default is 55, pk setting )

        set .lvltokill, 0;

        // when a player kill another same player <this number> times in a row, the player is warp back to save point.

        // and the player's streak and ownage count will deduct accordingly

        // 0 - off this system

        set .counttopunish, 6;

        // minimum level range to kill another player

        // eg. when set to 20, player level 99 needs to kill another player with minimum level of 79 to get announcement and increase the kill rank.

        // but a player with base level 50 kills a level 99 will also get the announcement

        // higher base level cannot kill lower level, but lower level can kill higher level

        // 0 - off this system

        set .minlvlrange, 0;

    // Config ends ------------------------------------------------------------------------------------------

    //    to prevent bug happen

        if ( .ownage < 0 || .ownage > 2 ) set .ownage, 0;

        if ( .announce < 0 || .announce > 1 ) set .announce,0;

        if ( .continue < 1 ) set .continue, 1;

        if ( .owncontinue < 1 ) set .owncontinue, 1;

        if ( .gmnokill <= 0 ) set .gmnokill, 100;

        if ( .lvltokill <= 1 ) set .lvltokill, 0;

        if ( .counttopunish <= 1 ) set .counttopunish, 0;

        set .maptriggersize, getarraysize(.maptrigger$);

        end;

    //    script start

    OnPCKillEvent:

        if ( getgmlevel() >= .gmnokill ) end;

        getmapxy .@map$, .@x, .@y, 0;

        if ( .maptrigger$ != "all" ) {

            for ( set .@i, 0; .@i < .maptriggersize; set .@i, .@i +1 ) {

                if ( .@map$ == .maptrigger$[.@i] ) break;

            }

            if ( .@i == .maptriggersize ) end;

        }

        attachrid killedrid;

            if ( killerrid != getcharid(3) && ( .msg_die || .msg_kill ) ) {

                if ( .msg_die ) message strcharinfo(0),"You have been killed by "+ rid2name(killerrid);

                if ( .msg_kill ) message rid2name(killerrid),"You just killed "+ strcharinfo(0);

            }

            if ( @PlayersKilledStreak >= .holyshit )

                set .@streakname$,"Beyond Godlike";

            else if ( @PlayersKilledStreak >= .godlike )

                set .@streakname$,"Godlike";

            else if ( @PlayersKilledStreak >= .monsterkill )

                set .@streakname$,"Monster Kill";

            else if ( @PlayersKilledStreak >= .wickedsick )

                set .@streakname$,"Wicked Sick";

            else if ( @PlayersKilledStreak >= .unstoppable )

                set .@streakname$,"Unstoppable";

            else if ( @PlayersKilledStreak >= .megakill )

                set .@streakname$,"Mega-kill";

            else if ( @PlayersKilledStreak >= .dominating )

                set .@streakname$,"Dominating";

            else if ( @PlayersKilledStreak >= .killingspree )

                set .@streakname$,"Killing Spree";

        if ( @PlayersKilledStreak >= .killingspree && killerrid == getcharid(3) )

            announce strcharinfo(0) +" has ended "+( (sex)?"him":"her" )+" own "+ .@streakname$ +"["+ @PlayersKilledStreak +"] streak "+( (.announcemap)?("at "+ .@map$):""),16|.announce;

        else if ( @PlayersKilledStreak >= .killingspree )

            announce rid2name(killerrid) +" has ended "+ strcharinfo(0) +"'s "+ .@streakname$ +"["+ @PlayersKilledStreak +"] streak "+( (.announcemap)?("at "+ .@map$):""),16|.announce;

        else if ( .announcekill && killerrid != getcharid(3) )

            announce rid2name(killerrid) +" has pawned "+ strcharinfo(0) +"'s head "+( (.announcemap)?("at "+ .@map$):""),16|.announce;

        set @PlayersKilledStreak,0;

        set @dota_multikills,0;

        if ( .ownage && getcharid(.ownage) ) {

            setd ".dotaown_"+ getcharid(.ownage), 0;

            set .@killedgroup, getcharid(.ownage);

        }

        if ( killerrid == getcharid(3) || baselevel < .lvltokill ) end;

        if ( .minlvlrange ) set .@killedlvl, baselevel;

        attachrid killerrid;

        if ( .minlvlrange && .@killedlvl + .minlvlrange < baselevel ) end;

        if ( .counttopunish ) {

            if ( @sitkillminute != gettime(2) ) {

                deletearray @sitkillid, 128;

                deletearray @sitkilltimes, 128;

                set @sitkillminute, gettime(2);

            }

            set .@sitkillsize, getarraysize(@sitkillid);

            for ( set .@i,0; .@i < .@sitkillsize; set .@i, .@i +1 ) {

                if ( @sitkillid[.@i] != killedrid ) continue;

                else {

                    set @sitkilltimes[.@i], @sitkilltimes[.@i] +1 ;

                    if ( @sitkilltimes[.@i] >= .counttopunish ) {

                        warp "SavePoint",0,0;

                        announce strcharinfo(0) +" , Stop killing "+ rid2name(killedrid) + " !!!",0;

                        debugmes strcharinfo(0) +" is sit-killing "+ rid2name(killedrid) +" for "+ @sitkilltimes[.@i] + " times";

                        logmes "is sit-killing "+ rid2name(killedrid) +" for "+ @sitkilltimes[.@i] +" times";

                        set @PlayersKilledStreak, @PlayersKilledStreak +1 - .counttopunish;

                        set PlayersKilled, PlayersKilled +1 - .counttopunish;

                        if ( .ownage && getcharid(.ownage) )

                            setd ".dotaown_"+ getcharid(.ownage), getd(".dotaown_"+ getcharid(.ownage) ) +1 - .counttopunish;

                        end;

                    }

                    break;

                }

            }

            if ( .@i == .@sitkillsize ) {

                set @sitkillid[.@i], killedrid;

                set @sitkilltimes[.@i], 1;

            }

        }

        set @PlayersKilledStreak, @PlayersKilledStreak + 1;

        set PlayersKilled, PlayersKilled + 1;

            if ( @PlayersKilledStreak == .killingspree )

                setarray .@streakname$,"killingspree.wav","is on a KILLING SPREE","!";

            else if ( @PlayersKilledStreak == .dominating )

                setarray .@streakname$,"dominating.wav","is DOMINATING","!";

            else if ( @PlayersKilledStreak == .megakill )

                setarray .@streakname$,"megakill.wav","has a MEGA KILL","!";

            else if ( @PlayersKilledStreak == .unstoppable )

                setarray .@streakname$,"unstoppable.wav","is UNSTOPPABLE","!!";

            else if ( @PlayersKilledStreak == .wickedsick )

                setarray .@streakname$,"wickedsick.wav","is WICKED SICK","!!";

            else if ( @PlayersKilledStreak == .monsterkill )

                setarray .@streakname$,"monsterkill.wav","has a MONSTER KILL","!!";

            else if ( @PlayersKilledStreak == .godlike )

                setarray .@streakname$,"godlike.wav","is GODLIKE","!!!";

            else if ( @PlayersKilledStreak >= .holyshit && ( (@PlayersKilledStreak - .holyshit) % .continue == 0 ) )

                setarray .@streakname$,"holyshit.wav","is BEYOND GODLIKE",". Someone KILL "+( (sex)?"HIM":"HER" ) +"!!!!!!";

        if ( .@streakname$[1] != "" ) {

            announce strcharinfo(0) +" "+ .@streakname$[1] +"["+ @PlayersKilledStreak +"] "+( (.announcemap)?("at "+ .@map$):"") + .@streakname$[2],16|.announce;

            if ( .sound == 1 ) soundeffectall .@streakname$[0],0,.@map$;

            else if ( .sound == 2 ) soundeffectall .@streakname$[0],0;

            else if ( .sound == 3 ) soundeffect .@streakname$[0],0;

        }

        set @dota_multikills, @dota_multikills + 1;

        deltimer "DOTAPVP::OnStreakReset";

        addtimer 18000,"DOTAPVP::OnStreakReset";

        if ( .ownage ) {

            set .@sideid, getcharid(.ownage);

            if ( .@sideid != .@killedgroup ) setd ".dotaown_"+ .@sideid, getd(".dotaown_"+ .@sideid ) + 1;

        }

        set .@dota_multikills, @dota_multikills;

        set .@origin, getcharid(3);

        sleep 1500;

        if ( .@sideid && .ownage && .@sideid != .@killedgroup && getd(".dotaown_"+ .@sideid) >= .owned && ( ( getd(".dotaown_"+ .@sideid) - .owned ) % .owncontinue == 0 ) ) {

            if ( .announce ) mapannounce .@map$, "The "+( (.ownage == 1)?"party":"guild" )+" ["+( (.ownage == 1)?getpartyname(.@sideid):getguildname(.@sideid) )+"] is OWNING["+ getd(".dotaown_"+ .@sideid) +"] !!!",16;

            else announce "The "+( (.ownage == 1)?"party":"guild" )+" ["+( (.ownage == 1)?getpartyname(.@sideid):getguildname(.@sideid) )+"] is OWNING["+ getd(".dotaown_"+ .@sideid) +"] !!!",16;

            if ( .sound == 1 ) soundeffectall "ownage.wav",0,.@map$;

            else if ( .sound == 2 ) soundeffectall "ownage.wav",0;

            else if ( .sound == 3 && attachrid(.@origin) ) soundeffect "ownage.wav",0;

        }

        sleep 1250;

        if ( !attachrid(.@origin) ) end;

        if ( .@dota_multikills == 2 ) {

            if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Double Kill !",16;

            else announce strcharinfo(0) +" just got a Double Kill !",16;

            if ( .sound == 1 ) soundeffectall "doublekill.wav",0,.@map$;

            else if ( .sound == 2 ) soundeffectall "doublekill.wav",0;

            else if ( .sound == 3 ) soundeffect "doublekill.wav",0;

        }

        else if ( .@dota_multikills == 3 ) {

            if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Triple Kill !!!",16;

            else announce strcharinfo(0) +" just got a Triple Kill !!!",16;

            if ( .sound == 1 ) soundeffectall "triplekill.wav",0,.@map$;

            else if ( .sound == 2 ) soundeffectall "triplekill.wav",0;

            else if ( .sound == 3 ) soundeffect "triplekill.wav",0;

        }

        else if ( .@dota_multikills == 4 ) {

            if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Ultra Kill !!!",16;

            else announce strcharinfo(0) +" just got a Ultra Kill !!!",16;

            if ( .sound == 1 ) soundeffectall "ultrakill.wav",0,.@map$;

            else if ( .sound == 2 ) soundeffectall "ultrakill.wav",0;

            else if ( .sound == 3 ) soundeffect "ultrakill.wav",0;

        }

        else if ( .@dota_multikills >= 5 ) {

            if ( .announce ) mapannounce .@map$, strcharinfo(0) +" is on a Rampage !!!",16;

            else announce strcharinfo(0) +" is on a Rampage !!!",16;

            if ( .sound == 1 ) soundeffectall "rampage.wav",0,.@map$;

            else if ( .sound == 2 ) soundeffectall "rampage.wav",0;

            else if ( .sound == 3 ) soundeffect "rampage.wav",0;

        }

        end;

    OnWhisperGlobal:

        dispbottom "Your current Streak : "+ @PlayersKilledStreak;

        dispbottom "Your total Kills          : "+ PlayersKilled;

        if ( .ownage && getcharid(.ownage) )

            dispbottom "Your "+( (.ownage ==1)?"party":"guild" )+" Own        : "+ getd(".dotaown_"+ getcharid(.ownage) );

        end;

    OnStreakReset:

        set @dota_multikills, 0;

        end;

    }

    im use this script , always error why?

    im done download your file bro

×
×
  • Create New...