Registration problem
#1

Can someone help me, please? I've got a problem where my script runs perfectly fine, the registration goes perfect, and then if I /quit for a little bit, then I go back ingame, it asks me to login, as it should, but then I have to re-do the whole tutorial again..? Basically:

It's making me re-do the tutorial, even though I'm registered.
Reply
#2

Show your OnPlayerDisconnect callback.
Reply
#3

if(Player[playerid][pRegistered] == true) return false;

^ This is an example of what you have to add somewhere in your code.

We do not know the variables or the functions your code uses so we have no clue how to solve your problem.

Add more information.
Reply
#4

Which information do you need?

Код:
public OnPlayerDisconnect(playerid,reason)
{
	if(gPlayerLogged[playerid] == 1)
	{
    	new string[128];
    	new sendername[MAX_PLAYER_NAME];
    	new Float:armour;
		new Float:health;
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(Hospitalized[playerid] == 0)
		{
		    GetPlayerWeaponData(playerid,2,PlayerInfo[playerid][pGun1],PlayerInfo[playerid][pAmmo1]);
		    if(PlayerInfo[playerid][pGun2] >= 25 && PlayerInfo[playerid][pGun2] <= 27)
		    {
	    		GetPlayerWeaponData(playerid,3,PlayerInfo[playerid][pGun2],PlayerInfo[playerid][pAmmo2]);
	    	}
	    	else if(PlayerInfo[playerid][pGun2] >= 28 && PlayerInfo[playerid][pGun2] <= 29)
		    {
	    		GetPlayerWeaponData(playerid,4,PlayerInfo[playerid][pGun2],PlayerInfo[playerid][pAmmo2]);
	    	}
	    	else if(PlayerInfo[playerid][pGun3] >= 1 && PlayerInfo[playerid][pGun3] <= 9)
		    {
		        new ammo;
	    		GetPlayerWeaponData(playerid,4,PlayerInfo[playerid][pGun3],ammo);
	    	}
    	}
    	if(PlayersChannel[playerid] < 999)
		{
		    IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1;
	    }
    	switch(reason)
		{
	    	case 0: // Crashed
	    	{
            	new world = GetPlayerVirtualWorld(playerid);
            	new interior = GetPlayerInterior(playerid);
				new Float:x, Float:y, Float:z;
            	GetPlayerPos(playerid,x,y,z);
            	PlayerInfo[playerid][pPos_x] = x;
            	PlayerInfo[playerid][pPos_y] = y;
            	PlayerInfo[playerid][pPos_z] = z;
            	PlayerInfo[playerid][pWorld] = world;
            	PlayerInfo[playerid][pInt] = interior;
				if(PlayerInfo[playerid][pCrashed] == 0) { PlayerInfo[playerid][pCrashed] = 1; }
				else if(PlayerInfo[playerid][pCrashed] > 0) { PlayerInfo[playerid][pCrashed] += 1; }
	    	    OnPlayerDataSave(playerid);
            	format(string, sizeof(string), "Info: | %s has left the server. (Crashed)", sendername);
            	if(HireCar[playerid] != 299)
            	{
				    HireCar[playerid] = 299;
				}
	    	}
        	case 1: // Leaving
	    	{
				PlayerInfo[playerid][pCrashed] = 0;
	    	    OnPlayerDataSave(playerid);
	    	    GetPlayerArmour(playerid,armour);
            	PlayerInfo[playerid][pCrashArmour] = armour;
	        	GetPlayerHealth(playerid,health);
            	PlayerInfo[playerid][pCrashHealth] = health;
            	format(string, sizeof(string), "Info: | %s has left the server. (Disconnected)", sendername);
            	if(HireCar[playerid] != 299)
            	{
            	    SetVehicleToRespawn(HireCar[playerid]);
				    HireCar[playerid] = 299;
				}
	    	}
	    	case 2: // Kicked/Banned
	    	{
				PlayerInfo[playerid][pCrashed] = 0;
				OnPlayerDataSave(playerid);
            	format(string, sizeof(string), "Info: | %s has left the server. (Kicked/Banned)", sendername);
            	if(HireCar[playerid] != 299)
            	{
            	    SetVehicleToRespawn(HireCar[playerid]);
				    HireCar[playerid] = 299;
				}
	    	}
    	}
        new str[128], plname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, plname, sizeof(plname));
		format(str, sizeof(str), "Vehicles/Players/%s.cfg", plname);
		djSet(str, "Vehicle1", PlayerVehicle[playerid][pVeh1]);
		djSet(str, "Vehicle2", PlayerVehicle[playerid][pVeh2]);
		djSet(str, "Vehicle3", PlayerVehicle[playerid][pVeh3]);
		djSet(str, "Vehicle4", PlayerVehicle[playerid][pVeh4]);
		djSet(str, "Vehicle5", PlayerVehicle[playerid][pVeh5]);
		djSet(str, "VehKey1", PlayerVehicle[playerid][pVehKey1]);
		djSet(str, "VehKey2", PlayerVehicle[playerid][pVehKey2]);
		djSet(str, "VehKey3", PlayerVehicle[playerid][pVehKey3]);
		djSet(str, "VehKey4", PlayerVehicle[playerid][pVehKey4]);
		djSet(str, "VehKey5", PlayerVehicle[playerid][pVehKey5]);
		djSet(str, "Toolkit", pToolkit[playerid]);
		PlayerInfo[playerid][pAdPending]=0; //I should make a DeinitPlayer function, but for now this is fine
    	ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
    	if(CurrentVeh[playerid] != SCRIPT_CARS)
    	{
    	    VehicleOwned[CurrentVeh[playerid]] = SCRIPT_CARS;
			IsOwned[CurrentVeh[playerid]] = SCRIPT_CARS;
    	    DestroyVehicle(CurrentVeh[playerid]);
    	    veh1[playerid] = SCRIPT_CARS;
    	    veh2[playerid] = SCRIPT_CARS;
    	    veh3[playerid] = SCRIPT_CARS;
    	    veh4[playerid] = SCRIPT_CARS;
    	    veh5[playerid] = SCRIPT_CARS;
    	}
	}
	return 1;
}
Reply
#5

