Help with OnPlayerSpawn and Dini
#1

I wan't players to skip the city/skin selection skin if they have an account(name registered)/ if there is a dini file with theire name on it.

so

I need some help putting

Код:
new file[128], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "\\Leaders\\%skin.ini", pname);
SetPlayerSkin(playerid, dini_Int(file, "skin"));
and
Код:
public OnPlayerDisconnect(playerid,reason)
new Float:x, Float:y, Float:z;
dini_IntSet(file, "Pos", GetPlayerPos(playerid, x, y, z));
in

Код:
public OnPlayerSpawn(playerid)
{
	if(IsPlayerNPC(playerid)) return 1;
	
	new randSpawn = 0;

	SetPlayerInterior(playerid,0);
	TogglePlayerClock(playerid,0);
 	ResetPlayerMoney(playerid);
	GivePlayerMoney(playerid, 30000);
	
	// if they ever return to class selection make them city
	// select again first
	gPlayerHasCitySelected[playerid] = 0;

	if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
 	    randSpawn = random(sizeof(gRandomSpawns_LosSantos));
 	    SetPlayerPos(playerid,
		 gRandomSpawns_LosSantos[randSpawn][0],
		 gRandomSpawns_LosSantos[randSpawn][1],
		 gRandomSpawns_LosSantos[randSpawn][2]);
		SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
	}
	else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
 	    randSpawn = random(sizeof(gRandomSpawns_SanFierro));
 	    SetPlayerPos(playerid,
		 gRandomSpawns_SanFierro[randSpawn][0],
		 gRandomSpawns_SanFierro[randSpawn][1],
		 gRandomSpawns_SanFierro[randSpawn][2]);
		SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
	}
	else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
 	    randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
 	    SetPlayerPos(playerid,
		 gRandomSpawns_LasVenturas[randSpawn][0],
		 gRandomSpawns_LasVenturas[randSpawn][1],
		 gRandomSpawns_LasVenturas[randSpawn][2]);
		SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
	}

	//SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
	
	SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);
    
    GivePlayerWeapon(playerid,WEAPON_COLT45,100);
	//GivePlayerWeapon(playerid,WEAPON_MP5,100);
	//TogglePlayerClock(playerid, 1);

	return 1;
}
Thanks
Reply
#2

Answer, please?
Reply
#3

It should solve your problem:


pawn Код:
//Put in the beggining of your OnPlayerRequestClass callback:

new string[128], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "\\Leaders\\%skin.ini", pname);
if(fexist(string)){SpawnPlayer(playerid);}


//and


public OnPlayerSpawn(playerid)
{
    if(IsPlayerNPC(playerid)) return 1;
    new randSpawn = 0;
    new file[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "\\Leaders\\%skin.ini", pname);
    SetPlayerInterior(playerid,0);
    TogglePlayerClock(playerid,0);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, 30000);
    // if they ever return to class selection make them city
    // select again first
    gPlayerHasCitySelected[playerid] = 0;
    if(!fexist(file))
    {
        if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid])
        {
            randSpawn = random(sizeof(gRandomSpawns_LosSantos));
            SetPlayerPos(playerid,
            gRandomSpawns_LosSantos[randSpawn][0],
            gRandomSpawns_LosSantos[randSpawn][1],
            gRandomSpawns_LosSantos[randSpawn][2]);
            SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
        }
        else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid])
        {
            randSpawn = random(sizeof(gRandomSpawns_SanFierro));
            SetPlayerPos(playerid,
            gRandomSpawns_SanFierro[randSpawn][0],
            gRandomSpawns_SanFierro[randSpawn][1],
            gRandomSpawns_SanFierro[randSpawn][2]);
            SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
        }
        else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid])
        {
            randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
            SetPlayerPos(playerid,
            gRandomSpawns_LasVenturas[randSpawn][0],
            gRandomSpawns_LasVenturas[randSpawn][1],
            gRandomSpawns_LasVenturas[randSpawn][2]);
            SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
        }

    }
   
    SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);

    GivePlayerWeapon(playerid,WEAPON_COLT45,100);
    //GivePlayerWeapon(playerid,WEAPON_MP5,100);
    //TogglePlayerClock(playerid, 1);

    return 1;
}

I hope that i have helped
Reply
#4

That skips only the city selection screen, not the skin selection screen
Reply
#5

The code that i told to put in OnPlayerRequestClass would solve your problem about the skin selection.


So, i think that his code will solve your problem:

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new string[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "\\Leaders\\%skin.ini", pname);
    if(!fexist(string)) //If the player do not have an account
    {
        SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
        SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
        SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
        return true;
    }
    else //Else if the player have an account
    {
        SpawnPlayer(playerid); //Skin Selection Skipped
    }
    return false;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)