Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/18/19 in all areas

  1. Version 1.0.0

    629 downloads

    Random Option Global Functions I have made two new global functions for Random Option: F_GetRDMOPT_Name,<ROA_ID> Returns the Random Option name from <ROA_ID>. (Names are based on zackdreaver's translation) F_GetRDMOPT_Value,<ROA_ID>,<VALUE> Returns VALUE plus (+), (-) or (%) depending in the Random Option. VALUE is returned as string. Examples: mes callfunc("F_GetRDMOPT_Name",9;)+" "+callfunc("F_GetRDMOPT_Value",9,15); will display "MaxHP +15%" mes callfunc("F_GetRDMOPT_Name",16;)+" "+callfunc("F_GetRDMOPT_Value",16,32); will display "Delay after attack -32%"
    Free
    1 point
  2. Version 1.0.0

    236 downloads

    Apply the patch manually These commands allow you to create duplicates at run time. duplicatecreate("sourcename", "targetnameshown", "targetnamehidden", "targetmap", targetx, targety, targetdir{, targetspriteid{, targetxs, targetys}}); duplicateremove("npcname");
    Free
    1 point
  3. @Ahoy if u enabled VIP SYSTEM ... or conf/login_athena
    1 point
  4. Find: if (.@current_stat >= .max_stats) { and else if ((.@current_stat+ .@amount) >= .max_stats) { UPDATE: if (.@current_stat > .max_stats) { and else if ((.@current_stat+ .@amount) > .max_stats) {
    1 point
  5. prontera,155,181,5 script Stats Mistress 757,{ mes "[ Stats Mistress ]"; mes "Hello! I sell ^FF00CC1 stats for 400,000z^000000 would you like to buy!"; .@index = select( .stat_menu$ ) - 1; input .@amount,0,( .max_stats - readparam( 13+.@index ) ); if ( .@amount > 0 ) { .@cost = ( .cost_per_stat * .@amount ); mes "Stats : "+.stat$[.@index]+" +"+F_InsertComma( .@amount ); mes "Price : "+F_InsertComma( .@cost )+"z"; mes "Do you wish to continue ?"; .@current_stat = readparam(bStr + .@index); if (.@current_stat >= .max_stats) { message strcharinfo(0), "You've reached the maximum "+.stat$[.@index]; } else if ((.@current_stat+ .@amount) >= .max_stats) { message strcharinfo(0), "You can't exceed the maximum stats of "+.max_stats; } else if ( Zeny >= .@cost ) { if ( select( "Buy "+F_InsertComma( .@amount )+" ^FF00CC"+.stat$[.@index]+"^000000" ) ) { Zeny -= .@cost; statusup2 (bStr + .@index),.@amount; message strcharinfo(0), "Gained "+F_InsertComma( .@amount )+" "+.stat$[.@index]; } } } close; OnInit: .max_stats = 300; .cost_per_stat = 400000; setarray .stat$, "STR", "AGI", "VIT", "INT", "DEX", "LUK"; .@stat_size = getarraysize( .stat$ ); while ( .@i < .@stat_size ) { .stat_menu$ = .stat_menu$ + "^FF00CC"+.stat$[.@i]+"^000000" + ":"; .@i++; } end; }
    1 point
  6. View File Zombie Tag Zombie tag is a pvp script that spawns a number of custom zombies mobs every minute. The goal is for players to survive for the full 10 minutes. When a player gets killed they respawn as a zombie. Once a zombie they are unkillable, but can still kill any other surviving players. Submitter Peopleperson49 Submitted 10/11/2019 Category Games, Events, Quests Video Content Author Peopleperson49  
    1 point
  7. View File Secret Laboratory Ray Based on the secret laboratory ray on www.neopets.com. Once players collect all nine map pieces they can make a complete map that teleports them to the NPC. It can be collected once per day. You choose how you want to distribute them, but I added them to my giftboxes, old blue boxes, and old purple boxes. This also includes custom items created to support the script. Submitter Peopleperson49 Submitted 10/12/2019 Category Games, Events, Quests Video Content Author Peopleperson49  
    1 point
  8. Version 1.0.0

    225 downloads

    well, I didn't find the mvp card symbol anywhere and redid it, I decided to share it. It's not perfect, but better done than perfect! kk ?
    Free
    1 point
  9. int arrowchange(map_session_data * sd, mob_data *targetmd) { unsigned short arrows[] = { 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1762, 1765, 1766, 1767 ,1770, 1772, 1773, 1774 }; unsigned short arrowelem[] = { ELE_NEUTRAL, ELE_HOLY, ELE_FIRE, ELE_NEUTRAL, ELE_WATER, ELE_WIND, ELE_EARTH, ELE_GHOST, ELE_NEUTRAL, ELE_POISON, ELE_HOLY, ELE_DARK, ELE_NEUTRAL, ELE_HOLY, ELE_NEUTRAL, ELE_NEUTRAL }; unsigned short arrowatk[] = { 25,30,30,40,30,30,30,30,30,50,50,30,30,50,45,35 }; if (DIFF_TICK(sd->canequip_tick, gettick()) > 0) return 0; int16 index = -1; int i,j; int best = -1; int bestprio = -1; for (i = 0; i < ARRAYLENGTH(arrows); i++) { if (index = pc_search_inventory(sd, arrows[i]) >= 0) { j = arrowatk[i]; if (elemstrong(targetmd, arrowelem[i])) j += 500; if (elemallowed(targetmd, arrowelem[i]) && j>bestprio) { bestprio = j; best = index; break; } } } if (best > -1) { pc_equipitem(sd, best, EQP_AMMO); return 0; }else { char* msg = "I have no arrows to shoot my target!"; saythis(sd, msg, 50); return 0; } } Suggestion on this part... Better check if item is already equipped. I tried to use 1 arrow only and error message is spamming the chat box because its still equipping the arrow that already equipped.
    1 point
×
×
  • Create New...