SA-MP Forums Archive
[HELP] Phone number generator - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [HELP] Phone number generator (/showthread.php?tid=138027)



[HELP] Phone number generator - SiJ - 31.03.2010

Hey,
I'm using this stuff to generate a phone number:

pawn Код:
forward MakePNumber();
public MakePNumber()
{
  new number = Random(60001,69999);
  if(IsValidPNumber(number))
  {
        SavePNumber(number);
        return number;
    }
    else
    {
        MakePNumber();
    }
    return 1;
}

forward IsValidPNumber(number);
public IsValidPNumber(number)
{
    new savednumbers[512];
    new File:numb = fopen("numbers.info",io_readwrite);
    fread(numb, savednumbers);
    fclose(numb);
    new numberstr[8];
    format(numberstr,8,"%d",number);
    if(strfind(savednumbers,numberstr) != -1)
    {
      return 0;
    }
    else return 1;
}

stock SavePNumber(number)
{
  new savednumbers[512];
  new newnumbers[512];
    new File:numb = fopen("numbers.info",io_readwrite);
    fread(numb, savednumbers);
    format(newnumbers,1024,"%s|%d",savednumbers,number);
    fwrite(numb, newnumbers);
    fclose(numb);
    return 1;
}
But it saves random numbers (which didn't even existed) and the check of phone numbers (IsValidPNumber) fails somehow..


Re: [HELP] Phone number generator - biltong - 31.03.2010

Random only has one parameter, it's maximum allowed value, so where you say
pawn Код:
new number = Random(60001,69999);
is wrong.

Random starts at 0 and goes up to the value you give it, and picks a random number from that, not between two numbers.

https://sampwiki.blast.hk/wiki/Random


Re: [HELP] Phone number generator - SiJ - 31.03.2010

Quote:
Originally Posted by biltong
Random only has one parameter, it's maximum allowed value, so where you say
pawn Код:
new number = Random(60001,69999);
is wrong.

Random starts at 0 and goes up to the value you give it, and picks a random number from that, not between two numbers.

https://sampwiki.blast.hk/wiki/Random
random (in lovercase) starts like that..
Random is my custom function:
pawn Код:
stock Random(min, max) return random(max - min+1) + min;



Re: [HELP] Phone number generator - biltong - 31.03.2010

I see. In that case maybe the problem still lies in there? Maybe your random isn't working properly?


Re: [HELP] Phone number generator - SiJ - 31.03.2010

Quote:
Originally Posted by biltong
I see. In that case maybe the problem still lies in there? Maybe your random isn't working properly?
Random works.. I tried printing it.. I think problem is somewhere around strfind in IsValidPNumber


Re: [HELP] Phone number generator - biltong - 31.03.2010

Tried printing debug messages?


Re: [HELP] Phone number generator - SiJ - 31.03.2010

Quote:
Originally Posted by biltong
Tried printing debug messages?
Yeah:

pawn Код:
forward MakePNumber();
public MakePNumber()
{
  new number = Random(60001,69999);
  if(IsValidPNumber(number))
  {
        SavePNumber(number);
        printf("MAKE PHONE NUMBER: %i",number);
        return number;
    }
    else
    {
        MakePNumber();
    }
    return 1;
}

forward IsValidPNumber(number);
public IsValidPNumber(number)
{
  printf("IS VALID PHONE NUMBER CHECK: %i",number);
    new savednumbers[512];
    new File:numb = fopen("numbers.info",io_readwrite);
    fread(numb, savednumbers);
    printf("READ PHONE NUMBERS: %s",savednumbers);
    fclose(numb);
    new numberstr[8];
    format(numberstr,8,"%d",number);
    printf("MAKE PHONE NUMBER 2: %s",numberstr);
    printf("MAKE PHONE NUMBER 3: %s",savednumbers);
    if(strfind(savednumbers,numberstr) != -1)
    {
      return 0;
    }
    else return 1;
}

stock SavePNumber(number)
{
  new savednumbers[512];
  new newnumbers[512];
    new File:numb = fopen("numbers.info",io_readwrite);
    fread(numb, savednumbers);
    format(newnumbers,1024,"%s|%d",savednumbers,number);
    fwrite(numb, newnumbers);
    fclose(numb);
    return 1;
}
Quote:

[08:46:57] IS VALID PHONE NUMBER CHECK: 62400
[08:46:57] READ PHONE NUMBERS: |67955|67955|67136|67955|67955|67136|64263
[08:46:57] MAKE PHONE NUMBER 2: 62400
[08:46:57] MAKE PHONE NUMBER 3: |67955|67955|67136|67955|67955|67136|64263
[08:46:57] MAKE PHONE NUMBER: 62400

At " MAKE PHONE NUMBER 3:" it didn't saved the number.. :\


Re: [HELP] Phone number generator - SiJ - 31.03.2010

bump (12h)


Re: [HELP] Phone number generator - RSX - 31.03.2010

May i ask why newnumbers in second is doubled in size, maybe it doesn't even write because of this


Re: [HELP] Phone number generator - SiJ - 31.03.2010

Quote:
Originally Posted by RSX
May i ask why newnumbers in second is doubled in size, maybe it doesn't even write because of this
oops.. thanks for noticing.. maybe that's caused this bug :O