Jump to content

Kubix

Members
  • Content Count

    150
  • Joined

  • Last visited

  • Days Won

    20

Everything posted by Kubix

  1. up: translated to English. Check this: https://rathena.org/board/topic/98306-bg-eamod/ @Kubix You will make a plugin of this? Yes I will try.
  2. Impossible, rA doesn't have queue commands.
  3. Try this. glast_01,210,270,0 script Hugin's Craftsman 726,{ disable_items; if (MaxWeight - Weight < 1000) { mes "Your bag is too heavy. Reduce some weight and come back."; close; } mes "[Hugin's Craftsman]"; mes "That Magic Master always says that enchanting Temporal Boots is the best. But, I think quite different."; next; mes "[Hugin's Craftsman]"; mes "I think putting a slot into the item would be the best. Even with some risk of failing."; next; mes "[Hugin's Craftsman]"; mes "Bring me ^0000FF5 Temporal Crystals^000000, and I will try to put a slot into your advanced Temporal Boots. But, it's possible to ^FF0000fail and break the item^000000. Is that ok?"; next; if (select("Cancel","Take the risk and try to add a slot") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } set .@part,EQI_SHOES; if (!getequipisequiped(.@part)) { mes "[Hugin's Craftsman]"; mes "Are you sure you are wearing the item?"; close; } set .@equip_id,getequipid(.@part); switch (.@equip_id) { case 22000: //Temporal_Str_Boots .@get_id = 22006,1; //Temporal_Str_Boots_ break; case 22001: //Temporal_Int_Boots .@get_id = 22009; //Temporal_Int_Boots_ break; case 22002: //Temporal_Agi_Boots .@get_id = 22010; //Temporal_Agi_Boots_ break; case 22003: //Temporal_Vit_Boots .@get_id = 22007; //Temporal_Vit_Boots_ break; case 22004: //Temporal_Dex_Boots .@get_id = 22008; //Temporal_Dex_Boots_ break; case 22005: //Temporal_Luk_Boots .@get_id = 22011; //Temporal_Luk_Boots_ break; default: mes "[Hugin's Craftsman]"; mes "This is not it! We need ^0000FFAdvanced Temporal Boots^000000 items! The item ^0000FFwith a stat effect and without a slot^000000!"; close; } for( .@i = 0; .@i < 4; .@i ++ ) setd "Craft_Card" + .@i, getequipcardid( .@equip_id, .@i ); mes "[Hugin's Craftsman]"; mes "And ^FF0000all enchant or refine rates will be lost if you fail this.^000000"; mes "Still want to risk it?"; next; if (select("Cancel","I am ok with it!") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } mes "[Hugin's Craftsman]"; mes "Once again, ^FF0000That Magic Master won't enchant any item with a slot.^000000"; mes "Still want to proceed?"; next; if (select("Cancel","I understand. Try to slot it.") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } if (countitem(6607) < 5) { mes "[Hugin's Craftsman]"; mes "You must bring ^0000FF5 Temporal Crystal items^000000. Nothing is free you know..."; close; } if (rand(1,100) <= 80) { //Custom rates mes "[Hugin's Craftsman]"; mes "Arrggg, we failed. Better luck next time."; specialeffect2 EF_PHARMACY_FAIL; delitem 6607,5; //Temporal_Crystal delequip .@part; close; } mes "[Hugin's Craftsman]"; //Custom text mes "Yuhuu~ we succeed. Here you are..."; mes "A slot has been added to your advanced Temporal Boots."; mes "Thank you for believing in me."; specialeffect2 EF_PHARMACY_OK; delitem 6607,5; //Temporal_Crystal delequip .@part; getitem2 .@get_id, 1, 1, 0, 0, getd( "Craft_Card0" ), getd( "Craft_Card1" ), getd( "Craft_Card2" ), getd( "Craft_Card3" ); close; }
  4. I don't know how to create a plugin, sorry.
  5. Hello! I find eAmod BGs in public and rewrite some src and scripts for Hercules. BG: Conquest Rush Flavius TD Register - @joinbg or NPC, leave - @leavebg This is queue BG with multiple windows checking by Gepard ID or IP. Items: 56 BG consumable items (using only on BG) with boxes 56 WoE consumable items (using only on WoE) with boxes Item list New script commands: bg_reward bg_team_reveal flooritem flooritem2xy bg_getitem bg_getkafrapoints bg_single bg_create_team (added OnPCDie and OnPCLogout events.) Settings: OnInit: // ===== Multiple Windows checking by ? // = 1 - Gepard Shield // = 2 - IP .MultipleCheck = 1; // ===== BG Colors setarray .BG_Color$[0], "0xDDA0DD", "0x7CCD7C", "0xFFA500"; // ===== BG NPC & Arena Names setarray .BG_Names$[0], "Rush", "Flavius TD", "Conquest"; setarray .BG_Arena$[0], "Rush", "Flavius_TD", "Conquest"; // ===== BG Player Amount setarray .BG_Min[0], 2, 2, 2; setarray .BG_Max[0], 30, 30, 30; // ===== BG Locations setarray .BG_Map$[0], "rush_cas04", "bat_b03", "schg_cas06"; // ===== BG X/Y Coordinates setarray .BG_GuillX[0], 270, 390, 264; setarray .BG_GuillY[0], 292, 10, 379; setarray .BG_CroixX[0], 270, 10, 295; setarray .BG_CroixY[0], 288, 290, 379; bindatcmd "joinbg", strnpcinfo(0) + "::OnJoinBG", 0, 99; bindatcmd "leavebg", strnpcinfo(0) + "::OnLeaveBG", 0, 99; // ===== Time to flood in seconds. .Flood_Time = 180; // ===== Enable debug mode? .debug = false; Sorry, not all instructions translated to English now. Github: https://github.com/kubixservice/QueueBG
  6. Why you not use : .bexp_rate = getbattleflag("base_exp_rates"); instead of : .bexp_rate = 10;
  7. upd. fixed cooldown issue
  8. How to make the View Point permanent pinging? it will be removed if the player is ALIVE, and i notice that a couple of seconds the viewpoint went gone? viewpoint 0, .x, .y, .@id, 0xFF0000; -> viewpoint 1, .x, .y, .@id, 0xFF0000; There is no label that triggers when player is resurrected, so i can't help with "it will be removed if the player is ALIVE"
  9. while( .loop < 12 ) { killmonsterall "map"; .loop ++; sleep 5000; }
  10. up. new version converted global variables -> instance variables.
  11. setarray .equipid[0], 1599; <= items that can be enchanted setarray .enchant[0], 9999; <= enchant item id setarray .itemsid[0], 909; <= items that need for enchant setarray .amounts[0], 1; .@menu$ = ""; for( .i = 0; .i < getarraysize( .equipid ); .i ++ ) { .@menu$ += ( .i + 1 ) + ". " + getitemname(.equipid[.i]; .@menu$ += ":"; } @select = select(.@menu$) - 1; if( !isequipped( .equipid[@select] ) ) { mes "equip the item first."; close; } @error = 0; for( .a = 0; .a < getarraysize( .itemsid ); .a ++ ) { if( countitem( .itemsid[.a] ) < .amounts[.a] ) close; // no items delitem .itemsid[.a], .amounts[.a]; } delitem .equipid[@select], 1; getitem2 .equipid[@select], 1, 1, 0, 1, 0, 0, 0, .enchant[0]; close; this is sample. need a menu for select the enchant orbs. But you can use this code for create your script (not tested)
  12. - script OnPCDieViewMap -1,{ OnPCDieEvent: if( getcharid(1) ) { getmapxy( .map$, .x, .y, UNITTYPE_PC ); getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; copyarray .@paid[0], $@partymemberaid[0], $@partymembercount; copyarray .@caid[0], $@partymembercid[0], $@partymembercount; for( .@i = 0; .@i < getarraysize(.@paid); .@i ++ ) { if( isloggedin( .@paid[.@i], .@caid[.@i] ) ) { attachrid( .@paid[.@i] ); .@id = rand(500); if( strcharinfo(3) == .map$ ) viewpoint 0, .x, .y, .@id, 0xFF0000; detachrid; } } } end; } Preview: https://gyazo.com/1e8aaaa304e13d9f9745264c9a0def08 https://gyazo.com/77928f04c9f80b8313200452bcfff33d
  13. // goto Hercules/src/map/skill.c, find HP_ASSUMPTIO skill and change this: if( sd && dstmd ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); else clif->skill_nodamage(src,bl,skill_id,skill_lv, sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); break; // to this: case HP_ASSUMPTIO: if(pc->isequipped(sd, ITEMID_ASSUMPTIOHEADGEAR)) { int index = 0; status->current_equip_item_index = index = sd->equip_index[EQI_HEAD_TOP]; if( sd == NULL || sd->status.party_id == 0 || (flag & 1) ) clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); else if( sd ) party->foreachsamemap(skill->area_sub, sd, (sd->status.inventory[index].refine >= 5? 5:3), src, skill_id, skill_lv, tick, flag|BCT_ALL|1, skill->castend_nodamage_id); } else { if( sd && dstmd ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); else clif->skill_nodamage(src,bl,skill_id,skill_lv, sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); } break; // goto Hercules/src/map/itemdb.h, find enum item_itemid { and add below this: ITEMID_ASSUMPTIOHEADGEAR = 1599, // 1599 = your item ID> Makes Assumptio affect friendly targets around your chosen target as well.> AOE will be 3x3 cell > if headgear is plus 5 AOE will be 5x5
  14. @@almarket23 For party members - maybe. For other - nope... but... maybe with SQL... idk.
  15. header: { OnPCLoadMapEvent: if( strcharinfo(3) == "prontera" ) announce "Hello, " + strcharinfo(0), bc_self; // self-announce end; } prontera[tab]mapflag[tab]loadevent OnPCLoadMapEvent: This special label will trigger once a player steps in a map marked with the 'loadevent' mapflag and attach its RID. The fact that this label requires a mapflag for it to work is because, otherwise, it'd be server-wide and trigger every time a player would change maps. Imagine the server load with 1,000 players (oh the pain...) Only the special labels which are not associated with any script command are listed here. There are other kinds of labels which may be triggered in a similar manner, but they are described with their associated commands.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.