Kaskus

Games

panda.mutzAvatar border
TS
panda.mutz
[TUTORIAL] Cara membuat Private Server sendiri ( Online / Offline )

Quote:


Spoiler for INFO:
tekan shift+X untuk membuka semua spoiler dan gunakan CTRL + F untuk mencari Tools / kata kunci yang akan di gunakan

Spoiler for Tools dan Server Stable:

note : tutorial menggunakan rAthena
Spoiler for part 1 | Download Server & Setting IP:


Spoiler for part 2 | Setting Database Server:


Spoiler for part 3 | Setting GRF file:


Spoiler for part 4 | Compile Server:


Spoiler for selingan ~:

Diubah oleh panda.mutz 20-10-2022 13:25
upstoreeeAvatar border
tien212700Avatar border
omblonxAvatar border
omblonx dan 3 lainnya memberi reputasi
2
248.1K
989
GuestAvatar border
Komentar yang asik ya
Mari bergabung, dapatkan informasi dan teman baru!
Ragnarok Online
Ragnarok Online
KASKUS Official
2.1KThread940Anggota
Tampilkan semua post
snnelwanAvatar border
snnelwan
#814
Buat para master skript tolong

1. ubah skrip dibawah ini supaya bisa enchant temporal str,vit,dex,int,agi,luk boots (item ID 22006, 22007, 22008, 22009, 22010, 22011)

2. hilangkan "60% low, 30% mid, 10% high for 1st & 2nd enchant slot && 40% low, 30% mid, 20% high, 10% special for 3rd enchant slot" yang ada di skrip

Code:

//===== rAthena Script =======================================
//= Unofficial Fallen Angel Wing (FAW) Enchants
//===== By: ==================================================
//= Nerfwood
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= Enchants FAW as per iROWiki's information
//= Dialogue are unofficial
//===== Additional Comments: =================================
//= 1.0 First Version
//============================================================

//Decreasing Chance of Enchantment
//max bonus
//max stats
function script EnchantStat_1 {

.chance = rand(1,10);

if(@card2 && @card3) { //For 4th Slot aka 3rd Enchant Slot

if(.chance<5) .x=0;
else if(.chance<7) .x=1;
else if(.chance<9) .x=2;
else .x=3;

}
else { //For 2nd and 3rd card slot aka 1st and 2nd Enchant Slot

if(.chance<7) .x=0;
else if(.chance<10) .x=1;
else .x=2;
}
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), .x );

}




//Equal Chance of Enchanting
function script EnchantStat_0 {
if(@card2 && @card3)
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), rand(0,3) );
else
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), rand(0,2) );

}


//=======MAIN NPC

moc_para01,180,24,3 script Valkyrie#faw 403,{
mes .npc$;
mes "I am capable of blessing the",
"magnificent ^000099Fallen Angel Wing^000000",
"with maximal attributes.",
"Would you like to enchant yours?";
if(countitem(2589)) {
set .@menu$, "Enchant Fallen Angel Wing";
}
else .@menu$="";
next;
switch(select("Information:" + .@menu$ + ":Reset Enchantment"))
{
case 1: goto OnInformation;
case 2: goto OnEnchantNow;
case 3: goto OnResetEnchant;
default: close;
}

OnInformation:
mes .npc$,
"I can enchant your",
"^000099Fallen Angel Wing^000000 for",
(.cost?callfunc("F_InsertComma",.cost)+"z":"free")+" to give it various",
"attributes. In fact, I can do it",
"twice if its refinement level is",
"+7 ~ +8, and thrice if its",
"+9 and above.";
next;
mes .npc$,
"The 3rd enchantment has a",
"the same stats",
"with the first two.";
next;
mes .npc$,
"There is no chance to",
"fail, so enchant away",
"as much as you like.";
next;
mes .npc$,
"But if you're not happy",
"with the results, you can",
"reset the enchantments",
"for ^009900"+ callfunc("F_InsertComma",.cost2) + "z^000000.";
next;
mes .npc$,
"That's about everything.";
close;

OnEnchantNow:
mes .npc$;
if( (getequipid(EQI_GARMENT)!=2589) ) {
mes "Please equip your",
"^000099Fallen Angel Wing^000000 if",
"you want to have it enchanted.";
if(!.autoequip) close;
next;
if(select("Equipemoticon-Big Grinon't Equip")==2) close;
equip 2589;
mes .npc$;
}
.@refeq = getequiprefinerycnt(EQI_GARMENT);
if(.@refeq<7) .@refeq2 = 1;
else if(.@refeq>8) .@refeq2 = 3;
else .@refeq2 = 2;

mes "You have a ^000099+" +.@refeq + " Fallen Angel Wing^000000.",
"It can have a total of " + .@refeq2 + " enchantment" +( .@refeq2>1?"s.":".")+" Please";
mes "select your preferred","enchantment.";
next;
setd ".@enc$", select("Fighting Enchant:Magic Enchant:Archer Enchant:Critical/Fatal Enchant:Max HP Enchant:Max SP Enchant:ASPD Enchant:STR Enchant:AGI Enchantemoticon-Big GrinEX Enchant:VIT Enchant:INT Enchant:LUK Enchant:Atk 7%:Matk 7%");
if(.cost) callsub OnCostlyEnchant;

