Jump to content

Nyaniverse

Members
  • Posts

    49
  • Joined

  • Last visited

  • Days Won

    6

Nyaniverse last won the day on May 3 2024

Nyaniverse had the most liked content!

3 Followers

About Nyaniverse

  • Birthday April 10

Profile Information

  • Gender
    Not Telling
  • Location
    United States
  • Server
    N/A
  • Github: N/A
  • Discord: enoa.gaming
  • Interests
    Ragnarok Online, NPC scripting

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Nyaniverse's Achievements

Metaling

Metaling (6/15)

  • One Year In
  • Collaborator
  • First Post
  • Conversation Starter
  • One Month Later

Recent Badges

31

Reputation

4

Community Answers

  1. 1. Unlimited Chain Quest - Monster Hunting / Item Collection in 1 NPC 2. Music Player - Just for fun 3. Race to Max Level - Perfect for single-time race events! 4. Beta Registration NPC - Easy handing out rewards NOTE: No support will be provided - unless it's a bug in the script itself Bugs? Reply to this thread and I'll fix it right up.
  2. Just use the same script, but rename the shops and functions accordingly. - shop qshop1 -1,909:-1 to - shop bshop1 -1,909:-1 function script qshop { to function script bshop { dispbottom "Select one item at a time."; callshop "qshop"+@shop_index,1; npcshopattach "qshop"+@shop_index; to dispbottom "Select one item at a time."; callshop "bshop"+@shop_index,1; npcshopattach "bshop"+@shop_index; npcshopdelitem "qshop"+.@i,909; to npcshopdelitem "bshop"+.@i,909; - script quest_shop -1,{ to - script bquest_shop -1,{ and lastly payon,148,222,5 script Headgear List 123,{ callfunc "qshop"; } to payon,148,222,5 script Headgear List 123,{ callfunc "bshop"; } This is the lazy method that I manage to come up with, really easy to do.
  3. Here's my own version of an Hourly Point System Simple and easy to configure Makes use of Account Variable to track time Records player's playtime every 5 minutes, allowing continuous tracking even if they log off in between* Provides detailed time when they last received their reward/bonus/hourly point Removes Vendors from the system automatically No support will be provided, unless it's a bug issue. /* Author: Nyani Version 1.0 ---------------------------------------------- Playtime System ---------------------------------------------- Changelogs 1.0 - Initial Release */ - script PlaytimeCount -1,{ end; OnPCLoginEvent: //if(BaseLevel < 30) end; @starttime$ = gettimestr("%Y-%m-%d %H:%M:%S", 21); message strcharinfo(0),"Playtime Point System is now enabled. Please note that vending will disqualify you from gaining points."; addtimer 300000,"PlaytimeCount::OnPointUpdate"; // 5 minutes dispbottom "Play Point System start time: "+@starttime$; dispbottom "[ "+#playtimepts+"0/60 ] minutes completed."; end; OnPointUpdate: if ( checkvending(strcharinfo(0)) == 2 ){ dispbottom "You have been removed from the Playtime Point System. Please re-log to opt-in again."; deltimer strnpcinfo(3)+"::OnPointUpdate"; end; } @playtime += 1; if(@playtime == 2){ @playtime = 0; #playtimepts += 1; if(#playtimepts == 6){ #playtimepts = 0; #YourPtsHere += 1; @playtime = 0; message strcharinfo(0),"[Playtime Points]: You have received your Playtime Reward at "+gettimestr("%Y-%m-%d %H:%M:%S", 21)+"."; @prevtime$ = gettimestr("%Y-%m-%d %H:%M:%S", 21); } } deltimer "PlaytimeCount::OnPointUpdate"; addtimer 300000,"PlaytimeCount::OnPointUpdate"; end; OnPlaytimeCheck: dispbottom "Last Reward: "+@prevtime$; dispbottom "Minutes: "+#playtimepts+"0/60"; dispbottom "Current points: "+#YourPtsHere; end; OnInit: bindatcmd "playtime",strnpcinfo(0)+"::OnPlaytimeCheck"; end; }
  4. If you don't mind using a different script for an hourly reward system. Here's one that I made.
  5. What is the console error? For one, I downloaded it but I'm not adding it to my server since I don't have access to it right now. But a quick glance I can tell the tab spacing on the NPC header is not correct. Post your console error and I can help you out.
  6. If you're not being picky, just use logmes and it should work. *logmes "<message>"; This command will write the message given to the map server NPC log file, as specified in 'conf/log_athena.conf'. In the TXT version of the server, the log file is 'log/npclog.log' by default. In the SQL version, if SQL logging is enabled, the message will go to the 'npclog' table, otherwise, it will go to the same log file. If logs are not enabled, nothing will happen.
  7. This is actually a good idea, I might add it as a separate information query on the NPC. I'm slightly busy at the moment, so might take some time for me to add it. But this is very do-able.
  8. Good day everynyan~ I'm here again to showcase a newly finish system for a server that I am helping out with~ It's a simple Sell Character system, much like Shakto's but also not quite the exact same. Feature: Preview character information (Status/Equipment) Sold characters are categorized based on their Class Checks if character/account is online (in-game or in the server select/character select screen) Blocks usage of character that is being sold - will be prompted to either remove the character from Sell List or will be blocked from moving indefinitely Sellers can receive their earnings via the same NPC Logs buyer ID, seller ID, character ID and time of purchase Logs earnings and time of claim for earnings Lots of configuration options, such as to check for Bound items (account,party,guild) and more\ Credit to @Cydhfor making this script possible via:
  9. if (.@fake_icon_time_ms = 0) { Try changing that line to this one if (.@fake_icon_time_ms == 0) {
  10. *summon "monster name",<monster id>{,<Time Out>{,"event label"}}; This command will summon a monster. (see also 'monster') Unlike monsters spawned with other commands, this one will set up the monster to fight to protect the invoking character. Monster name and mob id obey the same rules as the one given at the beginning of this document for permanent monster spawns with the exceptions mentioned when describing 'monster' command. The effect for the skill 'Call Homunculus' will be displayed centered on the invoking character. Timeout is the time in milliseconds the summon lives, and is set default to 60000 (1 minute). Note that also the value 0 will set the timer to default, and it is not possible to create a spawn that lasts forever. If an event label is given, upon the monster being killed, the event label will run as if by 'donpcevent'. Returned value is the game ID of the spawned monster. // Will summon a dead branch-style monster to fight for the character. summon "--ja--",-1; Just add an OnEvent label, set it so that a character variable is set, something like summon_avail = 1; And when you kill another monster that can be "summoned", check if summo_avail is 1, if it's not, summon, if its 1, ignore
  11. Note, your solution only displays the first item on the list. If they bought multiple cards, then it won't announce the rest. Example: Player A bought Poring, Drops and Fabre Card - the only one that will be showed on announce is Poring Card
  12. Won't work if you don't have Gepard, nor it's color nick addon.
  13. Hello everynyan! I am very intrigued with Ragnarok Landverse's core systems and features, and I wanted to try to see if I can try to even get close to replicating their Gear Score system. And this is what I have done so far. This feature is based off of what's available on their wiki/information pages, here. Features: Gear Score rating is updated upon logout and when issuing @gscore command in-game Ranking buff is based off server-time, Ranker buff will always expire at 00:00 server time Weapon on L-HAND does not count towards Gear Score rating Reads Upper Headgear, Body, Garment, Footgear, R-Hand and L-Hand (shields only) Reads cards, number of cards, number of options and equipment slots Note: This will never be as complex or as intricate as Ragnarok Landverse, more so, this is only made to see if I can replicate what they have done to and I guess to practice my scripting knowledge. Any feedback, criticism or ideas are all welcome~
  14. Solved. Resolved by using a combination of getequipweaponlv and getequipcardcnt, in conjunction with adding a function to the card upon Equip and UnEquip to identify that it's been equipped on L-Hand.
  15. Hi, I'm somewhat familiar with scripting already with rAthena, however, there is one issue I am facing that I haven't figured out at all or any other way to do the checks properly. It's on how to figure out if the card is being equipped on the L-Hand side or R-Hand side of equipment (specifically, Assassin dual wielding and such) This is what I came up with, but looking at it more, it doesn't really do what I need it to do. if(getarg(3) == 1 && Class == 12 || Class == 4013){ .@right = getequipid(EQI_HAND_R); .@left = getequipid(EQI_HAND_L) for(.@i = 0; .@i < 4; .@i++){ .@rc[.@i] = getequipcardid(EQI_HAND_R,.@i); .@lc[.@i] = getequipcardid(EQI_HAND_R,.@i); if(inarray(.@rc[0], .@lc[@i]) == -1) Is there any other method that can be used to check if card is in the left-hand or right-hand?
×
×
  • Create New...