-
Posts
830 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by Sallycantdance
-
thanks
-
Hello everyone i would like to ask how to add specific effect if you have +9 armor for example if you have +9shoes[1] you will have extra +3% HP i hope i post this thread in the right section Thanks in Advance more power Rathena
-
Pre-renewal (Ankle Snare) Custom Effect
Sallycantdance replied to Yami's question in Source Requests
1st goto src/map/skill.cpp 2nd find: case MO_BODYRELOCATION: if (unit_movepos(src, x, y, 2, 1)) { 3rd then edit to this one: case MO_BODYRELOCATION: if(sc && (sc->data[SC_SPIDERWEB] || sc->data[SC_ANKLE] || sc->data[RG_CLOSECONFINE])) if (unit_movepos(src, x, y, 2, 1)) { break; 4th then recompile this will only disabled body reloc when they steps into the traps of hunters or in close confine skill of rogue but it will not remove there spheres -
hello goodmorning where did exactly in src will i put that lines
-
thank you sir emistry and sorry ?
-
hello everyone i would like to ask something in my case i want to make a new server the problem is i already have old databased in my sql and when i try to add scheme for my new database the data is always entering at the old data based even i already make a new scheme for its main and logs hmm can somebody experience this too
-
H> Resources File loading Fail
Sallycantdance replied to Sallycantdance's question in Installation Support
thank you ? thank you ? -
Hello everyone can someone experienced and have some idea in this error thanks in advance hope im in the right section
-
Body Relocation I Close Confine
Sallycantdance replied to Sallycantdance's question in Source Requests
thanks men -
Body Relocation I Close Confine
Sallycantdance replied to Sallycantdance's question in Source Requests
hello thanks for your reply can you send a example -
hello anybody have some idea how to disable body reloc when the player is under in close confine skill by rogue thanks in advance , i already added it in the src but its still not working thanks in advance
-
All-In-One Pet Shop (Pet Master)
Sallycantdance replied to StainSky93's topic in Utility Script Releases
thanks for this -
[Show Case] Monster Slot
Sallycantdance replied to pcmedias's topic in Game, Event, Quest Script Releases
Cool -
Baka meron kayo script nung mystery egg?
Sallycantdance replied to akosiesooon's topic in PEENOISE CLUB's Topics
function script CustomBox { setarray .i1[1],12221,12263,14765,12211; // Common Items set .i1rand,rand(1,4); // Randomize Common Items; just change max amount if you add items setarray .i2[1],12216,12215; // Rare Items set .i2rand,rand(1,2); // Randomize Rare Items; just change max amount if you add items setarray .i3[1],12412,677; // Super Rare Items set .i3rand,rand(1,2); //Randomize Super Rare Items; just change max amount if you add items set .chance, rand(100); // Super Rare Item 3% if (.chance < 3){ getitem .i3[.i3rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.i3[.i3rand])+"] from the Lucky Egg.",0; end; } // Rare Item 15% else if (.chance < 15){ getitem .i2[.i2rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.i2[.i2rand])+"] from the Lucky Egg.",0; end; } // Common Items else { getitem .i1[.i1rand],1; end; } } -
Emblem not showing during Guild war or GvG
Sallycantdance replied to AinsLord's question in General Support
Guild Emblem not showing - General Support - rAthena try this -
hello everyone i would like to ask how to update your current ragnarok database because some of the new players creating there accounts are not entering my sql data "Char" thanks in advance
-
o my haha thanks
-
try this MVP Invasion every hour. - Script Requests - rAthena
-
Hello Mam/Sir i would like to ask a help in @whosell Script im Getting this error heres the Script : /*========================================== * @whosell command *------------------------------------------*/ ACMD_FUNC(whosell) { struct map_session_data *pl_sd, *b_sd[MAX_SEARCH]; struct s_mapiterator* iter; struct item_data *item_array[MAX_SEARCH]; int total[MAX_SEARCH], amount[MAX_SEARCH]; unsigned int MinPrice[MAX_SEARCH], MaxPrice[MAX_SEARCH]; char output[256]; int i, j, count = 1; char item_name[100]; int minprice = 0; if (!message || !*message || ( sscanf(message, "\"%99[^\"]\" %11d", item_name, &minprice) < 1 && sscanf(message, "%99s %11d", item_name, &minprice) < 1) ) { clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @whosell <item name or ID> {<min price>})."); return -1; } if ((item_array[0] = itemdb_searchname(item_name)) == NULL && (item_array[0] = itemdb_exists(atoi(item_name))) == NULL) count = itemdb_searchname_array(item_array, MAX_SEARCH, message); if (count < 1) { // No items found clif_displaymessage(fd, msg_txt(sd,19)); return -1; } if (count > MAX_SEARCH) count = MAX_SEARCH; // Preparing Search Recorders for (i = 0; i < MAX_SEARCH; i++) { total = amount = MaxPrice = 0; MinPrice = battle_config.vending_max_value + 1; b_sd = NULL; } iter = mapit_getallusers(); for (pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter)) { if (!pl_sd->vender_id) continue; for (i = 0; i < pl_sd->vend_num; i++) { // Searching in the Vending List for (j = 0; j < count; j++) { // Compares with each search result if (pl_sd->status.cart[pl_sd->vending.index].nameid != item_array[j]->nameid) continue; if (pl_sd->vending.value < minprice) continue; amount[j] += pl_sd->vending.amount; total[j]++; if (pl_sd->vending.value < MinPrice[j]) { // Best Price MinPrice[j] = pl_sd->vending.value; b_sd[j] = pl_sd; } if (pl_sd->vending.value > MaxPrice[j]) MaxPrice[j] = pl_sd->vending.value; } } } mapit_free(iter); for (i = 0; i < count; i++) { if (total > 0 && b_sd != NULL) { sprintf(output, "[%d] The best price found for '%s' is %u sold by '%s' at %s <%d,%d>. Max Price %u. Item found in %d shops, %d pieces for sale.", item_array->nameid, item_array->jname, MinPrice, b_sd->status.name, map[b_sd->bl.m].name, b_sd->bl.x, b_sd->bl.y, MaxPrice, total, amount); if (sd->bl.m == b_sd->bl.m) clif_viewpoint(sd, 1, 1, b_sd->bl.x, b_sd->bl.y, i, 0xFFFFFF); } else sprintf(output, "[%d] '%s' is not being sold at the moment...", item_array->nameid, item_array->jname); clif_displaymessage(sd->fd, output); } return 0; }
-
hello why did im getting this error thanks in advance [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/thor/WhoSell.txt', line '4'. Stopping... * w1=ACMD_FUNC(whosell) * w2= * w3= * w4=
-
thanks i will try this later
-
hello sir emistry is it possible to duplicate this npc but theres a new items inside? in my case im trying to make to different npc and same script using your quest npc but even a change the requirements and item in the second npc the 1st npc quest is still appering in the second npc i would like to ask if i can use the same script in different contents thanks in advance
-
Hello i would like to ask how to set this floating rate every day and every 1pm-2pm and every 7pm to 8pm - script FloatingRates -1,{ OnInit: //add any other HOURS OnClock0000: if((gettime(4) == 6 || gettime(4) == 7)) { // Saturday, Sunday //------------------- atcommand "@reloadbattleconf"; //Base exp setbattleflag("base_exp_rate",1200); //Job exp setbattleflag("job_exp_rate",1200); //Drops setbattleflag("item_rate_common",600); setbattleflag("item_rate_heal",600); setbattleflag("item_rate_use",600); setbattleflag("item_rate_equip",600); //setbattleflag("item_rate_card",400); //setbattleflag("item_rate_common_boss",1); //setbattleflag("item_rate_heal_boss",1); //setbattleflag("item_rate_use_boss",1); //setbattleflag("item_rate_equip_boss",1); //setbattleflag("item_rate_card_boss",1); //setbattleflag("item_rate_common_mvp",1); //setbattleflag("item_rate_heal_mvp",1); //setbattleflag("item_rate_use_mvp",1); //setbattleflag("item_rate_equip_mvp",1); //setbattleflag("item_rate_card_mvp",1); //setbattleflag("item_rate_mvp",1); //setbattleflag("item_rate_adddrop",1); //setbattleflag("item_rate_treasure",1); //setbattleflag("item_rate_equip",1); // Apply new rates to configs set above //we don't change card drops rate, because these values won't change them anyway announce "Floating Rates every Saturday & Sunday Enjoy!",bc_all,0xFFFF00; announce "Increased Base and Job EXP by 200%.",bc_all,0xFFFF00; announce "Increased Normal Drops by 100%.",bc_all,0xFFFF00; announce "Card rates are fixed in 0.04%.",bc_all,0xFFFF00; end; OnClock0001: //OnMon: if((gettime(4) == 1)) { // Monday announce "Double Experience & Drop rates already finish!",bc_blue|bc_all; atcommand "@reloadbattleconf"; end; } } }
-
hello master i have a problem in this script hope you can help me 1st sometimes when the guild recall in the map both guilds are in the same sides 2nd i want to remove the debuffs script 3rd the event ends even there are still guild members alive thankyou in your time masters // 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 */ // - script gvg_event -1,{ OnInit: // How many guild members are required? .membercount = 1; // registration timer in mins. .timer = 3; // how much points to win? Points is earned per kill .win_points = 2; // item reward // <item_id>, <amount> setarray .item, 12987, 5, // how much cash points earned // set to 0 to disable .cash = 0; .size = getarraysize(.item); bindatcmd "start", strnpcinfo(0)+"::OnStartEvent",60,60; bindatcmd "end", strnpcinfo(0)+"::OnEndEvent",60,60; bindatcmd "join", 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; announce "you should have a guild to join the event, type @join if you want to join", 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 ( !.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 = 20; .@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); }
-
i will try this thanks anyway