Need Help with this admin cmd
#1

I need to make this /refund cmd. Can anyone help me with making this?

PHP код:
if(strcmp(cmd"/refund"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
PlayerInfo[playerid][pAdmin] < 4)
            {
                
SendClientMessage(playeridCOLOR_GREY,"   You are not authorized to use that command !");
                return 
1;
            }
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_WHITE"USAGE: /refund [playerid/PartOfName]");
                return 
1;
            }
            
giveplayerid ReturnUser(tmp);
            if(
IsPlayerConnected(giveplayerid))
            {
                if(
giveplayerid != INVALID_PLAYER_ID)
                {
                    
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                    
RefundingID[playerid] = giveplayerid;
                    
DisplayDialogForPlayer(playerid47); //refund
                
}
            }
        }
        return 
1;
    }
    
    if(
dialogid == 48//refund
    
{
        if(!
IsPlayerConnected(RefundingID[playerid]) || RefundingID[playerid] == INVALID_PLAYER_ID)
        {
            
RefundingID[playerid] = 999RefundingNumber[playerid] = 999;
            
SendClientMessage(playeridCOLOR_GREY"   That player is Offline / Invalid ID !");
            return 
1;
        }
        if(!
response//cancel
        
{
            
RefundingNumber[playerid] = 999;
            
DisplayDialogForPlayer(playerid47); //refund
        
}
        if(
response)
        {
            if(!
strlen(inputtext)) //no text inputted
            
{
                
RefundingNumber[playerid] = 999;
                
DisplayDialogForPlayer(playerid47); //refund
                
return 1;
            }
            new 
sendername[MAX_PLAYER_NAME];
            new 
giveplayer[MAX_PLAYER_NAME];
            new 
amount;
            
amount strval(inputtext);
            new 
string[128];
            new 
yearmonthday;
            
getdate(yearmonthday);
            new 
stat RefundingNumber[playerid];
            new 
giveplayerid RefundingID[playerid];
            
GetPlayerName(playeridsendernamesizeof(sendername));
            
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
            switch(
stat)
            {
                case 
0//Level
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pLevel] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
1//Cash
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pCash] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Cash to $%d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Cash to $%d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Cash to $%d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
2//Bank
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pAccount] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Bank Account to $%d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Bank Account to $%d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Bank Account to $%d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
3//Materials
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pMats] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Materials to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Materials to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Materials to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
4//Crack
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pCrack] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Crack to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Crack to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Crack to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
5//Pot
                
{
                    
RefundingNumber[playerid] = 999;
                    
PlayerInfo[giveplayerid][pPot] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Pot to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Pot to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Pot to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
6//Arms Dealer
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pArmsSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Arms Dealer Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Arms Dealer Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Arms Dealer Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
7//Carjacker
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pJackSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Car Jacker Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Car Jacker Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Car Jacker Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
8//Detective
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pDetSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Detective Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Detective Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Detective Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
9//Lawyer
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pLawSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Lawyer Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Lawyer Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Lawyer Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
10//Mechanic
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pMechSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Mechanic Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Mechanic Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Mechanic Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
11//Drug Dealer
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pDrugsSkill] = lvl//edit
                    //
                    
PlayerInfo[giveplayerid][pDrugsSkill] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Drug Dealer Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Drug Dealer Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Drug Dealer Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
12//Sex
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pSexSkill] = lvl//edit
                    //
                    
PlayerInfo[giveplayerid][pSexSkill] = amount//edit
                    
