[HELP] Phone number generator
#1

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..
Reply
#2

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
Reply
#3

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;
Reply
#4

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

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
Reply
#6

Tried printing debug messages?
Reply
#7

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.. :\
Reply
#8

bump (12h)
Reply
#9

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

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)