mrlongshen
Members-
Content Count
1126 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by mrlongshen
-
Use the grf editor or securegrf
-
@@samsudin script ? this is plugin. Why you take @@Dastgir plugin in your github ?
-
I think this is sprite problem.
-
@@Litro my player are like farming gold on there .hahahahaha
-
Thanks to @@jezznarRox for your editing on this post Its work perfectly. Im using it now. Thanks for optimize it. Thanks to @@Litro also, your editing work ! @@Emistry no. its not working. im using the latest hercules.
-
@@jezznarRox done, but still mo monster spawn
-
@@AnnieRuru welcome back boss ! hehe @@Litro thanks for the reply. I will test later
-
@@Tranquility Hehe. Can send me the .act ? I want to see the behavior
-
@@Litro Thanks alot !! that so cool. Haha !
-
Hei bro. I think that item is not a headgear ? I think its a scroll ? means misc item ? Am I'm wrong ?
-
Hi all. May I know why the monster not spawn ? I also have some warning which is: [Warning]: script_get_val: cannot access player variable 'mf_nogo', defaulting to 0 How to fix ? prontera,164,172,5 script Farm Zone 4_F_JPN2,{function RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){case 1: mes "This is a Farm Zone."; mes "You are able to Hunt Monster inside this Room."; mes "Every Monster will award you random items."; next; mes "But there is some Condition.."; mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000"; mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000"; mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000"; next; mes "There will be a ^FF0000Room Cleaning^000000 from time to time..."; mes "All players will be kicked out, it is your bad luck if you meet this."; mes "Delay will still apply even though you just go in for 1 Seconds.."; next; break;case 2: if( #HuntRoomDelay > gettimetick(2) ){ set .last,#HuntRoomDelay - gettimetick(2); set .@min, .last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; }else if( getarraysize( .Hunter ) >= .MaxPlayers ){ mes "Currently the Room is Full. Please try again later."; close; }else{ warp .Map$,0,0; set .Hunter[getarraysize( .Hunter )],strcharinfo(0); set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 ); set #FarmHunt,0; end; } }}OnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,2;// Adding X Minutes of Delay before can go in again.set .DelayMin,1;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,10;// Map that will be used in thos Zone.set .Map$,"guild_vs5";// Clear Map Every X Minutes.set .RoomCleanMin,15;// Mapflag Initialization//setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;while( 1 ){ killmonster .Map$,"All"; mapwarp .Map$,"prontera",155,181; monster .Map$,0,0,"[ Farm Zone ] Resident",-1,80,strnpcinfo(0)+"::OnNormalKill"; monster .Map$,0,0,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill"; deletearray .Hunter,getarraysize( .Hunter ); announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue; sleep ( .RoomCleanMin * 60000 ); mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0; killmonster .Map$,"All"; sleep 3000; }end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction RandomizeItem {set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){ getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1; }deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){ message strcharinfo(0),"Limit Reach , you may join again later."; sleep2 2000; warp "prontera",155,181; }return;} }
-
@@Litro Thanks it working. But I have to make the item success become 100% If the player not get the item, the mining will stop. I have test, and the miner wont stop until the item brought finish hahaha !! I need to relog. keh keh keh By the way, can you help me in making a simple script for example Player A wear the flu mask, then the item will reduce the progress bar time?
-
Hi all. I have this script. But this script seem bug. It not reset the party when no one left in the room or after player dead. Please help me. //===== rAthena Script =======================================//= MVP Ladder Game//===== By: ==================================================//= aftermath, AnnieRuru (rewrite)//===== Current Version: =====================================//= 1.0//===== Compatible With: =====================================//= rAthena Project//===== Description: =========================================//= Gather a party and kill every MVP in ascending order.//===== Additional Comments: =================================//= 1.0 First version, edited. [Euphy]//============================================================prontera,164,171,3 script MvP Ladder Warper 1_M_KNIGHTMASTER,{// if ((agitcheck() == 1) || (agitcheck2() == 1)){ // mes .npc$; // mes "I'm sorry, during ^0000FFWar of Emperium^000000, You are not Allowed to use my services."; // close; // } mes "[MvP Ladder Warper]"; mes "Say... do you want to play the MvP Ladder game?"; next; switch(select("Yes, let's get it on!:Information.:Show me the best record.:No.")) { case 1: break; case 2: mes "[MvP Ladder Warper]"; mes "In this game, your party has to kill every single MvP monster in ascending order, from the weakest to strongest."; if ( .finish_item_amount ) mes "If your party can finish the MVP ladder game, each member will earn "+ callfunc("F_InsertPlural", .finish_item_amount, getitemname( .finish_item_id )) +"."; if ( .register_cost ) mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny."; next; mes "[MvP Ladder Warper]"; mes "You lose the game if you can't finish in "+ .timeout +" minutes, or if your entire party is killed."; mes "Good luck!"; close; case 3: mes "[MvP Ladder Warper]"; if ( !$mvpladdderparty_time ) { mes "Nobody has finished this game yet."; close; } mes "The best record is"; mes "[ "+( $mvpladdderparty_time / 60 )+" min "+( $mvpladdderparty_time % 60 )+" sec ]"; mes "By the party ^FF0000"+ $mvpladdderparty_name$ +"^000000."; .@size = getarraysize( $mvpladderparty_member$ ); for ( .@i = 0; .@i < .@size; .@i++ ) mes "^000000"+ ( .@i +1 ) +". ^0000FF"+ $mvpladderparty_member$[.@i]; if ( getgmlevel() < .gmlvlreset ) close; next; if ( select( "Close.", "Reset the record." ) == 1 ) close; if ( select( "Never mind.", "I really want to reset it." ) == 1 ) close; $mvpladdderparty_time = 0; $mvpladdderparty_name$ = ""; deletearray $mvpladderparty_member$[.@i]; mes "[MvP Ladder Warper]"; mes "Record reset successfully."; close; case 4: mes "[MvP Ladder Warper]"; mes "When you are strong enough to complete the game, please come back."; close; } if ( !getcharid(1) ) { mes "[MvP Ladder Warper]"; mes "You have to form a party to play."; close; } if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) { mes "[MvP Ladder Warper]"; mes "Only the party leader can register."; close; } .@origin = getcharid(3); getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == strnpcinfo(4) ) .@online++; } } attachrid .@origin; if ( $@partymembercount != .register_min ) { mes "[MvP Ladder Warper]"; mes "You have to form a party with exactly "+ .register_min +" members to play."; close; } else if ( .@online != .register_min ) { mes "[MvP Ladder Warper]"; mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'."; close; } else if ( .register_cost && Zeny < .register_cost ) { mes "[MvP Ladder Warper]"; mes "You don't have enough zeny. Please come back when you do."; close; } else if ( .party_id ) { mes "[MvP Ladder Warper]"; mes "I'm sorry, but a party is currently playing the game. Please standby until the party is finished."; mes "Thank you."; close; } Zeny -= .register_cost; announce "The party ["+ strcharinfo(1) +"] has started the MvP ladder game.", bc_all; set .party_id, getcharid(1); set .@time_enter, gettimetick(2); for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == strnpcinfo(4) ) { announce "You have "+ .timeout +" minutes to complete "+ .totalround +" rounds.", bc_self; .@name$[.@c] = strcharinfo(0); .@c++; } } } cleanmap .eventmap$; warpparty .eventmap$, 0,0, .party_id, strnpcinfo(4); donpcevent strnpcinfo(0)+"::OnMvpDead"; sleep .timeout * 60000; if ( .round == .totalround +1 ) { getpartymember .party_id, 1; getpartymember .party_id, 2; mapannounce .eventmap$, "Congratulations... You were able to defeat all the MVPs!", bc_map; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .finish_item_id, .finish_item_amount; } } set .@timeused, gettimetick(2) - .@time_enter; if ( .bonus_item_amount && .@timeused < .bonus_time * 60 ) { mapannounce .eventmap$, "You are rewarded a bonus item for completing the ladder within "+ .bonus_time +" minutes.", bc_map; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .bonus_item_id, .bonus_item_amount; } } } if ( !$mvpladdderparty_time || .@timeused < $mvpladdderparty_time ) { mapannounce .eventmap$, "And you broke the record! [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map; set $mvpladdderparty_time, .@timeused; set $mvpladdderparty_name$, getpartyname( .party_id ); copyarray $mvpladderparty_member$, .@name$, .register_min; } else mapannounce .eventmap$, "Time used [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map; sleep 10000; announce "The party ["+ getpartyname( .party_id ) +"] has finished the MvP ladder game!", bc_all; } else announce "The party ["+ getpartyname( .party_id ) +"] has failed to finish the MvP ladder game.", bc_all; mapwarp .eventmap$, .map$, .x, .y; killmonsterall .eventmap$; .party_id = .round = 0; end;OnMvpDead: .round++; if ( .round >= 2 && .round != .totalround +1 && .round_item_amount ) { for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .round_item_id, .round_item_amount; } } } if ( .round == .totalround +1 ) { awake strnpcinfo(0); end; } else if ( .round == .totalround ) mapannounce .eventmap$, "The final Round will begin in "+ .delay +" seconds...", bc_map; else mapannounce .eventmap$, "Starting round "+ .round +" in "+ .delay +" seconds...", bc_map; sleep .delay * 1000; if ( .mvpid[.round] == 1646 ) // pick random Bio3 MVP .mvpid[.round] = rand(1646,1651); monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead"; mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue; end;OnPCLogoutEvent: if ( Hp > 0 ) .@less_one = 1; else end;OnPCDieEvent: if ( strcharinfo(3) != .eventmap$ || !getcharid(1) ) end; if ( getcharid(1) != .party_id ) end; getpartymember .party_id, 1; getpartymember .party_id, 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ && Hp > 0 ) .@alive++; } } if ( .@less_one ) .@alive--; if ( !.@alive ) { mapannounce .eventmap$, "Party wiped!", bc_map; sleep 10000; awake strnpcinfo(0); } end;OnInit:// Configurations ----------------------------------------------------- // Time limit (in minutes) // When time runs out, all players inside the room will be kicked out. // Do NOT set this to zero! set .timeout, 40; // entrance fee (in Zeny) set .register_cost, 10000000; // exact amount of party members needed to start the game set .register_min, 1; // id of each mvp. you can add more setarray .mvpid[1], 1086,// Golden Thief Bug 64 1115,// Eddga 65 1150,// Moonlight Flower 67 1159,// Phreeoni 69 1112,// Drake 70 1583,// Tao Gunka 70 1492,// Incantation Samurai 71 1046,// Doppelgangger 72 1252,// Garm 73 1418,// Evil Snake Lord 73 1059,// Mistress 74 1190,// Orc Lord 74 1087,// Orc Hero 77 1251,// Knight of Windstorm 77 1038,// Osiris 78 1658,// Ygnizem 79 1272,// Dark Lord 80 1871,// Fallen Bishop 80 1039,// Baphomet 81 1147,// Maya 81 1785,// Atroce 82 1389,// Dracula 85 1630,// Bacsojin 85 1885,// Gorynych 85 1623,// RSX 0806 86 1511,// Amon Ra 88 1688,// Lady Tanee 89 1768,// Gloom Under Night 89 1719,// Datale 90 1734,// Kiel D-01 90 1157,// Pharaoh 93 1373,// Lord of Death 94 1312,// Turtle General 97 1779,// Ktullanux 98 1874,// Beelzebub 98 1646,// Bio3 placeholder 99 1708,// Thanatos 99 1751,// Valkyrie Randgris 99 1832;// Ifrit 99 // number of rounds (default: 39) set .totalround, getarraysize(.mvpid) -1; // item reward for completing each round set .round_item_id, 30002; set .round_item_amount, 1; // item reward for completing the entire ladder set .finish_item_id, 30001; set .finish_item_amount, 5; // bonus reward if ladder completed within a certain time (in minutes) set .bonus_time, 30; // if completed within 45 minutes, this reward is given set .bonus_item_id, 30002; set .bonus_item_amount, 30; // time delay between rounds, in seconds (default: 3) set .delay, 10; // minimum GM level to reset the best record set .gmlvlreset, 99; // event map set .eventmap$, "guild_vs2-2"; // mapflag configuration setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_nosave, mf_nomemo, mf_noteleport, mf_nopenalty, // disable exp loss mf_noreturn,// mf_nobranch,// mf_nomobloot, // disable monster drop loots,// mf_nomvploot, // 2 of these mf_partylock;// Config Ends -------------------------------------------------------------- mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map; getmapxy .map$, .x, .y, 1; mapwarp .eventmap$, .map$, .x, .y; killmonsterall .eventmap$; .@size = getarraysize( .@mapflag ); for ( .@i = 0; .@i < .@size; .@i++ ) setmapflag .eventmap$, .@mapflag[.@i];waitingroom " Ladder Game",0; end;}function script F_GetPlural { set .@str$, getarg(0); if (countstr(.@str$," ")) { // multiple words explode(.@tmp$,.@str$," "); set .@size, getarraysize(.@tmp$); // if format is "... of|in|on ...", pluralize preceding word; else pluralize last word if (compare(.@str$," of ") || compare(.@str$," in ") || compare(.@str$," on ")) { for (set .@i,1; .@i<.@size; set .@i,.@i+1) { if (getstrlen(.@tmp$[.@i]) == 2 && compare("of|in|on",.@tmp$[.@i])) break; set .@index, .@index + 1; } } else set .@index, .@size - 1; set .@str$, .@tmp$[.@index]; set .@tmp$[.@index],"%s"; set .@format$, implode(.@tmp$," "); } else set .@format$, "%s"; set .@strlen, getstrlen(.@str$); if (.@strlen < 3) // prevent errors return ((getarg(1,0)) ? strtoupper(sprintf(.@format$,.@str$)) : sprintf(.@format$,.@str$)); setarray .@suffix$[0], charat(.@str$,.@strlen - 1), substr(.@str$,.@strlen - 2,.@strlen - 1); if (!compare("abcdefghijklmnopqrstuvwxyz",.@suffix$[0])) { // last character is not a letter set .@result$, .@str$; } // common exceptions --> singular form == plural form else if (compare("fish|glasses|sunglasses|clothes|boots|shoes|greaves|sandals|wings|ears",.@str$)) { set .@result$, .@str$; } // ends in -s, -x, -z, -ch, -sh --> add -es else if (.@suffix$[0] == "s" || .@suffix$[0] == "x" || .@suffix$[0] == "z" || .@suffix$[1] == "ch" || .@suffix$[1] == "sh") { set .@result$, .@str$ + "es"; } // ends in -f, -fe --> remove -f, -fe --> add -ves else if ((.@suffix$[0] == "f" || .@suffix$[1] == "fe") && .@suffix$[1] != "ff") { if (compare("belief|cliff|chief|dwarf|grief|gulf|proof|roof",.@str$)) set .@result$, .@str$ + "s"; // exceptions --> add -s else set .@result$, substr(.@str$,0,.@strlen - 2 - (.@suffix$[1] == "fe")) + "ves"; } // ends in consonant + -y --> remove -y --> add -ies else if (.@suffix$[0] == "y" && !compare("aeiou",charat(.@suffix$[1],0))) { set .@result$, delchar(.@str$,.@strlen - 1) + "ies"; } // ends in -o --> exceptions --> add -es else if (.@suffix$[0] == "o" && compare("buffalo|domino|echo|grotto|halo|hero|mango|mosquito|potato|tomato|tornado|torpedo|veto|volcano",.@str$)) { set .@result$, .@str$ + "es"; } // default --> add -s else { set .@result$, .@str$ + "s"; } return ((getarg(1,0)) ? strtoupper(sprintf(.@format$,.@result$)) : sprintf(.@format$,.@result$));}function script F_InsertPlural { return sprintf(getarg(3,"%d %s"), getarg(0), ((getarg(0) == 1) ? getarg(1) : callfunc("F_GetPlural",getarg(1),getarg(2,0))));}function script F_InsertComma { set .@str$, getarg(0); for (set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3) set .@str$, insertchar(.@str$,",",.@i); return .@str$;}
-
-removed-
-
@Dastgir I have update to latest version why this problem appear ? ExtendedVending.c:19:29: error: common/hercules.h: No such file or directoryExtendedVending.c: In function ‘clif_parse_OpenVending_pre’:ExtendedVending.c:253: warning: passing argument 2 of ‘map->getcell’ makes integer from pointer without a castExtendedVending.c:253: note: expected ‘int16’ but argument is of type ‘struct block_list *’ExtendedVending.c:253: error: too many arguments to function ‘map->getcell’make[1]: *** [../../plugins/ExtendedVending.so] Error 1make[1]: Leaving directory `/home/syokro/Hercules/src/plugins'make: *** [plugins] Error 2
-
bump
-
@@Dastgir How about this revision ?
-
@@Dastgir will check back my revision.
-
@@Dastgir ok noted.
-
Can it be used on old hercules? Extended vending Costume plugin
-
@@Dastgir thAt so cool. Can it be use in all version on hercules?
-
A popup with specific size itemlink
mrlongshen replied to mrlongshen's question in General Server Support
@@nameit no. the size of itemlink web browser -
@@nameit hehe. I believe it will require source modification.
-
@@nameit just make an autotrade hehe