-
Posts
2044 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by AnnieRuru
-
this section is where we scripters make scripts for youyou have to explain yourself clearly when you make a request you sounds like ... asking other server owner to share their script ... and of course usually they wont do it we make it over from scratch ( or make some edits from scripts found in script release section ) 1. so what are the maps ? which map use for no donate and which map use normal ... 2. txt ladder or sql ladder ?
-
WOE - Last 2 Minutes Countdown Timer (Hot Request)
AnnieRuru replied to buda's question in Script Requests
hmm... showdigit only shown to the attached player it mean your script doesn't work on the player who is already inside the castle ... it only shown to the players who are on last 120 seconds and step in (your script only trigger by OnPCLoadMapEvent ) need some kind of attachrid on all accounts stuffs to make it show on players already in the castle which I really don't recommend it but hey ... this command really gives me a new idea on my battleground scripts EDIT: though I say not recommend but my hand too itchy to try it out XD - script jhfksjf -1,{ OnInit: setarray .map$, "prtg_cas03","prtg_cas01"; .map_size = getarraysize( .map$ ); for ( .@i = 0; .@i < .map_size; .@i++ ) setmapflag .map$[.@i], mf_loadevent; end; OnSat2058: //OnSat1142: .countdown = gettimetick(2) + 60; while ( getusers(1) > .@count ) { .@nb = query_sql("select account_id from `char` where online = 1 limit 128 offset "+ .@count, .@aid ); .@i = 0; while ( .@i < .@nb ) { attachrid .@aid[.@i]; addtimer 1, strnpcinfo(0)+"::OnPCLoadMapEvent"; .@i++; } .@count += 128; } end; OnPCLoadMapEvent: while ( strcharinfo(3) != .map$[.@i] && .@i < .map_size ) .@i++; // somehow I feel that technique has over-abuse ... though usable though if ( .@i == .map_size || gettimetick(2) >= .countdown ) end; .@time = .countdown - gettimetick(2); showdigit ~.@time, 2; sleep2 .@time * 1000; showdigit 0, 3; end; } -
shut down your server and apply this SQL script truncate table pvp_rank; delete from global_reg_value where str = 'Kill' or str = 'Death' or str = 'KillingStreak' or str = 'MultiKill' or str = 'NemesisKill' or str = 'FeedCount' or str = 'KillingSpree' or str = 'Dominating' or str = 'MegaKill' or str = 'Unstoppable' or str = 'WickedSick' or str = 'MonsterKill' or str = 'Godlike' or str = 'BeyondGodlike' or str = 'DoubleKill' or str = 'TripleKill' or str = 'UltraKill' or str = 'Rampage' or str = 'Ownage';
-
as far as I can tell, yeah that's itthough sometimes I can be wrong too, because everyone might make mistakes in their scripts so if you have spotted another bug that you couldn't able to solve it on your own always welcome to make a discussion here and we can discuss how to solve your problem together
-
move to source modification support battle.c find this line if (battle_config.pk_mode && sd && bl->type == BL_PC && damage && map[bl->m].flag.pvp) change into if (sd && bl->type == BL_PC && damage && map[bl->m].flag.pvp) then you can freely adjust the value
-
this script is extremely screw up lol that script was done in this topic ... hmm ... wait ... seems like same user, perhaps I should merge topic ? anyways, if I'm going to do this correctly, I'll do something similar to this ... http://rathena.org/board/topic/73112-room-rental-a-little-help/#entry150523 which can let user input their password ... and it can auto-reset on empty rooms ... just have to turn this password-based script into a guild-based script so, try that script and thinks what are the kinds of feature you want me to add from that script
-
our SVN has no scripts that has anything to do with 1@mist map its the same as 1@pump, 1@cash, 06guild_r ... etc emistry is right, but missing 1 point, that is the purpose of instance_init script command by default, even if it is an instance script, it should still have npc and warp portals inside its the instance_init script command that copies npc/mobs from its source map into instanced map try @rura 1@tower, the warp portal is there lol
-
prontera,155,177,5 script kjdhfksdjf 100,2,2,{ if ( .summon_timetick + 10 > gettimetick(2) // 10 seconds delay to summon again || mobcount( "this", strnpcinfo(0)+"::Onaa" ) ) end; monster "this", -1,-1, "--ja--", 1952,1, strnpcinfo(0)+"::Onaa"; .summon_timetick = gettimetick(2); sleep 5000; // 5 seconds auto-kill this mob killmonster .map$, strnpcinfo(0) +"::Onaa"; end; OnInit: getmapxy .map$, .@x, .@y, 1; // wtf ... killmonster script command doesn't allow "this" variable Onaa: // prevent server spam error end; }
-
[sql]: DB error - Unknown column 'level' in 'field list' [Debug]: at d:\eathena\rathena sql 16819\src\map\script.c:14506 - select `sex`,` email`,`level`,`unban_time`,`logincount`,`lastlogin`,`last_ip` from `login` wher e `account_id` = '2000000' [Debug]: Source (NPC): GM Assistant at prontera (156,181) that's because rathena has changed `level` field into `group_id` field run a replace all find `level' replace all with `group_id` and this script will works in rathena
-
you have to create another database script command bNoStoneOrb something like this exclusively for ninja(s) move to source modifications request
-
ok sry, I was wrong ( got tricked by Ryokem post ) I redo again 1. setarray .PvPMap$[0],"izlude";//List all pvp maps here (Index 0:"All" to enable all maps) for example, if your server has 6 pvp maps izlude, guild_vs1, guild_vs2, guild_vs3, guild_vs4, guild_vs5 then do like this setarray .PvPMap$[0],"izlude", "guild_vs1", "guild_vs2", "guild_vs3", "guild_vs4", "guild_vs5"; 2. set .Broadcast, 0; //Where do you want to broadcast? (0:bc_all|1:bc_map) set this to 1 you can forget about mapannounce, because its already in the setting ( I failed to noticed it earlier ) 3. yes you are right, that death not going up due to this bug change this OnPCDieEvent: if(.System){ if(getgmlevel() >= .GMLevel){ end; } if(.PvPMap$[0] != "All"){ for(set .@i, 0; .@i < (getarraysize(.PvPMap$) - 1); set .@i, .@i + 1){ if(strcharinfo(3) != .PvPMap$[.@i]){ end; } set Death, Death + 1; } } } end; into this OnPCDieEvent: if(.System){ if(getgmlevel() >= .GMLevel){ end; } if(.PvPMap$[0] != "All"){ for(set .@i, 0; .@i < (getarraysize(.PvPMap$) - 1); set .@i, .@i + 1){ if(strcharinfo(3) != .PvPMap$[.@i]){ end; } } } set Death, Death + 1; } end;
-
- script flsdfjlskdfj -1,{ OnInit: bindatcmd "whoip", strnpcinfo(0)+"::Onaaa",60,99; end; Onaaa: while ( getusers(1) > .@count ) { .@nb = query_sql("select name, last_ip from `char` left join login on `char`.account_id = login.account_id where online = 1 order by last_ip limit 128 offset "+ .@count, .@name$, .@ip$ ); .@i = 0; while ( .@i < .@nb ) { message strcharinfo(0), ( .@count + .@i +1 )+". "+ .@name$ +" -> "+ .@ip$; .@i++; } .@count += 128; } freeloop 0; } hmm .. ? this is just listing all players name and their IP otherwise, please specify more in detail of your request
-
bg_pvp_leader_0.1.txt just optimization ... not bug or anything bg_pvp_leader_0.2.txt
-
for dialog, you change yourself // 674,Mithril_Coin // 13517,Yggdrasilberry_Box // 7227,TCG_Card // 100 coins + 15 berry ticket <-> 1 TCG prontera,144,168,6 script TCG Exchanger 117,{ mes "[TCG Exchanger]"; mes "Hello there."; mes "I can change your Berry Tickets and ZileRO Points to TCG or TCG to Premium Tickets and ZileRO Points"; mes "Which do you need?"; menu "Berry to Ticket",t_trade, "Ticket to Berry",b_trade, "I dont need anything",-; next; mes "[TCG Exchanger]"; mes "Very well, have a nice day."; close; t_trade: next; if ( countitem(674) < 100 ) goto t_fail; if ( countitem(13517) < 15 ) goto t_fail; delitem 674, 100; delitem 13517, 15; mes "[berry Changer]"; mes "Ok, here's Your ^0000FFPremium Ticket^000000."; getitem 7227, 1; close; t_fail: next; mes "[berry Changer]"; mes "I'm terribly sorry, but you do not have enough berry for this ticket."; next; mes "[berry Changer]"; mes "Please come back when you have the correct ammount."; close; b_trade: next; if ( countitem(7227) < 1 ) goto b_fail; if ( !checkweight(674,100,13517,15) ) goto t_OverWeight; delitem 7227,1; mes "[berry Changer]"; mes "Ok, here's Your ^0000FF300 Yggdrasil Berry^000000."; getitem 674,100; getitem 13517,15; close; b_fail: next; mes "[berry Changer]"; mes "It seems you don't have that ticket."; close; t_Overweight: next; mes "[berry Changer]"; mes "It seems you are overweight."; close; } and algorithm for fun prontera,155,179,5 script kjdhfkjshf 100,{ mes "this is an exchanger NPC"; .@s = select ( .exchange_list$[0] +" -> "+ .exchange_list$[1], .exchange_list$[1] +" -> "+ .exchange_list$[0] ) -1; mes "selected :-"; mes .exchange_list$[ .@s ]; mes " -> "; mes .exchange_list$[ !.@s ]; while ( countitem( getd(".exchange_list"+ .@s +"["+ .@i +"]") ) >= getd(".exchange_list"+ .@s +"["+( .@i +1 )+"]" ) && .@i < .size[ .@s ] ) .@i += 2; if ( .@i < .size[.@s] ) { mes "not enough "+ getitemname( getd(".exchange_list"+ .@s +"["+ .@i +"]") ); close; } mes "input the amount that you can change"; for ( .@i = 0; .@i < .size[ .@s ]; .@i += 2 ) { .@tmp[.@c] = countitem( getd(".exchange_list"+ .@s +"["+ .@i +"]") ) / getd(".exchange_list"+ .@s +"["+( .@i +1 )+"]"); if ( !.@max || .@max > .@tmp[.@c] ) .@max = .@tmp[.@c]; .@c++; } mes "max = "+ .@max; next; if ( input( .@input, 1, .@max ) ) { mes "invalid amount"; close; } for ( .@i = 0; .@i < .size[ .@s ]; .@i += 2 ) delitem getd(".exchange_list"+ .@s +"["+ .@i +"]"), getd(".exchange_list"+ .@s +"["+( .@i +1 )+"]"); for ( .@i = 0; .@i < .size[ !.@s ]; .@i += 2 ) getitem getd(".exchange_list"+ !.@s +"["+ .@i +"]"), getd(".exchange_list"+ !.@s +"["+( .@i +1 )+"]"); close; OnInit: setarray .exchange_list0, 501,1 , 502,2 , 503,3 ; setarray .exchange_list1, 504,1 ; while ( .@j <= 1 ) { .@i = 0; .size[.@j] = getarraysize( getd(".exchange_list"+ .@j ) ); while ( .@i < .size[.@j] ) { .exchange_list$[.@j] = .exchange_list$[.@j] + getd(".exchange_list"+ .@j +"["+( .@i +1 )+"]" ) +"x "+ getitemname( getd(".exchange_list"+ .@j +"["+ .@i +"]" ) ) +( ( .@i == .size[.@j] -2 )? "":" + " ); .@i += 2; } .@j++; } end; }
-
http://rathena.org/b...pvp-system-v13/ wow this needs client hexing and source modification ! asking for the impossible =/ I thought you just wanna ask something simple <.<
-
Chnage advanced_refiner.txt +1 - +4 suscess 100% ?
AnnieRuru replied to Altimage's question in Scripting Support
this is the default refine_db chance 0,66,0,0,100:0,100:0,100:0,100:0,60:0,40:0,40:0,20:0,20:0,10:0 // Level 1 weapons 1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,20:0 // Level 2 weapons 2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,20:0,20:0 // Level 3 weapons 3,500,6,800,100:0,100:0,100:0,100:0,100:0,60:0,50:0,20:0,20:0,20:0 // Level 4 weapons 4,700,5,1300,100:0,100:0,100:0,100:0,60:0,40:0,40:0,20:0,20:0,10:0 a normal refiner will calculate the chance only once and advance refiner will calculate the chance twice ( if it failed for the 1st time, it will calculate again for 2nd time ) you mean you want to have your normal refiner and advance refiner doing separated refining rate ? -
dunno how to reproduce this error also prontera,156,180,5 script NPCNAME 100,{ mes "[summon Man]"; mes "Want to start the kill?"; next; menu "Yes",L_Yes,"No",-; mes "[summon Man]"; mes "Come back later"; close; L_Yes: monster "this", -1,-1,"Quest Poring",1002,10,"NPCNAME::OnPoringKilled"; // By using 0,0 it will spawn them in a random place. mes "[summon Man]"; mes "Now go and kill all the Poring I summoned"; // He summoned ten. close; OnPoringKilled: set $PoringKilled,$PoringKilled+1; if ($PoringKilled==10) goto L_AllDead; end; L_AllDead: announce "Summon Man: Well done all the poring are dead",3; set $PoringKilled,0; end; } although, usually for event script, unless it is meant to save permanent data, we usually just use npc variable for it
-
setarray .PvPMap$[0], "All"; //List all pvp maps here (Index 0:"All" to enable all maps) list izlude, and all your pvp maps here and 2nd, change announce into mapannounce strcharinfo(3),
-
try read /db/re/exp.txt that is the place to define the max level for each jobs if you mean you want gunslinger to have special max base level than the rest it needs source modification ... mainly at pc_readdb function in pc.c EDIT: ... also move to source modification request
-
Can u help me put automatic prize in this script
AnnieRuru replied to Famous's question in Script Requests
it seems his script using both waitingroom2bg and waitingroom2bg_single command, if using array can become very complicated think the easiest way is add in my getbgusers command which can be found here http://rathena.org/board/topic/72571-battleground-system-without-waitingroom/ then change if(.point[1]>.point[2]) { Announce "[battle Ground]:Team A Win!",0; }else if(.point[2]>.point[1]) { Announce "[battle Ground]:Team B Win!",0; }else { Announce "[battle Ground]:Draw!",0; } into if(.point[1]>.point[2]) { Announce "[battle Ground]:Team A Win!",0; getbgusers $@bg_id_a; for ( .@i = 0; .@i < $@arenamembersnum; .@i++ ) getitem 501, 1, $@arenamembers[.@i]; }else if(.point[2]>.point[1]) { Announce "[battle Ground]:Team B Win!",0; getbgusers $@bg_id_b; for ( .@i = 0; .@i < $@arenamembersnum; .@i++ ) getitem 501, 1, $@arenamembers[.@i]; }else { Announce "[battle Ground]:Draw!",0; } -
a card ... ? or an usable item ? if usable item, I think everyone knows how to do this but if it is a card, it means making a new skill ... need source modification EDIT: ... ok move to source modification request
-
Anyone want to make Roulette script?
AnnieRuru replied to Peopleperson49's question in Script Requests
@keyworld, kinda don't think its possible it has been countered with $@ruleta_st variable close2 ; if ( .@s == 3 || zeny < 5000 || $@ruleta_st ) @Peopleperson49 try use google translator to translate his script not very accurate translation ... but I can understand what that script does from the translations -
LOL !!! next time if it is official script bug, report into bug tracker http://rathena.org/board/tracker/issue-6997-novice-training-ground/ topic close ( follow Jman procedure the other day ... x.x )
-
what error ?did you have this global function ?