Jump to content
  • 0

how i can make a menu


Dynasty

Question


  • Group:  Members
  • Topic Count:  24
  • Topics Per Day:  0.01
  • Content Count:  151
  • Reputation:   5
  • Joined:  11/09/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.01
  • Content Count:  182
  • Reputation:   22
  • Joined:  12/30/12
  • Last Seen:  

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!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  1702
  • Reputation:   238
  • Joined:  09/05/12
  • Last Seen:  

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;
}
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  24
  • Topics Per Day:  0.01
  • Content Count:  151
  • Reputation:   5
  • Joined:  11/09/12
  • Last Seen:  

//===== 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 by Dynasty
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...