/Buybeer amount
#1

Код:
if(strcmp(cmdtext, "/buybeer", true) == 0)
{
	new tmp[5], index;

	new length = strlen(cmdtext);
	while ((index < length) && (cmdtext[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	while ((index < length) && (cmdtext[index] > ' ') && ((index - offset) < (sizeof(tmp) - 1)))
	{
		tmp[index - offset] = cmdtext[index];
		index++;
	}
	tmp[index - offset] = EOS;

	if( ! strlen(tmp) ) return SendClientMessage(playerid, 0xFFFFFFAA, "Usage: /buybeer [amount]");
	new amount = strval(tmp);

	if ( GetPlayerMoney(playerid) < (amount*50) ) return SendClientMessage(playerid, 0xFFFFFFAA, "You don't have enough money to buy that amount of beer.");

	GivePlayerMoney( playerid, (50*amount) );

	BEER[playerid] += amount;

	return 1;
}
Ok so, this is a script to type /buybeer amount.

So if you type /buybeer 3 you will get 3 beers, and you will loose 150$.
This is for my RPG script btw.
The problem is when i type /buybeer ingame it does not say "Usage : /buybeer amount". Nothing happens.
When i type /buybeer 3, it says "unkown command".
Reply
#2

No one .. ?
Reply
#3

-> Script request topic.
Reply
#4

Код:
if(strcmp(cmd, "/buybeer", true) == 0)
{
	new tmp[5], idx;
	tmp = strtok(cmdtext, idx);

	if( ! strlen(tmp) ) return SendClientMessage(playerid, 0xFFFFFFAA, "Usage: /buybeer [amount]");
	new amount = strval(tmp);

	if ( GetPlayerMoney(playerid) < (amount*50) ) return SendClientMessage(playerid, 0xFFFFFFAA, "You don't have enough money to buy that amount of beer.");

	GivePlayerMoney( playerid, (50*amount) );

	BEER[playerid] += amount;

	return 1;
}
is that it?
Reply
#5

@_CHoz: -> http://forum.sa-mp.com/index.php?topic=78026.0
Reply
#6

Quote:
Originally Posted by Don Correlli
Lol thanks.
New things to leard every day.
Reply
#7

Quote:
Originally Posted by _CHoz
Код:
if(strcmp(cmd, "/buybeer", true) == 0)
{
	new tmp[256], idx;
	tmp = strtok(cmdtext, idx);

	if( ! strlen(tmp) ) return SendClientMessage(playerid, 0xFFFFFFAA, "Usage: /buybeer [amount]");
	new amount = strval(tmp);

	if ( GetPlayerMoney(playerid) < (amount*50) ) return SendClientMessage(playerid, 0xFFFFFFAA, "You don't have enough money to buy that amount of beer.");

	GivePlayerMoney( playerid, (50*amount) );

	BEER[playerid] += amount;

	return 1;
}
is that it?
It has some errors.
I am new to scripting, thanks for helping and mind telling me how to fix these errors?

Код:
C:\Documents and Settings\home\My Documents\KingsRPG.pwn(214) : error 017: undefined symbol "cmd"
C:\Documents and Settings\home\My Documents\KingsRPG.pwn(217) : error 017: undefined symbol "strtok"
C:\Documents and Settings\home\My Documents\KingsRPG.pwn(217) : error 033: array must be indexed (variable "tmp")
C:\Documents and Settings\home\My Documents\KingsRPG.pwn(216) : warning 203: symbol is never used: "idx"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Reply
#8

then try this
Код:
if(strcmp(cmdtext, "/buybeer", true) == 0)
{
	new tmp[5], index;

	new length = strlen(cmdtext);
	while ((index < length) && (cmdtext[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	while ((index < length) && (cmdtext[index] > ' ') && ((index - offset) < (sizeof(tmp) - 1)))
	{
		tmp[index - offset] = cmdtext[index];
		index++;
	}
	tmp[index - offset] = EOS;

	if( ! strlen(tmp) ) return SendClientMessage(playerid, 0xFFFFFFAA, "Usage: /buybeer [amount]");
	new amount = strval(tmp);

	if ( GetPlayerMoney(playerid) < (amount*50) ) return SendClientMessage(playerid, 0xFFFFFFAA, "You don't have enough money to buy that amount of beer.");

	GivePlayerMoney( playerid, (50*amount) );

	BEER[playerid] += amount;

	return 1;
}
Reply
#9

That will give the warning about variable shadowing with the same name because you defined 'tmp' two times. First time with 5 cells and second time with 15 cells.
Reply
#10

Quote:
Originally Posted by Don Correlli
-> Script request topic.
He doesn't request anything.


You should make a beers variable and everytime when one is purchased just do -1 to the beers.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)