SA-MP Forums Archive
local variable "Random" shadows a variable at a preceding level - 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: local variable "Random" shadows a variable at a preceding level (/showthread.php?tid=613670)



local variable "Random" shadows a variable at a preceding level - CarRamper - 30.07.2016

Код:
public OnPlayerSpawn(playerid)
{
new Random = random(sizeof(RandomSpawnsCiv));
	SetPlayerPos(playerid, RandomSpawnsCiv[Random][0], RandomSpawnsCiv[Random][1], RandomSpawnsCiv[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawnsCiv[Random][3]);
    if(gTeam[playerid] == TEAM_CIV)
    {
        GivePlayerWeapon(playerid,23,100);
        GivePlayerWeapon(playerid,32,50);
    }

    if(gTeam[playerid] == TEAM_COP)
    {
        GivePlayerWeapon(playerid,3,1);
        GivePlayerWeapon(playerid,22,50);
        GivePlayerWeapon(playerid,30,75);
    }

    SetPlayerInterior(playerid,0);
    SetPlayerMapIcon(playerid, 12, -2050.9399,461.4982,35.1719, 52, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -1366.1598,-102.6746,6.0000, 52, 0, MAPICON_LOCAL);

    SetPlayerMapIcon(playerid, 57, -2766.2039,788.3242,52.7813, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2440.0798,742.6775,35.0156, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2507.7576,-49.3189,25.6880, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2417.7581,969.4247,45.2969, 17, 0, MAPICON_LOCAL);

    TextDrawShowForPlayer(playerid, DollarTxd);
    TextDrawShowForPlayer(playerid,Servt);
   	TextDrawShowForPlayer(playerid, LocationTD[playerid]);

    if(PlayerInfo[playerid][pJailed] == 1)
    {
    pJailTimerID[playerid] = SetTimerEx("pJailTimer", 1000, true, "i", playerid);
    pJailCount[playerid] = 20 + random(41);
    SendClientMessage(playerid,0xFF0000FF,"Welcome,go back in the jail and pay for your crimes.");
    new Random = random(sizeof(RandomJailSpawns));
    SetPlayerPos(playerid, RandomJailSpawns[Random][0], RandomJailSpawns[Random][1], RandomJailSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomJailSpawns[Random][3]);
    ResetPlayerWeapons(playerid);
    SetPlayerInterior(playerid, 10);
    SetPlayerWantedLevel(playerid,0);
    }
    return 1;
}
Please Help Me To Fix This local variable "Random" shadows a variable at a preceding level


Re: local variable "Random" shadows a variable at a preceding level - Logic_ - 30.07.2016

Try this.
Код:
public OnPlayerSpawn(playerid)
{
	new Rand = random(sizeof(RandomSpawnsCiv));
	SetPlayerPos(playerid, RandomSpawnsCiv[Rand][0], RandomSpawnsCiv[Rand][1], RandomSpawnsCiv[Rand][2]);
    SetPlayerFacingAngle(playerid, RandomSpawnsCiv[Rand][3]);
    if(gTeam[playerid] == TEAM_CIV)
    {
        GivePlayerWeapon(playerid,23,100);
        GivePlayerWeapon(playerid,32,50);
    }

    if(gTeam[playerid] == TEAM_COP)
    {
        GivePlayerWeapon(playerid,3,1);
        GivePlayerWeapon(playerid,22,50);
        GivePlayerWeapon(playerid,30,75);
    }

    SetPlayerInterior(playerid,0);
    SetPlayerMapIcon(playerid, 12, -2050.9399,461.4982,35.1719, 52, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -1366.1598,-102.6746,6.0000, 52, 0, MAPICON_LOCAL);

    SetPlayerMapIcon(playerid, 57, -2766.2039,788.3242,52.7813, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2440.0798,742.6775,35.0156, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2507.7576,-49.3189,25.6880, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2417.7581,969.4247,45.2969, 17, 0, MAPICON_LOCAL);

    TextDrawShowForPlayer(playerid, DollarTxd);
    TextDrawShowForPlayer(playerid,Servt);
   	TextDrawShowForPlayer(playerid, LocationTD[playerid]);

    if(PlayerInfo[playerid][pJailed] == 1)
    {
    pJailTimerID[playerid] = SetTimerEx("pJailTimer", 1000, true, "i", playerid);
    pJailCount[playerid] = 20 + random(41);
    SendClientMessage(playerid,0xFF0000FF,"Welcome,go back in the jail and pay for your crimes.");
    new Random = random(sizeof(RandomJailSpawns));
    SetPlayerPos(playerid, RandomJailSpawns[Random][0], RandomJailSpawns[Random][1], RandomJailSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomJailSpawns[Random][3]);
    ResetPlayerWeapons(playerid);
    SetPlayerInterior(playerid, 10);
    SetPlayerWantedLevel(playerid,0);
    }
    return 1;
}



Re: local variable "Random" shadows a variable at a preceding level - CarRamper - 30.07.2016

Thanks


Re: local variable "Random" shadows a variable at a preceding level - Crayder - 30.07.2016

What? That was NOT a good way to fix that! In fact you just made it worse! Instead of fixing the one variable you made another one, BAD!

Код:
public OnPlayerSpawn(playerid)
{
	new Random;
    if(PlayerInfo[playerid][pJailed] == 1)
    {
    pJailTimerID[playerid] = SetTimerEx("pJailTimer", 1000, true, "i", playerid);
    pJailCount[playerid] = 20 + random(41);
    SendClientMessage(playerid,0xFF0000FF,"Welcome,go back in the jail and pay for your crimes.");
    Random = random(sizeof(RandomJailSpawns));
    SetPlayerPos(playerid, RandomJailSpawns[Random][0], RandomJailSpawns[Random][1], RandomJailSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomJailSpawns[Random][3]);
    SetPlayerInterior(playerid, 10);
    return 1;
    }

    Random = random(sizeof(RandomSpawnsCiv));
	SetPlayerPos(playerid, RandomSpawnsCiv[Random][0], RandomSpawnsCiv[Random][1], RandomSpawnsCiv[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawnsCiv[Random][3]);
    if(gTeam[playerid] == TEAM_CIV)
    {
        GivePlayerWeapon(playerid,23,100);
        GivePlayerWeapon(playerid,32,50);
    }

    if(gTeam[playerid] == TEAM_COP)
    {
        GivePlayerWeapon(playerid,3,1);
        GivePlayerWeapon(playerid,22,50);
        GivePlayerWeapon(playerid,30,75);
    }

    SetPlayerInterior(playerid,0);
    SetPlayerMapIcon(playerid, 12, -2050.9399,461.4982,35.1719, 52, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -1366.1598,-102.6746,6.0000, 52, 0, MAPICON_LOCAL);

    SetPlayerMapIcon(playerid, 57, -2766.2039,788.3242,52.7813, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2440.0798,742.6775,35.0156, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2507.7576,-49.3189,25.6880, 17, 0, MAPICON_LOCAL);
    SetPlayerMapIcon(playerid, 57, -2417.7581,969.4247,45.2969, 17, 0, MAPICON_LOCAL);

    TextDrawShowForPlayer(playerid, DollarTxd);
    TextDrawShowForPlayer(playerid,Servt);
   	TextDrawShowForPlayer(playerid, LocationTD[playerid]);
    return 1;
}
I move the jail part to be first because it should be, removed unnecessary stuff, and returned in jail part if player is in jail.

Fix the indentation yourself, I'm on my phone...