astralprojection 35 Posted June 24, 2022 prontera,125,93,5 script test_girl 1_F_MARIA,{ mes "[List Card]"; mes "Please select from "+getarraysize(.cards)+" cards"; .@s = select(.menu$) -1; mes "You selected: "+getitemname(.cards[.@s]); close; OnInit: setarray .cards, 4244,4253,4252,4245,4032,4062,4248,4249,4043,4013,4018,4234,4344,4160,4243,4138,4242,4094,4240,4114,4075,4347,4246,4247,4233,4129,4119,4356,4074,4215,4327,4320,4214,4212,4213,4229,4063,4288,4290,4289,4284,4285,4009,4202,4299,4041,4015,4293,4235,4061,4153,4296,4040,4298,4297,4272,4170,4171,4133,4279,4173,4023,4082,4125,4122,4182,4181,4098,4178,4069,4180,4004,4177,4176,4056,4070,4251,4052,4360,4349,4262,4141,4267,4002,4316,4020,4080,4158,4319,4088,4312,4151,4152,4149,4323,4280,4110,4271,4270,4278,4087,4165,4150,4157,4060,4155,4072,4161,4283,4355,4162,4164,4325,4362,4331,4322,4345,4081,4045,4019,4103,4115,4035,4328,4321,4231,4269,4268,4239,4116,4109,4139,4065,4287,4286,4366,4351,4136,4301,4307,4140,4292,4091,4291,4295,4027,4184,4195,4188,4265,4217,4191,4193,4006,4364,4076,4201,4030,4079,4105,4112,4196,4055,4084,4113,4095,4046,4097,4124,4200,4067,4199,4341,4057,4205,4339,4204,4126,4208,4317,4343,4036,4106,4090,4108,4206,4167,4127,4166,4159,4334,4093,4338,4256,4255,4085,4066,4071,4237,4310,4309,4099,4031,4007,4314,4311,4315,4120,4118,4077,4329,4011,4008,4073,4335,4024,4048,4175,4033,4337,4005,4001,4313,4003,4294,4083,4186,4350,4187,4353,4104,4154,4185,4021,4014,4192,4194,4219,4101,4216,4017,4078,4068,4326,4358,4368,4273,4230,4117,4222,4092,4025,4221,4228,4044,4037,4100,4059,4086,4220,4022,4227,4039,4223,4156,4042,4224,4226,4225,4111,4218,4089,4304,4028,4340,4282,4058,4172,4016,4012,4026,4050,4308,4336,4049,4333,4107,4209,4053,4211,4210,4332,4348,4303,4102,4258,4232,4257,4010,4264,4029,4259,4261,4260,4034,4190,4189,4346,4051,4096,4064,4277,4281,4038,4274,4275; for (.@i = 0; .@i < getarraysize(.cards); ++.@i) .menu$ += "^FF0000[ "+( .@i+1 )+". ]^0000FF "+getitemname(.cards[.@i]) +":"; end; } Is it possible to make pagination on these menu? as you can see I have more than 300 entries and wanted to add those to menu. Quote Share this post Link to post Share on other sites
0 Cretino 48 Posted June 27, 2022 Hey, this is one way to do it. Spoiler prontera,125,93,5 script test_girl 1_F_MARIA,{ setarray .@cards, 4244,4253,4252,4245,4032,4062,4248,4249,4043,4013,4018,4234,4344,4160,4243,4138,4242,4094,4240,4114,4075,4347,4246,4247,4233,4129,4119,4356,4074,4215,4327,4320,4214,4212,4213,4229,4063,4288,4290,4289,4284,4285,4009,4202,4299,4041,4015,4293,4235,4061,4153,4296,4040,4298,4297,4272,4170,4171,4133,4279,4173,4023,4082,4125,4122,4182,4181,4098,4178,4069,4180,4004,4177,4176,4056,4070,4251,4052,4360,4349,4262,4141,4267,4002,4316,4020,4080,4158,4319,4088,4312,4151,4152,4149,4323,4280,4110,4271,4270,4278,4087,4165,4150,4157,4060,4155,4072,4161,4283,4355,4162,4164,4325,4362,4331,4322,4345,4081,4045,4019,4103,4115,4035,4328,4321,4231,4269,4268,4239,4116,4109,4139,4065,4287,4286,4366,4351,4136,4301,4307,4140,4292,4091,4291,4295,4027,4184,4195,4188,4265,4217,4191,4193,4006,4364,4076,4201,4030,4079,4105,4112,4196,4055,4084,4113,4095,4046,4097,4124,4200,4067,4199,4341,4057,4205,4339,4204,4126,4208,4317,4343,4036,4106,4090,4108,4206,4167,4127,4166,4159,4334,4093,4338,4256,4255,4085,4066,4071,4237,4310,4309,4099,4031,4007,4314,4311,4315,4120,4118,4077,4329,4011,4008,4073,4335,4024,4048,4175,4033,4337,4005,4001,4313,4003,4294,4083,4186,4350,4187,4353,4104,4154,4185,4021,4014,4192,4194,4219,4101,4216,4017,4078,4068,4326,4358,4368,4273,4230,4117,4222,4092,4025,4221,4228,4044,4037,4100,4059,4086,4220,4022,4227,4039,4223,4156,4042,4224,4226,4225,4111,4218,4089,4304,4028,4340,4282,4058,4172,4016,4012,4026,4050,4308,4336,4049,4333,4107,4209,4053,4211,4210,4332,4348,4303,4102,4258,4232,4257,4010,4264,4029,4259,4261,4260,4034,4190,4189,4346,4051,4096,4064,4277,4281,4038,4274,4275; .@page_size = 30; .@array_size = getarraysize(.@cards); .@page_count = (.@array_size / .@page_size) + ((.@array_size % .@page_size) > 0 ? 1 : 0); .@my_page = 1; .@limit[0] = 0; .@limit[1] = .@limit[0] + .@page_size; .@npc_name$ = "[List Card]"; .@diff = .@page_size; if (.@limit[1] > .@array_size) { .@diff = .@page_size - (.@limit[1] - .@array_size); .@limit[1] = .@array_size; } mes .@npc_name$; while(true) { mes "Please select from " + .@array_size + " cards."; mes "Page " + .@my_page + "/" + .@page_count + ""; .@menu$ = ""; for(.@i = .@limit[0]; .@i < .@limit[1]; .@i++) { .@menu$ += "^FF0000[ " + (.@i + 1) + ". ]^0000FF " + getitemname(.@cards[.@i]) + ":"; } .@menu$ += ((.@limit[1] >= .@array_size) ? "" : "Next") + ":" + ((.@limit[0] == 0) ? "" : "Back") + ":Cancel"; .@seleted = select(.@menu$); next; mes .@npc_name$; // 'Next' option if (.@seleted == .@diff + 1) { .@limit[0] = .@limit[1]; .@limit[1] += .@page_size; .@my_page++; if (.@limit[1] > .@array_size) { .@diff = .@page_size - (.@limit[1] - .@array_size); .@limit[1] = .@array_size; } else { .@diff = .@page_size; } } // 'Back' option else if (.@seleted == .@diff + 2) { .@limit[0] -= .@diff + ((.@diff != .@page_size) ? (.@page_size - .@diff) : 0); .@limit[1] -= .@diff; .@my_page--; if (.@limit[0] < 0) .@limit[0] = 0; if (.@limit[1] < .@page_size) .@limit[1] = .@page_size; .@diff = .@page_size; } // 'Cancel' option else if (.@seleted == .@diff + 3) { mes "Ok, back when you need me."; break; } // Card selected else { .@i = .@limit[0] + .@seleted - 1; mes "You selected: " + getitemname(.@cards[.@i]) + ""; break; } } close; } 1 astralprojection reacted to this Quote Share this post Link to post Share on other sites
0 astralprojection 35 Posted June 29, 2022 Brilliantly done @Cretino it solves the problem. Thank you very2x much. Quote Share this post Link to post Share on other sites
0 Bringer 0 Posted June 30, 2022 (edited) Can i ask what is the purpose of this script just card menu or quest for something? @astralprojection@astralprojectio Edited June 30, 2022 by Bringer Quote Share this post Link to post Share on other sites
0 astralprojection 35 Posted June 30, 2022 its for my Armory script. you may visit classicro.net . you can create new account and . 1. free 99/70 trans class 2. free complete armor with cards only 1 per account. Quote Share this post Link to post Share on other sites
0 Bringer 0 Posted June 30, 2022 1 hour ago, astralprojection said: its for my Armory script. you may visit classicro.net . you can create new account and . 1. free 99/70 trans class 2. free complete armor with cards only 1 per account. i see the script still incomplete Quote Share this post Link to post Share on other sites
Is it possible to make pagination on these menu? as you can see I have more than 300 entries and wanted to add those to menu.
Share this post
Link to post
Share on other sites