AnnieRuru 957 Posted September 17, 2020 (edited) yeah I bet everyone still using version 2.9, that outdated version from eathena honestly there isn't much change with previous version, version 2.9 still works fine if you know how to fix it Download: 3.6 hercules - script rathena - script soundeffect Spoiler 2.9 - script widely circulate on both rathena and hercules forum 3.0 - script - fix a bug for hercules, BaseLevel is case-sensitive - modernize the script --- remove all set/setd/getd --- looping the map change from for-loop into while-loop --- rework sit-killing variable, no longer have any loop or stupid 128 limit 3.1 - script - optimized query_sql execution from 4 times to just twice in every single way - fix a bug sit-killing can cause value into negative - remove OnWhisperGlobal ... I don't really see any use case for it 3.2 - script - index the table properly 3.3 - script - add PVP Ladder statues 3.4 - script - fix the missing body style not display correctly 3.5 - script - add .fix_custom_sprite setting to fix your server having custom animation equipment 3.6 - script - fix a missing sprite change from LOOK_ROBE if your server has custom animation sprite, remember to set .fix_custom_sprite to true Questions: when people ask to make modification to this script, it always comes down to these 2 1. monthly/weekly reset ladder will reset monthly or weekly ... self explain 2. "@dotaannounce" off hmm ... after talked to some people, they want the announcement set to global, but then some players want to see who are dead, and some players doesn't bother and I also saw this is a custom modification ... can be made into this script but ... nah ... I'll do it when I feel like it Edited October 20, 2020 by AnnieRuru 7 gidzdlcrz, evilpuncker, Samuel and 4 others reacted to this Quote Share this post Link to post Share on other sites
AnnieRuru 957 Posted September 18, 2020 damn ... forgot to index the table properly 3.2 script - index the table properly for those who already have the script installed, index these keys to make the query return faster, specifically when viewing the top 10 alter table pvpladder add key (`kills`); alter table pvpladder add key (`streaks`); alter table ownladder add key (`highestown`); and yeah, this is the base script for public releases any further modification, try ask here or open a new topic in script request ... or maybe as a paid request 1 Sikdope reacted to this Quote Share this post Link to post Share on other sites
AnnieRuru 957 Posted October 15, 2020 (edited) there are already 4 members asked me about pvp statue in discord ...... 2 from hercules side, 2 from rathena side .... .... I think I just release this to public in case those who doesn't know what pvp statue is -> https://rathena.org/board/topic/124379-pvp-ladder-show-top-5-player/ https://rathena.org/board/topic/126090-pvp-ladder-show-top-5-player-statue/ https://rathena.org/board/topic/125602-statue-npc-not-pvp-rankings/ 3.3 - script - add PVP ladder statues Question ... should I also make this for rathena ? I don't mind adding this simple stuff in version 2.9 Edited October 15, 2020 by AnnieRuru 1 Sikdope reacted to this Quote Share this post Link to post Share on other sites
AnnieRuru 957 Posted October 17, 2020 3.4 - script - fix the missing body style not display correctly thanks to this unknown member but AHHHHH HE REALLY BOTHER ME A LOT IN DISCORD for telling me that IT'S YOUR PROBLEM that YOUR SERVER HAS CUSTOM COSTUME ITEM OK ?? this script HAS to show offline players' data, that's why can't show if the player is actually wearing 3rd job or 4th job costume its your custom item fault OK ??? OnEquipScript: <" changebase roclass(eaclass()|EAJL_THIRD); "> OnUnequipScript: <" changebase Class; "> 2 evilpuncker and Bringer reacted to this Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted October 18, 2020 (edited) Wow this is huge jump from 2.9. This comes with statues too! Is it Christmas? Thanks annie! Will this work to rathena? Edited October 18, 2020 by gidzdlcrz Asking if its working on rathena Quote Share this post Link to post Share on other sites
AnnieRuru 957 Posted October 18, 2020 (edited) another server from rathena side told me his server has animated sprite overlapping on the statue so again its YOUR problem that having animated sprite ... but at least this one can be fix easily by resetting the UDT_HEADTOP|UDT_HEADMIDDLE|UDT_HEADBOTTOM back to 0 3.5 - script - add .fix_custom_sprite setting to fix your server having custom animation equipment 16 hours ago, gidzdlcrz said: Will this work to rathena? simple script conversion https://github.com/AnnieRuru/Release/blob/master/scripts/PvP %26 GvG/Dota PVP ladder/dota_sql_ladder_3.5r.txt at least I don't find anything hassle to convert this script into rathena ... unlike promotion code ... already 3 rathena members ask me to do that, and I turn down every time Edited October 18, 2020 by AnnieRuru 2 evilpuncker and gidzdlcrz reacted to this Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted October 19, 2020 12 hours ago, AnnieRuru said: another server from rathena side told me his server has animated sprite overlapping on the statue so again its YOUR problem that having animated sprite ... but at least this one can be fix easily by resetting the UDT_HEADTOP|UDT_HEADMIDDLE|UDT_HEADBOTTOM back to 0 3.5 - script - add .fix_custom_sprite setting to fix your server having custom animation equipment simple script conversion https://github.com/AnnieRuru/Release/blob/master/scripts/PvP %26 GvG/Dota PVP ladder/dota_sql_ladder_3.5r.txt at least I don't find anything hassle to convert this script into rathena ... unlike promotion code ... already 3 rathena members ask me to do that, and I turn down every time OMG its really Christmas! Those small fonts. 😁 Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted October 20, 2020 (edited) For the people who wants their costume robe to show up! Find these lines and add this BOLD. Quote .@query$ = "SELECT `char`.`char_id`, `char`.`name`, `char`.`guild_id`, `char`.`class`, `char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, `char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `char`.`robe`, "; Quote .@nb = query_sql(.@query$, .@cid, .@name$, .@guild_id, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@robe, .@kills, .@streaks, .@deaths); Quote setunitdata .statue[.@i +1], UNPC_HEADTOP, .@head_top[.@i]; setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i]; setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i]; setunitdata .statue[.@i +1], UNPC_ROBE, .@robe[.@i]; Alright. *Edit again. I forgot to mention that this is for rathena. 😝 Edited October 20, 2020 by gidzdlcrz typos 1 AnnieRuru reacted to this Quote Share this post Link to post Share on other sites
AnnieRuru 957 Posted October 20, 2020 select * from item_db where type = 5 and equip_locations & 4 and view_sprite > 0; yeah my RO knowledge is again outdated, never thought robes can show sprite change 3.6 - script - fix a missing sprite change from LOOK_ROBE PS: why the wings on my character is being chop off but the statue is display correctly ? WTF ?? 2 MikZ and gidzdlcrz reacted to this Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted October 21, 2020 Me my Cyclop's Eye. Lol Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted October 25, 2020 (edited) On 9/18/2020 at 7:32 AM, AnnieRuru said: 2. "@dotaannounce" off hmm ... after talked to some people, they want the announcement set to global, but then some players want to see who are dead, and some players doesn't bother and I also saw this is a custom modification ... can be made into this script but ... nah ... I'll do it when I feel like it Waiting for this. Imagine some people would like to have some peace and quiet time. They will be opt out to PVP Announcements. Hehe! Anyway here's the script you can add to manually truncate the PVP Ladder (Must be 99 GM Account). Again, same principle. Just add the BOLD to the script. Find these lines. Quote prontera,166,188,5 script PvP-StatsViewer 1_F_MARIA,{ .@npcname$ = strnpcinfo(NPC_NAME_VISIBLE); while (true) { mes "["+ .@npcname$ +"]"; mes "Hello "+ strcharinfo(PC_NAME) +"..."; mes "If you want to I can show you your PVP stats."; next; switch (select("Most Kills","Highest Streak","Longest Ownage","Own Information","Explanation",(getgroupid() < 99 )?"":"^FF0000[GM]^000000 Reset Ladder")) { mes "["+ .@npcname$ +"]"; case 1:......... ... ... ... case 5: mes "Explanation for Most Kills:"; mes " "; mes "^996600Rank. ^006699NAME ^00AA00[Total Kills] ^FF0000<Deaths>^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^00AA00Kills^000000 added when a player kills another player."; mes " "; mes "^FF0000Deaths^000000 count increase when a player killed by another player, or suicide (eg: Grand Cross)."; mes " "; mes "A player killed by monsters, homunculus or pets will not add the kills or deaths count."; next; mes "["+ .@npcname$ +"]"; mes "Explanation for Highest Streak:"; mes " "; mes "^996600Rank. ^006699NAME ^70AC11{Highest Streak} ^000000on :"; mes " ^EE8800TIME^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^70AC11Streak^000000 are added every time a player kills another player. It will reset upon log out, killed by another player, or suicide (eg: Sacrifice)."; mes " "; mes "Then it record in the server the ^EE8800TIME^000000 when that player got that highest streak."; mes " "; mes "A player killed by monsters, homunculus or pets will not reset the streak."; mes " "; mes "--------------------------------"; mes " "; mes "The numbers of straight kills to get these announcements are :"; mes "^70AC11"+ getvariableofnpc(.killingspree,"DOTAPVP") +"^000000 : Killing Spree"; mes "^70AC11"+ getvariableofnpc(.dominating,"DOTAPVP") +"^000000 : Dominating"; mes "^70AC11"+ getvariableofnpc(.megakill,"DOTAPVP") +"^000000 : Mega Kill"; mes "^70AC11"+ getvariableofnpc(.unstoppable,"DOTAPVP") +"^000000 : Unstoppable"; mes "^70AC11"+ getvariableofnpc(.wickedsick,"DOTAPVP") +"^000000 : Wicked Sick"; mes "^70AC11"+ getvariableofnpc(.monsterkill,"DOTAPVP") +"^000000 : Monster Kill"; mes "^70AC11"+ getvariableofnpc(.godlike,"DOTAPVP") +"^000000 : Godlike"; mes "^70AC11"+ getvariableofnpc(.holyshit,"DOTAPVP") +"^000000 : Beyond Godlike"; next; mes "["+ .@npcname$ +"]"; mes "Explanation for Longest Ownage:"; mes " "; mes "^996600Rank. ^006699NAME ^00AAAA(Longest Ownage) ^000000on :"; mes " ^EE8800TIME^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^00AAAAOwnage^000000 added every time any guild members killed another player that doesn't belong to his/her guild. It will reset when any of the guild member was killed by ANY player, including his/her guild member."; mes " "; mes "Then it record in the server the ^EE8800TIME^000000 when the guild got that longest ownage."; mes " "; mes "If the server went under maintainance, the current ownage will survive after the server restart."; mes " "; mes "Any guild member killed by monster, homunculus or pets will not reset the ownage count."; next; if (getvariableofnpc(.lvltokill,"DOTAPVP")) { mes "["+ .@npcname$ +"]"; mes "You must kill another player with minimum base level of "+ getvariableofnpc(.lvltokill,"DOTAPVP") +", in order to get an announcement or get in the ladder."; mes " "; mes "It's possible for a base level 1 novice kills a base level 99 player and still can get in the ladder."; mes "However when a player level 99 kills a level 1 novice will get nothing."; next; } if (getvariableofnpc(.counttopunish,"DOTAPVP")) { mes "["+ .@npcname$ +"]"; mes "Some noob players try to kill the same person over and over again in hope of getting his/her name appear in the ladder."; mes "However if you trying to do the same thing on this ladder, your name will announce to the public, and your action will be recorded into the server to notify the GMs."; next; } if (getvariableofnpc(.minlvlrange,"DOTAPVP")) { mes "["+ .@npcname$ +"]"; mes "When you kill another player thats lower base level than you, the base level gap between you and that player must not more than "+ getvariableofnpc(.minlvlrange,"DOTAPVP") +"."; mes " "; if (getvariableofnpc(.minlvlrange,"DOTAPVP") >= 200) mes "In other words, if your base level is 500, the player you killed must be at least level "+(500 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder."; else if (getvariableofnpc(.minlvlrange,"DOTAPVP") >= 70) mes "In other words, if your base level is 255, the player you killed must be at least level "+(255 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder."; else mes "In other words, if your base level is 99, the player you killed must be at least level "+(99 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder."; mes "Higher base level kills lower level gets nothing, however lower level player kills higher level will get the announcement."; next; } break; case 6: mes "Would you like to Reset the ladder?"; next; menu "No.",PVP_NO,"Confirmation - Yes",PVP_YES; PVP_NO: mes "["+ .@npcname$ +"]"; mes "Suit yourself."; next; break; PVP_YES: query_sql("TRUNCATE TABLE `pvpladder`"); query_sql("TRUNCATE TABLE `ownladder`"); mes "["+ .@npcname$ +"]"; mes "PVP Ladder has been reset."; next; break; close; } } } Edited October 25, 2020 by gidzdlcrz typos 1 AnnieRuru reacted to this Quote Share this post Link to post Share on other sites
MikZ 5 Posted November 21, 2020 On 10/20/2020 at 5:39 PM, AnnieRuru said: select * from item_db where type = 5 and equip_locations & 4 and view_sprite > 0; select * from item_db where type = 5 and equip_locations & 4 and view_sprite > 0; yeah my RO knowledge is again outdated, never thought robes can show sprite change 3.6 - script - fix a missing sprite change from LOOK_ROBE PS: why the wings on my character is being chop off but the statue is display correctly ? WTF ?? Hi @AnnieRuru, can you add reward system weekly and monthly ? player need to talk to npc to redeem the prize. I know i already made this request in other post. thanks! 1 Sikdope reacted to this Quote Share this post Link to post Share on other sites
Sergardo 0 Posted November 24, 2020 how to fixed this @AnnieRuru pvp ladder statue did not recognize the top 1 Quote Share this post Link to post Share on other sites
Sikdope 0 Posted November 29, 2020 it means you are not using latest herc or rAthena! Quote Share this post Link to post Share on other sites
gidzdlcrz 4 Posted January 2, 2021 Weird discovery. Sometimes it doesnt have a problem. Sometime it does. Look at the animation. The slow ones is the custom statue. I wonder why. Quote Share this post Link to post Share on other sites
Daraen 7 Posted January 4, 2021 (edited) Is this really a problem @gidzdlcrz ?I mean, the statue is meant to show just what the player looks like and his personal stats. I don't think "slowed down" animation is a real problem for me. This is just my opinion 😛 @AnnieRuru I noticed a problem in the dota_pvp_ladder at the owning level. Finally I suppose that is one, he considers that the guild that has been killed the most is the owner of the PvP room. Do you have this problem? In addition, I took a character who will be killed all the time in order to test the ranking. this one has a guild. I took a double account which also had a guild but different from the first character and I killed the latter over and over. The result is that the character being killed in a loop is also the owner of the pvp room. So I think there is an error there. Edited January 4, 2021 by Daraen Quote Share this post Link to post Share on other sites
simplexjay2 2 Posted March 1, 2021 (edited) Can u make it to Top MVP too please Edited March 3, 2021 by simplexjay2 Quote Share this post Link to post Share on other sites
brother 0 Posted July 11, 2021 my statue work properly when i use another hg it update the statue whenever i reconnect. thats okay but how to fix this debug/warning ? anyone? Quote Share this post Link to post Share on other sites
Cretin 0 Posted May 10, 2022 Not showing the Statue Player how to fix this Quote Share this post Link to post Share on other sites
luizinhomt 0 Posted October 9, 2022 could someone help me put hat effect in the top 3 of the rank? I'm using the latest version of dota pvp thank you all in advance Quote Share this post Link to post Share on other sites
Notorius 0 Posted June 10, 2023 On 20/10/2020 at 2:57, gidzdlcrz said: ¡Para las personas que quieren que aparezca su bata de disfraz! Encuentra estas líneas y agrega este BOLD . Está bien. *Editar de nuevo. Olvidé mencionar que esto es para rathena. 😝 OnTimer30000: // refresh every 30 seconds. Note the `char` table is unrealiable, player still need to perform certain task to save the character -> see 'save_settings' in conf\map-server.conf .@query$ = "SELECT `char`.`char_id`, `char`.`name`, `char`.`guild_id`, `char`.`class`, `char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, `char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `char`.`robe`, " + "`pvpladder`.`kills`, `pvpladder`.`streaks`, `pvpladder`.`deaths` " + "FROM `char` RIGHT JOIN `pvpladder` ON `char`.`char_id` = `pvpladder`.`char_id` ORDER BY `kills` DESC LIMIT "+ .showstatue; .@nb = query_sql(.@query$, .@cid, .@name$, .@guild_id, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@robe, .@kills, .@streaks, .@deaths); if (.fix_custom_sprite) { for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .statue[.@i +1], UNPC_HEADTOP, 0; setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, 0; setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, 0; setunitdata .statue[.@i +1], UNPC_ROBE, 0; } } for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .statue[.@i +1], UNPC_CLASS, .@class[.@i]; setunitdata .statue[.@i +1], UNPC_SEX, (.@sex$[.@i] == "F")? SEX_FEMALE:SEX_MALE; setunitdata .statue[.@i +1], UNPC_HAIRSTYLE, .@hair[.@i]; setunitdata .statue[.@i +1], UNPC_HAIRCOLOR, .@hair_color[.@i]; setunitdata .statue[.@i +1], UNPC_CLOTHCOLOR, .@clothes_color[.@i]; setunitdata .statue[.@i +1], UNPC_BODY2, .@body[.@i]; setunitdata .statue[.@i +1], UNPC_HEADTOP, .@head_top[.@i]; setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i]; setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i]; setunitdata .statue[.@i +1], UNPC_ROBE, .@robe[.@i]; setnpcdisplay "pvp_ladder_statue#"+(.@i +1), .@name$[.@i]; .statue_name$[.@i +1] = .@name$[.@i]; .statue_guild$[.@i +1] = getguildname(.@guild_id[.@i]); .statue_kills[.@i +1] = .@kills[.@i]; .statue_streaks[.@i +1] = .@streaks[.@i]; .statue_deaths[.@i +1] = .@deaths[.@i]; } for (.@i = .@nb; .@i < .showstatue; ++.@i) setunitdata .statue[.@i +1], UNPC_CLASS, HIDDEN_WARP_NPC; initnpctimer; end; .fix_custom_sprite = true; Do you know why it doesn't work? i am using rathena dota 3.6 Quote Share this post Link to post Share on other sites