Jump to content

Nyaniverse

Members
  • Posts

    45
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Nyaniverse

  1. Where's the whole item script? You might be adding it on the wrong area.
  2. Hmm, I just made the script to help me facilitate who's in my streamer program and such, so I do have to manually put them in or remove them. So yes, it's very manual. It was created to only assist in managing my streamer program, without having to touch my script or having to reload npcs every time I had to add/remove someone from the list. Edit: This question actually made me re-think the script and made it more interesting -- I'll post the updated showcase soon~ New Features Initial search can be set either for username or regular character name Now an option to wipe all 'supplies' from the database (requires custom item ids to work properly, or else it will delete all other supplies) - if enabled, supplies reset at 00:00 server time, wiping all supplies (online and offline) Now has a feature that distributes supplies to streamers on a daily basis, logs the time they claimed supply for checking purposes Now has a feature that separates supplies for 'Casual' streamers from 'Official' streamers Has a built-in announce feature when claiming supplies, allows said streamer to broadcast (once per day) that they claimed their supply and will go live soon
  3. Hello everynyan! I was messing around in my local server and thought of an NPC that easily helps manage my list of streamers without having to go into my server files to tweak them manually~ Thus I showcase my own streamer manager NPC~ complete with a "countdown" to their designated supply reset day~ Features: Easily add/remove streamers via their in-game name, regardless if they're online or offline! Automatic supply reset for hassle-free management Online streamers will be notified automatically when they are added to the supply NPC Configurable settings such as announcements, items given as supply, item bound-type and more! Username searching feature Additional option to wipe all supplies sent to streamers (can be configured what IDs that will be removed) Daily supply distribution with automatic reset at X time, available logs to check when stream/supply was claimed Separate supply list for 'Casual' and 'Official' streamers Has streamer ranking that settles every week for weekly, and every 1st of the month for monthly, keeps a record for all-time ranking as well When streamer is removed, data will not show on rankings, but ranking information is preserved, so if streamer is added back, they will go back to their previous rank/point Added previous week/month ranking on options Added option for GM to reset weekly/monthly rankings or both I would love to hear your opinions about this NPC and if you think I can improve it somewhere, please feel free to mention it below! Cheers, nyan~
  4. I'll throw you treat, it's up to you how to figure out how to get the colors and set the colors. prontera,155,186,5 script Fashionista#name 845,{ .@current = get_color_nick(); setarray .@colors$,"C8B928","177ABD","F35BE6","D7ECB2","AE8B29" ,"FBF79A","73558C","EB57B8","25B7EF","442BFB" ,"D6E2F9","D7FE28","6A98B1","A764E0","14D5D4"; for(.@i = 0; .@i < getarraysize(.@colors$); .@i++) .@menu$ += "^"+.@colors$[.@i]+""+strcharinfo(0)+"^000000:"; .@select = select(.@menu$) - 1; .@color = .@select + 1; if(countitem(58503) < 1){ message strcharinfo(0),"You do not have "+getitemname(58503)+"!"; end; } menu "Buy this ^"+.@colors$[.@select]+"color?",-; if(.@current == .@color){ message strcharinfo(0),"This is your current name color"; end; } delitem 58503,1; set_color_nick(.@color); message strcharinfo(0),"Enjoy your new color!"; end; }
  5. Have you tried setting it to 100% chance to auto-cast? Try adding a different skill and see if it works as well, to debug it.
  6. bonus4 bAutoSpellOnSkill,sk,x,y,n; Adds a n/10% chance to autospell skill x at level y when using skill sk This should be the one that you are looking for
  7. Hello everynyan! I'm here to showcase my own Race to MAX! NPC~ It's just your traditional race to max level NPC with fancier text, easier controls and have a detailed information about the winners of the race. I would love to hear feedback about this NPC and if you have any suggestions, please feel free to comment down below! Features are as follows Configurable settings for which classes can be included in the race Configurable rewards list Time stamp of when player achieved max level Colored identifications on each Class category to signify if there are winners, no winners yet or they have winners but still have slots to fill GM options to easily reset the Race NPC and it's data Automatically hides Registration NPC when no event is active Accounts can only participate in the race once
  8. You can reference your question by looking at the default custom Healer that comes with rAthena.
  9. View File Guild/Party GM Assist NPC Hello everynyan, this is a free release for all our event GMs out there This should help out in events with easier recalls, barricades, announcements and such! If you have any suggestions or bugs, please feel free to inform me. Commands as follows dispbottom "@event usage: "; dispbottom "------------------"; dispbottom "@event left (teleport left-side)"; dispbottom "@event right ((teleport right-side)"; dispbottom "@event recall (recall parties)"; dispbottom "@event debuff (debuff all)"; dispbottom "@event supply (give supply all)"; dispbottom "@event start (start event)"; dispbottom "@event stop (stop event)"; dispbottom "@event partycount (count online members)"; dispbottom "@event mode (selects Guild or Party mode)"; dispbottom "@event repot (announces for repots)"; dispbottom "@event winner (announces who's the winner)"; dispbottom "------------------"; Submitter Nyaniverse Submitted 11/26/23 Category PvP, GvG, WoE, Battleground Video Content Author Nyani  
  10. Version 2.1

    121 downloads

    Hello everynyan, this is a free release for all our event GMs out there This should help out in events with easier recalls, barricades, announcements and such! If you have any suggestions or bugs, please feel free to inform me. Commands as follows dispbottom "@event usage: "; dispbottom "------------------"; dispbottom "@event left (teleport left-side)"; dispbottom "@event right ((teleport right-side)"; dispbottom "@event recall (recall parties)"; dispbottom "@event debuff (debuff all)"; dispbottom "@event supply (give supply all)"; dispbottom "@event start (start event)"; dispbottom "@event stop (stop event)"; dispbottom "@event partycount (count online members)"; dispbottom "@event mode (selects Guild or Party mode)"; dispbottom "@event repot (announces for repots)"; dispbottom "@event winner (announces who's the winner)"; dispbottom "------------------";
    Free
  11. You're right, I apparently copied the one I sent previously. Edited it to have the getequipid check.
  12. Here you go. prontera,164,168,4 script Dwarf 600,{ .@item = 7420; .@quan = 0; .@freeRef = 7; .@paidRef = 10; setarray .@blacklist, 501,502,503,504,505; //add banned item here switch(select("Refino Gratis", "Refino Pago")){ case 1: setarray .@items[0],EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R;] for(.@i = 0; .@i < getarraysize(.@items); .@i++){ if(inarray(.@blacklist[0],getequipid(.@items[.@i])) != -1){ message strcharinfo(0),"Invalid item"; end; } } for(.@i = 0; .@i < getarraysize(.@items); .@i++){ if(getequiprefinerycnt(.@items[.@i]) < .@freeRef){ specialeffect2 154; successrefitem .@items[.@i],.@freeRef - getequiprefinerycnt(.@items[.@i]); } } end; case 2: setarray .@items[0],EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R; if (countitem(.@item) < .@quan){ mes "Voce nao tem os items necessarios: " + .@quan + "x "+ getitemname(.@item); close; } for(.@i = 0; .@i < getarraysize(.@items); .@i++){ if(inarray(.@blacklist[0],getequipid(.@items[.@i])) != -1){ message strcharinfo(0),"Invalid item"; end; } } for(.@i = 0; .@i < getarraysize(.@items); .@i++){ // prevent the item consuption if(getequiprefinerycnt(.@items[.@i]) != .@paidRef) .@flag = 1; if(getequiprefinerycnt(.@items[.@i]) < .@paidRef){ specialeffect2 154; successrefitem .@items[.@i],.@paidRef - getequiprefinerycnt(.@items[.@i]); } } if (.@flag == 1) delitem 7420,10; end; } OnInit: waitingroom "Refinador Mestre",0; }
  13. Ah yes, sorry it was my mistake, please edit this line if(inarray(.@blacklist[0],.@items[.@i]) != -1){ to this if(inarray(.@blacklist[0],getequipid(.@items[.@i])) != -1){
  14. Here, have a try prontera,164,168,4 script Dwarf 600,{ .@item = 7420; .@quan = 0; .@freeRef = 7; .@paidRef = 10; setarray .@blacklist, 501,502,503,504,505; //add banned item here switch(select("Refino Gratis", "Refino Pago")){ case 1: setarray .@items[0],EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R; for(.@i = 0; .@i < getarraysize(.@items); .@i++){ if(inarray(.@blacklist[0],.@items[.@i]) != -1){ message strcharinfo(0),"Invalid item"; end; } if(getequiprefinerycnt(.@items[.@i]) < .@freeRef){ specialeffect2 154; successrefitem .@items[.@i],.@freeRef - getequiprefinerycnt(.@items[.@i]); } } end; case 2: setarray .@items[0],EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R; if (countitem(.@item) < .@quan){ mes "Voce nao tem os items necessarios: " + .@quan + "x "+ getitemname(.@item); close; } for(.@i = 0; .@i < getarraysize(.@items); .@i++){ if(inarray(.@blacklist[0],.@items[.@i]) != -1){ message strcharinfo(0),"Invalid item"; end; } // prevent the item consuption if(getequiprefinerycnt(.@items[.@i]) != .@paidRef) .@flag = 1; if(getequiprefinerycnt(.@items[.@i]) < .@paidRef){ specialeffect2 154; successrefitem .@items[.@i],.@paidRef - getequiprefinerycnt(.@items[.@i]); } } if (.@flag == 1) delitem 7420,10; end; } OnInit: waitingroom "Refinador Mestre",0; }
  15. Hello everynyan! This free script is to help facilitate GvG events with crude but simple commands to make conducting events easier for all our event GMs out there~ Usage dispbottom "@event usage: "; dispbottom "------------------"; dispbottom "@event left (teleport left-side)"; dispbottom "@event right ((teleport right-side)"; dispbottom "@event recall (recall parties)"; dispbottom "@event debuff (debuff all)"; dispbottom "@event supply (give supply all)"; dispbottom "@event start (start event)"; dispbottom "@event stop (stop event)"; dispbottom "@event partycount (count online members)"; dispbottom "------------------"; Customizable Options //set your supplies if you wish setarray .supply_ids, 501,502,503; setarray .supply_amt, 1 ,2 ,3; //add maps that you want to allow the @event command to work on //make sure to update the OnPartyRecall event as well //make sure you add setwall and barricade spawns on those new maps as well setarray .map$, "guild_vs1", "2012rwc_06", "2012rwc_08"; GvGManager.txt
  16. You can add your checks here function Go { set lastwarp$, getarg(0); set lastwarpx, getarg(1,0); set lastwarpy, getarg(2,0); if(BaseLevel > 50 && Zeny < 1000){ mes "You need 1,000 Zeny."; close; } if(BaseLevel > 50) Zeny -= 1000; warp getarg(0),getarg(1,0),getarg(2,0); end; }
  17. Most MVPs have their own special mobs, adding a blacklist of those IDs can easily solve this issue. This is actually really good point, I will be adding this feature to this system! Thank you!
  18. Hello everynyan! I'm here to present my Interactive Nyani Bot Killer! Intro, *ehem ehem*, we all know that botting is rampant across all Ragnarok Online servers, and there's only so much you can do. And I was thinking, why not make the bot check as interactive as possible? This way, it would be very hard to create a "macro" or bypass for your bot checker! And here I am, presenting my own bot killer system which is simple, and possibly, can not be bypassed. (Or not, who knows, we'll have to see~) More showcases to follow~ Features are as follows! Configurable settings for rewards and buffs Configurable settings for how many monsters to kill before checking is conducted Configurable settings for allowing certain jobs to bypass bot check (Alchemist / Creator) Configurable settings for how many failed attempts before getting jailed Add as many rooms as I want Kill counts will be retained even after logging out or getting disconnected Chat room shuffles every 5 minutes, or on demand (@command) NEW! Added a blacklist for mob ids, so that it can be skipped when doing checks (MVPs, etc) - credit to @Chaos92 for the idea NEW! Added a blacklist for maps, allowing for flexibility on where kills will be counted NEW! Added multiple areas for bot checking, simulating a randomized chatroom location, making bypassing this bot check even harder! NEW! Added check for boosts (XP/JXP/ITEMBOOST) and added the option to extend said buffs by X minutes!
  19. set .@failrate,getarg(1); to set .@failrate,36;
  20. Good day rAthena, I am currently trying to edit my Blast Mine to be able to get knocked back using Arrow Shower. ( I want it to behave like how it behaves in non-gvg maps) I am very new to source coding so I am not even sure on what I should work with, I know that I have to look at this particular area, but I am not sure on what or how I should proceed. Any tips or guide on what to do next would be really appreciated. /** * Checks if unit can be knocked back / stopped by skills. * @param bl: Object to check * @param flag * 0x1 - Offensive (not set: self skill, e.g. Backslide) * 0x2 - Knockback type (not set: Stop type, e.g. Ankle Snare) * 0x4 - Boss attack * 0x8 - Ignore target player 'special_state.no_knockback' * @return reason for immunity * UB_KNOCKABLE - can be knocked back / stopped * UB_NO_KNOCKBACK_MAP - at WOE/BG map * UB_MD_KNOCKBACK_IMMUNE - target is MD_KNOCKBACK_IMMUNE * UB_TARGET_BASILICA - target is in Basilica area (Pre-Renewal) * UB_TARGET_NO_KNOCKBACK - target has 'special_state.no_knockback' * UB_TARGET_TRAP - target is trap that cannot be knocked back */ enum e_unit_blown unit_blown_immune(struct block_list* bl, uint8 flag) { if ((flag&0x1) && (map_flag_gvg2(bl->m) || map_getmapflag(bl->m, MF_BATTLEGROUND)) && ((flag&0x2) || !(battle_config.skill_trap_type&0x1))) return UB_NO_KNOCKBACK_MAP; // No knocking back in WoE / BG switch (bl->type) { case BL_MOB: // Immune can't be knocked back if (((flag&0x1) && status_bl_has_mode(bl,MD_KNOCKBACKIMMUNE)) && ((flag&0x2) || !(battle_config.skill_trap_type&0x2))) return UB_MD_KNOCKBACK_IMMUNE; break; case BL_PC: { map_session_data *sd = BL_CAST(BL_PC, bl); #ifndef RENEWAL // Basilica caster can't be knocked-back by normal monsters. if( !(flag&0x4) && sd->sc.getSCE(SC_BASILICA) && sd->sc.getSCE(SC_BASILICA)->val4 == sd->bl.id) return UB_TARGET_BASILICA; #endif // Target has special_state.no_knockback (equip) if( (flag&(0x1|0x2)) && !(flag&0x8) && sd->special_state.no_knockback ) return UB_TARGET_NO_KNOCKBACK; } break; case BL_SKILL: { struct skill_unit* su = (struct skill_unit *)bl; // Trap cannot be knocked back if (su && su->group && skill_get_unit_flag(su->group->skill_id, UF_NOKNOCKBACK)) return UB_TARGET_TRAP; } break; } //Object can be knocked back / stopped return UB_KNOCKABLE; }
×
×
  • Create New...