@card1 = getequipcardid(EQI_GARMENT,0);
@card2 = getequipcardid(EQI_GARMENT,1);
@card3 = getequipcardid(EQI_GARMENT,2);
@card4 = getequipcardid(EQI_GARMENT,3);

if( @card2 && @card3 && @card4) {
mes .npc$,
"Hmm.. it seems that all",
"slots have already been enchanted.";
close;
}

.@EnStat = callfunc( (.chancetype?"EnchantStat_1":"EnchantStat_0"), .@enc$) ;

if(!@card2) callsub OnFawEnchant , .@EnStat , @card3 , @card4 , .@refeq;
else if(!@card3 && .@refeq>6) callsub OnFawEnchant , @card2 , .@EnStat , @card4 , .@refeq;
else if(!@card4 && .@refeq>8) callsub OnFawEnchant , @card2 , @card3 , .@EnStat , .@refeq;
else {
mes .npc$,
"Sorry, but your",
"^000099Fallen Angel Wing^000000's",
"refinement level is too",
"low to continue";
close;
}

mes .npc$,
"Your ^000099Fallen Angel Wing^000000 has",
"been enchanted with ^000099"+getitemname(.@EnStat)+"^000000.";
close;

OnFawEnChant:
delitem2 2589, 1, 1, getarg(3), 0, @card1, @card2, @card3, @card4;
getitem2 2589, 1, 1, getarg(3), 0, @card1, getarg(0), getarg(1), getarg(2);
specialeffect2 1019;
specialeffect2 98;
return;


OnResetEnchant:
mes .npc$,
"This will cost " + callfunc("F_InsertComma",.cost2) + "z.",
"Are you sure?";
next;
if(select("Yes:No")==2) close;
mes .npc$;
if(Zeny<10000) {
mes "You don't have enough zeny.";
close;
}
Zeny -= 10000;
mes "Your ^000099Fallen Angel Wing^000000's",
"enchantments have been reset.";
.@refeq = getequiprefinerycnt(EQI_GARMENT);
@card1 = getequipcardid(EQI_GARMENT,0);
@card2 = getequipcardid(EQI_GARMENT,1);
@card3 = getequipcardid(EQI_GARMENT,2);
@card4 = getequipcardid(EQI_GARMENT,3);
delitem2 2589, 1, 1, .@refeq, 0, @card1, @card2, @card3, @card4;
getitem2 2589, 1, 1, .@refeq, 0, @card1, 0, 0, 0;
specialeffect2 261;
specialeffect2 119;
close;

//Only called when .cost is defined
OnCostlyEnchant:
if(Zeny<.cost) {

mes .npc$,
"You don't have enough zeny.";
close;
}
Zeny -= .cost;
return;

OnInit:
.npc$ = "[^AA0000Valkyrie^000000]";
setarray .enc1[0], 4825,4825,4825, 4825; //Fighting max. -->bonus bBaseAtk,50; bonus bHit,15;
setarray .enc2[0], 4831,4831,4831, 4831; //Magic max. -->bMatk,50; bonus bVariableCastrate,-20
setarray .enc3[0], 4841,4841,4841, 4841; //Expert Arc max. -->bLongAtkRate,20; bonus bAspd,1;
setarray .enc4[0], 4866,4866,4866, 4866; //Fatal max. -->bCritAtkRate,10; bonus bCritical,4;
setarray .enc5[0], 4900,4900,4900, 4900; //MHPP max. -->bMaxHPrate,5;
setarray .enc6[0], 4802,4802,4802, 4802; //MaxSP max. -->bonus bMaxSP,150;
setarray .enc7[0], 4881,4881,4881, 4881; //ASPD max. -->bAspdRate,10;
setarray .enc8[0], 4853,4853,4853, 4853; //STR Special Str
setarray .enc9[0], 4853,4854,4854, 4854; //AGI Special Agi
setarray .enc10[0], 4857,4857,4857, 4857; //DEX Special DEX
setarray .enc11[0], 4855,4855,4855, 4855; //VIT Special Vit
setarray .enc12[0], 4856,4856,4856, 4856; //INT Special Int
setarray .enc13[0], 4858,4858,4858, 4858; //LUK Special Luk
setarray .enc14[0], 4905,4905,4905, 4905; //ATK 7%
setarray .enc15[0], 4907,4907,4907, 4907; //MaTK 7%

// 1 = 60% low, 30% mid, 10% high for 1st & 2nd enchant slot && 40% low, 30% mid, 20% high, 10% special for 3rd enchant slot
// 0 = Equal Chance
.chancetype = 1;
//Turn on Equip Selection if garment is unequipped? 1 = Yes
.autoequip =0;
//Cost for Enchanting. It's free in iRO
//.cost=0;
//Cost to reset | Costs 1Mz in iRO
.cost2 = 10000;
}
Diubah oleh snnelwan 06-04-2017 22:48
0
Ikuti KASKUS di
© 2026 KASKUS, PT Darta Media Indonesia. All rights reserved.