SA-MP Forums Archive
Insurance problem. - 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)
+--- Thread: Insurance problem. (/showthread.php?tid=610960)



Insurance problem. - IndependentGaming - 30.06.2016

Hello, I'm trying to fix my setinsurance commands that you see the name of the insurance in stead of the number

Errors I get
Код:
Gamemode.pwn(16399) : warning 219: local variable "insur" shadows a variable at a preceding level
Gamemode.pwn(16400) : error 033: array must be indexed (variable "-unknown-")
Gamemode.pwn(16397) : warning 203: symbol is never used: "insur"
Gamemode.pwn(23799) : error 006: must be assigned to an array
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Command:

Код:
CMD:setinsurance(playerid, params[])
{
 	if (PlayerInfo[playerid][pAdmin] >= 4)
	{
		new string[128], giveplayerid, insurance;
		if(sscanf(params, "ud", giveplayerid, insurance))
		{
			SendClientMessageEx(playerid, COLOR_GREY, "USAGE: /setinsurance [player] [insurance]");
			SendClientMessageEx(playerid, COLOR_RED, "NOTE: This command will be saved in server logs. Make sure you give ONLY insurance 3!");
			SendClientMessageEx(playerid, COLOR_ORANGE, "Available Insurances: 1 = [CountyGen], 2 = [All Saints]");
			SendClientMessageEx(playerid, COLOR_ORANGE, "Available Insurances: 3 = [Montgomery], 4 = [Fort Carson], 5 = [San Fiero]");
			SendClientMessageEx(playerid, COLOR_ORANGE, "Available Insurances: 6 = [Gold Room], 7 = [At Home], 8 = [BlueBerry], 9 = [Tierra Robada] 10 = [LAAS Base]");
			return 1;
		}

  		if(insurance >= 0 && insurance <= 10)
		{
			format(string, sizeof(string), " Your insurance has been changed to %d.", GetInsuranceName(giveplayerid));
			SendClientMessageEx(giveplayerid,COLOR_LIGHTBLUE,string);
			format(string, sizeof(string), " You have changed %s's insurance to %d.", GetPlayerNameEx(giveplayerid), GetInsuranceName(giveplayerid));
			SendClientMessageEx(playerid,COLOR_LIGHTBLUE,string);
			format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s has set %s's insurance to %d.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetInsuranceName(giveplayerid));
			ABroadCast(COLOR_YELLOW, string, 4);
			PlayerInfo[giveplayerid][pInsurance] = GetInsuranceName(giveplayerid);
			Log("logs/insurance.log", string);
			return 1;
		}
	}
	else
	{
		SendClientMessageEx(playerid, COLOR_GRAD2, "You are not authorized to use that command.");
	}
	return 1;
}
Forward:

Код:
stock GetInsuranceName(insur)
{
	new insur[20];
	switch(insur)
	{
		case 1: insur = "County General";
		case 2: insur = "All Saints";
		case 3: insur = "Montgomery";
		case 4: insur = "Fort Carson";
		case 5: insur = "San Fierro";
		case 6: insur = "Club VIP";
		case 7: insur = "Home Care";
		case 9: insur = "El Quebrados";
		case 10: insur = "SAAS Base Hospital";
		case 11: insur = "Las Venturas";
		case 12: insur = "Special Room";
		case 13: insur = "LAAS Base";
		case 14: insur = "Bayside";
		default: insur = "None";
	}
	return insur;
}


How can I fix this ?


Re: Insurance problem. - Runn3R - 30.06.2016

Код:
stock GetInsuranceName(option)
{
	new insur[20];
	switch(option)
	{
		case 1: insur = "County General";
		case 2: insur = "All Saints";
		case 3: insur = "Montgomery";
		case 4: insur = "Fort Carson";
		case 5: insur = "San Fierro";
		case 6: insur = "Club VIP";
		case 7: insur = "Home Care";
		case 9: insur = "El Quebrados";
		case 10: insur = "SAAS Base Hospital";
		case 11: insur = "Las Venturas";
		case 12: insur = "Special Room";
		case 13: insur = "LAAS Base";
		case 14: insur = "Bayside";
		default: insur = "None";
	}
	return insur;
}



Re: Insurance problem. - IndependentGaming - 30.06.2016

Still got 1 error:

Код:
Gamemode.pwn(23799) : error 006: must be assigned to an array
Line 23799

Код:
			ABroadCast(COLOR_YELLOW, string, 4);
			PlayerInfo[giveplayerid][pInsurance] = GetInsuranceName(giveplayerid);
			Log("logs/insurance.log", string);



Re: Insurance problem. - IndependentGaming - 30.06.2016

Error has been fixed but, still when I set my insurance I get numbers in stead of the name:




Re: Insurance problem. - Stinged - 30.06.2016

Use %s and not %d when showing strings in format.


Re: Insurance problem. - IndependentGaming - 30.06.2016

Ooh yes, forgot that...

But it doesn't work ether..
See screenshot I have set my insurance to 3




Re: Insurance problem. - Stinged - 30.06.2016

I'm guessing your playerid is 0.

You're using GetInsuranceName on 'giveplayerid' (Which is 0 most likely, since you're testing it)
Replace giveplayerid with the actual insurance id (For example, Insurance[playerid])


Re: Insurance problem. - IndependentGaming - 30.06.2016

Like this:

Код:
if(insurance >= 0 && insurance <= 10)
		{
			format(string, sizeof(string), " Your insurance has been changed to %s.", GetInsuranceName(playerid));
			SendClientMessageEx(giveplayerid,COLOR_LIGHTBLUE,string);
			format(string, sizeof(string), " You have changed %s's insurance to %s.", GetPlayerNameEx(giveplayerid), GetInsuranceName(playerid));
			SendClientMessageEx(playerid,COLOR_LIGHTBLUE,string);
			format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s has set %s's insurance to %s.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetInsuranceName(playerid));
			ABroadCast(COLOR_YELLOW, string, 4);
			PlayerInfo[giveplayerid][pInsurance] = insurance;
			Log("logs/insurance.log", string);
			return 1;
		}
	}
Isn't working...


Re: Insurance problem. - Stinged - 30.06.2016

No, I said use the insurance id, and not the playerid.


Re: Insurance problem. - IndependentGaming - 30.06.2016

Sorry, I don't understand what you mean by that..