-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by AnnieRuru
-
no mf_droprate is used for setmapflag script command and xantara's version doesn't support that just by reading it, I do think xantara code should be working ... in fact, xantara was ex-core-developer, her source code should be working all the time I thought doing source modifications always need to shut down the server to recompile ? wait, are you telling me that you didn't recompile after adding that source code ?
-
- script auto_kicker -1,{ OnPCLoadMapEvent: if ( ( agitcheck() || agitcheck2() ) && getmapflag( strcharinfo(3), mf_gvg_castle ) ) goto L_kick; end; OnPCLoginEvent: if ( agitcheck() || agitcheck2() ) goto L_kick; end; L_kick: .@nb = query_sql( "select `login`.account_id from `char` right join login on login.account_id = `char`.account_id where `char`.online = 1 and login.last_ip = ( select last_ip from login where account_id = "+ getcharid(3) +" )", .@aid ); if ( .@nb >= 2 ) { for ( .@i = 0; .@i < .@nb; .@i++ ) { attachrid .@aid[.@i]; addtimer 1, strnpcinfo(0)+"::Onkick"; } } end; Onkick: mes "Dual Client is disabled in WoE time"; sleep2 1000; atcommand "@kick "+ strcharinfo(0); end; } change last_ip into last_mac
-
<.< .... I got tricked again ... this is not event script, its kinda more like utility script ... you know, when I used to host an event in a private server, I used @addwarp command to warp the players to the site I never use npc to do that I just tested the script, it looks like having a few bugs due to SVN updates, but nonetheless its still functional if you click on it what do you mean by "4. can put more than one." ?
-
LMAO !! I thought I searched source release section already, but forgot to search into archive section LOL so somebody has made this before ... hmmm .... you can try mine ... http://rathena.org/board/topic/90904-drop-per-map-setter/?p=237571 hmm .. when compare to xantara ...it seems I miss the script granted extra drop... she misses the setmapflag script command ... ok ... let me ripped her source code ... 06guild_01 mapflag droprate 10this should make the drop rate lower by 1/10 means if the jellopy has drop rate of 50%, it becomes 5% also all these stuffs ... whats the value there ? if your value is too high here, your droprate mapflag might possibly set to 1, to be lowest =/ if you want, I can make it even lower EDIT: thx for posting the topic, I'll update this patch now
-
diff --git a/src/map/mob.c b/src/map/mob.c index ad5c387..f0f7b47 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2401,6 +2401,10 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) drop_rate = 1; } #endif + + if ( map[m].adjust.droprate ) + drop_rate = drop_rate * map[m].adjust.droprate / 100; + // attempt to drop the item if (rnd() % 10000 >= drop_rate) continue;in src/map/mob.c filesearch around the line 2401, inside mob_dead function the mob_dead function has a line looks like int mob_dead(struct mob_data *md, struct block_list *src, int type)inside this function, search for if (rnd()%10000 .... add those lines above it with the '+'this patch is quite hard to add manually, I think ?
-
that script was 5 years old already lol looks outdated now, meh lazy to update =/ droprate.patch droprate_20131229.patch tested with prontera,150,180,5 script ksdjfjsdf 100,{ input .@i, 1,1000000000; setmapflag strcharinfo(3), mf_droprate, .@i; end; } prontera mapflag droprate 100either one worksbtw, I follow bexp/jexp prontera mapflag droprate 501/2 drop rate prontera mapflag droprate 200double drop rateto apply patch, use tortoisegit right click on the patch file, select Apply Patch ...
-
Emistry, announce strcharinfo(0)+" entered pvp arena.", bc_all; // <-------- ADD THIS where is the flag ... hmmm ?
-
try rephrase your question ... choose your scenario 1. if I login account A, and dual client account B, both account will be kick 2. if I login account A, and dual client account B, account A will be kick 3. if I login account A, and dual client account B, account B will be kick the above script actually did with scenario 3 so actually you wanted scenario 1 or scenario 2 ? btw, euphy woe controller already has loadevent on all castles https://github.com/rathena/rathena/blob/master/npc/custom/woe_controller.txt#L97 also, can just change last_ip into last_mac ... I don't have harmony, so I usually just do a wild guess
-
Im using Annie KOE Script but need some modifications
AnnieRuru replied to Chaos92's question in Scripting Support
1st reason http://www.eathena.ws/board/index.php?s=&showtopic=147492&view=findpost&p=960352 just put OnInit: above OnRevKoE: should've fix that 2nd reason nobody uses @reloadscript in a live server ... I'm not going to put that -
PS: I'm the author of the script http://rathena.org/board/topic/72376-mvp-summon-script/?p=146696 anyways, what you are requesting is probably going to need source modification ... introducing a new mapflag 06guild_01 mapflag droprate 200increase the item drop rate by 100% increase do you know how to apply patch and recompile ? because sometimes I waste my time created the patch and some members doesn't want to use it, they don't want to recompile <.<
-
prontera,156,185,5 script kjhdfkjshf 100,{ end; OnInit: sleep 1; // ..... for some stupid reason, when logging out needs to sleep <.< query_sql "select count(1) from login left join `char` on `char`.account_id = login.account_id where group_id > 0 and online = 1", .@count; waitingroom .@count +"", 0; end; OnPCLoginEvent: OnPCLogoutEvent: if ( getgmlevel() >= 1 ) { delwaitingroom strnpcinfo(0); goto OnInit; } end; }EDIT:hmm ... wait, you are not using query_sql ... let's see .... ok done prontera,156,185,5 script kjhdfkjshf 100,{ end; OnInit: if ( !getusers(1) ) // preserve through @reloadscript $gm_online_count = 0; waitingroom $gm_online_count +"", 0; // debugmes $gm_online_count +" "+ getusers(1); end; OnPCLoginEvent: if ( getgmlevel() >= 1 ) { $gm_online_count++; delwaitingroom; waitingroom $gm_online_count +"", 0; } end; OnPCLogoutEvent: if ( getgmlevel() >= 1 ) { $gm_online_count--; delwaitingroom; waitingroom $gm_online_count +"", 0; } end; }
-
think I better bump this topic rather than post in other member's topic the answered sql query is quite unoptimized I'll avoid using IN command because it always execute very slow using JOIN statement is much faster than IN here because the account_id column has been indexed http://stackoverflow.com/questions/4771183/sql-fixed-value-in-vs-inner-join-performance http://stackoverflow.com/questions/12172931/mysql-performance-use-in-or-join this query should be faster .@len = query_sql("select account_id from `char` right join login on login.account_id = `char`.account_id where `char`.online = 1 and login.last_ip = '"+ getcharip() +"'" ) http://rathena.org/board/topic/73169-player-checker-npc/?p=150983 <-- just some info about an indexed table
-
- script auto_kicker -1,{ OnPCLoadMapEvent: if ( ( agitcheck() || agitcheck2() ) && getmapflag( strcharinfo(3), mf_gvg_castle ) ) { query_sql "select count(1) from `char` right join login on login.account_id = `char`.account_id where `char`.online = 1 and login.last_ip = '"+ getcharip() +"'", .@count ; if ( .@count >= 2 ) { mes "Dual Client is disabled in WoE time"; close2; atcommand "@kick "+ strcharinfo(0); end; } } end; }
-
you can try something like OnPCUseSkillEvent long time I didn't update that topic, so there might be some changes here and there
-
how about atcommand ? - script kdsfksdjhfksdj -1,{ OnInit: bindatcmd "buffmap", strnpcinfo(0) +"::Onbuff",99,99; end; Onbuff: addrid 1,0; // ripped little bit from Winz script skilleffect 34,0; sc_start SC_BLESSING,600000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,600000,10; skilleffect 33,0; sc_start SC_ANGELUS,600000,10; skilleffect 8238,0; sc_start SC_KYRIE,600000,10; skilleffect 74,0; sc_start SC_MAGNIFICAT,600000,5; skilleffect 75,0; sc_start SC_GLORIA,600000,5; end; }how about item ?.... { doevent "kdsfksdjhfksdj::Onbuff"; },{},{} making new skill needs client side modification .. =/
-
1st ... I can't read all those WFIFOHEAD(fd .. .stuff lol ... I usually ask ai4rei or ultramage to fix them ... long time ago and my source editing isn't very good either, still learning well, you did good to fix this bug the permission is in rathena\db\re\item_trade.txt make sure don't mix up the \re and \pre-re folder lol and yeah, item ID 1173 is one of them ... just blank out that file should make everything trade-able forget about this lol nobody uses a npc script to store items so don't worry about the 1/5 seconds to store items bug ... not going to happen in a live server you can probably mark this as solved, I guess http://rathena.org/board/tracker/issue-8369-warnings-and-mmoh-issue-storage/
-
cell_basilica players still taking damage?
AnnieRuru replied to johnbond's question in Source Requests
cell_basilica is supposed to behave that way 1. nobody can cast spells inside 2. nobody can fight inside if you just want the nobody can fight inside while able to cast spells, its better to create another cell type because if modifying cell_basilica into your way, you might make high priest in your server complains lol http://rathena.org/board/topic/89732-is-possible-pvp-specific-area/?p=237238 I think I just did it the other day -
L_BS: if(countitem(673)<100)goto no_item; mes "Input the amount of desired Silver Coins."; mes "Remember: 100 Bronze Coin = 1 Silver Coin"; mes "I can exchange you a Maxium of: 100 of your desired coin."; mes "I DO NOT DO REFUNDS, input the amount that correctly matches with your affordable desired coins that you want."; input @amount,0,100; if ( @amount * 100 > countitem(673) ) goto input_too_high; delitem 673,1*@amount*100; getitem 675,1*@amount; close; no_item: mes "You don't have enought Coin to get the desired amount of coins that you specified."; close; input_too_high: mes "You can't input higher number than the coins you currently have !"; close; something like this I guess
-
cell_basilica players still taking damage?
AnnieRuru replied to johnbond's question in Source Requests
http://www.eathena.ws/board/index.php?s=&showtopic=211201&view=findpost&p=1157717 http://www.eathena.ws/board/index.php?s=&showtopic=274486&view=findpost&p=1513541 you talk like every problem can be solved by money =/ -
your blog catches my attention, so I like to comment on your 1st script xD 1st thing that comes to mind is that you need to learn proper indent for example, prontera,159,177,4 script Exchange House 935,{ mes "Table of values"; mes "100 Bronze = 1 Silver"; mes "100 Silver = 1 Gold"; mes "100 Gold = 1 Mithril"; mes "100 Mithril = 1 Platinum"; mes "100 Platinum = 1 Proof of Donation"; next; menu "Bronze to Silver",L_BS,"Silver to Gold",L_SG,"Gold to Mithril",L_GM,"Mithril to Platinum",L_MP,"Platinum to Proof of Don.",L_PP,"nothing, thank you anyway",L_ND; next; L_ND: mes "Allright, if you need to get some coins come to me."; close; no_item: mes "You don't have enought Coin to get the desired amount of coins that you specified."; close; L_BS: if(countitem(673)<100)goto no_item; mes "Input the amount of desired Silver Coins."; mes "Remember: 100 Bronze Coin = 1 Silver Coin"; mes "I can exchange you a Maxium of: 100 of your desired coin."; mes "I DO NOT DO REFUNDS, input the amount that correctly matches with your affordable desired coins that you want."; input @amount,0,100; delitem 673,1*@amount*100; getitem 675,1*@amount; close;it may have not much affect in a simple script like this, but when you are trying to write a more advance scriptswithout proper indent the script will look very horrible and harder to read 2nd thing comes to mind, try not to use so many labels I can only rewrite your script to prove ya //===== rAthena Script ======================================= //= Kido's First Scrip Release: Coin to Coin Exchanger //===== By: ================================================== //= 100% Kido //===== YOU CAN NOT ========================================== //= Remove the credits //===== YOU CAN ============================================== //= Improve it //============================================================ prontera,159,177,4 script Exchange House 935,{ mes "choose ..."; setarray .@coin, 673,675,671,674,677,7179; for ( .@i = 0; .@i < 5; .@i++ ) .@menu$ = .@menu$ + getitemname( .@coin[.@i] ) +" -> "+ getitemname( .@coin[.@i +1] ) +":"; next; .@s = select( .@menu$ ) -1; if ( countitem( .@coin[.@s] ) < 100 ) { mes "you don't have enough coin to get .... blah blah"; close; } mes "input the amount of desired "+ getitemname( .@coin[.@s +1] ); if ( input( .@amount, 1, 100 ) ) { mes "invalid range"; close; } else if ( .@amount * 100 > countitem( .@coin[.@s] ) ) { mes "you don't have enough coins for it"; close; } delitem .@coin[.@s], .@amount * 100; getitem .@coin[.@s +1], .@amount; close; }I'm not sure how many months until you are able to understand this kind of advance scripting techniquebut as you can see, I didn't use a single label for it so if you wanna become a great scripter, you should try to script without using *menu or *goto and 3rd, your script has an exploit 1. @item 673 100 ... you get 100 bronze coin 2. asked to change bronze coin to silver coin 3. it ask for input how many you want to change, input 5 bam, error message [Error]: script:delitem: failed to delete 500 items (AID=2000000 item_id=673). [Debug]: Source (NPC): Exchange House at prontera (159,177)you need to do a check for that, which you can check at mine
-
Community Event #1: Fireworks Script Contest
AnnieRuru replied to Xynvaroth's topic in Community News
let me rate ... euphy wins in script cleanliness and script readability emistry wins in simplicity and script optimization goddameit wins in creativity when compare to them both ... however his scripts are unoptimized as always < EDITED > and yes ... this kind of contest is only applicable for those who can write an event script <.< when asked who can write an event script, I can use my ten fingers to count how many persons in rathena can produce one ... -
... another boring quest script request ... that hunting mission script made by Euphy I can easily replicate so you want all the features in that script remain intact, but 1. change baseexp/jobexp/zeny reward into a variable, which can later use to buy stuffs in currency shop ? 2. I don't understand what you mean by using SQL table, what kind of data you want them inside ? 3. The MHM NPC will give random monsters to hunt. (Adjustable/Setable) <-- adjustable by GMs, or adjustable by players ? you mean players can choose the amount of monsters to hunt, so they'll get lesser/bigger reward based on their free time on that day ? 4. There is time limit for this mission. (Adjustable/Setable) <-- in script ? 5. so how many variables you need in this script ? sounds like need 2 ... 1 variable for buying stuffs, another 1 variable for the total accumulated for bonus stats ? and this script isn't hard ... seriously if I omit all the dialog, the script will probably just around 200 lines
-
I kinda remember your name ... in eathena ... so I do some service for ya SC_EXPBOOST 257 SC_ITEMBOOST 258 sc_start sc_expboost .... I'm sure you can figure out the rest
-
I believe this should work in eathena ... the modification is quite simple, if you apply them line by line manually