Dynasty Posted November 22, 2013 Group: Members Topic Count: 24 Topics Per Day: 0.01 Content Count: 151 Reputation: 5 Joined: 11/09/12 Last Seen: September 14, 2014 Share Posted November 22, 2013 Hi I have a question.. How can i do a menu using array and for??? I saw many script using it but i dont understand cuz i dont know the different between for + arrar and switch.. Plz.. Anwser me and srry for my bad inglesh And thanks.. Quote Link to comment Share on other sites More sharing options...
Boom Posted November 22, 2013 Group: Members Topic Count: 21 Topics Per Day: 0.00 Content Count: 182 Reputation: 22 Joined: 12/30/12 Last Seen: February 20, 2017 Share Posted November 22, 2013 Hi I have a question.. How can i do a menu using array and for??? I saw many script using it but i dont understand cuz i dont know the different between for + arrar and switch.. Plz.. Anwser me and srry for my bad inglesh And thanks.. Hi there, just quoting some parts of my Upgrading Challenge script so you can see how the arrays have been used in the menu. //HEADGEAR REWARD LIST setarray @HGLists[0],5464,5654,5565,5495,5529,5420,5786,5395,5667; for( set .@i,0; .@i < getarraysize(@HGLists); set .@i,.@i + 1 ) set .@Menu$,.@Menu$ + getitemname(@HGLists[.@i])+ ":"; set .@ChosenHG, select( .@Menu$ ); set .@HG, .@ChosenHG - 1 ; You can download the full script here: http://rathena.org/board/topic/82535-upgrading-challenge-event/?hl=%2Bupgrading+%2Bchallenge Hope it helps you Dynasty! Quote Link to comment Share on other sites More sharing options...
Patskie Posted November 22, 2013 Group: Members Topic Count: 50 Topics Per Day: 0.01 Content Count: 1702 Reputation: 241 Joined: 09/05/12 Last Seen: 6 hours ago Share Posted November 22, 2013 The easiest way i guess : prontera,150,150,0 script Sample 123,{ setarray .Menu$[0],"test1","test2","test3","test4","test5"; .@selected = select(implode(.Menu$, ":")) - 1; mes "You have selected " +.Menu$[.@selected]; close; } But if you want it to use a for loop : prontera,150,150,0 script Sample 123,{ setarray .Menu$[0],"test1","test2","test3","test4","test5"; for ( .@i = 0; .@i < getarraysize(.Menu$); .@i++ ) { .@menu$ += .Menu$[.@i]; .@menu$ += ":"; } .@selected = select(.@menu$) - 1; mes "You have selected " +.Menu$[.@selected]; close; } Quote Link to comment Share on other sites More sharing options...
Dynasty Posted November 22, 2013 Group: Members Topic Count: 24 Topics Per Day: 0.01 Content Count: 151 Reputation: 5 Joined: 11/09/12 Last Seen: September 14, 2014 Author Share Posted November 22, 2013 (edited) //===== Akito Script ========================================= //= Arrow Maker //===== By: ================================================== //= Akito && Dynasty //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena SVN 3422+(Requires jA Script System) //===== Description: ========================================= // Quest de flechas //===== Additional Comments: ================================= //============================================================ //======Changeslog============================================ //= 1.0 Complete Work //= 1.1 Upgrade and Remake //= 1.2 Fixed some bugs //= 1.3 Rework Script //============================================================ prontera,146,172,5 script Arrowmaker 494,{ setarray .@id[0],1751,1752,1753,1754,1755,1756,1767; setarray .@menu2$,"10 Arrow:100 Arrow:1000 Arrow:10000 Arrow"; mes "ArrowCraft"; mes "Selecciona el tipo de flecha que necesitas"; next; for(set .@a, 0; .@a < getarraysize(.@id); set .@a,.@a++) { set .@menu$,.@menu$+getitemname(.@id[.@a])+":"; } set .@simple$,.@menu$; switch ( select( .@simple$ ) ) { case 1: mes "Silver Arrow"; set .@idd,.id[0]; set .@delitem[0],1011,912,2557,2333; mes "Zargon 10 silver arrow"; mes "Emveretarcon 100 silver arrow"; mes "Unicorn Horn 1000 silver arrow"; mes "Silver Robe 10000 silver arrow"; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 2: mes "Fire Arrow"; mes "Red Bjiou 10 Fire arrow"; mes "Fire Dragon Scale 100 Fire arrow"; mes "Live Coal 1000 Fire Arrow"; mes "Matcgsutck 10000 Fire Arrow"; set .@idd,.id[1]; set .@delitem[0],7447,7451,7098,7035; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 3: mes "Steal Arrow"; mes "Scell 10 Steal Arrow"; mes "Rough Elunium 100 Steal Arrow"; mes "Steel 1000 Steal Arrow"; mes "Elunium 10000 Steal Arrow"; set .@idd,.id[2]; set .@delitem[0],911,757,999,985; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 4: mes "Crystal Arrow"; mes "Blue Gemstone 10 Crystal Arrow"; mes "Crystal Blue 100 Crystal Arrow"; mes "Ancient Tooth 1000 Crystal Arrow"; mes "Mystic Frozen 10000 Crystal Arrow"; set .@idd,.id[3]; set .@delitem[0],717,991,995,1053; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 5: mes "Arrow Of Wind"; mes "Blue Bijou 10 Arrow Of Wind"; mes "Cat's Eyes 100 Arrow Of Wind"; mes "Wind Of Werdure 1000 Arrow Of Wind"; mes "Rough Wind 10000 Arrow Of Wind"; set .@idd,.id[4]; set .@delitem[0],7446,7263,992,996; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end;; case 6: mes "Stone Arrow"; mes "Yellow Gemstone 10 Stone Arrow"; mes "Green Bijou 100 Stone Arrow"; mes "Green Live 1000 Stone Arrow"; mes "Great Nature 10000 Stone Arrow"; set .@idd,.id[5]; set .@delitem[0],715,7445,993,997; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 7: mes "Immaterial Arrow"; mes "Yellow Bijou 10 Immaterial Arrow"; mes "Piece Of Shield 100 Immaterial Arrow"; mes "Skeletal Armor Piece 1000 Immaterial Arrow"; mes "Emperium 10000 Immaterial Arrow"; set .@idd,.id[6]; set .@delitem[0],7448,7108,7450,714; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; case 8: mes "Shadow Arrow"; mes "Horrendous Mouth 10 Shadow Arrow"; mes "Key of the underground 100 Shadow Arrow"; mes "Darkness Rune 1000 Shadow Arrow"; mes "Loki's Whispers 10000 Shadow Arrow"; set .@idd,.id[7]; set .@delitem[0],958,7027,7511,7019; select(.@menu2$); set .@opt,@menu-1; set .@delitemm,.@delitem[.@opt] callfunc "arrowmaker1"; end; } } function script arrowmaker1 { if(.@opt == 1){ if (!checkweight(.@idd,10)) { mes "Perdon pero no puedes obtener esta cantidad de flechas, estas en sobrepeso!"; } } if(.@opt == 2){ if (!checkweight(.@idd,100)) { mes "Perdon pero no puedes obtener esta cantidad de flechas, estas en sobrepeso!"; } } if(.@opt == 3){ if (!checkweight(.@idd,1000)) { mes "Perdon pero no puedes obtener esta cantidad de flechas, estas en sobrepeso!"; } } if(.@opt == 4){ if (!checkweight(.@idd,10000)) { mes "Perdon pero no puedes obtener esta cantidad de flechas, estas en sobrepeso!"; } } if ((countitem(.@delitemm) < 1)){ mes ""; mes "No tienes "+getitemname(.@delitemm)+" Suficiente"; close; } delitem .@delitemm,1; getitem .@idd,.@delitemm; mes "Aqui tienes"; close; OnInit: waitingroom "Creador de Flechasl",0; end; } soo... I DID this, the part that i used "case:" with loop how can i do this? cuz this is the think that i dont get it... Edited November 22, 2013 by Dynasty Quote Link to comment Share on other sites More sharing options...
Question
Dynasty
Hi
I have a question.. How can i do a menu using array and for???
I saw many script using it but i dont understand cuz i dont know the different between for + arrar and switch..
Plz.. Anwser me and srry for my bad inglesh
And thanks..
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.