We need the start of the tutorial, it's either a function or in a function.

We also need the variable that tells the script weather the player is registered or not.
Reply
#6

Код:
public OnPlayerRequestClass(playerid, classid)
{
	if(gPlayerLogged[playerid] == 0 && !IsPlayerNPC(playerid))
	{
        PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238);
        TogglePlayerSpectating(playerid,1);
	    if(gPlayerAccount[playerid] == 1)
	    {
	        ClearChatbox(playerid, 7);
			ShowPlayerDialog(playerid, DIALOGID_LOGIN, DIALOG_STYLE_PASSWORD, "DC:RP Verification Process", "(( This username is registered. ))\n\nStranger says: Good to see you back again.", "Login", "Quit");
	    }
	    else
	    {
			ShowPlayerDialog(playerid, DIALOGID_REGISTER, DIALOG_STYLE_PASSWORD, "DC:RP Registration Process", "(( This username is not registered. ))\n\nStranger says: What's wrong? You look around like you've never been here before.\nStranger says: Oh you are new in here? Go visit the immigration office then.", "Register", "Quit");
	    }
		SetTimerEx("FixCamera", 1000, false, "i", playerid);
	}
	else if(gPlayerLogged[playerid] == 1 && UsingSkin[playerid] == 0 && !IsPlayerNPC(playerid))
	{
		SpawnPlayer(playerid);
	}
	else if(gPlayerLogged[playerid] == 1 && UsingSkin[playerid] == 1 && !IsPlayerNPC(playerid))
	{
		PlayerPlaySound(playerid, 1187,-119.9460,23.1096,12.2238);
		SetPlayerPos(playerid,217.9099,-98.3519,1005.2578);
		SetPlayerFacingAngle(playerid,118.3428);
		SetPlayerCameraPos(playerid,215.7433,-99.2991,1005.2578+2);
		SetPlayerCameraLookAt(playerid,217.9099,-98.3519,1005.2578);
		SetPlayerInterior(playerid, 15);
		SetPlayerVirtualWorld(playerid, playerid);
	}
	return 1;
}
Код:
public SetPlayerRandomSpawn(playerid,type)
{
	new rand;
	new playername[32];
	new house = PlayerInfo[playerid][pHouseRenting];
	GetPlayerName(playerid, playername, sizeof(playername));
	SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,300);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,300);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,300);
    SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
    SetPlayerFightingStyle(playerid,PlayerInfo[playerid][pFightSkill]);
	if(PlayerInfo[playerid][pTut] == 0)
    {
		SetPlayerScore(playerid,0);
		PlayerInfo[playerid][pLevel] = 0;
        SetPlayerToTeamColor(playerid);
	    SetPlayerInterior(playerid, 3);
	    PlayerInfo[playerid][pInt] = 3;
	    SetPlayerSkin(playerid, 26);
	    PlayerInfo[playerid][pModel] = 26;
	    SetPlayerPos(playerid, 361.3318,204.2354,1008.3828);
	    SetPlayerFacingAngle(playerid, 358);
	    SetPlayerCameraPos(playerid, 362.2910,208.3048,1008.7828);
		SetPlayerCameraLookAt(playerid, 361.3318,204.2354,1008.3828);
	    TogglePlayerControllable(playerid, 0);
	    RegistrationStep[playerid] = 1;
	    PlayerInfo[playerid][pAdmin] = 0;
	    if(PlayerInfo[playerid][pCalledTutSay] == 0)
		{
			ShowPlayerDialog(playerid, DIALOGID_TGENDER, DIALOG_STYLE_MSGBOX, "Immigration Office - Gender","Welcome to the immigration office.\n\nImmigration Officer says: You are here to become legal citizen of the Bayside and El Quebrados state.\nImmigration Officer says: You will have to answer a few questions before I can hand you a passport.\nImmigration Officer says: Let's get started, what is your sex?", "Male", "Female");
	   	    PlayerInfo[playerid][pCalledTutSay] = 1;
	   	    GreenBar[playerid] = CreateProgressBar(152.00, 431.00, 336.50, 13.50, 16716287, 80.0);
	   	    ShowProgressBarForPlayer(playerid, GreenBar[playerid]);
	   	    SetProgressBarValue(GreenBar[playerid], 5.0);
	   	    UpdateProgressBar(GreenBar[playerid], playerid);
	   	    TextDrawSetString(Text:RegStep[playerid], "Registration Progress: [1/20]");
	   	    TextDrawShowForPlayer(playerid, RegStep[playerid]);
	    }
	    SetPlayerVirtualWorld(playerid,playerid);
	    return 1;
    }
	/*else if(PlayerInfo[playerid][pTut] == 1)
	{
	    SetPlayerPos(playerid,-2212.0857,2422.5859,2.4941);
	}*/
    else if(PlayerInfo[playerid][pJailed] == 1)
	{
        SetPlayerInterior(playerid, 10);
        SetPlayerVirtualWorld(playerid,20);
        SetPlayerPos(playerid,227.2460,109.7719,999.0156);
        if(!PlayerInfo[playerid][pWakeMsgSend]) {
	    SendClientMessage(playerid, COLOR_WHITE, "You woke up in prison.");
	    PlayerInfo[playerid][pWakeMsgSend]=1;
	    }
	    SetPlayerToTeamColor(playerid);
	    return 1;
	}
	else if(PlayerInfo[playerid][pJailed] == 2)
	{
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 1);
        PlayerInfo[playerid][pInt] = 0;
	    SetPlayerPos(playerid,-27.6696,2321.0247,24.3034);
	    TogglePlayerControllable(playerid, 0);
	    Mute[playerid] = 1;
        if(!PlayerInfo[playerid][pWakeMsgSend]) {
	    SendClientMessage(playerid, COLOR_GREY, "Your admin-jail sentence is not over.");
	    PlayerInfo[playerid][pWakeMsgSend]=1;
	    }
	    SetPlayerToTeamColor(playerid);
	    return 1;
	}
	else if(PlayerInfo[playerid][pJailed] == 3)
	{
        if(!PlayerInfo[playerid][pWakeMsgSend]) {
	    SendClientMessage(playerid, COLOR_PURPLE, "You woke up in prison.");
	    }
	    SetPlayerToTeamColor(playerid);
	    SetPlayerInterior(playerid,1);
        PlayerInfo[playerid][pInt] = 1;
        IntEntered[playerid] = 21;
        SetPlayerPos(playerid, 1778.2360,-1584.4476,-72.9203);
	    SetPlayerFacingAngle(playerid, 90);
	    return 1;
	}
    else if(Hospitalized[playerid] == 1)
	{
	    SetPlayerToTeamColor(playerid);
        TogglePlayerControllable(playerid,false);
        SetPlayerHealthEx(playerid,1.0);
        SetPlayerPos(playerid, -3451.3801,475.9214,58.0620);
        TogglePlayerControllable(playerid, 0);
        new RandomWeth;
		RandomWeth = random(2);
    	switch(RandomWeth)
    	{
            case 0:
            {
                SetPlayerVirtualWorld(playerid,1);
       	    }
            case 1:
       	    {
       	        SetPlayerVirtualWorld(playerid,2);
            }
		}
        GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Recovering.",8000,3);
	    SetTimerEx("AfterSpawnHos", 10000, false, "i", playerid);
	    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
		return 1;
	}
    else if(PlayerInfo[playerid][pCrashed] >= 1 && PlayerInfo[playerid][pCrashed] <= 2)
	{
        SetPlayerToTeamColor(playerid);
        SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
	    SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z] + 1);
   	    SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pWorld]);
   	    if(PlayerInfo[playerid][pCrashHealth] > 5.0)
   	    {
		   SetPlayerHealthEx(playerid,PlayerInfo[playerid][pCrashHealth]);
        }
        else
        {
           SetPlayerHealthEx(playerid,5.0);
        }
    	SetPlayerArmourEx(playerid,PlayerInfo[playerid][pCrashArmour]);
        SetTimerEx("UnsetCrash", 20000, false, "i", playerid);
        SetPlayerWeapons(playerid);
    	return 1;
	}
	else if(PlayerInfo[playerid][pCrashed] > 2)
	{
        PlayerInfo[playerid][pCrashed] = 0;
	}
	else if(type == 1)
	{
	    SendClientMessage(playerid,COLOR_WHITE," ");
	    SendClientMessage(playerid,COLOR_LIME,"Forum Support: | Please visit our forum: www.divinitygaming.com");
	    SendClientMessage(playerid,COLOR_LIME,"Reminder: | If you have any questions, feel free to contact our In-Game Helpers /helpme.");
//	    pSpawn(playerid);
		return 1;
	}
	else if(house != 255)
	{
	    if(house == 266)
	    {
	        SetPlayerPos(playerid, 2214.932617,-1150.530639,1025.796875);
	        SetPlayerInterior(playerid, 15);
	        return 1;
	    }
        SetPlayerToTeamColor(playerid); 
	    new Level = HouseInfo[house][hLevel];
		SetPlayerPos(playerid, HousesCoords[Level][0], HousesCoords[Level][1], HousesCoords[Level][2]);
		SetPlayerInterior(playerid, HousesLevels[Level][0]); SetPlayerVirtualWorld(playerid, HouseInfo[house][hWorld]);
		HouseEntered[playerid] = house;
	    return 1;
	}
	else if (PlayerInfo[playerid][pMember] == 1)//Police Force spawn
	{
	    SetPlayerToTeamColor(playerid);
		rand = random(sizeof(gCopPlayerSpawns));
		SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
		SetPlayerFacingAngle(playerid, 270.0);
		SetPlayerInterior(playerid,3);
		PlayerInfo[playerid][pInt] = 3;
		return 1;
    }
    else if (PlayerInfo[playerid][pMember] == 2)//FBI spawn
	{
	    SetPlayerToTeamColor(playerid);
	    SetPlayerInterior(playerid,3);
	    SetPlayerPos(playerid, 299.7097,183.1322,1007.1719);
	    SetPlayerFacingAngle(playerid, 90);
	    SetPlayerVirtualWorld(playerid,1);
        PlayerInfo[playerid][pInt] = 3;
        IntEntered[playerid] = 14;
	    return 1;
    }
    else if(PlayerInfo[playerid][pMember] == 3)//Mayor/Gov spawn
	{
        SetPlayerToTeamColor(playerid);
        SetPlayerInterior(playerid, 3);
        SetPlayerPos(playerid, 356.2998,151.9914,1025.7891);
        PlayerInfo[playerid][pInt] = 3;
        IntEntered[playerid] = 5;
        return 1;
	}
	else if (PlayerInfo[playerid][pMember] == 4)//Fire/Ambulance spawn
	{
        SetPlayerToTeamColor(playerid);
        SetPlayerPos(playerid, -3429.0164,475.4126,57.6132);
        SetPlayerFacingAngle(playerid, 0);
        SetPlayerVirtualWorld(playerid,0);
        IntEntered[playerid] = 2;
        return 1;
    }
    else if (PlayerInfo[playerid][pMember] == 14) // QE Police Force
	{
	    SetPlayerToTeamColor(playerid);
		rand = random(sizeof(gQECopPlayerSpawns));
		SetPlayerPos(playerid, gQECopPlayerSpawns[rand][0], gQECopPlayerSpawns[rand][1], gQECopPlayerSpawns[rand][2]); // Warp the player
		SetPlayerFacingAngle(playerid, 270.0);
		SetPlayerInterior(playerid,5);
		PlayerInfo[playerid][pInt] = 5;
		return 1;
    }
    else if (PlayerInfo[playerid][pMember] >= 7 && FamilyInfo[PlayerInfo[playerid][pMember]][FamilyInterior] != 0 && FamilyInfo[PlayerInfo[playerid][pMember]][FamilyInterior] != 14) // Factions
	{
		new fam = PlayerInfo[playerid][pMember];
        SetPlayerToTeamColor(playerid);
        SetPlayerVirtualWorld(playerid,fam);
        if(FamilyInfo[fam][FamilyInterior] == 1) // Crackden
        {
            SetPlayerInterior(playerid,5);
            SetPlayerPos(playerid, 309.9930,1122.5713,1083.8828);
        }
        else if(FamilyInfo[fam][FamilyInterior] == 2) // Ryders House
        {
            SetPlayerInterior(playerid,2);
            SetPlayerPos(playerid, 2465.8018,-1698.3330,1013.5078);
        }
        else if(FamilyInfo[fam][FamilyInterior] == 3) // CJs house
        {
            SetPlayerInterior(playerid,3);
            SetPlayerPos(playerid, 2496.0498,-1694.3333,1014.7422);
        }
        return 1;
    }
    else // Nooby Spawn
    {
		SetPlayerToTeamColor(playerid);
		if(PlayerInfo[playerid][pArrival] == 1)
		{
		    SetPlayerPos(playerid, -2212.0857,2422.5859,2.4941); // Docks Arrival
		}
		else if(PlayerInfo[playerid][pArrival] == 2)
		{
	 	    SetPlayerPos(playerid, -2491.6389,2255.2251,4.9844); // Bus Arrival
		}
		else if(PlayerInfo[playerid][pArrival] == 3)
		{
		    SetPlayerPos(playerid, -1272.1931,2707.0906,50.0703); // Trucker Arrival
		}
		else if(PlayerInfo[playerid][pArrival] == 4)
		{
		    SetPlayerPos(playerid, -1514.8119,2524.3264,55.7969); // Hospital Arrival
		}
		SetPlayerInterior(playerid, 0);
        PlayerInfo[playerid][pInt] = 0;
		return 1;
	}
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)