Jump to content

qtdan

Members
  • Posts

    223
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by qtdan

  1. reboot your system, coz your machine ram are already full. - reboot then recompile it.
  2. Need help, Can someone update this patch? http://pastebin.com/raw/7MTcs3c2 since in the latest GIT it doesn't work anymore. btw thanks.
  3. Maybe this? after new UI update this was the next. https://github.com/rathena/rathena/commit/a59864438b53df89e7be229eb15f3f94db332532
  4. Yes it's only one im using the latest one on latest SVN
  5. is it headgear sprites? and... you use it as custom garment sprites, it will doesn't work base on my own experience, headgear sprites were not same as garment sprites. you need to it convert first.
  6. i got an error on id @grenat50 but when i change it to fd error doesn't shown up anymore is it okay?
  7. ahmmm for example i edit the Asura Damage to skill damage db. i minus the Asura damage by 50%. Example the Damage of Normal Asura without editing the skill damage db will 100k. then i implement the -50% damage the damage will be 50k. but when i comes to reflect, example it reflects 20% the normal asura will reflect 20k right because the damage of 100k. but when i implement the -50% damage at skill damage db if you have 20% reflect it reflects 20k not the 20% of -50% skill. sorry for my bad english.
  8. I'm wondering whats wrong when equiping the GTB Card the soul linker can cast the ESTUN but can't follow with ESMA, but it works perfectly when the soul linker doesn't have a GTB. how to fix this problem? TIA.
  9. Hi where i can edit the @go messages there's no conf/help.txt now at latest git.
  10. in weapon state the custom weapon are showing but when I change it to shadow weapon the sprite doesn't work. I saw on the other servers that shadow weapons are working, can someone teach me how to enable this kind of feature?
  11. how can implement this on latest rathena? Header: Type: ITEM_DB Version: 1 Footer: Imports: - Path: db/pre-re/item_db.yml Mode: Prerenewal - Path: db/re/item_db.yml Mode: Renewal - Path: db/import/item_db.yml already have this
  12. About this update, did we have any converter for the older ones? I mean about the custom items that added on import/item_db.txt is there any converter to make it yaml as well? Anyways, Thanks for this update . More Power rAthena
  13. @Katazui can you me this one compatible with the lastet item_db which is yaml?
  14. great work!!! @Katazui thanks! can i request about the weight of the item can we make it default to 1 instead of 100?
  15. // Automated GvG Event 2.0 Beta version // Event runs every hour via OnMinute timer. // Feel free to edit as you wish // By : Mabuhay // Free release // Dont remove credit // Updated to v 2.0 /* - Added gepard support and check to every members - More flexible options - Can set cash, members, timer, and winpoints if gm starts the command. New mechanics. - When using @gvgeventjoin, all your members must be around you by 5x5 cell. NOTE: item rewards are only to be set here in script because adding them in the GM option would be quite troublesome for me :D */ // - script gvg_event -1,{ OnInit: // Enable gepard check? // set to true to enable .gepard = true; // How many guild members are required? // 3 = 3v3 // 5 = 5v5 // etc.. // only to be set once.. if ( !$gvgevent_mem ) $gvgevent_mem = 2; // registration timer in mins. // only to be set once.. if ( !$gvgevent_time ) $gvgevent_time = 1; // how much points to win? Points is earned per kill // only to be set once.. if ( !$gvgevent_winpts ) $gvgevent_winpts = 2; // item reward // <item_id>, <amount> setarray .item, 501, 10, 502, 5; // how much cash points earned // set to 0 to disable if ( !$gvgevent_cash ) $gvgevent_cash = 100; .size = getarraysize(.item); bindatcmd "gvgeventstart", strnpcinfo(0)+"::OnStartEvent",60,60; bindatcmd "gvgeventend", strnpcinfo(0)+"::OnEndEvent",60,60; bindatcmd "gvgeventjoin", strnpcinfo(0)+"::OnJoinEvent"; end; OnStartEvent: mes "Hi GM, what do you want to do?"; mes "Current settings :"; mes "Member count : "+ $gvgevent_mem; mes "Registration time : "+ $gvgevent_time; mes "Win points : "+ $gvgevent_winpts; mes "Cashpoint reward : "+ $gvgevent_cash; next; switch(select("Start Event:Set Mem Count:Set Reg timer:Set Win Points:Set Cashpoint Reward")) { case 1: mes "Starting event.."; close2; break; case 2: mes "Enter member count value"; mes "current : "+ $gvgevent_mem; next; input .@amt, 1; mes "Do you want to set member count to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_mem = .@amt; end; case 3: mes "Enter registration time value"; mes "current : "+ $gvgevent_time; next; input .@amt, 1; mes "Do you want to set registration time to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_time = .@amt; end; case 4: mes "Enter win points value"; mes "current : "+ $gvgevent_winpts; next; input .@amt, 1; mes "Do you want to set win points to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_winpts = .@amt; end; case 5: mes "To disable, set to zero (0)"; mes "current : "+ $gvgevent_cash; next; input .@amt; mes "Do you want to set cashpoints to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_cash = .@amt; end; } OnMinute00: // runs every hour.. if ( .start ) end; .start = 1; .@m = $gvgevent_mem; gvgoff "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) enablenpc "#bari0"+.@j; setwall "guild_vs1", 12, 48, 4, DIR_NORTH, 0, "wonderwall_1"; setwall "guild_vs1", 87, 48, 4, DIR_NORTH, 0, "wonderwall_2"; for ( .@i = $gvgevent_time; .@i > 0; .@i-- ) { if ( .start < 2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event start in "+.@i+" min(s) until slots are taken. Register now.", bc_all; sleep 60000; } } if ( !.slot1 || !.slot2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event is cancelled. Not enough participants.", bc_all; donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.slot1)+"] vs Guild ["+getguildname(.slot2)+"].", bc_all; end; OnJoinEvent: .@GID = getcharid(2); if (.@GID == 0) { mes "Sorry, you are not in a guild."; close; } if (!is_guild_leader(.@GID)) { mes "Sorry, only your guild master can register."; close; } if ( !.start ) { mes "Event has not started."; close; } else if ( .start == 2 ) { mes "Event is still on-going."; close; } else { if ( .slot1 && .slot2 ) { mes "All slots has been taken."; close; } if ( !.slot1 ) .@slot = 1; else if ( !.slot2) .@slot = 2; if ( .slot1 == .@GID ) { mes "You're guild has already registered."; close; } getmapxy(.@map$, .@x, .@y, BL_PC); getareaunits(BL_PC,.@map$,.@x+5,.@y+5,.@x-5,.@y-5,.@char_name$[0]); freeloop(true); for(.@i=0;.@i<getarraysize(.@char_name$);.@i++) if ( getcharid(2, .@char_name$[.@i] ) == .@GID ) { if ( .gepard ) { query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+ getcharid(3, .@char_name$[.@i] ) +"'", .@unique_id$); .@gvg_gepard$[.@gsize++] = .@unique_id$; if ( countinarray( .@gvg_gepard$[0], .@unique_id$ ) > 1 ) .@duplicate++; } .@current_mem++; .@aid[.@size++] = convertpcinfo(.@char_name$[.@i], CPC_ACCOUNT); .@validmem$[.@size2++] = .@char_name$[.@i]; } freeloop(false); if ( .@current_mem < $gvgevent_mem ) { mes "You need at least "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .@current_mem > $gvgevent_mem ) { mes "You need only need "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .gepard && .@duplicate ) { mes "Gepard ID duplicate detected."; mes "A member around you is using dual account."; close; } mes "Participating members are :"; for ( .@i = 0; .@i < .@size2; .@i++) mes "~ "+ .@validmem$[.@i]; next; mes "Are you ready ?"; next; select("Yes"); switch ( .@slot ) { case 1: .slot1 = .@GID; break; case 2: .slot2 = .@GID; break; } for ( .@j = 0; .@j < .@size; .@j++ ) { attachrid(.@aid[.@j]); .@gid = getcharid(2); sc_end SC_ALL; // remove all status buffs percentheal 100,100; // heals before warp warp "guild_vs1", ( .slot1 == .@gid ) ? 7 : 92, 50; } detachrid; if ( .slot1 && .slot2 ) { .start = 2; awake strnpcinfo(0); sleep 3000; mapannounce "guild_vs1", "Get ready !~", bc_blue; sleep 2000; for ( .@i = 5; .@i > 0; --.@i ) { mapannounce "guild_vs1", .@i +" !~", bc_blue; sleep 1000; } mapannounce "guild_vs1", "Start !~", bc_blue; gvgon "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) disablenpc "#bari0"+.@j; delwall "wonderwall_1"; delwall "wonderwall_2"; } } end; OnPCKillEvent: if ( .start && strcharinfo(3) == "guild_vs1" ) { .@GID = getcharid(2); if ( .@GID == .slot1 ) .guild1_score++; else if ( .@GID == .slot2 ) .guild2_score++; mapannounce "guild_vs1", strcharinfo(0) +" of Guild ["+getguildname(.@GID)+"] has pawned "+ rid2name(killedrid), bc_blue; mapannounce "guild_vs1", "Guild ["+getguildname(.slot1)+"] - "+.guild1_score+" || Guild ["+getguildname(.slot2)+"] - "+.guild2_score+"", bc_blue; if ( .guild1_score == $gvgevent_winpts || .guild2_score == $gvgevent_winpts ) { gvgoff "guild_vs1"; if ( .guild1_score > .guild2_score ) { .winner = .slot1; .loser = .slot2; } else { .winner = .slot2; .loser = .slot1; } .@m = $gvgevent_mem; announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.winner)+"] is victorious against Guild ["+getguildname(.loser)+"] !", bc_all; mapannounce "guild_vs1", "Rewards will be delivered in few seconds before warping out.", bc_blue; sleep 8000; // 8 sec pause so participating members can re-warp if dead getmapunits(BL_PC, "guild_vs1", .@aid[0]); for(.@i=0;.@i<getarraysize(.@aid);.@i++) { attachrid(.@aid[.@i]); if ( getcharid(2) == .winner ) { // if winner for ( .@j = 0; .@j < .size; .@j+=2 ) getitem .item[.@j], .item[.@j+1]; if ( $gvgevent_cash ) { #CASHPOINTS += $gvgevent_cash; dispbottom "You have gained "+$gvgevent_cash+" cashpoints. Total : "+ #CASHPOINTS; } } else if ( getcharid(2) == .loser ) { // if loser dispbottom "Thank you for participating GvG Event."; } } detachrid; sleep 2000; // 2 sec pause.. donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } attachrid( killedrid ); .@GID = getcharid(2); if ( .@GID == .slot1 || .@GID == .slot2 ) { dispbottom "You will be warped back to the battle area in few secs."; sleep2 4000; // return to battle in 5 sec warp "guild_vs1", (.@GID == .slot1) ? 7:(.@GID == .slot2) ? 92:50, 50; sleep2 1000; // heal in 1 sec percentheal 100,100; } } end; OnEndEvent: if ( !.start ) end; .start = .slot1 = .slot2 = .loser = .winner = .guild1_score = .guild2_score = false; mapwarp "guild_vs1", "prontera", 150, 180; end; } // Barricades guild_vs1,12,48,0 script #bari01 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,49,0 script #bari02 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,50,0 script #bari03 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,51,0 script #bari04 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,48,0 script #bari05 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,49,0 script #bari06 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,50,0 script #bari07 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,51,0 script #bari08 1906,{ end; OnInit: disablenpc strnpcinfo(0); } Can someone help me about this script. make score to another team when someone crash on the other team or someone disconnects during the game. and make player don't go back to the GVG area when it die. make it GVG + 8 party members including the Guild master who can type @gvgeventjoin TIA sorry for my bad english
  16. I want to make a combo set that goes 1 Kiel are Working = 30% Reduce Aftercast delay. 2 Kiels are only = 35% Reduce Aftercast delay. 3 Kiels are only = 35% Reduce Aftercast delay. 2 Kiels + 1 Expert Ring = 35% Reduce Aftercast delay. 2 Kiels + 2 Expert Ring = 80% Reduce Aftercast delay. 3 Kiels + 2 Expert Ring = 80% Reduce Aftercast delay. i found this code at old request but it doesn't work nowadays. a little help? 4403,Kiel_Card,Kiel-D-01 Card,6,20,,10,,,,,,,,769,,,,,{ if ( isequippedcnt(4403) >= 2 && isequippedcnt(2703) < 2 ) bonus bDelayRate, -40 / isequippedcnt(4403); else bonus bDelayRate, -30; },{},{}
  17. its not about the server time its about the set time.
  18. // Original script by sandbox. // Edit by Mabuhay - script Event_Dice -1,{ OnInit: // item reward setarray .item, 40002, 3; //502, 5; // @dicestart - gm manual start bindatcmd "dicestart", strnpcinfo(0)+"::OnStart",60,60; // @dice - player join event bindatcmd "dice", strnpcinfo(0)+"::OnJoinEvent"; // Event cooldown .event_cd = 60 * 60 * 6; // 1hr // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_02", .@mapflag[.@i]; .@min = gettime(DT_MINUTE)*60; .@sec = gettime(DT_SECOND); .event_time = (gettimetick(2) - ( .@min + .@sec )) + .event_cd - 5; end; OnJoinEvent: mes " [ Event Status ] "; if ( !.start ) mes "Next schedule starts in ^FF0000"+ Time2Str(.event_time) +"^000000."; if ( .start == 1 ) mes "Event is currently active."; if ( .start == 2 ) mes "Event is currently on-going."; next; switch(select( "Dice Event - "+ ((.start == 1) ? "^00ff00Join Event":((.start == 2) ? "^00ff00Event 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; } else warp "quiz_02",55,87; } end; OnStart: .@force = true; OnClock0100: OnClock0700: OnClock1300: OnClock1900: // runs hourly .@time = gettimetick(2); .@min = gettime(DT_MINUTE)*60; .@sec = gettime(DT_SECOND); if ( .event_time > .@time && !.@force || .start && !.@force ) end; // doesnt start if cd isn't done. .event_time = (.@time - ( .@min + .@sec )) + .event_cd - 5; .start = 1; for(.@i = 1;.@i <= 4;.@i++) { disablenpc "Back#"+.@i; disablenpc "Box "+.@i; } announce "Dice: We are going to have a Dice event.",0; sleep 10000; announce "Dice: For those who wants to join, use @dice",0; sleep 10000; announce "Dice: After 1 Minute Event will close.",0; sleep 10000; announce "Dice: So please if you want to join. use @dice",0; sleep 60000; announce "Dice: The entry to the event is now closed.",bc_all,0x0ceedb; if ( !getmapusers("quiz_02") ) { announce "Dice: Not enough participants.",bc_all,0x0ceedb; .start = false; 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 2500; mapannounce "quiz_02","You'll have to enter one of the 4 avaiaible boxes.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","Then a four sides dice will be thrown. The number it shows will be the saved number.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","Remember to enter the boxes!",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; while(!.@end && .start && .@rounds < 5) { for(.@i = 1;.@i <= 4;.@i++) { enablenpc "Back#"+.@i; enablenpc "Box "+.@i; } sleep 1500; mapannounce "quiz_02","The dice will soon be thrown. Enter the desired box clicking the metalic number inside them.",bc_map,0x0ceedb; sleep 20000; for(.@i = 5;.@i > 0;.@i--) { mapannounce "quiz_02",.@i+"...",bc_map,0x0ceedb; sleep 990; } for(.@i = 1;.@i <= 4;.@i++) { disablenpc "Back#"+.@i; disablenpc "Box "+.@i; } areawarp "quiz_02",32,95,79,76,"prontera",rand(148,163),rand(167,186); areawarp "quiz_02",80,85,80,76,"prontera",rand(148,163),rand(167,186); areawarp "quiz_02",31,85,31,76,"prontera",rand(148,163),rand(167,186); .@n = rand(1,4); mapannounce "quiz_02","Time! The dice shows the number "+.@n+".",bc_map,0x0ceedb; setarray .@cords1[0],33,41; setarray .@cords2[0],45,53; setarray .@cords3[0],57,65; setarray .@cords4[0],69,77; for(.@i = 1;.@i <= 4;.@i++) { if(.@i != .@n) areawarp "quiz_02",getd(".@cords"+.@i+"[0]"),52,getd(".@cords"+.@i+"[1]"),73,"aretnorp",220,157; } sleep 3000; .@players = getmapusers("quiz_02"); if(.@players <= 3 && .start && .@players) { mapannounce "quiz_02","The event is now over! Winners, enjoy your prizes!",bc_map,0x0ceedb; .@size = getmapunits(BL_PC,"quiz_02",.@players); .@amt = getarraysize(.item); .start = false; for(.@i = 0;.@i < .@size;.@i++) { attachrid .@players[.@i]; announce strcharinfo(0)+" has won the Dice Event.",bc_all,0x0ceedb; for ( .@j = 0; .@j < .@amt; .@j += 2 ) getitem .item[.@j], .item[.@j+1]; warp "aretnorp",220,157; } } else if( !.@players ) { .@end = true; .start = false; announce "There was no winner on the Dice Event.",bc_all,0x0ceedb; } else { mapannounce "quiz_02","There's no clear winners yet, let's roll the dice again.",bc_map,0x0ceedb; } .@rounds++; } if(.@rounds >= 5) { mapannounce "quiz_02","There were no winner clear in all of the event. The event is now over.",bc_map,0x0ceedb; .start = false; } end; } quiz_02,37,80,3 script Box 1 HIDDEN_NPC,{ warp "quiz_02",rand(33,41),rand(52,73); end; } quiz_02,49,80,3 script Box 2 HIDDEN_NPC,{ warp "quiz_02",rand(45,53),rand(52,73); end; } quiz_02,61,80,3 script Box 3 HIDDEN_NPC,{ warp "quiz_02",rand(57,65),rand(52,73); end; } quiz_02,73,80,3 script Box 4 HIDDEN_NPC,{ warp "quiz_02",rand(69,77),rand(52,73); end; } quiz_02,55,90,3 script Back to Maintown#dice 4_BULLETIN_BOARD2,{ warp "aretnorp",220,157; end; } quiz_02,37,64,3 script Back#1 4_BULLETIN_BOARD2,{ warp "quiz_02",55,76; end; } quiz_02,49,64,3 duplicate(Back#1) Back#2 4_BULLETIN_BOARD2 quiz_02,61,64,3 duplicate(Back#1) Back#3 4_BULLETIN_BOARD2 quiz_02,73,64,3 duplicate(Back#1) Back#4 4_BULLETIN_BOARD2 i set this script starts every 1am, 7am, 1pm and 7pm but the next schedule is not appropriate to the event times. can i request a modified script? Thanksss
×
×
  • Create New...