Jump to content

Mastagoon

Members
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Mastagoon

  1. View File WoE Rewards & Statistics This file is a different version from WoE rewards depending on time spent in castle. It has all the features listed there, plus a statistic rundown on each WoE, And the ability to track the damage dealt by each player during WoE. Features: Can reward players for every minute they spend inside a WoE castle Can reward players for every kill in WoE castle, and will also display the name of the killed/killer. Can reward players for every emperium break during WoE Can reward players depending on the damage dealt during WoE Excludes AFK players and players who are not in a guild. Announces kills with different colors depending on the killer's castle Can set a modifier for certain classes to gain more points than others Displays the number and names of all the guilds who participated in the last WoE Displays a top 10 ranking of players with the most kills, K/DA, and Damage dealt during WoE Submitter Mastagoon Submitted 05/12/2021 Category PvP, GvG, WoE, Battleground Video Content Author Mastagoon  
  2. View File OnPCAttackEvent This event triggers when a player character attacks another entity. And it registers the damage and other information about the attack. Example usage: // @damage holds the amount of damage dealt. // @damagegid holds the GID of the target (account ID if the target is a player). // @damagerid holds the rid of the mob OnPCAttackEvent: dispbottom "You've dealt "+@damage+" to target with GID "+@damagegid+" and RID "+@damagerid; Submitter Mastagoon Submitted 05/10/2021 Category Source Modifications Video Content Author Mastagoon  
  3. use "" instead of '' "prontera", "izlude", "geffen", ...etc
  4. In .yml files, you comment by adding # before the line, not //. Alternatively you can remove the entire line aswell
  5. Keep the .map$ line as it was. Then add below it: setarray .maps$[0], 'prontera', 'izlude', 'geffen'; Then, right below the OnEventStart label, add this line: .map$ = .maps$[rand(getarraysize(.maps$))]; Now the map will be randomly chosen each time. goodluck.
  6. Version 1.0.2

    77 downloads

    This file is a different version from WoE rewards depending on time spent in castle. It has all the features listed there, plus a statistic rundown on each WoE, And the ability to track the damage dealt by each player during WoE. Features: Can reward players for every minute they spend inside a WoE castle Can reward players for every kill in WoE castle, and will also display the name of the killed/killer. Can reward players for every emperium break during WoE Can reward players depending on the damage dealt during WoE Excludes AFK players and players who are not in a guild. Announces kills with different colors depending on the killer's castle Can set a modifier for certain classes to gain more points than others Displays the number and names of all the guilds who participated in the last WoE Displays a top 10 ranking of players with the most kills, K/DA, and Damage dealt during WoE
    5.00 USD
  7. announce "Player "+strcharinfo(0)+" Enters the PvP Room.",bc_all|bc_blue; The line above announces it to the entire server. You want this line right above the warp script. To make the announcement only inside the pvp room: mapannounce strcharinfo(3),"Player "+strcharinfo(0)+" Enters the PvP Room.",bc_map|bc_blue;
  8. Remove the Cooldown line or comment it out from the file. If you got an error please share it to help us figure out what's wrong
  9. Here's one solution: In script.inc. Add this function at the end of the file: BUILDIN_FUNC(logout_tick) { TBL_PC *sd; if (!script_rid2sd(sd)) { script_pushint(st, -1); return SCRIPT_CMD_FAILURE; } if (sd->canlog_tick == 0) script_pushint(st, 0); else script_pushint(st, DIFF_TICK(gettick(), sd->canlog_tick)); return SCRIPT_CMD_SUCCESS; } in script_def.inc. Add this line at the end of the file: BUILDIN_DEF(logout_tick, ""), Then recompile your server. This script command will check for the same timer used to check if a player can log out or not. Basically it returns how many milliseconds ago was the character in combat. Example usage: - script testscript -1,{ OnInit: bindatcmd("testcmd", strnpcinfo(3)+"::OnAtCmd"); end; OnAtCmd: .@tick = logout_tick(); dispbottom "You have been in combat "+.@tick/1000+" seconds ago."; if(.@tick >= 5000 || .@tick == 0) dispbottom "Command used successfully!"; else dispbottom "You cannot use this command if you have been in combat during the last 5 seconds."; end; } Result:
  10. Version 1.0.0

    379 downloads

    This event triggers when a player character attacks another entity. And it registers the damage and other information about the attack. Example usage: // @damage holds the amount of damage dealt. // @damagegid holds the GID of the target (account ID if the target is a player). // @damagerid holds the rid of the mob OnPCAttackEvent: dispbottom "You've dealt "+@damage+" to target with GID "+@damagegid+" and RID "+@damagerid;
    Free
  11. What client version are you using? and is it hexed ? if so please share your NEMO hex profile. Seems like a client-side problem. Basically your server is not receiving the correct packets from the client. I don't have alot of expertise in this area, but first you should make sure the client version you're using matches the PACKETVER constant on your server side.
  12. Thank you for your contribution . I have updated the file and added a few options.
  13. Have you tried making the skills remove all OTHER elemental change statuses before applying a new one? Kinda like how the Gentle Touch skills used to work before Sura improvement. Whenever you cast one it would remove all the others first
  14. I have never seen the behavior in the second clip before. afaik, the first clip in the video reflects the correct behavior of LP.
  15. I'm assuming you mean the 5 second window where you cannot regain SP from any sources after using Asura strike. It would be much simpler to just add a 5 seconds cooldown to the skill istelf: Find the entry for MO_EXTREMITYFIST inside db/pre-re/skill_db.yml and add a 5 seconds cooldown like so: HitCount: 1 CopyFlags: Skill: Plagiarism: true Reproduce: true CastCancel: true Cooldown: 5000 <<<<<<<<<< add this line CastTime: .... However if you want the skill to behave like renewal, you need to do the following: pc.cpp: search for this line and edit it like this: //#ifdef RENEWAL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< comment or remove this line if (sd->sc.data[SC_EXTREMITYFIST2]) sp = 0; //#endif< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< comment or remove this line script_constants.hpp: search for SC_EXTREMITYFIST2 and edit this line: //#ifdef RENEWAL <<<<<<<<<<< comment or remove this line export_constant(SC_EXTREMITYFIST2); //#endif <<<<<<<<<<< comment or remove this line script.cpp: search for SC_EXTREMITYFIST2 and edit this line: //#ifdef RENEWAL if( sd->sc.data[SC_EXTREMITYFIST2] ) sp = 0; //#endif skill.cpp, status.hpp, status.cpp: basically you want find every occurrence of SC_EXTREMITY_FIST2 and remove the renewal condition check from it. There should be 7 occurrences inside skill.cpp, and 1 in status.hpp & status.cpp Recompile and start your server and the skill's 5s SP debuff will be active just like in renewal.
  16. Sorry for the delay, here's the correct code: - script maintown -1,{ OnInit: bindatcmd "maintown",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: if(gettimetick(2) < cooldowntime) { dispbottom "Please wait "+(cooldowntime - gettimetick(2))+" seconds."; end; } atcommand "@warp prontera 158 144"; set cooldowntime, gettimetick(2) + 5; end; }
  17. There is a typo in this code change gettimetic(2) to gettimetick(2) .
  18. Untested - script maintown -1,{ OnInit: bindatcmd "maintown",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: if(gettimetic(2) < cooldowntime) { dispbottom "Please wait "+(cooldowntime - gettimetic(2)) / 1000+" seconds."; end; } atcommand "@warp alexandria 158 144"; set cooldowntime, 5000; end; }
  19. To make them work like a normal warp, use the OnTouch label. You want to place this right above your warp command like this: OnTouch: warp "sch_gld",97,196; end; You must also specify the range of your NPC's no touch event on its first line: Warp NPCs usually have a 2x2 range. sch_gld,89,205,0 script Left Portal 723,2,2{ // 2x2 range sch_gld,89,205,0 script Left Portal 723,4,4{ // 4x4 range sch_gld,89,205,0 script Left Portal 723,6,6{ // 6x6 range
  20. Add the option to set a threshold for announcement inside onInit, and then check for it whenever someone wins a reward: OnInit: setarray .p1, 32131,100, 19827,1,1, 5335,1,1, 32041,1,28, 32091,1,28, 32092,1,28, 32093,1,28, 32040,1,28, 7517,1,70; // Gold Coin announce_threshold = 5; // <<<<<<<<<<<<<<< ADD THIS LINE Inside your code: mes "You got ^FF00CC"+ getd( ".p"+ .@s +"["+( 1+3*.@r -1 )+"]" ) +" "+ getitemname( getd( ".p"+ .@s +"["+ (1+ 3*.@r -2) +"]" ) ) +"^000000"; if(getd( ".p"+ .@s +"["+ (1+ 3*.@r) +"]" ) <= .announce_threshold) announce "Player "+strcharinfo(0)+" Has won "+getd( ".p"+ .@s +"["+( 1+3*.@r -1 )+"]" ) +" "+ getitemname( getd( ".p"+ .@s +"["+ (1+ 3*.@r -2) +"]" ) )+" From the Gacha!";
  21. Hello everyone. It's been a crazy past month for me, and I wasn't able to update this thread. However, The development of this project is almost complete ~ Updates Mostly I've been working on bugfixes and code optimization, so there's not many new features more than the ones listed above. This project has been renamed to Ragnabot (Creative, i know), I've also refactored most of the codebase. I've also set up an API to format or generate data (I.E, Trivia questions/answers) and send it back to the discord bot client. Also you can now set aliases(shortcuts) for commands. so !monster !mob !mi !mobinfo all work as the same command. Logs Configuration Language and Localization Auction Item/Monster Lookup Whosell Command TODO Release You can expect a release hopefully very soon. You will be able to Buy Ragnabot as a one-time purchase, or as a monthly subscription. I'm also planning on adding a free trial and paritally release some of the features for free Thank you for your support on this thread and DMs. Have a good day
  22. Hi everyone Now I used to play PvP all the time in classic and early renewal. But unforutnately PvP in RO is extremely unbalanced not really that great, especially in Renewal. So I came up with the idea to take a different approach to PvP, and today I'll share with you three PvP modes that I created. Some of these modes require source modification, but alot of the mechanics can be achieved with scripts only, I hope you enjoy ; ) PvP Mode: Abracadabra PvP Mode: Rapidfire PvP Mode: Biohazard What do you guys think of this approach to pvp? is there a pvp mode you'd like to see in RO? please reply with your thoughts, Cheers.
  23. View File WoE rewards depending on time spent in castle This script rewards players for each minute spent on WoE castle. Features: Can reward players for every minute they spend inside a WoE castle Can reward players for every kill in WoE castle, and will also display the name of the killed/killer. Excludes AFK players and players who are not in a guild. Announces kills with different colors depending on the killer's castle Can set a modifier for certain classes to gain more points than others Settings: setarray .maps$ ,"schg_cas03", "prtg_cas01"; //maps where the system is active .points_per_minute = 1; //number of points earned for each minute you spend in the castle for (.@i = 0 ; .@i < getarraysize(.maps$) ; .@i++) if (!getmapflag(.maps$[.@i],mf_loadevent)) setmapflag .maps$[.@i],mf_loadevent; .s_idle_time = 180; // time before player is considered idle (in seconds) .rewardId = 909; // ID of the reward item .announce = 0; // Announce kills (0 = no announcement, 1 = map announcement, 2 = global announcement) .color_defenders$ = "0xffff00"; // Announcement color when a defending player kills an attacking player .color_attackers$ = "0x99ccff"; // Announcement color when an attacking player kills a member of the castle's owner .kill_reward = 1; // Amount of points earned for every kill, set to 0 to disable it setarray .class_modifier[0],4063,3,4076,2; // Modifier for certain classes [Id, Modifier, Id, Modifier....] This script is a part of a larger rewards script that includes a WoE ranking, emperium breaking rewards, and rewards depending on the damage dealt during WoE. I might release the entire script in the future. Submitter Mastagoon Submitted 02/18/2021 Category PvP, GvG, WoE, Battleground Video Content Author Mastagoon  
×
×
  • Create New...