goddameit Posted December 2, 2013 Posted December 2, 2013 (edited) This system will give title (by @fakename) to who is on the list automatically. Preview:https://www.youtube.com/watch?v=kTXp3ZiT7ZY ----------------------------------------------------------------- Download:ScriptGD_PK_TITLE_2.txt (info)GD_PK_TITLE.txtSQLgd_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 December 3, 2013 by goddameit 3 Quote
Bisuke Posted December 2, 2013 Posted December 2, 2013 Wow! Nice work goddameit! This is awesome! Quote
Mr BrycE Posted December 2, 2013 Posted December 2, 2013 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. Quote
goddameit Posted December 2, 2013 Author Posted December 2, 2013 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. Quote
karazu Posted December 3, 2013 Posted December 3, 2013 Suggestion: make the script reset every 1 hour of at least once a week. Quote
Mr BrycE Posted December 5, 2013 Posted December 5, 2013 (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 December 5, 2013 by Mr BrycE Quote
simplexjay2 Posted December 4, 2014 Posted December 4, 2014 How come I get this error? Idea? Same error Quote
hakuren Posted January 7, 2015 Posted January 7, 2015 hi sir i just wondering why all of my character receive the titles? is that necessary? Quote
Radian Posted January 26, 2015 Posted January 26, 2015 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; } 1 Quote
KrispiKreme Posted March 12, 2018 Posted March 12, 2018 sorry for bumping. is there any other method instead of @fakename? like using official title system Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.