format(stringsizeof(string), "* You have set %s's Sex Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Sex Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Sex Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
13//Boxing
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pBoxSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Boxing Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Boxing Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Boxing Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                case 
14//Fishing
                
{
                    
RefundingNumber[playerid] = 999;
                    
//
                    
new lvl;
                    if(
amount == 1) { lvl 0;}
                    else if(
amount == 2) { lvl 50; }
                    else if(
amount == 3) { lvl 100; }
                    else if(
amount == 4) { lvl 200; }
                    else if(
amount == 5) { lvl 400; }
                    else { 
SendClientMessage(playeridCOLOR_GREY"   Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid47); return 1; } //edit
                    
PlayerInfo[giveplayerid][pFishSkill] = lvl//edit
                    //
                    
format(stringsizeof(string), "* You have set %s's Fishing Level to %d."giveplayeramount); //edit
                    
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
format(stringsizeof(string), "* An Admin has set your Fishing Level to %d."amount); //edit
                    
SendClientMessage(giveplayeridCOLOR_LIGHTBLUEstring);
                    
DisplayDialogForPlayer(playerid47); //refund
                    
format(stringsizeof(string), "[%d/%d/%d] %s has set %s's Fishing Level to %d"daymonthyearsendernamegiveplayeramount); //edit
                    
StatLog(string);
                }
                default:
                {
                    
DisplayDialogForPlayer(playerid47); //refund
                    
SendClientMessage(giveplayeridCOLOR_GREY"   Invalid stat code !");
                    return 
1;
                }
            }
        }
    }
    if(
dialogid == 47//refund
    
{
        if(!
response)
        {
            
RefundingID[playerid] = 999;
        }
        if(
response)
        {
            new 
string[128];
            new 
statname[32];
            new 
giveplayer[MAX_PLAYER_NAME];
            
GetPlayerName(RefundingID[playerid], giveplayersizeof(giveplayer));
            switch(
listitem)
            {
                case 
0:
                {
                    
RefundingNumber[playerid] = 0;
                    
statname "Level";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
1:
                {
                    
RefundingNumber[playerid] = 1;
                    
statname "Cash";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
2:
                {
                    
RefundingNumber[playerid] = 2;
                    
statname "Bank";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                    return 
1;
                }
                case 
3:
                {
                    
RefundingNumber[playerid] = 3;
                    
statname "Materials";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
4:
                {
                    
RefundingNumber[playerid] = 4;
                    
statname "Crack";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
5:
                {
                    
RefundingNumber[playerid] = 5;
                    
statname "Pot";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
6:
                {
                    
RefundingNumber[playerid] = 6;
                    
statname "Arms Dealer Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
7:
                {
                    
RefundingNumber[playerid] = 7;
                    
statname "Carjacker Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
8:
                {
                    
RefundingNumber[playerid] = 8;
                    
statname "Detective Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
9:
                {
                    
RefundingNumber[playerid] = 9;
                    
statname "Lawyer Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
10:
                {
                    
RefundingNumber[playerid] = 10;
                    
statname "Mechanic Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
11:
                {
                    
RefundingNumber[playerid] = 11;
                    
statname "Drug Dealer Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
12:
                {
                       
RefundingNumber[playerid] = 12;
                      
statname "Sex Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
13:
                {
                    
RefundingNumber[playerid] = 13;
                    
statname "Boxing Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
                case 
14:
                {
                    
RefundingNumber[playerid] = 14;
                    
statname "Fishing Skill";
                    
format(stringsizeof(string), "Refunding [%d]%s's %s"RefundingID[playerid] , giveplayerstatname);
                    
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUTstring,"Enter the amount below.","Confirm","Cancel");
                }
            }
            return 
1;
        }
    } 
Reply
#2

What's wrong?
Reply
#3

Give us some details, and what's wrong with it ?
Reply
#4

Can you help me in fixing these things?. Some Functions need to be defined i think.

Copy\gamemodes\Testing.pwn(1) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(3) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(5) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn( : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(11) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(14) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(17) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(19) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(21) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(21) : error 010: invalid function or declaration
Copy\gamemodes\Testing.pwn(21 -- 24) : error 054: unmatched closing brace ("}")
Copy\gamemodes\Testing.pwn(21 -- 24) : fatal error 107: too many error messages on one line
Reply
#5

Show us the lines with the problem ?
Reply
#6

Below red marks are the error shown


if(strcmp(cmd, "/refund", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 4)
{
SendClientMessage(playerid, COLOR_GREY," You are not authorized to use that command !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /refund [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
RefundingID[playerid] = giveplayerid;
DisplayDialogForPlayer(playerid, 47); //refund
}

}
}
return 1;
}

if(dialogid == 4 //refund
{
if(!IsPlayerConnected(RefundingID[playerid]) || RefundingID[playerid] == INVALID_PLAYER_ID)
{
RefundingID[playerid] = 999; RefundingNumber[playerid] = 999;
SendClientMessage(playerid, COLOR_GREY, " That player is Offline / Invalid ID !");
return 1;
}
if(!response) //cancel
{
RefundingNumber[playerid] = 999;
DisplayDialogForPlayer(playerid, 47); //refund
}
if(response)
{
if(!strlen(inputtext)) //no text inputted
{
RefundingNumber[playerid] = 999;
DisplayDialogForPlayer(playerid, 47); //refund
return 1;
}
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new amount;
amount = strval(inputtext);
new string[128];
new year, month, day;
getdate(year, month, day);
new stat = RefundingNumber[playerid];
new giveplayerid = RefundingID[playerid];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
switch(stat)
{
case 0: //Level
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pLevel] = amount; //edit
format(string, sizeof(string), "* You have set %s's Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 1: //Cash
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pCash] = amount; //edit
format(string, sizeof(string), "* You have set %s's Cash to $%d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Cash to $%d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Cash to $%d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 2: //Bank
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pAccount] = amount; //edit
format(string, sizeof(string), "* You have set %s's Bank Account to $%d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Bank Account to $%d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Bank Account to $%d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 3: //Materials
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pMats] = amount; //edit
format(string, sizeof(string), "* You have set %s's Materials to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Materials to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Materials to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 4: //Crack
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pCrack] = amount; //edit
format(string, sizeof(string), "* You have set %s's Crack to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Crack to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Crack to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 5: //Pot
{
RefundingNumber[playerid] = 999;
PlayerInfo[giveplayerid][pPot] = amount; //edit
format(string, sizeof(string), "* You have set %s's Pot to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Pot to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Pot to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 6: //Arms Dealer
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pArmsSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Arms Dealer Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Arms Dealer Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Arms Dealer Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 7: //Carjacker
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pJackSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Car Jacker Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Car Jacker Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Car Jacker Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 8: //Detective
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pDetSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Detective Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Detective Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Detective Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 9: //Lawyer
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pLawSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Lawyer Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Lawyer Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Lawyer Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 10: //Mechanic
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pMechSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Mechanic Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Mechanic Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Mechanic Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 11: //Drug Dealer
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pDrugsSkill] = lvl; //edit
//
PlayerInfo[giveplayerid][pDrugsSkill] = amount; //edit
format(string, sizeof(string), "* You have set %s's Drug Dealer Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Drug Dealer Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Drug Dealer Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 12: //Sex
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pSexSkill] = lvl; //edit
//
PlayerInfo[giveplayerid][pSexSkill] = amount; //edit
format(string, sizeof(string), "* You have set %s's Sex Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Sex Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Sex Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 13: //Boxing
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pBoxSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Boxing Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Boxing Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Boxing Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
case 14: //Fishing
{
RefundingNumber[playerid] = 999;
//
new lvl;
if(amount == 1) { lvl = 0;}
else if(amount == 2) { lvl = 50; }
else if(amount == 3) { lvl = 100; }
else if(amount == 4) { lvl = 200; }
else if(amount == 5) { lvl = 400; }
else { SendClientMessage(playerid, COLOR_GREY, " Amount can't be below 0 or above 5 !"); DisplayDialogForPlayer(playerid, 47); return 1; } //edit
PlayerInfo[giveplayerid][pFishSkill] = lvl; //edit
//
format(string, sizeof(string), "* You have set %s's Fishing Level to %d.", giveplayer, amount); //edit
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* An Admin has set your Fishing Level to %d.", amount); //edit
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
DisplayDialogForPlayer(playerid, 47); //refund
format(string, sizeof(string), "[%d/%d/%d] %s has set %s's Fishing Level to %d", day, month, year, sendername, giveplayer, amount); //edit
StatLog(string);
}
default:
{
DisplayDialogForPlayer(playerid, 47); //refund
SendClientMessage(giveplayerid, COLOR_GREY, " Invalid stat code !");
return 1;
}
}
}
}
if(dialogid == 47) //refund
{
if(!response)
{
RefundingID[playerid] = 999;
}
if(response)
{
new string[128];
new statname[32];
new giveplayer[MAX_PLAYER_NAME];
GetPlayerName(RefundingID[playerid], giveplayer, sizeof(giveplayer));
switch(listitem)
{
case 0:
{
RefundingNumber[playerid] = 0;
statname = "Level";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 1:
{
RefundingNumber[playerid] = 1;
statname = "Cash";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 2:
{
RefundingNumber[playerid] = 2;
statname = "Bank";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
return 1;
}
case 3:
{
RefundingNumber[playerid] = 3;
statname = "Materials";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 4:
{
RefundingNumber[playerid] = 4;
statname = "Crack";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 5:
{
RefundingNumber[playerid] = 5;
statname = "Pot";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 6:
{
RefundingNumber[playerid] = 6;
statname = "Arms Dealer Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 7:
{
RefundingNumber[playerid] = 7;
statname = "Carjacker Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 8:
{
RefundingNumber[playerid] = 8;
statname = "Detective Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 9:
{
RefundingNumber[playerid] = 9;
statname = "Lawyer Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 10:
{
RefundingNumber[playerid] = 10;
statname = "Mechanic Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 11:
{
RefundingNumber[playerid] = 11;
statname = "Drug Dealer Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 12:
{
RefundingNumber[playerid] = 12;
statname = "Sex Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 13:
{
RefundingNumber[playerid] = 13;
statname = "Boxing Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
case 14:
{
RefundingNumber[playerid] = 14;
statname = "Fishing Skill";
format(string, sizeof(string), "Refunding [%d]%s's %s", RefundingID[playerid] , giveplayer, statname);
ShowPlayerDialog(playerid,48,DIALOG_STYLE_INPUT, string,"Enter the amount below.","Confirm","Cancel");
}
}
return 1;
}
}
Reply
#7

you just didnt close all the barrels.. :\
pawn Код:
if(strcmp(cmd, "/refund", true) == 0)
{//1 open
    if(IsPlayerConnected(playerid)) {//2 open
        if(PlayerInfo[playerid][pAdmin] < 4) {//3 open
            SendClientMessage(playerid, COLOR_GREY," You are not authorized to use that command !");
            return 1;
        }//3 closed
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {//4 open
            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /refund [playerid/PartOfName]");
            return 1;
        }//4 closed
        giveplayerid = ReturnUser(tmp);
        if(IsPlayerConnected(giveplayerid)) {//5 open
            if(giveplayerid != INVALID_PLAYER_ID) {//6 open
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                RefundingID[playerid] = giveplayerid;
                                                  //refund
                DisplayDialogForPlayer(playerid, 47);
            }//6 closed
        }//5 closed
    }//2 closed
}//1 closed


return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)