Jump to content

Recommended Posts

Posted (edited)

This system will give title (by @fakename) to who is on the list automatically.
 
Preview:
https://www.youtube.com/watch?v=kTXp3ZiT7ZY
 
-----------------------------------------------------------------
 
Download:
Script
GD_PK_TITLE_2.txt (info)
GD_PK_TITLE.txt
SQL
gd_pk_title.sql
 
-----------------------------------------------------------------
 
 
Command:
@delpktitle for clean the datebase
@refhpktile for refresh the datebase
 
-----------------------------------------------------------------
 
Setting:
Define this rank is top 2 of killer

set .SP_RANK,2;

Define system will give "[MVP]" to top 1 player

	function	GETTILE	{
		switch(getarg(0,0))
		{
			case 1: return "[MVP]";
			default: return "";
		}
	}
Edited by goddameit
  • Upvote 3
Posted

hello, i don't have time to test it but, do you really need to manually input some command to enable the title?

is there a way to make it automatic.

 

you don't, those command is for GM for clean or refresh database

 

system will auto-refrsh every 1min and this also will give title to top player.

Posted (edited)

hello what if he ha a very long name does it affect?

 

oh and the bindatcmd syntax is it really written that way? im having an error , i followed the syntax in the wiki and works well again.

i also notice that when i change character the MVP title goes to him(same account). is it really like that?

 

i suggest to add death counts

Edited by Mr BrycE
  • 4 months later...
  • 7 months later...
  • 1 month later...
  • 3 weeks later...
Posted

Here's a fixed one..

//
//	Author		Goddameit
//	Version		2013/12/03
//	Web__		http://goo.gl/igS14r
//
-	script	gd_pk_title	-1,{
	function	SETTILE	;
	function	GETTILE	{
		switch(getarg(0,0))
		{
			case 1: return "[MVP]";
			default: return "";
		}
	}
OnPCLoginEvent:
	for(set .@i,0; .@i<.SP_RANK; set .@i,.@i+1 )
	{
		if( getcharid(0) == .SP_RN_CID[.@i] )
		{
			set .@N$,GETTILE(.@i+1);
			if( .@N$ != "" )
			{
				atcommand "@fakename "+.@N$+""+strcharinfo(0);
				set @PK_TITL_BOOL,1;
			}
			break;
		}
	}
	end;
OnPCKillEvent:
	if( killedrid == getcharid(3) || !isloggedin(killedrid) )
		end;
	set @GDCID,getcharid(0);
	query_sql "SELECT `char_id` FROM `gd_pk_title` WHERE `char_id` = "+@GDCID+"",@GDTID;
	if( !@GDTID )
		query_sql "INSERT `gd_pk_title` VALUES("+@GDCID+",1)";
	else
		query_sql "UPDATE `gd_pk_title` SET `var` = `var`+1 WHERE `char_id` = "+@GDCID+"";
	set @GDTID,0;
	set @GDCID,0;
	end;
OnInit:
	bindatcmd "delpktitle","gd_pk_title::OnGMFActive1",99,99;
	bindatcmd "refhpktile","gd_pk_title::OnGMFActive3",99,99;
	set .SP_RANK,2;
OnGMFActive3:
	if( playerattached() )
	{
		dispbottom "All date was refresh.";
		detachrid;
	}
OnTimer60000:
	stopnpctimer;
	deletearray .TMP_SP_RN_CID[0],128;
	query_sql "SELECT `char_id` FROM `gd_pk_title` ORDER BY `var` DESC LIMIT "+.SP_RANK,.TMP_SP_RN_CID;
	SETTILE(0);
	deletearray .SP_RN_CID[0],128;
	deletearray .SP_RN_VAR[0],128;
	query_sql "SELECT `char_id`,`var` FROM `gd_pk_title` ORDER BY `var` DESC LIMIT "+.SP_RANK,.SP_RN_CID,.SP_RN_VAR;
	SETTILE(1);
	deletearray .TMP_SP_RN_CID[0],128;
	initnpctimer;
	end;
OnGMFActive1:
	query_sql "TRUNCATE TABLE  `gd_pk_title`";
	dispbottom "All date was cleaned.";
	end;
	function	SETTILE	{
		for(set .@i,0; .@i<.SP_RANK; set .@i,.@i+1 )
		{
			query_sql "SELECT `account_id` FROM `char` WHERE `char_id` = "+.SP_RN_CID[.@i]+"",.@SP_RN_AID;
			if( attachrid(.@SP_RN_AID) )
			{
				if( .TMP_SP_RN_CID[.@i] == .SP_RN_CID[.@i] && @PK_TITL_BOOL )
				{
					detachrid;
					continue;
				}
				if( getarg(0,0) == 1 )
				{
					set .@N$,GETTILE(.@i+1);
					if( .@N$ != "" )
					{
						atcommand "@fakename "+.@N$+""+strcharinfo(0);
						set @PK_TITL_BOOL,1;
					}
				}else
					if( @PK_TITL_BOOL )
					{
						atcommand "@fakename";
						set @PK_TITL_BOOL,0;
					}
				detachrid;
			}
		}
		return;
	}
}
prontera,150,180,4	script	Rank	100,{
	mes "[Rank]";
	set .@SP_RANK,getvariableofnpc(.SP_RANK,"gd_pk_title");
	for(set .@i,0; .@i<.@SP_RANK; set .@i,.@i+1 )
	{
		set .@SP_RN_CID,getvariableofnpc(.SP_RN_CID[.@i],"gd_pk_title");
		set .@SP_RN_VAR,getvariableofnpc(.SP_RN_VAR[.@i],"gd_pk_title");
		if( !.@SP_RN_CID || !.@SP_RN_VAR )
			break;
		query_sql "SELECT `name` FROM `char` WHERE `char_id` = "+.@SP_RN_CID+"",.@SP_RN_NAME$;
		mes "[#"+(.@i+1)+"] "+.@SP_RN_NAME$+" "+.@SP_RN_VAR+"p";
	}
	close;
}
  • Upvote 1
  • 3 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...