Jump to content

nanakiwurtz

Members
  • Posts

    1654
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by nanakiwurtz

  1. Those are just some custom reward items, you can safely replace them.
  2. // http://rathena.org/board/topic/78486-breaker-rankings-npc/ // NPC that: // - displays top 10 emperium breaker (Rank, Char Name, Guild Name, Breaker Points) // - when a player was the last to break the emp after the WoE he will get 1 point // - selection which enables the player to trade their points into TCG (item id: 7227) // but their break points are still displayed prontera,155,188,0 script Emp Break Ladder 910,{ switch(select("View Emp Break Ladder:Redeem points for TCG:More Info:" + ((getgmlevel()>=99) ? "Reset Ladder":""))) { case 1: query_sql "SELECT `char`.`name`, `char`.`class`, guild.`name`, CAST(`value` AS UNSIGNED) " + "FROM global_reg_value " + "LEFT JOIN `char` ON global_reg_value.char_id=`char`.char_id " + "LEFT JOIN `guild` ON `char`.guild_id=guild.guild_id " + "WHERE global_reg_value.`str`='breaker_points' " + "ORDER BY CAST(`value` AS UNSIGNED) DESC LIMIT 10", .@name$, .@job, .@guild$, .@points; mes "[Top 10 Emp Breakers]"; for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { mes (.@i+1) +". ^0000FF"+ .@name$[.@i] +"^000000, "+jobname(.@job[.i@])+", "+ .@guild$[.@i] +" ("+ .@points[.@i] +((.@points[.@i]==1)?" pt":" pts")+")"; } break; case 2: mes "[Emp Break Ladder]"; mes "Total Emp Breaks: " + breaker_points; mes "Available Points: " + (breaker_points - breaker_tcg); if (breaker_points == 0) { mes "You have not broke the emp yet!"; } else if (breaker_points <= breaker_tcg) { mes "You've already exchanged all your points for TCG."; mes "Come back after you break the emp again!"; } else if (breaker_points-breaker_tcg < 5) { mes "You need at least 5 breaker points to exchange for 1 TCG."; } else { set .@reward, (breaker_points-breaker_tcg)/5; if (select("Redeem points for "+.@reward+" TCG:Cancel") == 2) { mes "Come back if you change your mind."; } else if (checkweight(7227, .@reward) == 0) { mes "You are overweight or carrying too many items."; } else { getitem 7227, .@reward; set breaker_tcg, breaker_tcg + (.@reward*5); mes "Here are your "+.@reward+" TCG!"; } } break; case 3: mes "[Emp Break Ladder]"; mes "Each time you break the emp, you earn 1 point."; mes "Then, talk to me to redeem 5 points for 1 TCG."; break; case 4: if (getgmlevel() < 99) end; set .@AID, playerattached(); // reset for offline chars query_sql "DELETE FROM global_reg_value WHERE `str`='breaker_points'"; query_sql "DELETE FROM global_reg_value WHERE `str`='breaker_tcg'"; // for each online char, reset breaker_points to 0 while (getusers(1) > .@count) { set .@count, .@count + query_sql("SELECT account_id FROM `char` WHERE online=1 LIMIT 128 OFFSET "+.@count, .@account_id); set .@i, 0; while (.@i < getarraysize(.@account_id)) { if (attachrid(.@account_id[.@i])) doevent strnpcinfo(3)+"::OnResetBreakerPoints"; set .@i, .@i +1; } deletearray .@account_id, 128; sleep 1; // prevent infinity loop } attachrid .@AID; mes "Emp Break Ladder has been reset."; break; } close; OnResetBreakerPoints: set breaker_points, 0; set breaker_tcg, 0; end; }
  3. Ahh right, I always forgot about those var types
  4. You can click on my signature link.
  5. for (i=0 ; i<4; i++) {sc_start (SC_CP_WEAPON+i),350000,5;}
  6. Skill #479, "CR_FULLPROTECTION"
  7. Add another label, +30 min from start. OnMinute40: killmonster .Map$,"All"; set .Status,0; end;
  8. The current script announces upgrade failure on +7 or more
  9. So the exchange rate between item A and B isn't equal? 8 and 10?
  10. nanakiwurtz

    VOTE NPC

    It's easy, there you go prontera,155,180,3 script Daily Reward 1002,{ mes "[Daily Reward]"; if(DailyReward>gettimetick(2)) { set .@Time, DailyReward-gettimetick(2); set .@SecondLeft,( .@Time % 60 ); set .@MinuteLeft,( .@Time / 60 % 60 ); set .@HourLeft,( .@Time / ( 60 * 60 ) % 24 ); set .@DayLeft,( .@Time / ( 24 * 60 * 60 ) ); set .@TimeLeft$,(( .@DayLeft )?.@DayLeft+" Day ":"" ) + (( .@HourLeft )?.@HourLeft+" hours ":"" ) + (( .@MinuteLeft )?.@MinuteLeft+" minutes ":"" ) + (( .@SecondLeft )?.@SecondLeft+" seconds":"" ); mes "You have to wait for ^FF0000"+.@TimeLeft$+"^000000 before you can claim your prize again."; close; } mes "Hello "+strcharinfo(0)+"!"; mes "Here's your daily reward."; getitem 7539,1; set DailyReward, gettimetick(2)+43200; next; mes "[Daily Reward]"; mes "Talk to me again in the next 12 hours."; close; }
  11. nanakiwurtz

    VOTE NPC

    Vote NPC? How does it works? And yes, what's the connection between those script? (Vote <---> Card Remover)
  12. The ranking does not, does not what? It didn't increase?
  13. But actually you could set a time limit for this kind of script. Just set the time, for example: Monday 09:00-10:00. The SOG will only drop during that time. After 10:00, killing anyone won't give you SOG. But everyone can still join the PVP room, killing for fun
  14. Strip their weapon & shield before doing changebase.
  15. It's not an error, if you and the other players can connect then it's fine, nothing to worry about.
  16. I think you shouldn't set a prize for this script, because everyone on your server can join the PVP room everytime they want, if you insist to set a prize, then you should make a limitation, for example by time limit. Imagine that I have 2 different accounts, then account #1 joins the room then idle there, while I login using my second account, killing the #1 nonstop. Then, by a week, your server's economy will collapse... Because virtually they can get unlimited SOGs by doing PVP.
  17. But, regarding your first post, I think it's unwise to set prizes on this script because people could just stand still and be the victim, while the other character get items nonstop for free..
  18. prontera,148,166,6 script Arena Master 808,{ if( select("PVP Room [ "+getmapusers("pvp_n_8-5")+"/50 ]:Cancel") == 1 ) { if( getmapusers("pvp_n_8-5") >= 50 ) { mes "[Arena Master]", "I'm sorry but the PVP Room is already full!"; close; } warp "pvp_n_8-5",0,0; } close; OnPCDieEvent: if(strcharinfo(3) == "pvp_n_8-5") { dispbottom "You will respawn in 3 Seconds."; sleep2 3000; atcommand "@alive"; atcommand "@heal"; warp "pvp_n_8-5",0,0; } end; }
  19. Yep, just use the script on post #16.
  20. I have edited the script, I forgot to add 0,0 See post #16.
  21. Yep, that's why I asked you earlier about it, "why would you warp to prontera if the players in pvp room is less than 50?"
×
×
  • Create New...