OnPlayerConnect & Disconnect, and OnGameModeInIt not executing functions
#1

Here's what's happening, some of the items under the OnPlayerConnect and OnPlayerDisconnect callbacks aren't working. Here's what I have under them.
pawn Код:
public OnPlayerConnect(playerid)
{
    new pname[MAX_PLAYER_NAME], string1[256], string2[256];
    GetPlayerName(playerid, pname, sizeof(pname));
    new namechk1 = strfind(pname, "_", true); new namechk2 = strfind(pname, "[", true); new namechk3 = strfind(pname, "]", true);
    if(namechk1 == -1)
    {
        format(string2, sizeof(string2), "%s was kicked for having an invalid name!", pname);
        SendClientMessage(playerid, error, "Please join with a valid role-play name!");
        SendClientMessage(playerid, help, "Example: 'John_Doe' No clan [tags], no 'Hurr_Durr'; a realistic name.");
        Kick(playerid);
    }
    if(!(namechk2 > -1 || namechk3 > -1))
    {
        format(string2, sizeof(string2), "%s was kicked for having a clan tag in their name!", pname);
        SendClientMessage(playerid, error, "Please join with a valid role-play name!");
        SendClientMessage(playerid, help, "Example: 'John_Doe' No clan [tags], no 'Hurr_Durr'; a realistic name.");
        Kick(playerid);
    }
    format(string1, sizeof(string1), "%s (%d) has joined the server!", RPName(playerid), playerid);
    SendClientMessageToAll(green, string1);
    SendClientMessageToAll(error, string2);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 0);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 0);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, 0);
    SetPlayerColor(playerid, white);
    SetPlayerWeather(playerid, ServerWeather);
    if(IsPlayerConnected(playerid) && !(IsPlayerInAnyVehicle(playerid)))
    {
        TextDrawHideForPlayer(playerid, dashtextdraw1);
        TextDrawHideForPlayer(playerid, dashtextdraw2);
    }
    if(fexist(UserPath(playerid))) LoadUser(playerid);
    if(!fexist(UserPath(playerid)))
    {
        SendClientMessage(playerid, yellow1, "Please wait while we guide you through class selection and registration.");
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Please enter your desired account password.", "Accept", "Quit");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new string[256];
    switch(reason)
    {
        case 0: format(string, sizeof(string), "%s has left the server. (Lost connection/Crashed)", RPName(playerid));
        case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", RPName(playerid));
        case 2: format(string, sizeof(string), "%s has left the server. (Kicked/Banned)", RPName(playerid));
    }
    SendClientMessageToAll(col_message, string);
    if(fexist(UserPath(playerid))) SaveUser(playerid);
    return 1;
}
Nothing works under either of the callbacks. Help would be sooo much appreciated.

(If needed here are the stock functions that are used.)

