Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   getting an index (https://forums.graalonline.com/forums/showthread.php?t=79424)

Frankie 04-16-2008 02:55 AM

getting an index
 
I'm having a little trouble here.

I'm making a bounty system, the account and the amount of money for that bounty will be placed in an array like this:

this.bounty = {{"Frankie", 2000}, {"TSAdmin", 1500}};

when a player dies I want to check if they are in the list, but I can't do that because I'm having trouble checking the index.

function onCreated()
{
this.array = {{"Frankie", 2000}, {"TSAdmin", 1500}};
this.getIndex = this.array.index("Frankie");
sendtorc(this.getIndex);
}

returns -1.

I need it to return 0 this way I can do:

this.moneyAmount = this.array[this.getIndex][1];

there's something I'm missing but TSA and I can't figure it out.

Tolnaftate2004 04-16-2008 03:08 AM

Try maybe:
PHP Code:

temp.array = {{"Frankie","TSAdmin"},{2000,1500}};
temp.ind temp.array[0].index("Frankie");
echo(
temp.ind);
echo(
temp.array[1][temp.ind]); 

The way you're doing it will not work; you can loop through the elements to find the right index, like so:
PHP Code:

temp.array = {{"Frankie",2000},{"TSAdmin",1500}};
temp.temp.array.size();
for (
temp.i=0;temp.i<temp.l;temp.i++)
  if (
temp.array[temp.i][0] == "Frankie") {
    echo(
temp.i);
    break;
  }
echo(
temp.array[temp.i][1]); 

By my best estimates (read: guess), the former is ~2.5x faster.

xXziroXx 04-16-2008 03:11 AM

You can't get the index of a subaray in an array without a loop.

PHP Code:

// ...

this.array = {{"Frankie"2000}, {"TSAdmin"1500}};
this.getIndex index2(this.array, "Frankie");
echo(
this.array[this.getIndex][0SPC "found!");

// ...

function index2(array, acc)
{
  for (
temp.arg: array) {
    if (
temp.arg[0] == acc) return array.index(temp.arg);
  }
  return -
1;


EDIT: Bah, Pfa beat me too it!

zokemon 04-16-2008 09:41 AM

You're probably better off just storing them all in variables like:
PHP Code:

this.bountylist.Frankie 2000;
this.bountylist.TSAdmin 1500;

temp.foo this.bountylist.(@ player.account);
echo(
"My bounty is " foo); 

You can also transfer the list by use of:
PHP Code:

this.bountyarray this.bountylist.savevarstoarray(true); 

And:

PHP Code:

this.bountylist.loadvarsfromarray(this.bountyarray); 



All times are GMT +2. The time now is 12:08 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.