-
Posts
349 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Eross
-
-
Hi guys ! I need a little help with my instance settings.. This is how this should work...
#1. Party of 2 to 5 members to finish an instance. If they a player die 3x inside the instance, that player should warp out and automatically transfer the leadership (if the died player is the leader) [RANDOMLY] to any party member, so that the instance wont break. the condition is that member should be ONLINE..#2. When creating an instance the leader and members should share the quest price. For example the party has 4 members (including leader) and the amount to get quest is 10,000 zeny .. The NPC should check if party members and also the leader have enough zeny to pay for it .. so every member should have 2,500 zeny on their wallet..
here are my sample scripts .. Im really tired, apology if I messed up
This first one is not organized yet and Im kinda confused what to do with this- script mh_ghall -1,{ OnPCDieEvent: @die_count++; if (@die_count >= 1) { .@party_id = getcharid(1); if (is_party_leader(getcharid(1))) { getpartymember .@party_id, 1; party_changeleader(getcharid(1),$@partymembercid[rand(1,$@partymembercount)]); } party_delmember(getcharid(0)); @die_count = 0; end; } end; OnPCLogoutEvent: instance_destroy(instance_id(IM_PARTY)); set @instance_name$, ""; instance_active = 0; }
This is the creating of instance NPC
switch (@menu_instance) { case 1: case 2: case 3: case 4: if (instance_active > 0) { mes .@name$; mes "You have already created one. Kindly destroy instance before getting new one."; end; } instance_create(.@instance_name$[@menu_instance], IM_PARTY); set @instance_name$ , ""+.@instance_name$[@menu_instance]+""; instance_active = 1; break; case 5: mes .@name$; mes "Are you sure you want to destroy ["+.@instance_name$[@menu_instance]+"] instance?"; switch (select("I'm 100% sure!","No, cancel it!")) { case 1: dispbottom "["+@instance_name$+"] instance has been destroyed."; instance_destroy(instance_id(IM_PARTY)); specialeffect2 677; set @instance_name$, ""; instance_active = 0; end; break; case 2: end; } }
Thankyou !
-
Hi ! Im tryng to add instance and i am now on ID: 20 .. Everytime I try to add mo theres an error ,.. help
-
Hi sir this works good .. One more question .. What if my NPC for creating is different to the npc that will warp me to instance ??
-
4 hours ago, Hyroshima said:
could you explain better?
Hi ! what i mean is , is it possible to have multiple instances in one npc ?? like for example I have the gld_dun01 gld_dun02 ~ 03 instances ?
I mean , I want to make an NPC like this sir .. I have codes below , problems are noted with // .. Thankyou!setarray .@Instance_Name$[0], "gld_dun01", "gld_dun02", "gld_dun03"; switch (select("Create Instance", "Enter Instance", "Exit")) { case 1: set .@menu, select("Guild Dungeon 1","Guild Dungeon 2","Guild Dungeon 3"); switch(.@menu) { case 1: <create instance for gld01> break; case 2: <create instance for gld02> break; case 3: <create instance for gld03> break; } //NOW AFTER THE PLAYER CREATES INSTANCE THE NPC WILL THEN CLOSE DIALOGUE AND THE PLAYER WILL BE UNATTACHED TO NPC. //THE PROBLEM IS HERE IN CASE 2. MY QUESTION IS.... HOW WILL NPC REGNIZE YOUR CURRENT INSTANCE??? case 2: switch(instance_enter( PROBLEM #2 COZ MY INSTANCE NAMES ARE IN ARRAY FORM.. HOW WILL THE NPC KNOW WHAT INSTANCE TO RUN AND TO WARP MY CHARACTER???)) }
Because Ive noticed that instance npc like Endless tower has only 1 dedicated script/npc .. Im planning to make an NPC with many INSTANCES inside.. Please help thankyou ..
-
Hi ! I would like to ask if is it possible to have an array of Instance names (.@instance_name$)??
For example :
//prontera,155,181,5 script Guild Instance Officer 418,{ moc_para01,52,32,4 script Guild Instance Officer 418,{ .@InstanceCooldown = 28800; .@name$ = "["+strnpcinfo(0)+"]"; setarray .@instance_name$[0] = "gld_dun01","gld_dun02","gld_dun03","gld_dun04"; //if (!is_party_leader()) { mes .@name$; mes "You must be a party leader"; end;}; mes .@name$; mes "Today's featured instance guild dungeon is [^000088"+.@instance_name$+"^000000]!"; mes "What would you like to do?"; next; switch(select( "~ ^FF6900Create Instance^000000 -> 1,000,000 Z", "~ ^000088Enter Instance^000000 [^777777"+.@instance_name$+"^000000] -> 200,000 Z", "~ ^FF0000Destroy Current Instance^000000")) { case 1: if (#CD > gettimetick(2)) { mes .@name$; mes "You can create new instance after " + Time2Str(CD) + "."; end; } if (!is_party_leader()) { mes .@name$; mes "Only party leader can create an instance."; end;}; if (instance_picker > 0) { mes .@name$; mes "You have already created one. Kindly destroy instance before getting new one."; end; } callsub(OnCheckZenyCreate); #CD = gettimetick(2) + .@InstanceCooldown; instance_create(.@instance_name$, IM_PARTY); instance_picker = 1; specialeffect2 75; break; case 2: mes .@name$; mes "^FF0000Please note that Token of^000000"; mes "^FF0000Siegfried, Kafra Card^000000"; mes "^FF0000infinite fly wing and any teleport^000000"; mes "^FF0000skills are not allowed inside.^000000"; next; mes .@name$; mes "Ah! I almost Forgot, all guild"; mes "dungeons have two Bow and Sword Guardians."; next; if (select("Enter now","Cancel")==2) end; if ((countitem(40036) || countitem(12887) || countitem(40014) || countitem(12323) || countitem(40028) || countitem(6293) || countitem(40114) || countitem(12211) || countitem(40114) || countitem(40029) || countitem(13602) || countitem(14211) || countitem(13603) || countitem(14212) || countitem(12909) || countitem(14165) || countitem(7621) || countitem(13601) || countitem(14210) || countitem(13600) || countitem(14209) || countitem(12922) || countitem(14178)) > 0 ) { mes .@name$; mes "Kafra Card, Token of Siegfried or Flywing item or boxes on your inventory."; end; } switch(instance_enter(.@instance_name$)) { case IE_NOMEMBER: mes .@name$; mes "ERROR: Party not found."; break; case IE_NOINSTANCE: mes .@name$; mes "ERROR: Party does not have an instance."; break; case IE_OTHER: mes .@name$; mes "ERROR: Unknown error."; break; default: callsub(OnCheckZenyEntry); #CD = gettimetick(2) + .@InstanceCooldown; //announce "Player ["+strcharinfo(0)+"] has entered Guild Dungeon ["+.@instance_name$+"]!",BC_ALL; break; } break; case 3: if (instance_picker <= 0) { mes .@name$; mes "No current instance available to destroy."; end; } mes .@name$; mes "Are you sure you want to destroy ["+.@instance_name$+"] instance?"; switch (select("I'm 100% sure!","No, cancel it!")) { case 1: dispbottom "["+.@instance_name$+"] instance has been destroyed."; instance_destroy(instance_id(IM_PARTY)); specialeffect2 677; instance_picker = 0; break; case 2: end; } } close; OnCheckZenyCreate: .@name$ = "["+strnpcinfo(0)+"]"; if (Zeny < 1000000) { mes .@name$; mes "You don't have enough zeny to enter this instance."; end; } Zeny -= 1000000; return; OnCheckZenyEntry: .@name$ = "["+strnpcinfo(0)+"]"; if (Zeny < 200000) { mes .@name$; mes "You don't have enough zeny to enter this instance."; end; } Zeny -= 200000; return; //OnPCLogoutEvent: //OnPCLoginEvent: //OnPCDieEvent: //if (!IE_NOINSTANCE) end; //if (strcharinfo(3) != "gld_dun01" || strcharinfo(3) != "gld_dun02" || strcharinfo(3) != "gld_dun03" || strcharinfo(3) != "gld_dun04" || strcharinfo(3) != "schg_dun01" || strcharinfo(3) != "arug_dun01") end; //instance_announce('instance_id,"A party member has died! You have 5 minutes to resurect or the instance will be destroyed.",0); //instance_destroy(instance_id(IM_PARTY)); //instance_picker = 0; //end; }
If yes, how does the NPC recognize your chosen instance after creating instance and leaving npc ???
Quotesetarray .@instance_name$[0] = "gld_dun01","gld_dun02","gld_dun03","gld_dun04";
This post is related to my last topic ..
I hope someone help me agan. thanks
-
Hi I tried this but nothing happened
-
9 hours ago, EIysium said:
Go to db/pre-re/status.yml and search Impositio
- Status: Impositio Icon: EFST_IMPOSITIO DurationLookup: PR_IMPOSITIO CalcFlags: Watk: true Flags: SuperNoviceAngel: true End: Impositio: true
to
- Status: Impositio Icon: EFST_IMPOSITIO DurationLookup: PR_IMPOSITIO CalcFlags: Watk: true Matk: true Flags: SuperNoviceAngel: true End: Impositio: true
Thanks ! Ill try this when I get home .. Seems rathena make it more easier to adjust
-
Good day ! I need help on activating the matk bonus on impositio magnus please to pre-renewal .. Last time I did it on my old server is I just change this line from the previous rathena status.cpp
set_sc( KN_AUTOCOUNTER , SC_AUTOCOUNTER , EFST_AUTOCOUNTER , SCB_NONE ); set_sc( PR_IMPOSITIO , SC_IMPOSITIO , EFST_IMPOSITIO , SCB_WATK #ifdef RENEWAL |SCB_MATK ); #else |SCB_MATK );
but when I used the new repo those lines are gone .. can you help me please ?
-
23 hours ago, kalabasa said:
Thankyou for your response .. But isnt it doable with SRC so I can give a specific formula for each skill ?
-
Good day folks ! Just need a little help .. Is it possible in battle.cpp to make a separate effect or damage depending on map (normal, pvp and gvg) ??
Example is PA_SACRIFICE ...
case PA_SACRIFICE: skillratio += -10 + 10 * skill_lv; break;
is there a code like this ?
case PA_SACRIFICE: #ifdef map_flag_gvg skillratio += -10 + 2 * skill_lv; #endif skillratio += -10 + 10 * skill_lv; break; ----------- OR -------------- case PA_SACRIFICE: #ifdef map_flag_pvp skillratio += -10 + 2 * skill_lv; #endif skillratio += -10 + 10 * skill_lv; break;
Or is there a more easier way to do this ? Thankyou ! I hope someone notice my post .. Have a nice day !!
-
On 4/13/2022 at 7:06 PM, DEsMOn said:
Hello Scripters,
Having issue in this script can anyone solve this?
//===== rAthena Script ======================================= //= MVP Ladder Game //===== By: ================================================== //= aftermath, AnnieRuru (rewrite) //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Gather a party and kill every MVP in ascending order. //===== Additional Comments: ================================= //= 1.0 First version, edited. [Euphy] //============================================================ prontera,170,169,3 script MvP Ladder Warper 404,{ mes "[MvP Ladder Warper]"; mes "Say... do you want to play the MvP Ladder game?"; next; switch(select("Yes, let's get it on!:Information.:Show me the best record.:No.")) { case 1: break; case 2: mes "[MvP Ladder Warper]"; mes "In this game, your party has to kill every single MvP monster in ascending order, from the weakest to strongest."; if ( .finish_item_amount ) mes "If your party can finish the MVP ladder game, each member will earn "+ callfunc("F_InsertPlural", .finish_item_amount, getitemname( .finish_item_id )) +"."; if ( .register_cost ) mes "But the entrance fee is "+ callfunc( "F_InsertComma", .register_cost ) +" zeny."; next; mes "[MvP Ladder Warper]"; mes "You lose the game if you can't finish in "+ .timeout +" minutes, or if your entire party is killed."; mes "Good luck!"; close; case 3: mes "[MvP Ladder Warper]"; if ( !$mvpladdderparty_time ) { mes "Nobody has finished this game yet."; close; } mes "The best record is"; mes "[ "+( $mvpladdderparty_time / 60 )+" min "+( $mvpladdderparty_time % 60 )+" sec ]"; mes "By the party ^FF0000"+ $mvpladdderparty_name$ +"^000000."; .@size = getarraysize( $mvpladderparty_member$ ); for ( .@i = 0; .@i < .@size; .@i++ ) mes "^000000"+ ( .@i +1 ) +". ^0000FF"+ $mvpladderparty_member$[.@i]; if ( getgmlevel() < .gmlvlreset ) close; next; if ( select( "Close.", "Reset the record." ) == 1 ) close; if ( select( "Never mind.", "I really want to reset it." ) == 1 ) close; $mvpladdderparty_time = 0; $mvpladdderparty_name$ = ""; deletearray $mvpladderparty_member$[.@i]; mes "[MvP Ladder Warper]"; mes "Record reset successfully."; close; case 4: mes "[MvP Ladder Warper]"; mes "When you are strong enough to complete the game, please come back."; close; } if ( !getcharid(1) ) { mes "[MvP Ladder Warper]"; mes "You have to form a party to play."; close; } if ( is_party_leader() == false ) { mes "[MvP Ladder Warper]"; mes "Only the party leader can register."; close; } .@origin = getcharid(3); getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == strnpcinfo(4) ) .@online++; } } attachrid .@origin; if ( $@partymembercount != .register_min ) { mes "[MvP Ladder Warper]"; mes "You have to form a party with exactly "+ .register_min +" members to play."; close; } else if ( .@online != .register_min ) { mes "[MvP Ladder Warper]"; mes "Your party must have "+ .register_min +" members online on map '"+ strnpcinfo(4) +"'."; close; } else if ( .register_cost && Zeny < .register_cost ) { mes "[MvP Ladder Warper]"; mes "You don't have enough zeny. Please come back when you do."; close; } else if ( .party_id ) { mes "[MvP Ladder Warper]"; mes "I'm sorry, but a party is currently playing the game. Please standby until the party is finished."; mes "Thank you."; close; } Zeny -= .register_cost; announce "The party ["+ strcharinfo(1) +"] has started the MvP ladder game.", bc_all; set .party_id, getcharid(1); set .@time_enter, gettimetick(2); for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == strnpcinfo(4) ) { announce "You have "+ .timeout +" minutes to complete "+ .totalround +" rounds.", bc_self; .@name$[.@c] = strcharinfo(0); .@c++; } } } cleanmap .eventmap$; warpparty .eventmap$, 0,0, .party_id, strnpcinfo(4); donpcevent strnpcinfo(0)+"::OnMvpDead"; sleep .timeout * 60000; if ( .round == .totalround +1 ) { getpartymember .party_id, 1; getpartymember .party_id, 2; mapannounce .eventmap$, "Congratulations... You were able to defeat all the MVPs!", bc_map; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .finish_item_id, .finish_item_amount; } } set .@timeused, gettimetick(2) - .@time_enter; if ( .bonus_item_amount && .@timeused < .bonus_time * 60 ) { mapannounce .eventmap$, "You are rewarded a bonus item for completing the ladder within "+ .bonus_time +" minutes.", bc_map; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .bonus_item_id, .bonus_item_amount; } } } if ( !$mvpladdderparty_time || .@timeused < $mvpladdderparty_time ) { mapannounce .eventmap$, "And you broke the record! [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map; set $mvpladdderparty_time, .@timeused; set $mvpladdderparty_name$, getpartyname( .party_id ); copyarray $mvpladderparty_member$, .@name$, .register_min; } else mapannounce .eventmap$, "Time used [ "+( .@timeused / 60 )+" min "+( .@timeused % 60 )+" sec ]", bc_map; sleep 10000; announce "The party ["+ getpartyname( .party_id ) +"] has finished the MvP ladder game!", bc_all; } else announce "The party ["+ getpartyname( .party_id ) +"] has failed to finish the MvP ladder game.", bc_all; mapwarp .eventmap$, .map$, .x, .y; killmonsterall .eventmap$; .party_id = .round = 0; end; OnMvpDead: getpartymember .party_id, 1; getpartymember .party_id, 2; .round++; if ( .round >= 2 && .round != .totalround +1 && .round_item_amount ) { for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ ) getitem .round_item_id, .round_item_amount; } } } if ( .round == .totalround +1 ) { awake strnpcinfo(0); end; } else if ( .round == .totalround ) mapannounce .eventmap$, "The final Round will begin in "+ .delay +" seconds...", bc_map; else mapannounce .eventmap$, "Starting round "+ .round +" in "+ .delay +" seconds...", bc_map; sleep .delay * 1000; if ( .mvpid[.round] == 1646 ) // pick random Bio3 MVP .mvpid[.round] = rand(1646,1651); monster .eventmap$,0,0, "--ja--", .mvpid[.round], 1, strnpcinfo(0)+"::OnMvpDead"; mapannounce .eventmap$, getmonsterinfo( .mvpid[.round], MOB_NAME ) +" has spawned!", bc_map|bc_blue; end; OnPCLogoutEvent: if ( hp > 0 ) .@less_one = 1; else end; OnPCDieEvent: if ( strcharinfo(3) != .eventmap$ || !getcharid(1) ) end; if ( getcharid(1) != .party_id ) end; getpartymember .party_id, 1; getpartymember .party_id, 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == .eventmap$ && hp > 0 ) .@alive++; } } if ( .@less_one ) .@alive--; if ( !.@alive ) { mapannounce .eventmap$, "Party wiped!", bc_map; sleep 10000; awake strnpcinfo(0); } end; OnInit: // Configurations ----------------------------------------------------- // Time limit (in minutes) // When time runs out, all players inside the room will be kicked out. // Do NOT set this to zero! set .timeout, 60; // entrance fee (in Zeny) set .register_cost, 100000; // exact amount of party members needed to start the game set .register_min, 2; // id of each mvp. you can add more setarray .mvpid[1], 1086,// Golden Thief Bug 64 1115,// Eddga 65 1150,// Moonlight Flower 67 1159,// Phreeoni 69 1112,// Drake 70 1583,// Tao Gunka 70 1492,// Incantation Samurai 71 1046,// Doppelgangger 72 1252,// Garm 73 1418,// Evil Snake Lord 73 1059,// Mistress 74 1190,// Orc Lord 74 1087,// Orc Hero 77 1251,// Knight of Windstorm 77 1038,// Osiris 78 1658,// Ygnizem 79 1272,// Dark Lord 80 1147,// Maya 81 1785,// Atroce 82 1389,// Dracula 85 1630,// Bacsojin 85 1885,// Gorynych 85 1511,// Amon Ra 88 1688,// Lady Tanee 89 1157,// Pharaoh 93 1312;// Turtle General 97 // number of rounds (default: 39) set .totalround, getarraysize(.mvpid) -1; // item reward for completing each round set .round_item_id, 34139; set .round_item_amount, 2; // item reward for completing the entire ladder set .finish_item_id, 22654; set .finish_item_amount, 10; // bonus reward if ladder completed within a certain time (in minutes) set .bonus_time, 45; // if completed within 45 minutes, this reward is given set .bonus_item_id, 7227; set .bonus_item_amount, 10; // time delay between rounds, in seconds (default: 3) set .delay, 5; // minimum GM level to reset the best record set .gmlvlreset, 99; // event map set .eventmap$, "guild_vs2-2"; // mapflag configuration setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_nosave, mf_nomemo, mf_noteleport, // mf_nopenalty, // disable exp loss mf_noreturn, // mf_nobranch, // mf_nomobloot, // disable monster drop loots, // mf_nomvploot, // 2 of these mf_partylock; // Config Ends -------------------------------------------------------------- mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map; getmapxy .map$, .x, .y, BL_NPC; mapwarp .eventmap$, .map$, .x, .y; killmonsterall .eventmap$; .@size = getarraysize( .@mapflag ); for ( .@i = 0; .@i < .@size; .@i++ ) setmapflag .eventmap$, .@mapflag[.@i]; end; }
can you show us the error ? its on your donpcevent link i supposed..
-
7 minutes ago, IsabelaFernandez said:
hi partners.
I would like this script instead of needing zeny to require items in this case the item ID 7420 (skull) in order to be enchanting.prontera,161,173,3 script Encantador 933,{
mes "eu posso encantar "+getitemname( .faw_itemid );
mes " ";
if( getequipid( EQI_GARMENT ) == .faw_itemid ){.@refine = getequiprefinerycnt( EQI_GARMENT );
for( .@i = 0; .@i < 4; .@i++ )
.@card[.@i] = getequipcardid( EQI_GARMENT,.@i );
switch( select( "Encantar o item.","Resetar encantamentos." ) ){
case 1:
mes "Escolha um slot para encantar.";
mes "Você pode encantar mais slots quando tiver um refinamento superior.";
.@slot = select(
( .@card[1] || .@refine < 7 )?"":"Enchant Slot 1",
( .@card[2] || .@refine < 8 )?"":"Enchant Slot 2",
( .@card[3] || .@refine < 9 )?"":"Enchant Slot 3",
"Cancel"
);
if( .@slot < 4 ){
mes "Pick Enchant Type";
.@type = select( .enchant_type_menu$ ) - 1;
.@size = .enchant_list_size[.@type];
if( .@size ){
copyarray .@enchant_list[0],getd( ".enchant_list_"+( .@type+1 )+"[0]" ),.@size;
if( .@refine >= 9 ){
.@enchant_list[.@size] = .special_enchant[.@type];
.@size++;
}
delequip EQI_GARMENT;
if( rand( 100 ) < .success_rate ){
setd( ".@card["+.@slot+"]" ),.@enchant_list[ rand( .@size ) ];
mes "Pronto, item encantado com sucesso.";
getitem2 .faw_itemid,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
equip .faw_itemid;
}else{
mes "Que pena, não conseguimos encantar o item.";
}
}
}
break;
case 2:
mes "Você precisa "+.enchant_reset_Zeny+" Zeny.";
if( Zeny >= .enchant_reset_Zeny ){
if( select( "Confirmar para resetar todos os encantamentos?","Cancelar" ) == 1 ){
if( !.@card[1] && !.@card[2] && !.@card[3] ){
mes "Seu item não tem nenhum item encantado.";
}else{
Zeny -= .enchant_reset_Zeny;
delequip EQI_GARMENT;
getitem2 .faw_itemid,1,1,.@refine,0,.@card[0],0,0,0;
equip .faw_itemid;
mes "Concluído removido todos os itens encantados.";
}
}
}
default: break;
}
}else{
mes "Certifique-se de estar equipado com "+getitemname( .faw_itemid );
}
close;
OnInit:
// FAW item id
.faw_itemid = 2589;// enchant success rate
.success_rate = 100;// enchant reset cost
.enchant_reset_Zeny = 1000000;// enchant type category
setarray .enchant_type$,"Espírito do Lutador","Pedra Mágica","Mira Apurada","Crítico","MaxHP","MaxSP","ASPD","STR","AGI","DEX","VIT","INT","LUK";// enchant list ( Fighting Spirit )
setarray .enchant_list_1,4810,4809,4808;
// enchant list ( Magic )
setarray .enchant_list_2,4812,4827,4826;
// enchant list ( Archer )
setarray .enchant_list_3,4832,4833,4834;
// enchant list ( Critical )
setarray .enchant_list_4,4764,4765;
// enchant list ( Max HP )
setarray .enchant_list_5,4797,4798,4799;
// enchant list ( Max SP )
setarray .enchant_list_6,4870,4800,4801;
// enchant list ( ASPD )
setarray .enchant_list_7,4807,4842;
// enchant list ( STR )
setarray .enchant_list_8,4702,4703,4704;
// enchant list ( AGI )
setarray .enchant_list_9,4732,4733,4734;
// enchant list ( DEX )
setarray .enchant_list_10,4722,4723,4724;
// enchant list ( VIT )
setarray .enchant_list_11,4742,4743,4744;
// enchant list ( INT )
setarray .enchant_list_12,4712,4713,4714;
// enchant list ( LUK )
setarray .enchant_list_13,4752,4753,4754;// extra 1 special enchant for 3rd slot if refine above 9 ( follow by category sequences )
//setarray .special_enchant,4821,4828,4835,4765,4868,4801,4807,4853,4854,4857,4855,4856,4858;
.enchant_type_size = getarraysize( .enchant_type$ );
for( .@i = 0; .@i < .enchant_type_size; .@i++ ){
.enchant_list_size[.@i] = getarraysize( getd( ".enchant_list_"+( .@i+1 ) ) );
if( !.enchant_list_size[.@i] ){
.enchant_type$[.@i] = "";
}
else{
.enchant_type_menu$ = .enchant_type_menu$ + .enchant_type$[.@i];
}
.enchant_type_menu$ = .enchant_type_menu$ + ":";
}
end;
}prontera,161,173,3 script Encantador 933,{ mes "eu posso encantar "+getitemname( .faw_itemid ); mes " "; if( getequipid( EQI_GARMENT ) == .faw_itemid ){ .@refine = getequiprefinerycnt( EQI_GARMENT ); for( .@i = 0; .@i < 4; .@i++ ) .@card[.@i] = getequipcardid( EQI_GARMENT,.@i ); switch( select( "Encantar o item.","Resetar encantamentos." ) ){ case 1: mes "Escolha um slot para encantar."; mes "Você pode encantar mais slots quando tiver um refinamento superior."; .@slot = select( ( .@card[1] || .@refine < 7 )?"":"Enchant Slot 1", ( .@card[2] || .@refine < 8 )?"":"Enchant Slot 2", ( .@card[3] || .@refine < 9 )?"":"Enchant Slot 3", "Cancel" ); if( .@slot < 4 ){ mes "Pick Enchant Type"; .@type = select( .enchant_type_menu$ ) - 1; .@size = .enchant_list_size[.@type]; if( .@size ){ copyarray .@enchant_list[0],getd( ".enchant_list_"+( .@type+1 )+"[0]" ),.@size; if( .@refine >= 9 ){ .@enchant_list[.@size] = .special_enchant[.@type]; .@size++; } delequip EQI_GARMENT; if( rand( 100 ) < .success_rate ){ setd( ".@card["+.@slot+"]" ),.@enchant_list[ rand( .@size ) ]; mes "Pronto, item encantado com sucesso."; getitem2 .faw_itemid,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3]; equip .faw_itemid; }else{ mes "Que pena, não conseguimos encantar o item."; } } } break; case 2: mes "Você precisa "+.enchant_reset_skull+" Skulls."; if(countitem(7420) >= .enchant_reset_skull) { if( select( "Confirmar para resetar todos os encantamentos?","Cancelar" ) == 1 ){ if( !.@card[1] && !.@card[2] && !.@card[3] ){ mes "Seu item não tem nenhum item encantado."; }else{ getitem 7420, .enchant_reset_skull; delequip EQI_GARMENT; getitem2 .faw_itemid,1,1,.@refine,0,.@card[0],0,0,0; equip .faw_itemid; mes "Concluído removido todos os itens encantados."; } } } default: break; } }else{ mes "Certifique-se de estar equipado com "+getitemname( .faw_itemid ); } close; OnInit: // FAW item id .faw_itemid = 2589; // enchant success rate .success_rate = 100; // enchant reset cost .enchant_reset_Zeny = 1000000; // enchant reset cost (skull) .enchant_reset_skull = 10; // enchant type category setarray .enchant_type$,"Espírito do Lutador","Pedra Mágica","Mira Apurada","Crítico","MaxHP","MaxSP","ASPD","STR","AGI","DEX","VIT","INT","LUK"; // enchant list ( Fighting Spirit ) setarray .enchant_list_1,4810,4809,4808; // enchant list ( Magic ) setarray .enchant_list_2,4812,4827,4826; // enchant list ( Archer ) setarray .enchant_list_3,4832,4833,4834; // enchant list ( Critical ) setarray .enchant_list_4,4764,4765; // enchant list ( Max HP ) setarray .enchant_list_5,4797,4798,4799; // enchant list ( Max SP ) setarray .enchant_list_6,4870,4800,4801; // enchant list ( ASPD ) setarray .enchant_list_7,4807,4842; // enchant list ( STR ) setarray .enchant_list_8,4702,4703,4704; // enchant list ( AGI ) setarray .enchant_list_9,4732,4733,4734; // enchant list ( DEX ) setarray .enchant_list_10,4722,4723,4724; // enchant list ( VIT ) setarray .enchant_list_11,4742,4743,4744; // enchant list ( INT ) setarray .enchant_list_12,4712,4713,4714; // enchant list ( LUK ) setarray .enchant_list_13,4752,4753,4754; // extra 1 special enchant for 3rd slot if refine above 9 ( follow by category sequences ) //setarray .special_enchant,4821,4828,4835,4765,4868,4801,4807,4853,4854,4857,4855,4856,4858; .enchant_type_size = getarraysize( .enchant_type$ ); for( .@i = 0; .@i < .enchant_type_size; .@i++ ){ .enchant_list_size[.@i] = getarraysize( getd( ".enchant_list_"+( .@i+1 ) ) ); if( !.enchant_list_size[.@i] ){ .enchant_type$[.@i] = ""; } else{ .enchant_type_menu$ = .enchant_type_menu$ + .enchant_type$[.@i]; } .enchant_type_menu$ = .enchant_type_menu$ + ":"; } end; }
-
hi guys im using 20211103 client .. damage shows like this
-
Hi ! does anyone here have these buttons ?
Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_change_a.bmp Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_change_b.bmp Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_change_c.bmp Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_off_a.bmp Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_off_b.bmp Texture/À¯ÀúÀÎÅÍÆäÀ̽º/basic_interface/btn_e_off_c.bmp
Im currently getting an error .. after trying to make buttons it appears that the off button is at the middle off change button. I honestly have no Idea for this yet. Please help ..Thankyou !
-
Just now, Start_ said:
Yes, try research 'bonus_script' and use
bonus2 bSkillCooldown,sk,t; Increases cooldown of skill sk by t milliseconds
to adjust skill cooldown when enter specific maps.
How about on skill in src for example ?
case AS_GRIMTOOTH: skillratio += 20 * skill_lv; break;
How to make it skillratio for gvg and for normal ??
-
1 hour ago, Start_ said:
Use bonus_script and add cooldown item bonuses.
Hi ..I mean on skills
-
Hi good day! Is it possible to make skill have different cooldowns, behavior, damage etc base on map? Like for example ASURA STRIKE, in pvp it has a cooldown of 3seconds but in normal maps it has none, also in damage for example theres a skill with 100+10*skill level on normal map but different formula in pvp and gvg. Thankyou
-
Hi good day! Is it possible to make skill have different cooldowns, behavior, damage etc base on map? Like for example ASURA STRIKE, in pvp it has a cooldown of 3seconds but in normal maps it has none. Thankyou
-
On 2/4/2022 at 11:47 PM, Akkarin said:
You can just ignore it - newer clients don't use it.
I patched it using NEMO with recommended
Also added the READ DATA FOLDER FIRST for my sclientinfo.xmlbut after selecting services it cannot go through character select sir
Im getting this kind of error
-
23 minutes ago, Akkarin said:
I'm using recommended patches and a selection of others and the 20211103 client works perfectly fine.
Hi how about packet_obfus should I turn it off ?? coz nemo cant disable it on client 20111103
-
Just now, Start_ said:
20211103 should already set in \rathena\src\config\packets.hpp lines 16
If it wasn't, you may have to update your rAthena.
Yes I set it here
#ifndef PACKETVER /// Do NOT edit this line! To set your client version, please do this instead: /// In Windows: Add this line in your src\custom\defines_pre.hpp file: #define PACKETVER YYYYMMDD /// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD #define PACKETVER 20211103 #endif
-
11 minutes ago, Start_ said:
Maybe 0x0 mean not enabled.
I dont think so ..And also notice the client version there it says 20180621 while Ive already set my 20211103 client on packets.hpp and custom/defines_post and defines_pre.hpp files
-
Good day ! Just need a small help guys , I commented the PACKET_OBFUSCATION part in packets.hpp but still enabled
#if PACKETVER >= 20110817 /// Comment to disable the official packet obfuscation support. /// This requires PACKETVER 2011-08-17 or newer. #ifndef PACKET_OBFUSCATION //#define PACKET_OBFUSCATION // Define these inside src/custom/defines_pre.hpp or src/custom/defines_post.hpp //#define PACKET_OBFUSCATION_KEY1 <key1> //#define PACKET_OBFUSCATION_KEY2 <key2> //#define PACKET_OBFUSCATION_KEY3 <key3> /// Comment this to disable warnings for missing client side encryption #define PACKET_OBFUSCATION_WARN #endif
-
9 minutes ago, Mael said:
Your problem is in the setting up... You will have to wait for all the patches, the client is still new.
Got it ..but for the mean time what client ver do you prefer or you can suggest ..im looking for client that has a feature like map name banner .. like example I warp in Prontera, theres a banner that says PRONTERA on top of screen ..what client version has that
Regarding Instance Enter
in Scripting Support
Posted
Hi ! Im using the instance_enter command on my script .. How to make the whole party enter at once ? is it possible that when the party leader initiate to enter then all members will be warped at once ? thanks