LoadUser & SaveUser
pawn Код:
stock LoadUser(playerid)
{
    new name[64], value[256];
    SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);
    SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
    SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
    SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
    SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]);
    SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVW]);
    GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep1], PlayerInfo[playerid][pAmmo1]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep2], PlayerInfo[playerid][pAmmo2]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep3], PlayerInfo[playerid][pAmmo3]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep4], PlayerInfo[playerid][pAmmo4]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep5], PlayerInfo[playerid][pAmmo5]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep6], PlayerInfo[playerid][pAmmo6]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep7], PlayerInfo[playerid][pAmmo7]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep8], PlayerInfo[playerid][pAmmo8]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep9], PlayerInfo[playerid][pAmmo9]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep10], PlayerInfo[playerid][pAmmo10]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep11], PlayerInfo[playerid][pAmmo11]);
    GivePlayerWeapon(playerid, PlayerInfo[playerid][pWep12], PlayerInfo[playerid][pAmmo12]);
    INI_Int("Password", PlayerInfo[playerid][pPassword]);
    INI_Float("Health", PlayerInfo[playerid][pHealth]);
    INI_Float("Armor", PlayerInfo[playerid][pArmour]);
    INI_Float("X Coord", PlayerInfo[playerid][pX]);
    INI_Float("Y Coord", PlayerInfo[playerid][pY]);
    INI_Float("Z Coord", PlayerInfo[playerid][pZ]);
    INI_Float("Facing Angle", PlayerInfo[playerid][pA]);
    INI_Int("Skin", PlayerInfo[playerid][pSkin]);
    INI_Int("Admin Level", PlayerInfo[playerid][pAdmin]);
    INI_Int("Money", PlayerInfo[playerid][pMoney]);
    INI_Int("Zom-bitch Kills", PlayerInfo[playerid][pZombieKills]);
    INI_Int("Zom-bitch Deaths", PlayerInfo[playerid][pZombieDeaths]);
    INI_Int("Human Kills", PlayerInfo[playerid][pHumanKills]);
    INI_Int("Human Deaths", PlayerInfo[playerid][pHumanDeaths]);
    INI_Int("Class", PlayerInfo[playerid][pClass]);
    INI_Int("Interior", PlayerInfo[playerid][pInt]);
    INI_Int("Virtual World", PlayerInfo[playerid][pVW]);
    INI_Int("Weapon Slot 1", PlayerInfo[playerid][pWep1]);
    INI_Int("Weapon Ammo 1", PlayerInfo[playerid][pAmmo1]);
    INI_Int("Weapon Slot 2", PlayerInfo[playerid][pWep2]);
    INI_Int("Weapon Ammo 2", PlayerInfo[playerid][pAmmo2]);
    INI_Int("Weapon Slot 3", PlayerInfo[playerid][pWep3]);
    INI_Int("Weapon Ammo 3", PlayerInfo[playerid][pAmmo3]);
    INI_Int("Weapon Slot 4", PlayerInfo[playerid][pWep4]);
    INI_Int("Weapon Ammo 4", PlayerInfo[playerid][pAmmo4]);
    INI_Int("Weapon Slot 5", PlayerInfo[playerid][pWep5]);
    INI_Int("Weapon Ammo 5", PlayerInfo[playerid][pAmmo5]);
    INI_Int("Weapon Slot 6", PlayerInfo[playerid][pWep6]);
    INI_Int("Weapon Ammo 6", PlayerInfo[playerid][pAmmo6]);
    INI_Int("Weapon Slot 7", PlayerInfo[playerid][pWep7]);
    INI_Int("Weapon Ammo 7", PlayerInfo[playerid][pAmmo7]);
    INI_Int("Weapon Slot 8", PlayerInfo[playerid][pWep8]);
    INI_Int("Weapon Ammo 8", PlayerInfo[playerid][pAmmo8]);
    INI_Int("Weapon Slot 9", PlayerInfo[playerid][pWep9]);
    INI_Int("Weapon Ammo 9", PlayerInfo[playerid][pAmmo9]);
    INI_Int("Weapon Slot 10", PlayerInfo[playerid][pWep10]);
    INI_Int("Weapon Ammo 10", PlayerInfo[playerid][pAmmo10]);
    INI_Int("Weapon Slot 11", PlayerInfo[playerid][pWep11]);
    INI_Int("Weapon Ammo 11", PlayerInfo[playerid][pAmmo11]);
    INI_Int("Weapon Slot 12", PlayerInfo[playerid][pWep12]);
    INI_Int("Weapon Ammo 12", PlayerInfo[playerid][pAmmo12]);
    INI_Int("Walkie Talkie Channel", PlayerInfo[playerid][pWalkieCh]);
    INI_Int("Police Radio Frequency", PlayerInfo[playerid][pPoliceFreq]);
    INI_Bool("Is Muted", PlayerInfo[playerid][pMuted]);
    INI_Bool("OOC On", PlayerInfo[playerid][pOOC]);
    INI_Bool("PMs On", PlayerInfo[playerid][pPM]);
    INI_Bool("Is Logged In", PlayerInfo[playerid][pLogged]);
    INI_Bool("Is Registered", PlayerInfo[playerid][pRegistered]);
    INI_Bool("Owns Walkie Talkie", PlayerInfo[playerid][pWalkie]);
    INI_Bool("Owns Police Radio", PlayerInfo[playerid][pPoliceRadio]);
    return 1;
}
stock SaveUser(playerid)
{
    new INI:User = INI_Open(UserPath(playerid));
    new Float:health, Float:armor, Float:x, Float:y, Float:z, Float:a, weapons[13][2];
    GetPlayerHealth(playerid, health); GetPlayerArmour(playerid, armor);
    GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a);
    for(new i = 0; i < 13; i++)
        {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
        }
    INI_WriteString(User, "Password", PlayerInfo[playerid][pPassword]);
    INI_WriteFloat(User, "Health", health);
    INI_WriteFloat(User, "Armor", armor);
    INI_WriteFloat(User, "X Coord", z);
    INI_WriteFloat(User, "Y Coord", y);
    INI_WriteFloat(User, "Z Coord", z);
    INI_WriteFloat(User, "Facing Angle", a);
    INI_WriteInt(User, "Skin", PlayerInfo[playerid][pSkin]);
    INI_WriteInt(User, "Admin Level", PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(User, "Money", GetPlayerMoney(playerid));
    INI_WriteInt(User, "Zom-bitch Kills", PlayerInfo[playerid][pZombieKills]);
    INI_WriteInt(User, "Zom-bitch Deaths", PlayerInfo[playerid][pZombieDeaths]);
    INI_WriteInt(User, "Human Kills", PlayerInfo[playerid][pHumanKills]);
    INI_WriteInt(User, "Human Deaths", PlayerInfo[playerid][pHumanDeaths]);
    INI_WriteInt(User, "Class", PlayerInfo[playerid][pClass]);
    INI_WriteInt(User, "Interior", GetPlayerInterior(playerid));
    INI_WriteInt(User, "Virtual World", GetPlayerVirtualWorld(playerid));
    INI_WriteInt(User, "Weapon Slot 1", weapons[1][0]);
    INI_WriteInt(User, "Weapon Ammo 1", weapons[1][1]);
    INI_WriteInt(User, "Weapon Slot 2", weapons[2][0]);
    INI_WriteInt(User, "Weapon Ammo 2", weapons[2][1]);
    INI_WriteInt(User, "Weapon Slot 3", weapons[3][0]);
    INI_WriteInt(User, "Weapon Ammo 3", weapons[3][1]);
    INI_WriteInt(User, "Weapon Slot 4", weapons[4][0]);
    INI_WriteInt(User, "Weapon Ammo 4", weapons[4][1]);
    INI_WriteInt(User, "Weapon Slot 5", weapons[5][0]);
    INI_WriteInt(User, "Weapon Ammo 5", weapons[5][1]);
    INI_WriteInt(User, "Weapon Slot 6", weapons[6][0]);
    INI_WriteInt(User, "Weapon Ammo 6", weapons[6][1]);
    INI_WriteInt(User, "Weapon Slot 7", weapons[7][0]);
    INI_WriteInt(User, "Weapon Ammo 7", weapons[7][1]);
    INI_WriteInt(User, "Weapon Slot 8", weapons[8][0]);
    INI_WriteInt(User, "Weapon Ammo 8", weapons[8][1]);
    INI_WriteInt(User, "Weapon Slot 9", weapons[9][0]);
    INI_WriteInt(User, "Weapon Ammo 9", weapons[9][1]);
    INI_WriteInt(User, "Weapon Slot 10", weapons[10][0]);
    INI_WriteInt(User, "Weapon Ammo 10", weapons[10][1]);
    INI_WriteInt(User, "Weapon Slot 11", weapons[11][0]);
    INI_WriteInt(User, "Weapon Ammo 11", weapons[11][1]);
    INI_WriteInt(User, "Weapon Slot 12", weapons[12][0]);
    INI_WriteInt(User, "Weapon Ammo 12", weapons[12][1]);
    INI_WriteInt(User, "Walkie Talkie Channel", PlayerInfo[playerid][pWalkieCh]);
    INI_WriteInt(User, "Police Radio Frequency", PlayerInfo[playerid][pPoliceFreq]);
    INI_WriteBool(User, "Is Muted", PlayerInfo[playerid][pMuted]);
    INI_WriteBool(User, "OOC On", PlayerInfo[playerid][pOOC]);
    INI_WriteBool(User, "PMs On", PlayerInfo[playerid][pPM]);
    INI_WriteBool(User, "Is Logged In", false);
    if(PlayerInfo[playerid][pRegistered] == true) INI_WriteBool(User, "Is Registered", true);
    if(PlayerInfo[playerid][pRegistered] == false) INI_WriteBool(User, "Is Registered", false);
    INI_WriteBool(User, "Owns Walkie Talkie", PlayerInfo[playerid][pWalkie]);
    INI_WriteBool(User, "Owns Police Radio", PlayerInfo[playerid][pPoliceRadio]);
    INI_Close(User);
    return 1;
}
UserPath
pawn Код:
stock UserPath(playerid)
{
    new string[128], playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername,sizeof(playername));
    format(string, sizeof(string), "/accounts/%s.ini", playername);
    return string;
}
RPName
pawn Код:
stock RPName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if(name[i] == '_') name[i] = ' ';
    }
    return name;
}
Here's what I have under OnGameModeInIt
pawn Код:
public OnGameModeInit()
{
    DisableInteriorEnterExits();
    EnableStuntBonusForAll(0);
    ShowPlayerMarkers(0);
    SetNameTagDrawDistance(23.75);
    ManualVehicleEngineAndLights();
    for(new v = 1; v < MAX_VEHICLES; v++)
    {
        if(fexist(VehiclePath(v)))
        {
            new rand = random(sizeof(RandomPlates));
            LoadVehicle(v);
            new engine, lights, alarm, doors, hood, trunk, objective;
            GetVehicleParamsEx(v, engine, lights, alarm, doors, hood, trunk, objective);
            SetVehicleParamsEx(v, 0, 0, alarm, doors, 0, 0, objective);
            LinkVehicleToInterior(v, VehicleInfo[v][vInt]);
            SetVehiclePos(v, VehicleInfo[v][vX], VehicleInfo[v][vY], VehicleInfo[v][vZ]);
            SetVehicleZAngle(v, VehicleInfo[v][vA]);
            SetVehicleToRespawn(v);
            AddStaticVehicle(VehicleInfo[v][vModel], VehicleInfo[v][vX], VehicleInfo[v][vY], VehicleInfo[v][vZ], VehicleInfo[v][vA], VehicleInfo[v][vColor1], VehicleInfo[v][vColor2]);
            SetVehicleNumberPlate(v, RandomPlates[rand]);
            print("Vehicles Loaded");
        }
    }
    for(new b = 1; b < MAX_BUILDINGS; b++)
    {
        if(fexist(BuildingPath(b)))
        {
            LoadBuilding(b);
            buildingpicks = CreatePickup(1318, 1, BuildingInfo[b][bOutsideX], BuildingInfo[b][bOutsideY], BuildingInfo[b][bOutsideZ], -1);
            print("Buildings Loaded");
        }
    }
    for(new l = 1; l < MAX_LADDERS; l++)
    {
        if(fexist(LadderPath(l)))
        {
            LoadBuilding(l);
            print("Ladders Loaded");
        }
    }
    SetTimer("WeatherRandom", 6000, true);
    dashtimer = SetTimer("DashboardTimer", 150, true);
    dashtextdraw1 = TextDrawCreate(145.500, 365.000, " ");
    dashtextdraw2 = TextDrawCreate(145.500, 390.500, " ");
    SetGameModeText("Zombipacolypse Role-Play");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 5, 1, 22, 68);
    TextDrawBackgroundColor(dashtextdraw1, black);
    TextDrawFont(dashtextdraw1, 2);
    TextDrawLetterSize(dashtextdraw1, 0.480000, 1.800000);
    TextDrawSetProportional(dashtextdraw1, 1);
    TextDrawUseBox(dashtextdraw1, 1);
    TextDrawTextSize(dashtextdraw1, 620.000000, 20.000000);
    TextDrawSetOutline(dashtextdraw1,1);
    TextDrawSetShadow(dashtextdraw1,0);
    TextDrawBackgroundColor(dashtextdraw2, black);
    TextDrawFont(dashtextdraw2, 2);
    TextDrawLetterSize(dashtextdraw2, 0.480000, 1.800000);
    TextDrawSetProportional(dashtextdraw2, 1);
    TextDrawUseBox(dashtextdraw2, 1);
    TextDrawTextSize(dashtextdraw2, 620.000000, 20.000000);
    TextDrawSetOutline(dashtextdraw2,1);
    TextDrawSetShadow(dashtextdraw2,0);
    return 1;
}
The only thing that works there is the CreatePickup for the buildingpicks, and it creates them at coordinates 0,0,0 (under Blueberry Acres.) I don't get any errors or warnings when I compile.
Reply
#2

Self bump? Please, anyone?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)