-
Posts
416 -
Joined
-
Last visited
-
Days Won
6
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Shakto
-
[Error]: The server communication passwords (default s1/p1) are probably invalid. Did you change that ?
-
Server Make_Listen_bind: bind failed <Socket #1, Code 10048>!
Shakto replied to JoshXp's question in Installation Support
Unlock your ports That mean your server can't have acces to your port (already busy or not open) -
//===== rAthena Script ======================================= //= All-in-One NPC //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6 //===== Description: ========================================= //= A compilation of commonly-used NPC scripts. //== Includes job changer, stylist, refiner, card remover, //== coin exchanger, rentals, resetter, platinum skills, //== sex changer, identifier, healer, buffer, and repairman. //============================================================ prontera,148,174,6 script All-in-One NPC 953,{ function Get_Platinum; function Equip_Menu; if (getarraysize(.OnClick)) { if (.OnClick[0]) { specialeffect2 313; percentheal 100,100; } if (.OnClick[1]) { specialeffect2 42; sc_start SC_BLESSING,600000,10; specialeffect2 37; sc_start SC_INCREASEAGI,600000,10; } if (.OnClick[2] && getbrokenid(1)) { specialeffect2 101; atcommand "@repairall"; } } set .@menu$,""; for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) { if (.MenuOption & pow(2,.@i)) set .@menu$, .@menu$+" ~ "+.MainMenu$[.@i]; set .@menu$, .@menu$+":"; } switch(select(.@menu$)) { case 1: function Job_Menu; function A_An; if (Class > 4049) { message strcharinfo(0),"No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { message strcharinfo(0),"Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { message strcharinfo(0),"Please use all your skill points before proceeding."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } if (Class > 21) { Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); } } set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; if (Class == Job_Ninja) setarray .@exp[0],.@j1,70; if (.@exp[0] && .ThirdClass) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } Job_Menu(.@exp[0]); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { message strcharinfo(0),"No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) message strcharinfo(0),"A job level of "+.JobReq[0]+" is required to change into the 1st Class."; else if (Class == 4001 && .LastJob && lastJob) Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); default: message strcharinfo(0),"An error has occurred."; break; } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) message strcharinfo(0),"No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) message strcharinfo(0),"A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) Job_Menu(lastJob+4001); else Job_Menu(.@j1,.@j2); close; function Job_Menu { if (getargcount() > 1) { set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; } while(1) { if (getargcount() > 1) { set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; } else set .@i, getarg(0); if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { message strcharinfo(0),"A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; } else if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777Go back^000000")==1) { message strcharinfo(0),"Became "+A_An(jobname(.@i))+"!"; if (.@i==4001 && .LastJob) set lastJob, Class; jobchange .@i; if (.@i==4001 || .@i==4023) resetlvl(1); specialeffect2 338; specialeffect2 432; if (.Platinum) Get_Platinum; close; } if (getargcount() == 1) return; } end; } function Get_Platinum { skill 142,1,0; switch(BaseClass) { case 0: if (Class !=23) skill 143,1,0; break; case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; case 2: skill 157,1,0; break; case 3: skill 147,1,0; skill 148,1,0; break; case 4: skill 156,1,0; break; case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; default: break; } switch(roclass(eaclass()&EAJ_UPPERMASK)) { case 7: skill 1001,1,0; break; case 8: skill 1014,1,0; break; case 9: skill 1006,1,0; break; case 10: skill 1012,1,0; skill 1013,1,0; break; case 11: skill 1009,1,0; break; case 12: skill 1003,1,0; skill 1004,1,0; break; case 14: skill 1002,1,0; break; case 15: skill 1015,1,0; skill 1016,1,0; break; case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; case 17: skill 1005,1,0; break; case 18: skill 238,1,0; break; case 19: skill 1010,1,0; break; case 20: skill 1011,1,0; break; default: break; } return; } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } case 2: setarray .@Look[1],7,1,6; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); set .@Style,1; while(1) { setlook .@Look[.@s], .@Style; message strcharinfo(0),"This is style #"+.@Style+"."; set .@menu$, " ~ Next (^0055FF"+((.@Style!=.Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; switch(select(.@menu$)) { case 1: set .@Style, ((.@Style!=.Styles[.@s])?.@Style+1:1); break; case 2: set .@Style, ((.@Style!=1)?.@Style-1:.Styles[.@s]); break; case 3: message strcharinfo(0),"Choose a style between 1 - "+.Styles[.@s]+"."; input .@Style,0,.Styles[.@s]; if (!.@Style) set .@Style, rand(1,.Styles[.@s]); break; case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } } end; case 3: if (.Prices[0]) message strcharinfo(0),"It costs "+.Prices[0]+" Zeny to remove cards."; Equip_Menu(0); if (Zeny < .Prices[0]) { message strcharinfo(0),"You don't have enough Zeny."; close; } set .@j,getequipcardcnt(@i); if (!.@j) { message strcharinfo(0),"There are no cards compounded to "+getequipname(@i)+"."; close; } if (!checkweight(4001,(.@j+1))) { message strcharinfo(0),"You're carrying too many items!"; close; } message strcharinfo(0),"Item: "+getequipname(@i); if (select(" ~ Remove "+.@j+" card(s): ~ ^777777Cancel^000000")==2) close; set Zeny, Zeny-.Prices[0]; successremovecards @i; message strcharinfo(0),"Cards successfully removed!"; close; case 4: if (Zeny < .Prices[2]) { message strcharinfo(0),"It costs "+.Prices[2]+" Zeny to rent."; close; } if (ismounting()) { message strcharinfo(0),"You must first remove your mount."; close; } else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) { if (!checkfalcon() && getskilllv(127) && !checkwug()) { if(select(" ~ Falcon: ~ Warg")==1) setfalcon; else getitem 6124,1; } else getitem 6124,1; } else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv(39)) { if (!checkmadogear() && getskilllv(2255)) { if(select(" ~ Cart: ~ Mado")==1) setcart; else setmadogear; } else setcart; } else if (!checkcart() && getskilllv(39)) setcart; else if (!checkfalcon() && getskilllv(127) && !checkwug()) setfalcon; else if (!checkriding() && getskilllv(63)) { if (eaclass()&EAJ_THIRDMASK==EAJ_RUNE_KNIGHT) setdragon; else setriding; } else if (!checkmadogear() && getskilllv(2255)) setmadogear; else { message strcharinfo(0),"You do not meet requirements to rent."; close; } set Zeny, Zeny-.Prices[2]; specialeffect2 276; close; case 5: if (.Prices[1]) message strcharinfo(0),"It costs "+.Prices[1]+" Zeny to reset stats or skills."; set .@i, select(" ~ Stat reset: ~ Skill reset: ~ Cancel"); if (.@i==3) close; if (Zeny < .Prices[1]) { message strcharinfo(0),"You don't have enough Zeny."; close; } set Zeny, Zeny-.Prices[1]; if (.@i==1) ResetStatus; else { sc_end SC_ALL; ResetSkill; } message strcharinfo(0),((.@i==1)?"Stats":"Skills")+" reset!"; close; case 6: Get_Platinum; specialeffect2 441; message strcharinfo(0),"Platinum skills received!"; close; case 7: set .@Var$, ".SexChange"+((Sex)?"F":"M"); if (getarraysize(getd(.@Var$))) { message strcharinfo(0),"To turn into a "+((Sex)?"female":"male")+" you need the following items:"; sleep2 1000; for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) { message strcharinfo(0),getd(.@Var$+"["+(.@i+1)+"]")+"x "+getitemname(getd(.@Var$+"["+.@i+"]")); if (countitem(getd(.@Var$+"["+.@i+"]")) < getd(.@Var$+"["+(.@i+1)+"]")) set .@nreq,1; sleep2 500; } if (.@nreq) close; } if(select(" ~ Change into a "+((Sex)?"female":"male")+": ~ Cancel")==2) close; if (getarraysize(getd(.@Var$))) for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) delitem getd(.@Var$+"["+.@i+"]"), getd(.@Var$+"["+(.@i+1)+"]"); changesex; end; case 8: setarray .@Total[0],0,0; getinventorylist; for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) { if (@inventorylist_identify[.@i]) continue; if (Zeny < .Prices[3]) { dispbottom "It costs "+.Prices[3]+" to identify an item."; break; } set Zeny, Zeny-.Prices[3]; delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0; getitem @inventorylist_id[.@i],1; setarray .@Total[0], .@Total[0]+1, .@Total[1]+.Prices[3]; } if (!.@Total[0]) { message strcharinfo(0),"No items identified."; close; } specialeffect2 154; message strcharinfo(0),"Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+.@Total[1]+" Zeny":"")+"."; close; function Equip_Menu { setarray .@pos$[1],"Upper Headgear","Armor","Left hand","Right hand","Garment","Footgear","Left Accessory","Right Accessory","Mid Headgear","Lower Headgear"; set .@menu$,""; for (set .@i,1; .@i <= 10; set .@i,.@i+1) { if (getequipisequiped(.@i)) set .@menu$, .@menu$+.@pos$[.@i]+" [^0055FF"+getequipname(.@i)+"^000000]"; set .@menu$, .@menu$+":"; } set @i, select(.@menu$); if (!getequipisequiped(@i)) { message strcharinfo(0),"Nothing is equipped there!"; close; } if (getarg(0)) { if (!getequipisenableref(@i)) { message strcharinfo(0),getequipname(@i)+" cannot be refined."; close; } if (getequiprefinerycnt(@i) >= 10 ) { message strcharinfo(0),"+"+getequiprefinerycnt(@i)+" "+getequipname(@i)+" cannot be refined any further."; close; } } return; } } OnInit: // --------------------- Config --------------------- setarray .MainMenu$[0], // Set menu options! "Change Jobs", // [1] "Stylist", // [2] "Remove Cards", // [4] "Rentals", // [8] "Reset Stats/Skills", // [16] "Platinum Skills", // [32] "Change Sex", // [64] "Identify All"; // [128] set .MenuOption,1|2|4|8|16|32|64|128; setarray .OnClick[0],1,1,1; // When clicked: heal [0], buff [1], repair [2] (1: yes / 0: no) setarray .Styles[1],553,37,250; // Maximum dye, hair style, and hair color setarray .Prices[0],50000,10000,0,100; // Zeny to remove cards [0], reset [1], rent [2], identify [3] setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,0; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no) setarray .SexChangeF[0],2213,1,1558,1,7152,50; // Items to turn into Female (ID,Count) setarray .SexChangeM[0],5016,1,2241,1,1017,50; // Items to turn into Male (ID,Count) // -------------------------------------------------- end; }
-
My god... i'm stupid, didn't see that, i try that. Merci
-
Bumpy again
-
Don't download all the client, just up to date it if you want The important things is the ragexe.exe that you use for diff
-
Humm try with another diff client (another date)
-
Hum did you compile by your self (if yes have you set configure --enable-packetver=20120418 ?) Set in conf/login_athena // Check The clientversion set in the clientinfo ? check_client_version: no and in conf/battle/client.conf // default value: 0xFFFFFF (all clients) packet_ver_flag: 0xFFFFFF And i sugest you to try with another diff exe less recent
-
That mean the information of client isn't record in the Ro/savedata/OptionInfo.lua At line : OptionInfoList["Bgm_Volume"] = 100 OptionInfoList["Effect_Volume"] = 100 He can modify that manually to make it works (it's a little fix, i haven't an other solution for your problem, i haven't it. Maybe another ppl have a better fix)
-
Unknow packet , that mean your client hasn't the good version. What is the date of your exe ? (last stable is 2012-04-10)
-
Yes, you just delete the path for player to go to other woe. It's the best way without any script to choose the castle you want
-
I saw something like this http://www.eathena.ws/board/lofiversion/index.php/t228318.html But it seems to need some fix to make it really work
-
./athena-start start >> athena.txt 2>&1 & And look at your athena.txt to see what happend
-
Or do it if pvp was empty or have less than 5 ppl if you want that ppl come to the pvp room. Maybe with a timer too because if a player has been chain kill x10 and come again again, your player will not be happy to see your broadcast 10x in 2 mins
-
// Rough / Ori/Elu to Enriched Refiners //============================================================ - script Refiner_Quest#ref -1,{ mes "[Refiner Quest]"; mes "If you bring me 50"; mes "Rough Oridecon or 50 Rough Elunium"; mes "or 10 Elunium or 10 Oridecon"; mes "I can exchange them for"; mes "Enriched Elunium or Enriched Oridecon."; next; switch(select("Rough Oridecon to Enriched Oridecon.:Oridecon to Enriched Oridecon.:Rough Elunium to Enriched Elunium.:Elunium to Enriched Elunium.:No thanks.")) { case 1: setarray .@i[0],756,50,7620; //Rough Oridecon -> Enriched Oridecon break; case 2: setarray .@i[0],984,10,7620; //Oridecon -> Enriched Oridecon break; case 3: setarray .@i[0],757,50,7619; //Rough Elunium -> Enriched Elunium break; case 4: setarray .@i[0],985,10,7619; //Elunium -> Enriched Elunium break; case 5: mes "[Refiner Quest]"; mes "Hmm..."; close; } if (countitem(.@i[0]) >= .@i[1]) { delitem .@i[0],.@i[1]; getitem .@i[2],1; mes "[Refiner Quest]"; mes "Ok! Here is your "+getitemname(.@i[2])+"."; mes "Take it and use it well."; close; } mes "[Refiner Quest]"; mes "You better not be trying"; mes "to cheat me because you"; mes "don't have"; mes ""+getitemname(.@i[0])+"."; close; } prt_in,85,71,5 duplicate(Refiner_Quest#ref) Refiner Quest#prt 826
-
The best way is to desactivate the warps and reactive them if you want to change your castle
-
Hello, Anyone have a source modification to share to protect against that abuse ? Thanks
-
Hi, I tried to use the multi currency shop for 2 differents shop. But the first shop is empty in game (worked when the 2nd wasn't load) I tried to change the name of function and variable but it seems to not change anything. My both npc here : // Settings : // - Only required to edit the ShopSetting() Function // Notes : You may also add / remove Menu ( If any ) // - Shop Currency can be either ItemID or Variable Name, but must write within Quotation Marks ( "" ) // Ex. of Variable. -> Zeny , #CASHPOINTS , #KAFRAPOINTS , CustomVariable , #CustomVariable // - ERROR Message are used to show Invalid Settings in your NPC. // Leave this alone... - shop Cloud_Machine -1,512:100 gonryun,159,109,0 script Cloud Machine 685,{ function ShopSettingscloud; function ValidateCostcloud; function CurrencyInfocloud; function ClearDatacloud; function ValueConvertcloud; function ErrorNoticecloud; mes "Ce magasin utilise la monnaie ^FF0000Clouds^000000."; mes "^00FF00____________________________^000000"; mes "Choisissez le type d'item que vous voulez"; next; // Menu Selection select("Equipement Box","Upper Head","Middle Head","Lower Head","Costumes","Consommables","Autres"); ClearDatacloud(); ShopSettingscloud( @menu ); npcshopitem "Cloud_Machine",512,100; npcshopdelitem "Cloud_Machine",512; for(set .@i,0; .@i < getarraysize( @ItemListscloud ); set .@i,.@i+1) npcshopadditem "Emistry_Shop",@ItemListscloud[.@i],@ItemCostcloud[.@i]; mes "Ok...attendez un instant"; mes "^00FF00____________________________^000000"; CurrencyInfocloud( @Currencycloud$ ); mes "^00FF00____________________________^000000"; callshop "Cloud_Machine",1; npcshopattach "Cloud_Machine"; end; function ShopSettingscloud { switch( getarg(0) ){ Case 1: // Equipement Box [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],12107,12106,12186; // Item Price setarray @ItemCostcloud[0],30,40,50; break; Case 2: // Upper Head [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],5531,5338; // Item Price setarray @ItemCostcloud[0],35,10; break; Case 3: // Middle Head [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],5786,5389,5288,2202,18607,5664,5471,5793,5592; // Item Price setarray @ItemCostcloud[0],25,100,50,175,175,80,60,70,50; break; Case 4: // Lower Head [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],5597,5596,5445,5775,5594,5377,5463; // Item Price setarray @ItemCostcloud[0],150,150,15,50,40,100,50; break; Case 5: // Costumes [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],19529,19528,19525,19530; // Item Price setarray @ItemCostcloud[0],50,50,75,75; break; Case 6: // Consommable [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],12915,12916,14208,12902; // Item Price setarray @ItemCostcloud[0],10,10,20,50; break; Case 7: // Autres [ Item ID / Variable Name ] set @Currencycloud$,"30000"; // Item ID Lists setarray @ItemListscloud[0],12920,12921,6241,6240,6225,6226,12622; // Item Price setarray @ItemCostcloud[0],40,40,6,6,10,10,200; break; // Case 4,5,6.....etc... default: ErrorNoticecloud( "Sélection du menu invalide : "+@menu+"." ); close; } if( @Currencycloud$ == "" ) ErrorNoticecloud( "Invalid Currency Setting in Menu "+@menu+" ." ); if( getarraysize( @ItemCostcloud ) != getarraysize( @ItemListscloud ) || getarraysize( @ItemListscloud ) != getarraysize( @ItemCostcloud ) ) ErrorNoticecloud( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." ); return; } function ErrorNoticecloud { mes "^FF0000ERROR^000000 - "+getarg(0); mes "^00FF00____________________________^000000"; mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !"; close; } function CurrencyInfocloud { if( getitemname( atoi( getarg(0) ) ) != "null" ){ mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000"; mes "Available Amount : ^0000FF"+ValueConvertcloud( countitem( atoi( getarg(0) ) ) )+"^000000"; }else if( getitemname( atoi( getarg(0) ) ) == "null" ){ mes "Variable Currency : ^FF0000"+getarg(0)+"^000000"; mes "Available Amount : ^0000FF"+ValueConvertcloud( getd( getarg(0) ) )+"^000000"; } return; } function ValidateCostcloud { if( getitemname( atoi( getarg(0) ) ) != "null" ){ if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1; }else{ if( getd( getarg(0) ) < getarg(1) ) return 1; } return 0; } function ClearDatacloud { set @Currencycloud$,""; set @TotalCostcloud,0; deletearray @bought_nameidcloud[0],getarraysize( @bought_nameidcloud ); deletearray @bought_quantitycloud[0],getarraysize( @bought_quantitycloud ); deletearray @ItemListscloud[0],getarraysize( @ItemListscloud ); deletearray @ItemCostcloud[0],getarraysize( @ItemCostcloud ); return; } function ValueConvertcloud { set .@num, atoi(""+getarg(0)); if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0); set .@l, getstrlen(""+.@num); for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) { set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$; if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$; } return .@num$; } OnBuyItem: ShopSettingscloud( @menu ); for(set @i,0; @i < getarraysize( @bought_nameidcloud ); set @i,@i+1) for(set @j,0; @j < getarraysize( @ItemListscloud ); set @j,@j+1) if( @ItemListscloud[@j] == @bought_nameidcloud[@i] ) set @TotalCostcloud,@TotalCostcloud + ( @ItemCostcloud[@j] * @bought_quantitycloud[@i] ); mes "^FF0000 BILLING LIST^000000"; mes "^00FF00____________________________^000000"; for( set @i,0; @i < getarraysize( @bought_nameidcloud ); set @i,@i+1 ) mes "^FF0000"+@bought_quantitycloud[@i]+" x ^0000FF"+getitemname( @bought_nameidcloud[@i] )+"^000000"; mes "^00FF00____________________________^000000"; if( getitemname( atoi( @Currencycloud$ ) ) != "null" ) mes "Total Cost : ^0000FF"+ValueConvertcloud( @TotalCostcloud )+" x "+getitemname( atoi( @Currencycloud$ ) )+"^000000"; else if( getitemname( atoi( @Currencycloud$ ) ) == "null" ){ mes "Total Cost : ^0000FF"+ValueConvertcloud( @TotalCostcloud )+" "+@Currencycloud$+"^000000"; } mes "^00FF00____________________________^000000"; if( ValidateCostcloud( @Currencycloud$,@TotalCostcloud ) ){ if( getitemname( atoi( @Currencycloud$ ) ) != "null" ) mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currencycloud$ ) )+"^000000"; else{ mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currencycloud$+"^000000"; } }else{ if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){ if( getitemname( atoi( @Currencycloud$ ) ) != "null" ) delitem atoi( @Currencycloud$ ),@TotalCostcloud; else{ set getd( @Currencycloud$ ),getd( @Currencycloud$ ) - @TotalCostcloud; } for(set @i,0; @i < getarraysize( @bought_nameidcloud ); set @i,@i+1) getitem @bought_nameidcloud[@i],@bought_quantitycloud[@i]; message strcharinfo(0),"Purchased "+getarraysize( @bought_nameidcloud )+" Items."; mes "Thank you for shopping."; } } ClearDatacloud(); close; } // Badges Exchange //============================================================ - shop BG_shop -1,512:100 bat_room,160,150,3 script Erundek 109,{ function ShopSettings; function ValidateCost; function CurrencyInfo; function ClearData; function ValueConvert; function ErrorNotice; if (checkweight(1201,1) == 0) { mes "- Attendez une minute !! -"; mes "- Vous portez trop d'objets -"; mes "- Revenez après vous -"; mes "- être vidé un peu de votre poid. -"; close; } mes "Ce magasin utilise des ^FF0000Bravery Badges et Valor Badges^000000."; mes "^00FF00____________________________^000000"; mes "Choisissez le type d'item que vous voulez"; next; // Menu Selection select("Armes Bravery Badges","Armes Valor Badges","Armures Bravery Badges","Armures Valor Badges","Consommables Bravery Badges","Consommables Valor Badges"); ClearData(); ShopSettings( @menu ); npcshopitem "BG_shop",512,100; npcshopdelitem "BG_shop",512; for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1) npcshopadditem "BG_shop",@ItemLists[.@i],@ItemCost[.@i]; mes "Ok...attendez un instant"; mes "^00FF00____________________________^000000"; CurrencyInfo( @Currency$ ); mes "^00FF00____________________________^000000"; callshop "BG_shop",1; npcshopattach "BG_shop"; end; function ShopSettings { switch( getarg(0) ){ Case 1: // Armes Bravery [ Item ID / Variable Name ] set @Currency$,"7828"; // Item ID Lists setarray @ItemLists[0],13036,13042,13411,13417,1183,1187,1425,1486,1632,1634,1640,1543,1546,1380,1382,13305,1739,1743,1279,1282,1924,1978,1981,1574,1576,1824,1826,13108,13178,13172,13176; // Item Price setarray @ItemCost[0],1000,2000,1000,2000,1000,2000,1000,2000,1000,1000,2000,1000,2000,1000,2000,1000,1000,2000,1000,2000,1000,1000,2000,1000,2000,1000,2000,1000,2000,1000,2000; break; Case 2: // Armes Valor [ Item ID / Variable Name ] set @Currency$,"7829"; // Item ID Lists setarray @ItemLists[0],13037,13410,13418,1184,13416,1482,1426,1633,2002,1635,1641,1542,1379,1310,13306,13307,1738,1280,1281,1923,1927,1977,1575,1577,13171,13179,13173,13177,13174,13110; // Item Price setarray @ItemCost[0],1000,1000,2000,1000,2000,1000,2000,1000,2000,1000,2000,1000,2000,1000,1000,2000,1000,1000,2000,1000,2000,1000,1000,2000,1000,2000,1000,2000,1000,2000; break; Case 3: // Armures Bravery [ Item ID / Variable Name ] set @Currency$,"7828"; // Item ID Lists setarray @ItemLists[0],2538,2539,2540,2435,2436,2437,2376,2377,2378,2379,2380,2381,2382,2733,2720,2721,2722,2723,2724,2725,2394,2444,2395,2773,2446; // Item Price setarray @ItemCost[0],800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,1000,1000,200,300,200; break; Case 4: // Armures Valor [ Item ID / Variable Name ] set @Currency$,"7829"; // Item ID Lists setarray @ItemLists[0],2538,2539,2540,2435,2436,2437,2376,2377,2378,2379,2380,2381,2382,2733,2720,2721,2722,2723,2724,2725,2549,2772,2445,2396,2774; // Item Price setarray @ItemCost[0],800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,1000,2000,300,150,100; break; Case 5: // Consos Bravery [ Item ID / Variable Name ] set @Currency$,"7828"; // Item ID Lists setarray @ItemLists[0],12269,12270,12271,12272,12273,11503,11504; // Item Price setarray @ItemCost[0],40,40,40,40,40,3,3; break; Case 6: // Consos Valor [ Item ID / Variable Name ] set @Currency$,"7829"; // Item ID Lists setarray @ItemLists[0],12269,12270,12271,12272,12273,11503,11504; // Item Price setarray @ItemCost[0],40,40,40,40,40,3,3; break; // Case 4,5,6.....etc... default: ErrorNotice( "Sélection du menu invalide : "+@menu+"." ); close; } if( @Currency$ == "" ) ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." ); if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) ) ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." ); return; } function ErrorNotice { mes "^FF0000ERROR^000000 - "+getarg(0); mes "^00FF00____________________________^000000"; mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !"; close; } function CurrencyInfo { if( getitemname( atoi( getarg(0) ) ) != "null" ){ mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000"; }else if( getitemname( atoi( getarg(0) ) ) == "null" ){ mes "Variable Currency : ^FF0000"+getarg(0)+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000"; } return; } function ValidateCost { if( getitemname( atoi( getarg(0) ) ) != "null" ){ if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1; }else{ if( getd( getarg(0) ) < getarg(1) ) return 1; } return 0; } function ClearData { set @Currency$,""; set @TotalCost,0; deletearray @bought_nameid[0],getarraysize( @bought_nameid ); deletearray @bought_quantity[0],getarraysize( @bought_quantity ); deletearray @ItemLists[0],getarraysize( @ItemLists ); deletearray @ItemCost[0],getarraysize( @ItemCost ); return; } function ValueConvert { set .@num, atoi(""+getarg(0)); if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0); set .@l, getstrlen(""+.@num); for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) { set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$; if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$; } return .@num$; } OnBuyItem: ShopSettings( @menu ); for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1) if( @ItemLists[@j] == @bought_nameid[@i] ) set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] ); mes "^FF0000 BILLING LIST^000000"; mes "^00FF00____________________________^000000"; for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 ) mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000"; mes "^00FF00____________________________^000000"; if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000"; else if( getitemname( atoi( @Currency$ ) ) == "null" ){ mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "+@Currency$+"^000000"; } mes "^00FF00____________________________^000000"; if( ValidateCost( @Currency$,@TotalCost ) ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000"; else{ mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000"; } }else{ if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) delitem atoi( @Currency$ ),@TotalCost; else{ set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost; } for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) getitem @bought_nameid[@i],@bought_quantity[@i]; message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items."; mes "Thank you for shopping."; } } ClearData(); close; } thx by advance
-
//===== rAthena Script ======================================= //= Izlude Warp Script //===== By: ================================================== //= Athena (1.0), Nana (1.1) //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= Any Athena Version //===== Description: ========================================= //= Warp Points for Izlude //===== Additional Comments: ================================= //= 1.3 Added warps to Izlude Airship [Justin84] //= 1.4 Minor correction on airport warps //= 1.5 Updated to match the new Izlude Map. [Masao] //= 1.6 Added new warps. [Streusel] //============================================================ //= Izlude City ============================================== izlude,109,182,0 warp iz01 3,3,izlude_in,65,87 izlude,162,125,0 warp iz02 2,2,izlude_in,116,49 izlude,216,162,0 warp iz03 3,2,izlude_in,151,127 izlude,21,98,0 warp iz001 3,3,prt_fild08,367,212 izlude,52,172,0 warp iz04 2,2,izlude_in,74,161 izlude,130,257,0 warp iz_ac01-1 2,2,iz_ac01,99,29 izlude,125,257,0 warp iz_ac01-2 2,2,iz_ac01,99,29 izlude_in,108,169,0 warp iz05 2,3,izlude_in,84,169 izlude_in,116,46,0 warp iz02-1 3,2,izlude,157,125 izlude_in,148,127,0 warp iz03-1 2,5,izlude,207,162 izlude_in,171,97,0 warp iz06 3,2,izlude_in,172,119 izlude_in,172,116,0 warp iz06-1 3,2,izlude_in,172,94 izlude_in,172,139,0 warp iz07 3,2,izlude_in,172,161 izlude_in,172,158,0 warp iz07-1 3,2,izlude_in,172,136 izlude_in,43,169,0 warp w219 2,3,izlude_in,64,169 izlude_in,65,84,0 warp iz01-1 5,2,izlude,113,178 izlude_in,74,158,0 warp iz04-1 3,2,izlude,52,166 izlude_in,87,169,0 warp iz05-1 2,3,izlude_in,111,169 iz_ac01,100,24,0 warp iz_ac01 2,2,izlude,127,253 iz_ac01,122,25,0 warp iz_ac02 2,2,iz_ac02,104,27 iz_ac01,78,25,0 warp iz_ac03 2,2,iz_ac02,104,27 iz_ac02,113,27,0 warp iz_ac04 2,2,iz_ac01,122,28 iz_ac02,94,27,0 warp iz_ac05 2,2,iz_ac01,78,28 //===== rAthena Script ======================================= //= Izlude Town //===== By: ================================================== //= kobra_k88 //= L0ne_W0lf //===== Current Version: ===================================== //= 1.8a //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Izlude town NPCs //===== Additional Comments: ================================= //= Fully working //= 1.1 fixed 2 zeny bugs/checks [Lupus] //= 1.2 Fixed a lot of typos [Nexon] //= 1.3 Removed callfunc Is_####_Class in favor of baseClass [Silentdragon] //= 1.4 Added a Jawaii related npc. 1.4a Fixed a small bug to //= the Jawaii warper, thanks to reddozen and Silent [MasterOfMuppets] //= 1.5 Replaced iz_move_alberta with MISC_QUEST & 16 [Lupus] //= 1.6 Removed Duplicates [Silent] //= 1.7 Split quest to quests/quests_izlude.txt [Evera] //= 1.71 Optimized. Also thanks to CAHTEXHuK [Lupus] //= 1.72 Small bugfix [Paradox924X] //= 1.8 Rescripted to Aegis 10.3 standard. [L0ne_W0lf] //= Removed Honeymoon Helper, as she is a Jawaii NPC. //= Moved Signs to the msg_boards file. //= 1.8a Made Red/Cebalis as a single NPC + duplicate [Lupus] //= 1.9 Fixed a small problem with Dega. (Ne default case) [L0ne_W0lf] //= Re-added NPC dialog for Cebalis. The dialog differs //= (even if slightly,) after the five or so lines. //============================================================ // Izlude //============================================================ - script ::Sailor_izlude -1,{ mes "[Sailor]"; mes "Hey everybody!"; mes "Attention, attention!"; mes "Come and ride the wind"; mes "on a fascinating Ship!"; mes "Hurry, hurry!"; next; switch(select("Byalan Island -> 150 Zeny.:Alberta Marina -> 500 Zeny.:Cancel.")) { case 1: if (Zeny < 150) { mes "[Sailor]"; mes "150 Zeny!"; mes "Only 150 Zeny to ride!"; close; } set Zeny, Zeny - 150; warp "izlu2dun",107,50; end; case 2: if (Zeny < 500) { mes "[Sailor]"; mes "500 Zeny!"; mes "Only 500 Zeny to ride!"; close; } set Zeny, Zeny - 500; warp "alberta",188,169; end; case 3: close; } } - script ::Bonne_izlude -1,{ mes "[Bonne]"; mes "Greetings!"; mes "Izlude welcomes you."; next; mes "[Bonne]"; mes "Izlude is the satellite city of Prontera, capital of the Rune-Midgarts kingdom."; next; mes "[Bonne]"; mes "Izlude is key to our kingdom because of the Swordsman Association located here, as well as the fact that Izlude is in charge of protecting the Rune-Midgard coastline."; next; mes "[Bonne]"; mes "I know, this bridge might look weak and fragile, but it is actually state of the art, built with the most sophisticated technology."; next; mes "[Bonne]"; mes "No matter how strong storms may be, or how many people may stand on it, this bridge will NEEEEVER collapse."; next; mes "[Bonne]"; mes "Please enjoy"; mes "your visit"; mes "here in Izlude."; close; } - script ::Charfri_izlude -1,{ mes "[Charfri]"; switch(rand(2)) { case 1: mes "Some people may think Izlude is just a satellite city of Prontera, and not really that important..."; next; mes "[Charfri]"; mes "But Izlude is a beautiful town right next to the ocean, as well as beautiful Bylan Island."; next; mes "[Charfri]"; mes "You'll have to board on a ship at the port to get to Byalan Island. There are dangerous dungeons on that island, so don't go snooping around just anywhere."; close; Default: mes "Though it is very beautiful, Byalan Island has a mysterious dungeon that extends deep under the sea."; next; mes "[Charfri]"; mes "People who've actually been there have said that if you go deep enough, the dungeon actually descends underwater."; next; mes "[Charfri]"; mes "Surprisingly, once you're underwater, you can breathe just like a fish. Maybe some kind of supernatural force is in effect."; next; mes "[Charfri]"; mes "Ah..."; mes "The people who've seen the underwater view say it is so fantastic that they've kept dreaming of it ever since."; next; mes "[Charfri]"; mes "But unfortunately, the monsters are too strong for ordinary people to merely go sight seeing there. Still, just once, I'd like to go down there..."; close; } } - script ::Cuskoal_izlude -1,{ mes "[Cuskoal]"; switch(rand(2)) { case 1: mes "The Arena here is THE place for capable young people from all over the Rune-Midgarts Kingdom to challenge themselves and test their skills."; next; mes "[Cuskoal]"; mes "You can battle with monsters of differing levels. So, the number of stages you survive will be a testiment to your battle prowess."; next; mes "[Cuskoal]"; mes "So, whaddya say?"; close; Default: mes "The pubs in Prontera are always full of people from local areas and from out-of-town. It can get pretty busy."; next; mes "[Cuskoal]"; mes "It's a pretty good place to stop by for general information and to listen to rumors."; next; mes "[Cuskoal]"; mes "So if you listen carefully, you just might get lucky and learn some very useful information for yourself."; close; } } - script ::Dega_izlude -1,{ mes "[Dega]"; switch(rand(3)) { case 1: mes "Mt. Mjornir, located north of Prontera, is a tough"; mes "and steep climb."; next; mes "[Dega]"; mes "Aside from the dangers of the mountain itself, insanely vicious insects live there too. I mean, they'll just attack you for no reason."; next; mes "[Dega]"; mes "If you ever want to visit somewhere past Mt. Mjolnir, then you prepare yourself for the challenge. Or you could walk around it."; close; case 2: mes "Some monsters in the world have the unique ability to sense mystical energy, and can detect Magic spells before they are cast."; next; mes "[Dega]"; mes "Golem of the desert is one of them. Don't underestimate it due to its sluggishness..."; next; mes "[Dega]"; mes "If you try to cast magic near it, it will notice and saunter over to smash you. So you better watch out for Golem."; close; Default: mes "There's a very delightful place where you can find every"; mes "type of Poring."; next; mes "[Dega]"; mes "It's somewhere near the bridge connecting the forest and the desert, on the way to the city of Payon which is Southeast from here."; next; mes "[Dega]"; mes "There are not only pink Porings but also Drops, which can be found at the desert, and the green Poporing."; next; mes "[Dega]"; mes "But be careful, before you realize it, you may come face to face with Ghostring, a deadly Poring that floats around in the air like a ghost."; next; mes "[Dega]"; mes "Well, of course, they are all very cute, but Ghostring is an EXCEPTION. It is very very dangerous."; next; mes "[Dega]"; mes "If you are lucky enough, you might even bump into Angelring, the Poring with Angel wings."; next; while(1) { switch(select("Ghostring?:Angelring?:End Conversation.")) { case 1: mes "[Dega]"; mes "Ghostring is a grayish Poring that floats around in the air like a ghost. Just like other ghosts, physical attacks can't do any damage to it."; next; mes "[Dega]"; mes "Those whose main attack methods are physical like Swordman and Archer might have to run for their lives when facing Ghostrings."; next; mes "[Dega]"; mes "But don't leave just yet~! There is great news for people with those jobs. Making a weapon of some elemental property is the key."; next; mes "[Dega]"; mes "This way, even a Swordman or an Archer can inflict damage, the way Magic does, on Ghostrings."; next; break; case 2: mes "[Dega]"; mes "Angelrings are immune to Magic attacks. If people who can only attack with Magic face an Angelring, then it's time for"; mes "them to run."; next; mes "[Dega]"; mes "If you've got an extra knife or sword, you could give it a shot. But it will be very difficult alone, don't you think?"; next; break; case 3: mes "[Dega]"; mes "Good Luck~"; close; } } } } - script ::Kylick_izlude -1,{ mes "[Kylick]"; switch(rand(2)) { case 1: mes "Don't you think Binoculars"; mes "are really COOL?! You can"; mes "see all sorts of places...!"; next; mes "[Kylick]"; mes "Here in Izlude, we are responsible for maintaining peace not only on land but also at sea. That's why this city has a huge telescope."; next; mes "[Kylick]"; mes "This telecope constantly watches over the sea, so that we can prevent any serious trouble from happening. You know..."; next; mes "[Kylick]"; mes "An ounce of"; mes "prevention is worth"; mes "a pound of cure"; mes "after all, right?"; close; Default: mes "I was thinking, even though the people of Izlude live so close to the ocean..."; next; mes "[Kylick]"; mes "There are other cultures that have completely developed by living off of the sea. Of course, I'm talking about Amatsu."; next; mes "[Kylick]"; mes "I hear the cuisine there is really good! Although the idea of eating raw fish is new to me, I would love to go there, and try it just once!"; close; } } - script ::Red_izlude -1,{ mes "[Red]"; mes "The only skill that's needed for a Swordman is ^FF2400Bash^000000! Bash, Bash and ONLY ^FF2400Bash^000000! No need to waste time and effort for smaller skills! Everything else is for cowards and wusses!"; next; mes "[Cebalis]"; mes "What are you talking about!? The ideal Swordman resolutely stands alone, surrounded by countless enemies and smashing them all with one awesome attack."; next; mes "[Cebalis]"; mes "^EE0000MAGNUM BREAK!^000000"; mes "That's right, Magnum Break"; mes "is the skill that does"; mes "the job right~!!"; next; mes "[Cebalis]"; mes "Well... Sometimes the explosive damage might accidentally hit some wandering monsters, and those guys end up coming after you, but that's a risk a Swordman should be willing to take!!"; next; mes "[Red]"; mes "That's exactly why you're dumb, you idiot! And what's this about the 'the ideal Swordman?' I still remember the last time you used Magnum Break..."; next; mes "[Red]"; mes "You ended up running away from all those monsters you hit with that stupid skill! Weakling! All those Porings around you got hit and they all tried to kill you. "; next; mes "[Cebalis]"; mes "Hmpf. As I recall, you were running away too, apparently too busy to use your precious Bash. In any case, Magnum Break is THE skill for a Swordman~!!"; next; mes "[Cebalis]"; mes "Something simplistic like Bash"; mes "is just one of the little steps towards Magnum Break."; next; mes "[Red]"; mes "Oh man~"; mes "Hey, I know you just"; mes "heard everything."; mes "So what do you think?"; next; mes "[Red]"; mes "Which one do you think is better? The critical damage skill, ^FF2400Bash^000000, or the Splash damage skill, ^EE0000Magnum Break^000000?"; next; if (select("Bash:Magnum Break") == 1) { if (BaseClass == Job_Swordman) { mes "[Red]"; mes "Hahahaha!!! I knew you'd see things my way!! You ARE a great guy!! Undoubtedly, only ^FF2400Bash^000000 suits a Swordman. Please tell that to this BONEHEAD over here~ Hahaha!"; next; mes "[Red]"; mes "Hmm, let me give you a bit of advice. After you achieve level 5 'Bash', the amount of SP consumed by the skill increases greatly, so watch out for your SP."; close; } mes "[Red]"; mes "Hahahaha!! See!? Someone who pursues a different job agrees with me~! You really are a great guy! Hahaha!! Undoubtedly, only ^FF2400Bash^000000 suits a Swordman. Please tell that to this NIMROD over here~ Hahaha!"; close; } if (BaseClass == Job_Swordman) { mes "[Cebalis]"; mes "Alright!! ^EE0000Magnum Break^000000 is the BEST!! Now you're talking~!! You know the stuff~ HaHaHa!"; next; mes "[Cebalis]"; mes "You wanna know some useful information? Okay, okay lemme tell ya! Magnum Break has Fire Property."; next; mes "[Cebalis]"; mes "So it won't be too effective against monsters with the Water property, but this is THE skill to use against Undead and Earth property monsters!"; next; mes "[Cebalis]"; mes "And most importantly, look around before you use it. Otherwise you'll be in BIG trouble~ "; close; } mes "[Cebalis]"; mes "Right?! ^EE0000Magnum Break^000000 is THE BEST!!! You know what you're talking about, eh? I don't know why this jerkface is being sooooo stubborn."; close; } - script ::Cebalis_izlude -1,{ mes "[Red]"; mes "The only skill that's needed for a Swordman is ^FF2400Bash^000000! Bash, Bash and ONLY ^FF2400Bash^000000! No need to waste time and effort on smaller skills~~ Everything else is for cowards and wusses!"; next; mes "[Cebalis]"; mes "What are you talking about!? The ideal Swordman resolutely stands alone, surrounded by countless foes, smashing them all with one awesome attack..."; next; mes "[Cebalis]"; mes "^EE0000MAGNUM BREAK!^000000"; mes "That's right, Magnum Break"; mes "is the perfect"; mes "Swordman skill."; next; mes "[Cebalis]"; mes "Well..."; mes "Sometimes the explosion accidentally hits some monsters that are just wandering around."; next; mes "[Cebalis]"; mes "Then they all end up coming after you, but that's a risk a true Swordman should be willing to take."; next; mes "[Red]"; mes "That's exactly why you're dumb, you idiot! And what was that about the 'ideal Swordman?' You remember the last time you used Magnum Break?!"; next; mes "[Red]"; mes "You had to run away from all those Porings hit by that stupid skill! You weakling! All those Porings that you hit tried to kill you! "; next; mes "[Cebalis]"; mes "Oh shut up. And those were Poporings. As I recall, you were running away too, apparently too busy to use your precious Bash."; next; mes "[Cebalis]"; mes "In any case, Magnum Break is THE skill for a Swordman~!! Something simplistic like Bash is just one of those little steps towards Magnum Break."; next; mes "[Red]"; mes "Oh man~"; mes "Hey, I know you"; mes "heard everything."; mes "So what do you think?"; next; mes "[Red]"; mes "Which one do you think is better? The critical damage skill, ^FF2400Bash^000000, or the Splash damage skill, ^EE0000Magnum Break^000000?"; next; if (select("Bash:Magnum Break") == 1) { if (BaseClass == Job_Swordman) { mes "[Red]"; mes "Hahahaha!!! I knew you'd see things my way!! You ARE a great guy!! Without a doubt, only ^FF2400Bash^000000 suits a Swordman. Please tell that to FUNBOY over here!! Hahaha."; next; mes "[Red]"; mes "Hmm, let me give you a bit of advice. After you achieve level 5 Bash, the amount of SP consumed by the skill increases greatly, so watch out for your SP."; close; } mes "[Red]"; mes "Hahahaha!!"; mes "See!? Someone who pursues a different job agrees with me~! You really are a great guy! Hahaha!!"; next; mes "[Red]"; mes "Without a doubt, only ^FF2400Bash^000000 suits a Swordman. Please tell that to this MORON over here!! Hahaha~"; close; } if (BaseClass == Job_Swordman) { mes "[Cebalis]"; mes " Alright!! ^EE0000Magnum Break^000000 is the BEST!! Now you're talking~!! You know your stuff, kid. HaHaHa~!"; next; mes "[Cebalis]"; mes "You wanna know some useful information? Okay, okay lemme tell ya! The explosion from 'Magnum Break' has the Fire Property."; next; mes "[Cebalis]"; mes "So it won't be very effective against Water property monsters, but this is THE skill to use against Undead and Earth property monsters.!"; next; mes "[Cebalis]"; mes "And most importantly, look around before you use it. Otherwise you'll be in BIG trouble~ "; close; } mes "[Cebalis]"; mes "I'm right, aren't I?! ^EE0000Magnum Break^000000 is THE BEST!!! You know what you're talking about, eh? I don't know why this LARDFACE is sooooo stubborn."; close; } - script ::Soldier_izlude -1,{ mes "[Soldier]"; mes "HeHeHeHe..HaHaHaHa "; mes "Huh? Why am I so happy?"; mes "You wanna know?"; next; if (select("Sure, why?:Not really, I don't care.") == 1) { mes "[Soldier]"; mes "Ah~~ There's not much for us to do these days. You see, Merchants buy items dropped by monsters. But you knew that, right? "; next; if (select("Of course:Eh? Really?") == 1) { mes "[Soldier]"; mes "HaHa~ In fact, that was actually part of our job. But there were more and more hunters who came to us in order to get paid and it became too much to handle."; next; mes "[Soldier]"; mes "We had to work overtime every day. Ah, it was a nightmare...! Anyway, the government eventually made a wise decision in creating the Registration System."; next; mes "[Soldier]"; mes "The Office of Prize Compensation only pays those who have the Registration. Of course, you'd have to be a merchant and stay in the same place all day long."; next; mes "[Soldier]"; mes "The Office gives away the registration to any merchant who fulfills those requirements. So nowadays, the hunters sell their goods to the registered merchants."; next; mes "[Soldier]"; mes "So nowadays, the hunters sell their goods to the registered merchants. Not too many people come to us for that anymore."; next; mes "[Soldier]"; mes "I mean we are still busy, but that's nothing compared to how it was before. People who have felt suffering know how to appreciate even the slightest comfort."; close; } mes "[Soldier]"; mes "What?! What do you mean you didn't know?! Well, you know you can get items by killing monsters. If you bring and sell those to a merchant, you can make some money. "; next; mes "[Soldier]"; mes "HaHa, in fact, that used to be part of our job. But there were more and more hunters who come in order to get paid, so it became too much to handle."; next; mes "[Soldier]"; mes "We had to work overtime every day. Ah, it was a nightmare...! Anyway, the government eventually made a wise decision in creating the Registration System."; next; mes "[Soldier]"; mes "The Office of Prize Compensation only pays those who have the Registration. Of course, you'd have to be a merchant and stay in the same place all day long."; next; mes "[Soldier]"; mes "The Office gives away the registration to any merchant who fulfills those requirements. So nowadays, the hunters sell their goods to the registered merchants."; next; mes "[Soldier]"; mes "So nowadays, the hunters sell their goods to the registered merchants. Not too many people come to us for that anymore."; next; mes "[Soldier]"; mes "I mean we are still busy, but that's nothing compared to how it was before. People who have felt suffering know how to appreciate even the slightest comfort."; close; } mes "[Soldier]"; mes "Okay Good Bye~~"; close; } // Inside Izlude //============================================================ izlude_in,125,164,2 script Aaron#izlude 65,{ mes "[Aaron]"; mes "Don't you think Strong VIT and training in a unique breathing method which enables quick HP recovery are the greatest advantages for a Swordman?"; next; mes "[Aaron]"; mes "If you train your skills very hard, you can even see your HP recovering. The amount"; mes "recovered depends"; mes "vitality, or VIT."; next; mes "[Aaron]"; mes "So if you invest more of your stats in VIT, you'll recover more HP overall when resting."; next; mes "[Aaron]"; mes "But of course, it'd be good to have high Attack, wouldn't it? You can either acquire a good weapon or bring up your STR to support you Attack."; next; mes "[Aaron]"; mes "You know you'll need some strength anyway to swing good weapons easily, anyway."; next; mes "[Aaron]"; mes "Another important thing is how accurate you can hit your opponents. DEX is the key here. If you train DEX, then the gap between the MIN and MAX damage will also decrease."; next; mes "[Aaron]"; mes "Hm..."; mes "Are you bored by all this talk? Or do you want me to go on?"; next; if (select("Tell me more please.:End conversation.") == 1) { mes "[Aaron]"; mes "Hmm..."; mes "In that case, I'll explain about the other attributes to you briefly. In order to attack and evade quickly, you've gotta pay attention to AGI. "; next; mes "[Aaron]"; mes "In case you want to make more critical hits, it's a good idea to invest in LUK. INT also increases Max SP, which is needed to use various skills... But it's really up to you."; close; } mes "[Aaron]"; mes "Okay then,"; mes "train hard~~"; close; } // Izlude Dungeon //============================================================ izlu2dun,108,27,0 script Sailor#2izlude 100,{ mes "[Sailor]"; mes "Wanna"; mes "head back?"; next; if (select("Yeah, I'm tired to death.:Nope, I love this place!") == 1) { if(checkre(0)) warp "izlude",197,210; else warp "izlude",176,182; end; } close; }
-
Thank you !!!!
-
Hi, I'm searching a way to allow shop just on place that i allow (like only on a street of a town) Is there a way with script or browedit to do that ? Thanks
-
Thx that was what i was searching for it
-
Hello everybody, I have an problem with my char. I made a map and my char just can't sit on a chair, he walks inside it like a ghost. Any solution for that ? Thanks by advance
-
Battleground Medals for Cash ( Request Script )
Shakto replied to Asverick's question in Script Requests
What do you mean by cash point ? It's an item ? Point on your website ? -
Bumpy please