Hello fellow rAthena. Is there any available npc or script for GMs that will allow and show the rankings of items aquired by players cart/storage/mail/inventory excluding the gm's accounts?
Ex.
It will show the 10 most aquired and 10 least aquired items by players.
If possible, gm can input the item ID of the item to check the total items aquired of every players in game.
Reason.
For servers with lots of daily events with special prizes like tcg and poring coins. We can easily monitor and compare the differences or impact of prizes/items as the number of player grows. With that, we can adjust (add/delete/modify) our scripts/npcs and maintain the balance of our special items/rewards in game.
It will run an sql query I guess.
Thanks..
Firs try:
trinity_in,128,155,5 script item check 807,{
set .req_gmlvl, 99;
mes "[Item Check Menu]";
mes "----------------------------------";
mes "";
mes "For GM Staffs Only.";
mes "----------------------------------";
next;
if(getgmlevel() >= .req_gmlvl)
{
switch( select( "Manual Check:Ranking"))
{
case 1:
mes "Input Item Number";
next;
input .@input_id;
//sql
//inventory
query_sql ("SELECT SUM(`amount`) FROM `inventory` WHERE `nameid` = '"+.@input_id+"'", .@inv_amount);
//storage
query_sql ("SELECT SUM(`amount`) FROM `storage` WHERE `nameid` = '"+.@input_id+"'", .@store_amount);
//guild storage
query_sql ("SELECT SUM(`amount`) FROM `guild_storage` WHERE `nameid` = '"+.@input_id+"'", .@guild_amount);
//carts
query_sql ("SELECT SUM(`amount`) FROM `cart_inventory` WHERE `nameid` = '"+.@input_id+"'", .@cart_amount);
//mail
query_sql ("SELECT SUM(`amount`) FROM `cart_inventory` WHERE `nameid` = '"+.@input_id+"'", .@mail_amount);
set .@total,.@inv_amount + .@store_amount + .@guild_amount + .@cart_amount + .@mail_amount;
mes "There are: " + .@total + " available in game.";
close;
case 2:
mes "Ranking";
next;
mes "soon";
close;
}
}
close;
}
Second Try: (The least I can do )
trinity_in,128,155,5 script item check 807,{
set .req_gmlvl, 99;
mes "[Item Check Menu]";
mes "----------------------------------";
mes "";
mes "For GM Staffs Only.";
mes "----------------------------------";
next;
if(getgmlevel() >= .req_gmlvl)
{
switch( select( "Manual Check:Ranking"))
{
case 1:
mes "Input Item Number";
next;
input .@input_id;
//sql
//inventory
query_sql ("SELECT SUM(`amount`) FROM `inventory` WHERE `nameid` = '"+.@input_id+"'", .@inv_amount);
//storage
query_sql ("SELECT SUM(`amount`) FROM `storage` WHERE `nameid` = '"+.@input_id+"'", .@store_amount);
//guild storage
query_sql ("SELECT SUM(`amount`) FROM `guild_storage` WHERE `nameid` = '"+.@input_id+"'", .@guild_amount);
//carts
query_sql ("SELECT SUM(`amount`) FROM `cart_inventory` WHERE `nameid` = '"+.@input_id+"'", .@cart_amount);
//mail
query_sql ("SELECT SUM(`amount`) FROM `mail` WHERE `nameid` = '"+.@input_id+"'", .@mail_amount);
set .@total,.@inv_amount + .@store_amount + .@guild_amount + .@cart_amount + .@mail_amount;
mes "There are: " + .@total + " available in game.";
close;
case 2:
mes "Please choose a Table: ";
switch( select( "Inventory:Storage:Guild Storage:Cart:Mail"))
{
case 1:
mes "ITEM INVENTORY RANKING";
mes "-----------------------";
query_sql ("SELECT SUM(amount) , nameid FROM inventory GROUP BY nameid ORDER BY SUM(amount) DESC LIMIT 10", .@rank_amount, .@rank_id);
mes "1. "+getitemname(.@rank_id[0])+"^0055FF ("+.@rank_amount[0]+")^000000";
mes "2. "+getitemname(.@rank_id[1])+"^0055FF ("+.@rank_amount[1]+")^000000";
mes "3. "+getitemname(.@rank_id[2])+"^0055FF ("+.@rank_amount[2]+")^000000";
mes "4. "+getitemname(.@rank_id[3])+"^0055FF ("+.@rank_amount[3]+")^000000";
mes "5. "+getitemname(.@rank_id[4])+"^0055FF ("+.@rank_amount[4]+")^000000";
mes "6. "+getitemname(.@rank_id[5])+"^0055FF ("+.@rank_amount[5]+")^000000";
mes "7. "+getitemname(.@rank_id[6])+"^0055FF ("+.@rank_amount[6]+")^000000";
mes "8. "+getitemname(.@rank_id[7])+"^0055FF ("+.@rank_amount[7]+")^000000";
mes "9. "+getitemname(.@rank_id[8])+"^0055FF ("+.@rank_amount[8]+")^000000";
mes "10. "+getitemname(.@rank_id[9])+"^0055FF ("+.@rank_amount[9]+")^000000";
close;
case 2:
mes "ITEM STORAGE RANKING";
mes "-----------------------";
query_sql ("SELECT SUM(amount) , nameid FROM storage GROUP BY nameid ORDER BY SUM(amount) DESC LIMIT 10", .@rank_amount, .@rank_id);
mes "1. "+getitemname(.@rank_id[0])+"^0055FF ("+.@rank_amount[0]+")^000000";
mes "2. "+getitemname(.@rank_id[1])+"^0055FF ("+.@rank_amount[1]+")^000000";
mes "3. "+getitemname(.@rank_id[2])+"^0055FF ("+.@rank_amount[2]+")^000000";
mes "4. "+getitemname(.@rank_id[3])+"^0055FF ("+.@rank_amount[3]+")^000000";
mes "5. "+getitemname(.@rank_id[4])+"^0055FF ("+.@rank_amount[4]+")^000000";
mes "6. "+getitemname(.@rank_id[5])+"^0055FF ("+.@rank_amount[5]+")^000000";
mes "7. "+getitemname(.@rank_id[6])+"^0055FF ("+.@rank_amount[6]+")^000000";
mes "8. "+getitemname(.@rank_id[7])+"^0055FF ("+.@rank_amount[7]+")^000000";
mes "9. "+getitemname(.@rank_id[8])+"^0055FF ("+.@rank_amount[8]+")^000000";
mes "10. "+getitemname(.@rank_id[9])+"^0055FF ("+.@rank_amount[9]+")^000000";
close;
case 3:
mes "ITEM GUILD STORAGE RANKING";
mes "-----------------------";
query_sql ("SELECT SUM(amount) , nameid FROM guild_storage GROUP BY nameid ORDER BY SUM(amount) DESC LIMIT 10", .@rank_amount, .@rank_id);
mes "1. "+getitemname(.@rank_id[0])+"^0055FF ("+.@rank_amount[0]+")^000000";
mes "2. "+getitemname(.@rank_id[1])+"^0055FF ("+.@rank_amount[1]+")^000000";
mes "3. "+getitemname(.@rank_id[2])+"^0055FF ("+.@rank_amount[2]+")^000000";
mes "4. "+getitemname(.@rank_id[3])+"^0055FF ("+.@rank_amount[3]+")^000000";
mes "5. "+getitemname(.@rank_id[4])+"^0055FF ("+.@rank_amount[4]+")^000000";
mes "6. "+getitemname(.@rank_id[5])+"^0055FF ("+.@rank_amount[5]+")^000000";
mes "7. "+getitemname(.@rank_id[6])+"^0055FF ("+.@rank_amount[6]+")^000000";
mes "8. "+getitemname(.@rank_id[7])+"^0055FF ("+.@rank_amount[7]+")^000000";
mes "9. "+getitemname(.@rank_id[8])+"^0055FF ("+.@rank_amount[8]+")^000000";
mes "10. "+getitemname(.@rank_id[9])+"^0055FF ("+.@rank_amount[9]+")^000000";
close;
case 4:
mes "ITEM CART RANKING";
mes "-----------------------";
query_sql ("SELECT SUM(amount) , nameid FROM cart_inventory GROUP BY nameid ORDER BY SUM(amount) DESC LIMIT 10", .@rank_amount, .@rank_id);
mes "1. "+getitemname(.@rank_id[0])+"^0055FF ("+.@rank_amount[0]+")^000000";
mes "2. "+getitemname(.@rank_id[1])+"^0055FF ("+.@rank_amount[1]+")^000000";
mes "3. "+getitemname(.@rank_id[2])+"^0055FF ("+.@rank_amount[2]+")^000000";
mes "4. "+getitemname(.@rank_id[3])+"^0055FF ("+.@rank_amount[3]+")^000000";
mes "5. "+getitemname(.@rank_id[4])+"^0055FF ("+.@rank_amount[4]+")^000000";
mes "6. "+getitemname(.@rank_id[5])+"^0055FF ("+.@rank_amount[5]+")^000000";
mes "7. "+getitemname(.@rank_id[6])+"^0055FF ("+.@rank_amount[6]+")^000000";
mes "8. "+getitemname(.@rank_id[7])+"^0055FF ("+.@rank_amount[7]+")^000000";
mes "9. "+getitemname(.@rank_id[8])+"^0055FF ("+.@rank_amount[8]+")^000000";
mes "10. "+getitemname(.@rank_id[9])+"^0055FF ("+.@rank_amount[9]+")^000000";
close;
case 5:
mes "ITEM MAIL RANKING";
mes "-----------------------";
query_sql ("SELECT SUM(amount) , nameid FROM mail GROUP BY nameid ORDER BY SUM(amount) DESC LIMIT 10", .@rank_amount, .@rank_id);
mes "1. "+getitemname(.@rank_id[0])+"^0055FF ("+.@rank_amount[0]+")^000000";
mes "2. "+getitemname(.@rank_id[1])+"^0055FF ("+.@rank_amount[1]+")^000000";
mes "3. "+getitemname(.@rank_id[2])+"^0055FF ("+.@rank_amount[2]+")^000000";
mes "4. "+getitemname(.@rank_id[3])+"^0055FF ("+.@rank_amount[3]+")^000000";
mes "5. "+getitemname(.@rank_id[4])+"^0055FF ("+.@rank_amount[4]+")^000000";
mes "6. "+getitemname(.@rank_id[5])+"^0055FF ("+.@rank_amount[5]+")^000000";
mes "7. "+getitemname(.@rank_id[6])+"^0055FF ("+.@rank_amount[6]+")^000000";
mes "8. "+getitemname(.@rank_id[7])+"^0055FF ("+.@rank_amount[7]+")^000000";
mes "9. "+getitemname(.@rank_id[8])+"^0055FF ("+.@rank_amount[8]+")^000000";
mes "10. "+getitemname(.@rank_id[9])+"^0055FF ("+.@rank_amount[9]+")^000000";
close;
}
}
}
close;
}
Bind @command
Change:
trinity_in,128,155,5 script item check 807,{
set .req_gmlvl, 99;
Question
KoolKat29
Hello fellow rAthena. Is there any available npc or script for GMs that will allow and show the rankings of items aquired by players cart/storage/mail/inventory excluding the gm's accounts?
Ex.
It will show the 10 most aquired and 10 least aquired items by players.
If possible, gm can input the item ID of the item to check the total items aquired of every players in game.
Reason.
For servers with lots of daily events with special prizes like tcg and poring coins. We can easily monitor and compare the differences or impact of prizes/items as the number of player grows. With that, we can adjust (add/delete/modify) our scripts/npcs and maintain the balance of our special items/rewards in game.
It will run an sql query I guess.
Thanks..
Firs try:
Second Try: (The least I can do
)
Bind @command
Change:
To:
Link to comment
Share on other sites
2 answers to this question
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.