PenUltima Online Forum Index Official Core: 096.7
Official Core: 097 2008-02-26
Donate towards the POL web hosting bill!
 POL Home   FAQ   Search    Memberlist   Usergroups    Register    Profile   Log in to check your private messages   Log in
Entry option.

 
Post new topic   Reply to topic    PenUltima Online Forum Index -> Scripting Help
Display posts from previous:   

Author Message
*Edwards



Joined: 29 Dec 2007
Posts: 85
Location: Montreal, Canada

PostPosted: Sat Mar 29, 2008 7:26 pm    Post subject: Entry option. Reply with quote

I would be able to attribute a value to my entries. And I can't find the solution yet.

Code:
foreach entry in ( options )

      GFCheckBox(s_gump, 180, y_pos, 2360, 2361, 0, _entry_iter);
                GFCheckBox(s_gump, 200, y_pos, 2360, 2361, 0, _entry_iter);
                GFCheckBox(s_gump, 220, y_pos, 2360, 2361, 0, _entry_iter);


Each checkbox represent different options that I would be able to add to another option.

using _entry_iter above is simply duping the checkbox function as if I click one it's always the same answer. I need to know how to give my _entry_iter values as 1 2 or 3.

Author Message
CWO



Joined: 04 Feb 2006
Posts: 685
Location: Chicago, IL USA

PostPosted: Sat Mar 29, 2008 10:12 pm    Post subject: Reply with quote

the _entry_iter only increases every time the foreach loops because its saying which iteration the foreach is on with the variable "entry". To get it to count up correctly in the way you want to use it, you'd have to do...

Code:

var x_pos := 180;
foreach entry in (options)
  GFCheckBox(s_gump, x_pos, y_pos, 2360, 2361, 0, _entry_iter);
  x_pos := x_pos + 20; // (if on POL097) x_pos += 20
endforeach

Author Message
*Edwards



Joined: 29 Dec 2007
Posts: 85
Location: Montreal, Canada

PostPosted: Sat Mar 29, 2008 11:50 pm    Post subject: Reply with quote

I will try that right now, thank you for your answer.

Author Message
*Edwards



Joined: 29 Dec 2007
Posts: 85
Location: Montreal, Canada

PostPosted: Sun Mar 30, 2008 5:39 pm    Post subject: Reply with quote

Just to be sure, does the _entry_iter will return a different value with the foreach loops?

Code:
GFPage(s_gump, 1);
   var num_options := options.Size();
   var y_pos := 110;
        var i;
   foreach entry in ( options )

                var x_pos := 200;
                for( i:=1; i<=7; i+=1 )
                          GFCheckBox(s_gump, x_pos, y_pos, 2360, 2361, 0, _entry_iter);
                          x_pos += 50;
                          SleepMS(2);
                endfor

      GFTextLine(s_gump, 20, y_pos, 1153, entry);
      y_pos := y_pos+20;

      if ( _entry_iter % 15 == 0 && _entry_iter < num_options )
         GFAddButton(s_gump, 590, 385, 0xA92, 0xA93, GF_PAGE_BTN, s_gump.cur_page+1);
         GFPage(s_gump, s_gump.cur_page+1);
         GFAddButton(s_gump, 590, 110, 0xA90, 0xA91, GF_PAGE_BTN, s_gump.cur_page-1);
         y_pos := 110;
      endif

      SleepMS(2);
   endforeach


If you understand, the CheckBox Button are different x value repeatly for y

Author Message
ncrsn



Joined: 10 Feb 2006
Posts: 168

PostPosted: Sun Mar 30, 2008 5:59 pm    Post subject: Reply with quote

Maybe this clears it.

Code:

var list := array{ "a", "b", "c" };

foreach value in list
    print(_value_iter + ": " + value);
    // 1: a
    // 2: b
    // 3: c
endforeach

list := dictionary{ "a" -> 1, "b" -> 2, "c" -> 3 };

foreach value in list
    print(_value_iter + ": " + value);
    // a: 1
    // b: 2
    // c: 3
endforeach


In foreach, _variable_iter is the index of the array (dictionary) that identifies the element it is just looping.

Author Message
*Edwards



Joined: 29 Dec 2007
Posts: 85
Location: Montreal, Canada

PostPosted: Mon Mar 31, 2008 12:50 am    Post subject: Reply with quote

Thanks a lot. It makes it clear now.

Author Message
*Edwards



Joined: 29 Dec 2007
Posts: 85
Location: Montreal, Canada

PostPosted: Fri Apr 04, 2008 1:23 pm    Post subject: Reply with quote

I understand now the iteration applied in the foreach loop. But I still have some headache with my question:

Code:
GFPage(s_gump, 1);
   var num_options := options.Size();
   var y_pos := 110;
        var i;
   foreach entry in ( options )

                var x_pos := 210;
                for( i:=1; i<=7; i+=1 )
                          GFCheckBox(s_gump, x_pos, y_pos, 2360, 2361, 0, _entry_iter);
                          x_pos += 50;
                          SleepMS(2);
                endfor

      GFTextLine(s_gump, 30, y_pos, 1153, entry);
      y_pos := y_pos+20;

      if ( _entry_iter % 14 == 0 && _entry_iter <num_options>= 1 && key <= num_options )
         values.Append(options[key]);
      endif
      SleepMS(2);
   endforeach

Options defined are a list of proprieties in an array. The checkboxes needs to send a special event to only the good option.

With the above code _entry_iter will simply loop to the next entry wich is normal but not exactly what I need. I tried to use numbers as if the value of the check box will return if checked. But it stills loop into the options given.

ex.:
entry1 checkbox1 checkbox2 checkbox3 checkbox4 checkbox5
entry2 checkbox1 checkbox2 checkbox3 checkbox4 checkbox5
entry3 checkbox1 checkbox2 checkbox3 checkbox4 checkbox5
[...]

If checkbox1 is checked, it will return a rename..
If checkbox2 is checked, it will return a new color..
If checkbox3 is checked, it will return a new graphic..

(that's an exemple)

Post new topic   Reply to topic    PenUltima Online Forum Index -> Scripting Help All times are GMT - 4 Hours
Page 1 of 1

 




Powered by phpBB © 2001, 2005 phpBB Group :: Theme & Graphics by GHS & Scott E. Royalty