-
Posts
446 -
Joined
-
Last visited
-
Days Won
34
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Mabuhay
-
-
10 minutes ago, IsabelaFernandez said:
hello everyone, does anyone know how to fix it? apparently the problem is on line 51. If possible I would like this script to have an NPC with the same functions as well.
https://rathena.org/board/topic/121407-utility-giveitem-command/
- 1
-
I dont think so. Its only gonna clone your character like a mob.
-
Added as of 18-01-2020:
- Euphy Woe Controller
- Emperium Breaker Ladder + Points + Shop
- @market clone update
-
@market clone update patch
This is my updated @market clone as per this topic:
Im currently using a sever file from December 2019. But I dont think it would not work on latest server files.
Enjoy
-
Submitter
-
Submitted01/18/2020
-
Category
-
Video
-
Content AuthorAnnieRuru, Dastgir, Napster, Mabuhay
- 1
- 1
- 1
- 1
-
-
Euphy's WoE Controller + Gepard Check + Minor fix
As the title says.
- I added some fix on checkweight part where it will throw some error when item mailing is disabled. ( I literally have uploaded the wrong file for months and only been known recently)
- Added gepard id check support.
-
Submitter
-
Submitted01/15/2020
-
Category
-
Video
-
Content AuthorEuphy, Mabuhay
- 1
-
2 hours ago, gabrielks said:
Hello guys, I have a problem with this security script. It works all normal, but after the second login, it simply freezes and no longer appears the place to enter the password. Could someone help please?
Thanks
Search.
-
36 minutes ago, Schmerz said:
Hi
is there a guide how to apply this patch in cPanel? i would like to use this to my currently running server but i dont know how to install it correctly.
Hope somebody can help
- 1
-
--------------------------------------- *disablenpc "<NPC object name>"; *enablenpc "<NPC object name>"; These two commands will disable and enable, respectively, an NPC object specified by name. The disabled NPC will disappear from sight and will no longer be triggerable in the normal way. It is not clear whether it will still be accessible through 'donpcevent' and other triggering commands, but it probably will be. You can disable even warp NPCs if you know their object names, which is an easy way to make a map only accessible through walking half the time. Then you 'enablenpc' them back. You can also use these commands to create the illusion of an NPC switching between several locations, which is often better than actually moving the NPC - create one NPC object with a visible and a hidden part to their name, make a few copies, and then disable all except one. ---------------------------------------
doc/script_commands.txt
- 1
-
1 hour ago, kasim03 said:
.@listItems
Change to .listitems
-
5 hours ago, kasim03 said:
Hi Guy, i already create this script, but this script have bug and i need help to fix it...
prontera,149,189,4 script Event NPC 859,{ if (countitem(501) > 0) goto callfunc ("E_Warp1"); if (countitem(502) > 0) goto callfunc ("E_Warp2"); else mes "you dont have item A to use Event NPC"; end; } function script E_Warp1 { if (countitem(501) > 0) goto warp ("prontera",151,185); end; } function script E_Warp2 { if (countitem(502) > 0) goto warp ("prontera",151,185); end; }
i want make script can send you to different warp with different items, this script work but have bug.. i already use other script but have error... if you guy have script more simpler then this i like to try it...
Untested but should work..
// How to use F_Warp? // F_Warp(<item_id>,<item_amount>,"<mapname>"{,<x>{,<y>}}); prontera,150,180,0 script Toll Warp 123,{ function F_Warp; mes "Where would you like to warp?"; next; switch(select( "Prontera", // Case 1 "Geffen", // Case 2 "Payon" // Case 3 -- no "," since this is the last in the lst.. )) { case 1: // Prontera F_Warp(501,5,"prontera",150,160); break; case 2: // Geffen F_Warp(502,3,"geffen",50,100); break; case 3: // Payon F_Warp(503,1,"payon",145,170); break; } end; function F_Warp { .@item = getarg(0); .@amount = getarg(1); .@map$ = getarg(2,""); .@x = getarg(3,0); .@y = getarg(4,0); if ( countitem(.@item) < .@amount ) { mes "You dont have enough "+getitemname(.@item)+" to warp in this map."; close; } delitem .@item, .@amount; warp .@map$, .@x, .@y; return; } }
Read how F_Warp works..
You should know the basic on how to add menu..
If you are still confused, refer to script_commands.txt
- 1
-
Here is my solution.
All thanks to @Litro Endemic for the idea..
goto pc.cpp
look for
/*========================================== * Invoked once after the char/account/account2 registry variables are received. [Skotlex] * We didn't receive item information at this point so DO NOT attempt to do item operations here. * See intif_parse_StorageReceived() for item operations [lighta] *------------------------------------------*/ void pc_reg_received(struct map_session_data *sd)
Add this :
// Cash shop sd->cashPoints = pc_readaccountreg(sd, add_str(CASHPOINT_VAR)); sd->kafraPoints = pc_readaccountreg(sd, add_str(KAFRAPOINT_VAR)); + if ( pc_readaccountreg(sd, add_str("#BLOCKPASS")) ) + sd->state.protection_acc = 1; + else + sd->state.protection_acc = 0;
Dont include +
compile and done.
- 3
- 1
-
Pwede mo ata igoogle ung error code. Parang makikita mo lang yan. May kulang ata sa registry key mo.
-
Check mo sa Hercules na post about offline server ni Anaconda.. Baka andun ung solution jan.
-
9 hours ago, gidzdlcrz said:
@Mabuhay & @Litro Endemic
So i have tried this
SR_CRESCENTELBOW,1,7,-100 // In PVP and GVG, players deal -100% damage to other players with Crescent Elbow.
I have somehow cloned the example for Asura Strike. But i still get damage from it. I put 7 to have it in all maps. I tried 6 as well but no to avail. And oh this txt file comes from db/import.
*EDIT
I have tried other skills such as ASURA STRIKE. It works! But CRESCENT ELBOW is not DAMAGE SKILL i think? Its a reflect thingy so editing the skill_damage_db.txt is useless for it. Correct me if im wrong. Thanks!
I really dont this part. Hehe! Im sorry!You can just tag me once. No need to tag me everytime. I also have something called "personal life" so I couldn't attend to every queries in a flash.
Anyhow... This part of the script already tells you how it calculates stuff..
//ATK [{(Target HP / 100) x Skill Level} x Caster Base Level / 125] % + [Received damage x {1 + (Skill Level x 0.2)}] int64 rdamage = 0; int ratio = (int64)(status_get_hp(src) / 100) * tsc->data[SC_CRESCENTELBOW]->val1 * status_get_lv(target) / 125; if (ratio > 5000) ratio = 5000; // Maximum of 5000% ATK rdamage = battle_calc_base_damage(target,tstatus,&tstatus->rhw,tsc,sstatus->size,0); rdamage = (int64)rdamage * ratio / 100 + wd->damage * (10 + tsc->data[SC_CRESCENTELBOW]->val1 * 20 / 10) / 10;
to break it down for you..
//ATK [{(Target HP / 100) x Skill Level} x Caster Base Level / 125] % + [Received damage x {1 + (Skill Level x 0.2)}] int64 rdamage = 0; // [{(Target HP / 100) x Skill Level} x Caster Base Level / 125] int ratio = (int64)(status_get_hp(src) / 100) * tsc->data[SC_CRESCENTELBOW]->val1 * status_get_lv(target) / 125; if (ratio > 5000) ratio = 5000; // Maximum of 5000% ATK -- this is just a damage limit cap.. // [Received damage x {1 + (Skill Level x 0.2)}] -- the rest of the calculation rdamage = battle_calc_base_damage(target,tstatus,&tstatus->rhw,tsc,sstatus->size,0); rdamage = (int64)rdamage * ratio / 100 + wd->damage * (10 + tsc->data[SC_CRESCENTELBOW]->val1 * 20 / 10) / 10;
You will only need basic arithmetic to adjust the damage carefully.. try to adjust one part at a time to avoid confusion..
Goodluck!
- 1
-
Hsve you tried editing db/skill_damage.txt yet?
- 2
-
Change 0 to BL_PC then change 1 to BL_NPC from getmapxy codes
- 1
- 1
-
28 minutes ago, hardelite said:
Hey, community friends, how are you ?!
Please could someone help me fix this script?
His problem is as follows:
The first time the event starts, everything happens normally, ok!
But the next time the event occurs (2nd time), the player simply receives the direct prize, and no bombring is summoned.
The event ends before it starts and everyone gets the prize.
Script:
// Original script by Unknown // Edit by Mabuhay // Removed my timer cool downs and stuff. // Adjust to your time you wish for it to start. - script Event_Bombring -1,{ OnInit: // item reward setarray .item, 501, 10, 502, 5; // @bombstart - gm manual start bindatcmd "bombstart", strnpcinfo(0)+"::OnStart",60,60; // @bomb - player join event bindatcmd "bomb", strnpcinfo(0)+"::OnJoinEvent"; // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn, mf_nocommand; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_02", .@mapflag[.@i]; end; OnJoinEvent: mes " [ Event Status ] "; switch ( .start ) { case 1: .@status$ = "active"; break; case 2: .@status$ = "on-going"; break; default: .@status$ = "not active"; break; } mes "Event is currently ^ff0000"+ .@status$ +"^000000"; next; switch(select( "Bombring Event - "+ ((.start == 1) ? "^0000ffJoin Event":((.start == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000" )) { case 1: if ( !.start ) { mes "Event is not available."; close; } else if ( .start == 2 ) { mes "Event is on-going"; close; } sc_end SC_ALL; sc_start SC_DECREASEAGI,600000,10; percentheal 100,100; warp "quiz_02",59,345; } end; OnStart: // Add your clock timers here. OnClock0000: // 12 MN OnClock0300: // 3 AM OnClock0600: // 6 AM OnClock1700: // 5 PM if ( .start ) end; .start = 1; killmonsterall "quiz_02"; announce "Bombring: We are going to have a Bombring event.",0; sleep 10000; announce "Bombring: For those who wants to join, use @bomb",0; sleep 10000; announce "Bombring: After 1 Minute Event will close.",0; sleep 10000; announce "Bombring: So please if you want to join. use @bomb",0; sleep 60000; announce "Bombring: The entry to the event is now closed.",bc_all,0x0ceedb; if ( getmapusers("quiz_02") < 1 ) { announce "Bombring: Not enough participants.",bc_all,0x0ceedb; .start = false; mapwarp "quiz_02", "prontera", 150, 180; // warp out. end; } .start = 2; sleep 3500; mapannounce "quiz_02","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","The rules are simple.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","Event will run for 30 seconds for 5 total rounds.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","All you have to do is avoid Bombrings and stay alive for 30 seconds.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; while ( .round < 5 ) { .@count = getmapusers("quiz_02"); .round++; mapannounce "quiz_02","Round "+.round,bc_map,0x0ceedb; areamonster "quiz_02",48,334,71,357,"Run for you life!",1904, 5 * .@count * .round; sleep 10000 - ( 1000*.round ); } .@count = getmapusers("quiz_02"); if ( !.@count ) announce "Bombring: No one survived the bombrings.",bc_all,0x0ceedb; else if ( .@count ) { .@size = getmapunits(BL_PC,"quiz_02",.@aid); .@amt = getarraysize(.item); if ( .@size > 1 ) announce "A lot players has won the Bombring Event.",bc_all,0x0ceedb; for ( .@i = 0; .@i < getarraysize(.@aid); .@i++) { attachrid .@aid[.@i]; if ( .@size == 1 ) announce strcharinfo(0)+" has won the Bombring Event.",bc_all,0x0ceedb; for ( .@j = 0; .@j < .@amt; .@j += 2 ) getitem .item[.@j], .item[.@j+1]; } detachrid; } .start = false; sleep 5000; mapwarp "quiz_02","prontera",rand(148,163),rand(167,186); end; OnPCDieEvent: if ( .start && strcharinfo(3) == "quiz_02" ) warp "prontera",rand(148,163),rand(167,186); end; }
Best regards, thank you very much!
I already have fixed this on latest version of event manager. To fix, find for.. .start = false;
Then replace to
.start = .round = false;
- 1
-
Check your sql queries. It seems like you have 4 sql tables. pvp and pvp1 then gvg and gvg1.
-
3 hours ago, Chaoszinho said:
Hey @Mabuhay you do a awesome job here
if u can do it
you can set the option to select the reward in game
and cancel a current event option ?
i appreciate that.
You can use my Reward Function for each Events and try to be creative.
All my Free release are intended for you guys to modify and get creative. You may freely modify this in any way you see fit. I am not interested in upgrading/changing its mechanics. But if you have some old or cool events, I will check and see if I want to add it here.
- 1
-
1 hour ago, Strand said:
*getcastledata("<map name>",<type of data>)
you have a third arguement.
-
5 minutes ago, Surefirer said:
Thank you for your help. I tried, it works. I have a question, when should I use
@set $illusion_mvp 1
Do I have to use everytime I restart sever, or do it's a onetime thing. Sorry, I am new to script, still learning.
and since you set $illusion_mvp 1, I am assuming that 1 means clean the kill number set to 0, but why in the script right after the MVP summoned, then follow by "$illusion_mvp = 0", what's that "0" mean? Are "@set $illusion_mvp 1" and "$illusion_mvp=0" does the same job?
Read and learn from scripting bible doc/script_commands.txt
Learn basic Variable. it is straightforward and no need big brain to understand.
PS: it should have been :
@set $illusion_mvp 0
to set its value to 0, just a bit of typo on my side.
-
2 hours ago, Surefirer said:
Hello,
I downloaded illusion moonlight script, for the MVP summon part, for some reason, the MVP does not summon after 800 kill, I set to 5 for test, but it does not summon after 5 kill, can anyone take a look script, and fix it? Thanks in advance.
- script illusion_mob#moonlight -1,{
OnInit:
monster "pay_d03_i",0,0,"Angry Nine Tail",3759,10,strnpcinfo(0)+"::OnSummonMVP";
end;
OnSummonMVP:
monster "pay_d03_i",0,0,"Angry Nine Tail",3759,1,strnpcinfo(0)+"::OnSummonMVP";
$illusion_mvp += 1;
if($illusion_mvp == 2){ //= jRO Summons the MVP after 800 kills or so
mapannounce "pay_d03_i","Angry Moonlight Flower : Who dares bully us again? They're in a lot of trouble.",bc_map;
monster "pay_d03_i",0,0,"Angry Moonlight Flower",3758,1;
$illusion_mvp = 0;
}
end;apparently, it is using a permanent global variable. Try set it to zero first.
@set $illusion_mvp 1
or change all :
`$illusion_mvp` to `$@illusion_mvp` << this method is uncertain because I dunno how the whole script works.
or simply change
if($illusion_mvp == 2){ //= jRO Summons the MVP after 800 kills or so
to
if($illusion_mvp >= 2){ //= jRO Summons the MVP after 800 kills or so
Any of these methods should work.
-
same guide lang sa rathena wiki. Walang nag bago
-
Just now, tiagofm94 said:
Friend reading the script I didn't find any rand (0.x).
X=number. Im on mobile so i cannot copy and paste the exact parts to be changed
Utility: Emperium Breaker Ladder + Points + Shop
in Utility Script Releases
Posted
View File
Emperium Breaker Ladder + Points + Shop
The title says it all..
This would record a player's emp break count
GM can easily reset the table
This method is more optimized because the data is properly indexed on a table.
Added emp breaker point shop - Account bounded..
Enjoy!
Installation instructions :