13.08.2018, 13:26
Can anyone give me example how to make like
/pay 1k instead of /pay 1000
/pay 1k instead of /pay 1000
cmd:pay(pid,p[]){
if(sscanf(p,"s[10]",p))return scm(pid,-1,"/pay [amount]");
new amount=strval(p);
if(strfind(p,"k",true) != -1)amount*=1000;
User[pid][Money]+=amount;
return 1;
}
public OnFilterScriptInit()
{
new str[] = { 'M', 1000000, 'K', 1000 };
new value = GetValue("126MK", str);
printf("%d", value);
}
GetValue(str[], const vals[])
{
new val = 0, len = strlen(vals);
if(len != 0 && (len % 2))
len--;
for(new i = 0, j = strlen(str); i < j; i++)
{
if(str[i] >= '0' && val <= '9')
{
val *= 10;
val += str[i] - '0';
}
else
{
for(new q = 0; q < len; q += 2)
{
if(tolower(str[i]) == tolower(vals[q]))
{
val *= vals[q + 1];
}
}
}
}
return val;
}
// take this as parameters of your command like "/pay 100k"
new string[] = "100k";
// working on getting real amount
new amount = strval(string);
if (strfind(string, "m", true) != -1) {
amount *= 1000000;
}
if (strfind(string, "k", true) != -1) {
amount *= 1000;
}
// result
printf("amount is $%i", amount);