-
Posts
175 -
Joined
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Feefty
-
the errors is gone but looks like all my OnStart event is rerunning. http://prntscr.com/l2pd1 Edited: nvm. i edited the OnStart in the script and changed to something else. Thanks! i got a new problem. the waitingroom is not showing after its finished doing an even and some of the event is not working properly like OnBlueDead and OnRedQuit etc
-
doesn't work. im still getting the error.
-
Hi, i'm trying to remove the manual activation by the GM but i'm getting an error chat_createnpcchat: npc 'BG Red Side#bg_emp' already has a chatroom, cannot create new one! - script bg_emp#control -1,{ OnInit: setarray .rewarditem, 31003, 1; // reward to the winning team set .winningscore, 3; // final score to win set .eventlasting, 30 * 60; // abort the system if there's no progress, 20 mins * seconds set .register_lasting, 10 * 60; // 10 minutes to joins, else abort registration, 10 mins * seconds set $requiredBGLevel, 150; // required level to enter set $requiredBGZeny, 0; set $requiredBGPlayer, 4; sleep 1; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < $requiredBGPlayer || getwaitingroomstate( 0, .bluenpcname$ ) < $requiredBGPlayer ) end; set .red, waitingroom2bg( "bat_c01", 53,128, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; set .blue, waitingroom2bg( "bat_c01", 146,55, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; .inprogress = 2; awake strnpcinfo(0); bg_warp .red, "bat_c01", 53,128; bg_warp .blue, "bat_c01", 146,55; setwall "bat_c01", 145,61, 6, 2, 0, "bg_emp_town_blue1"; setwall "bat_c01", 140,56, 6, 0, 0, "bg_emp_town_blue2"; setwall "bat_c01", 59,127, 6, 4, 0, "bg_emp_town_red1"; setwall "bat_c01", 54,122, 6, 6, 0, "bg_emp_town_red2"; bg_updatescore "bat_c01", 0, 0; sleep 6000; if ( .inprogress == 0 ) goto L_Abort; mapannounce "bat_c01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0; sleep 3000; if ( .inprogress == 0 ) goto L_Abort; mapannounce "bat_c01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0; sleep 2000; if ( .inprogress == 0 ) goto L_Abort; while (1) { for ( .@i = 5; .@i > 0; .@i-- ) { mapannounce "bat_c01", .@i +"", 0; sleep 1000; if ( .inprogress == 0 ) goto L_Abort; } if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 ) mapannounce "bat_c01", "Final Round start!", 0; else mapannounce "bat_c01", "Round "+ .round++ +" start!", 0; bg_monster .red,"bat_c01",53,128, "--ja--",1915, strnpcinfo(3)+"::OnRedDown"; bg_monster .blue,"bat_c01",146,55, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown"; delwall "bg_emp_town_red1"; delwall "bg_emp_town_red2"; delwall "bg_emp_town_blue1"; delwall "bg_emp_town_blue2"; sleep .eventlasting * 1000; if ( .inprogress == 0 ) goto L_Abort; .score[ .winside ]++; bg_updatescore "bat_c01", .score[1], .score[2]; killmonster "bat_c01", strnpcinfo(3)+"::OnRedDown"; killmonster "bat_c01", strnpcinfo(3)+"::OnBlueDown"; if ( .winside ) mapannounce "bat_c01", .empkiller$ +" has Destroy "+( ( .winside == 1 )?"Blue":"Red" )+"'s side Emperium. "+( ( .winside == 1 )?"Red":"Blue" )+" team score a point !", 0; if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break; sleep 5000; if ( .inprogress == 0 ) goto L_Abort; bg_warp .red, "bat_c01", 53,128; bg_warp .blue, "bat_c01", 146,55; setwall "bat_c01", 143,61, 6, 2, 0, "bg_emp_town_blue1"; setwall "bat_c01", 140,58, 6, 0, 0, "bg_emp_town_blue2"; setwall "bat_c01", 59,125, 6, 0, 0, "bg_emp_town_red1"; setwall "bat_c01", 57,122, 6, 2, 0, "bg_emp_town_red2"; .winside = 0; } if ( .winside ) { mapannounce "bat_c01", ( ( .winside == 1 )?"Red":"Blue" )+" side wins !", 0; .@size = getarraysize( getd(".team"+ .winside +"aid") ); for ( .@i = 0; .@i < .@size; .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" ); } else mapannounce "bat_c01", "Time Out. Aborting the match.", 0; sleep 5000; L_Abort: bg_warp .red, "heiron", 100,37; bg_warp .blue, "heiron", 100,37; bg_destroy .red; bg_destroy .blue; delwall "bg_emp_town_red1"; delwall "bg_emp_town_red2"; delwall "bg_emp_town_blue1"; delwall "bg_emp_town_blue2"; deletearray .team1aid; deletearray .team2aid; .round = .winside = .score[2] = .score[1] = .inprogress = 0; enablenpc .rednpcname$; enablenpc .bluenpcname$; end; OnRedDown: callsub L_EmpDown, 2; OnBlueDown: callsub L_EmpDown, 1; L_EmpDown: .empkiller$ = strcharinfo(0); .winside = getarg(0); awake strnpcinfo(3); OnRedDead: OnBlueDead: end; OnRedQuit: callsub L_quit, .red, "Red", "Blue", 2; OnBlueQuit: callsub L_quit, .blue, "Blue", "Red", 1; L_quit: if ( bg_get_data( getarg(0), 0 ) ) end; mapannounce "bat_c01", "All "+ getarg(1) +" team members has Quit ! "+ getarg(2) +" side wins !", 0; .@size = getarraysize( getd(".team"+ getarg(3) +"aid") ); for ( .@i = 0; .@i < .@size; .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(3) +"aid["+ .@i +"]" ); goto L_Abort; OnAutoAbort: sleep .register_lasting * 1000; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; if ( .inprogress == 1 ) { .inprogress = 0; announce "battleground has self-aborted because not enough members", 0; } end; }[/b][/i] [i][b]- script bg_start -1,{ OnInit: bindatcmd("bgemp", "bg_start::OnAtcommand", 90, 90); donpcevent getvariableofnpc( .rednpcname$, "bg_emp#control" ) +"::OnStart"; donpcevent getvariableofnpc( .bluenpcname$, "bg_emp#control" ) +"::OnStart"; set getvariableofnpc( .inprogress, "bg_emp#control" ), 1; //donpcevent "bg_emp#control::OnAutoAbort"; end; OnAtcommand: if ( getgmlevel() < 99 ) { mes "I only talk to gm"; close; } if ( getvariableofnpc( .inprogress, "bg_emp#control" ) ) { mes "abort ?"; next; if ( select ( "Yes", "No" ) == 2 ) close; set getvariableofnpc( .inprogress, "bg_emp#control" ), 0; awake "bg_emp#control"; killmonster "bat_c01", "bg_emp#control::OnRedDown"; killmonster "bat_c01", "bg_emp#control::OnBlueDown"; announce strcharinfo(0) +" has abort the battleground", 0; close; } end; }[/b][/i] [i][b]prontera,151,181,4 script BG Red Side#bg_emp 100,{ end; OnStart: waitingroom "BG Red Side", $requiredBGPlayer+1, "bg_emp#control::OnStart", $requiredBGPlayer, $requiredBGZeny, $requiredBGLevel, $requiredBGLevel; end; OnInit: set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0); end; }[/b][/i] [i][b]prontera,160,181,4 script BG Blue Side#bg_emp 100,{ end; OnStart: waitingroom "BG Blue Side", $requiredBGPlayer+1, "bg_emp#control::OnStart", $requiredBGPlayer, $requiredBGZeny, $requiredBGLevel, $requiredBGLevel; end; OnInit: set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0); end; }[/b][/i] [i][b]06guild_01,50,6,0 warp toheiron 2,2,heiron,99,35[/b][/i] [i][b]bat_c01 mapflag battleground 2 bat_c01 mapflag nosave SavePoint bat_c01 mapflag nowarp bat_c01 mapflag nowarpto bat_c01 mapflag noteleport bat_c01 mapflag nomemo bat_c01 mapflag nopenalty bat_c01 mapflag nobranch bat_c01 mapflag noicewall bat_c01 mapflag nocommand 5 Thanks.
-
i did check the map and it's working fine but when the waiting is ready to port us im getting the crash. - script bg_emp#control -1,{ OnInit: setarray .rewarditem, 31003, 9; // reward to the winning team set .winningscore, 2; // final score to win set .eventlasting, 20 * 60; // abort the system if there's no progress, 20 mins * seconds set .register_lasting, 10 * 60; // 10 minutes to joins, else abort registration, 10 mins * seconds sleep 1; disablenpc .rednpcname$; disablenpc .bluenpcname$; disablenpc "BG Warper#bg_emp"; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; set .red, waitingroom2bg( "bat_c01", 53,128, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; set .blue, waitingroom2bg( "bat_c01", 146,55, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; .inprogress = 2; awake strnpcinfo(0); bg_warp .red, "bat_c01", 53,128; bg_warp .blue, "bat_c01", 146,55; setwall "bat_c01", 145,61, 5, 2, 0, "bg_emp_town_blue1"; setwall "bat_c01", 140,56, 5, 0, 0, "bg_emp_town_blue2"; setwall "bat_c01", 59,127, 5, 4, 0, "bg_emp_town_red1"; setwall "bat_c01", 54,122, 5, 6, 0, "bg_emp_town_red2"; bg_updatescore "bat_c01", 0, 0; sleep 6000; if ( .inprogress == 0 ) goto L_Abort; mapannounce "bat_c01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0; sleep 3000; if ( .inprogress == 0 ) goto L_Abort; mapannounce "bat_c01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0; sleep 2000; if ( .inprogress == 0 ) goto L_Abort; while (1) { for ( .@i = 5; .@i > 0; .@i-- ) { mapannounce "bat_c01", .@i +"", 0; sleep 1000; if ( .inprogress == 0 ) goto L_Abort; } if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 ) mapannounce "bat_c01", "Final Round start!", 0; else mapannounce "bat_c01", "Round "+ .round++ +" start!", 0; bg_monster .red,"bat_c01",53,128, "--ja--",1915, strnpcinfo(3)+"::OnRedDown"; bg_monster .blue,"bat_c01",146,55, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown"; delwall "bg_emp_town_red1"; delwall "bg_emp_town_red2"; delwall "bg_emp_town_blue1"; delwall "bg_emp_town_blue2"; sleep .eventlasting * 1000; if ( .inprogress == 0 ) goto L_Abort; .score[ .winside ]++; bg_updatescore "bat_c01", .score[1], .score[2]; killmonster "bat_c01", strnpcinfo(3)+"::OnRedDown"; killmonster "bat_c01", strnpcinfo(3)+"::OnBlueDown"; if ( .winside ) mapannounce "bat_c01", .empkiller$ +" has Destroy "+( ( .winside == 1 )?"Blue":"Red" )+"'s side Emperium. "+( ( .winside == 1 )?"Red":"Blue" )+" team score a point !", 0; if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break; sleep 5000; if ( .inprogress == 0 ) goto L_Abort; bg_warp .red, "bat_c01", 53,128; bg_warp .blue, "bat_c01", 146,55; setwall "bat_c01", 143,61, 5, 2, 0, "bg_emp_town_blue1"; setwall "bat_c01", 140,58, 5, 0, 0, "bg_emp_town_blue2"; setwall "bat_c01", 59,125, 5, 0, 0, "bg_emp_town_red1"; setwall "bat_c01", 57,122, 5, 2, 0, "bg_emp_town_red2"; .winside = 0; } if ( .winside ) { mapannounce "bat_c01", ( ( .winside == 1 )?"Red":"Blue" )+" side wins !", 0; .@size = getarraysize( getd(".team"+ .winside +"aid") ); for ( .@i = 0; .@i < .@size; .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" ); } else mapannounce "bat_c01", "Time Out. Aborting the match.", 0; sleep 5000; L_Abort: bg_warp .red, "heiron", 100,37; bg_warp .blue, "heiron", 100,37; bg_destroy .red; bg_destroy .blue; delwall "bg_emp_town_red1"; delwall "bg_emp_town_red2"; delwall "bg_emp_town_blue1"; delwall "bg_emp_town_blue2"; deletearray .team1aid; deletearray .team2aid; .round = .winside = .score[2] = .score[1] = .inprogress = 0; end; OnRedDown: callsub L_EmpDown, 2; OnBlueDown: callsub L_EmpDown, 1; L_EmpDown: .empkiller$ = strcharinfo(0); .winside = getarg(0); awake strnpcinfo(3); OnRedDead: OnBlueDead: end; OnRedQuit: callsub L_quit, .red, "Red", "Blue", 2; OnBlueQuit: callsub L_quit, .blue, "Blue", "Red", 1; L_quit: if ( bg_get_data( getarg(0), 0 ) ) end; mapannounce "bat_c01", "All "+ getarg(1) +" team members has Quit ! "+ getarg(2) +" side wins !", 0; .@size = getarraysize( getd(".team"+ getarg(3) +"aid") ); for ( .@i = 0; .@i < .@size; .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(3) +"aid["+ .@i +"]" ); goto L_Abort; OnAutoAbort: sleep .register_lasting * 1000; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; disablenpc "BG Warper#bg_emp"; if ( .inprogress == 1 ) { .inprogress = 0; announce "battleground has self-aborted because not enough members", 0; } end; } - script bg_start -1,{ OnInit: bindatcmd("bgemp", "bg_start::OnAtcommand", 90, 90); end; OnAtcommand: if ( getgmlevel() < 99 ) { mes "I only talk to gm"; close; } if ( getvariableofnpc( .inprogress, "bg_emp#control" ) ) { mes "abort ?"; next; if ( select ( "Yes", "No" ) == 2 ) close; set getvariableofnpc( .inprogress, "bg_emp#control" ), 0; awake "bg_emp#control"; killmonster "bat_c01", "bg_emp#control::OnRedDown"; killmonster "bat_c01", "bg_emp#control::OnBlueDown"; announce strcharinfo(0) +" has abort the battleground", 0; close; } mes "select how many players to start"; next; if ( input( .@a, 1, 30 ) ) close; set getvariableofnpc( .minplayer2start, "bg_emp#control" ), .@a; announce strcharinfo(0) +" has hosted "+ .@a +" vs "+ .@a +" Battle Ground.", 0; enablenpc getvariableofnpc( .rednpcname$, "bg_emp#control" ); enablenpc getvariableofnpc( .bluenpcname$, "bg_emp#control" ); enablenpc "BG Warper#bg_emp"; donpcevent getvariableofnpc( .rednpcname$, "bg_emp#control" ) +"::OnStart"; donpcevent getvariableofnpc( .bluenpcname$, "bg_emp#control" ) +"::OnStart"; set getvariableofnpc( .inprogress, "bg_emp#control" ), 1; donpcevent "bg_emp#control::OnAutoAbort"; close; end; } 06guild_01,45,54,5 script Red Side#bg_emp 100,{ end; OnStart:waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" ); end; OnInit: set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0); end; } 06guild_01,54,54,5 script Blue Side#bg_emp 100,{ end; OnStart: waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" ); end; OnInit: set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0); end; } heiron,99,35,4 script BG Warper#bg_emp 827,{ set .name$, "^ff0000[bG Warper]^000000"; mes .name$; mes "Do you want to go in BG Waiting Room?"; next; menu "Yes", L_Yes, "No", L_No; L_Yes: mes .name$; if (BaseLevel < 150) { mes "You need to be level 150 to get in the BG Waiting Room"; close; } mes "Good luck and have fun."; warp "06guild_01",50,50; end; L_No: close; end; } 06guild_01,50,6,0 warp toheiron 2,2,heiron,99,35 bat_c01 mapflag battleground 2 bat_c01 mapflag nosave SavePoint bat_c01 mapflag nowarp bat_c01 mapflag nowarpto bat_c01 mapflag noteleport bat_c01 mapflag nomemo bat_c01 mapflag nopenalty bat_c01 mapflag nobranch bat_c01 mapflag noicewall bat_c01 mapflag nocommand 10 06guild_01 mapflag pvp off 06guild_01 mapflag gvg off 06guild_01 mapflag nobranch 06guild_01 mapflag noicewall 06guild_01 mapflag nomemo 06guild_01 mapflag nowarp 06guild_01 mapflag nowarpto 06guild_01 mapflag noteleport 06guild_01 mapflag nosave SavePoint
-
i also think about that. thanks. is it possible to make this an instance? Edited: my client is crashing after moving the npc to different location.
-
how can you make only level 150 can enter the pub?
-
great, ill try this one Thanks Edited: there's no Rename button but there's an Add-Ons. im using 2012-04-10 up
-
how does the client's built-in rename button works?
-
which table should i update to successfully change a character name? i tried changing the name row in char table and in guild member. but it's still buggy the name in guild is not updating. Thanks.
-
http://rathena.org/wiki/Multiple_Servers
-
PacketParser - Yommys Amazing Ragnarok Packet Analyzer Framework
Feefty replied to Yommy's topic in Project Releases
The links are working fine now its working. =D Edit: How to make this work in pRO: Valkyrie? i'm stuck in awaiting for the client. Thanks. -
Hi, im trying to add a custom job for only item suit. but im getting an error compiling my rathena 1>c:\svn16928\src\map\itemdb.c(273): warning C4293: '<<' : shift count negative or too big, undefined behavior 1>c:\svn16928\src\map\itemdb.c(275): warning C4293: '<<' : shift count negative or too big, undefined behavior 1>c:\svn16928\src\map\itemdb.c(277): warning C4293: '<<' : shift count negative or too big, undefined behavior if (jobmask & 1<<29) //Kagerou / Oboro bclass[1] |= 1<<MAPID_NINJA; if (jobmask & 1<<35) // Gondaime bclass[0] |= 1<<MAPID_GONDAIME; if (jobmask & 1<<36) bclass[0] |= 1<<MAPID_YONDAIME; if (jobmask & 1<<37) bclass[0] |= 1<<MAPID_AKATSUKI; im following this guide http://rathena.org/wiki/Custom_Jobs Thanks.
-
what i mean is "Costume" that only change the appearance of a player when the headgear is equipped and no stats will be given. Costume Upper Head -> 1024
-
is it possible to get the item id of costume item currently equipped on a player? ex. Costume Upper Head -> 1024 Thanks.
-
i tried using chunkspy 5.0.2 and this is what i get. ChunkSpy jobname.lub > jobname.lua Pos Hex Data Description or Code ------------------------------------------------------------------------ 000000 ** source chunk: jobname.lub ** global header start ** 000000 1B4C7561 header signature: "\27Lua" ChunkSpy: A Lua 5.0.2 binary chunk disassembler Version 0.9.7 (20050605) Copyright (c) 2004-2005 Kein-Hong Man The COPYRIGHT file describes the conditions under which this software may be distributed (basically a Lua 5-style license.) * Run with option -h or --help for usage information ChunkSpy:1101: ChunkSpy cannot read version 51 chunks i already tried that video on youtube and used google. Thanks.
-
how do you make a player force into a party?
-
PacketParser - Yommys Amazing Ragnarok Packet Analyzer Framework
Feefty replied to Yommy's topic in Project Releases
can't view the svn An error occurred while processing your request. Reference #97.174d32d0.1353209961.3d8acd6 -
wow, thanks. nvm. i found something in database.
-
how do you make a player party with other player and disband it?
-
Thanks. Edit: How do you remove a single element? i tried deletearray .array[1], 1; // didnt work
-
how do you destroy or unset an array? Thanks.
-
thanks, ill try this.