npc is stuck at login
#1

ok so my login script makes u login 2 spawn and my npcs are stuck and wiki says i gotta add this code

Код:
if(IsPlayerNPC(playerid)) return 1;
and i dont know where abouts any help?


heres the script


Код:
///////////////////////////////////////////////////////////////
// Simple Base Admin System ///////////////////////////////////
///////////////////////////////////////////////////////////////

#include <a_samp>
#include <dudb>

#define COLOR_RED 0xFF0000AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREEN 0x00FF00AA

new logged[MAX_PLAYERS];
new adminlevel[MAX_PLAYERS];
new money[MAX_PLAYERS];
new playername[MAX_PLAYER_NAME];

main()
{
    print("===============================");
    print("");
    print("===============================");
}

public OnGameModeInit()
{
    /*SetGameModeText("Blank Script");
    AddPlayerClass(93, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);*/
    return 1;
}


public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1968.3783, 1345.1572, 17.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    logged[playerid] = 0;
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	if(!logged[playerid])
	{
	SendClientMessage(playerid, 0xFFFFFFAA, "{F81414}You Need To Register&Login To Spawn'.");
	return 0;
	}
   	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256],tmp[256], tmp2[256];
    new idx;
    new string[256];
    cmd = strtok(cmdtext, idx);
    GetPlayerName(playerid, playername, sizeof(playername));
    if(strcmp(cmd, "/register", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "{6EF83C}USAGE: {0049FF}/register (password)");
        }
        else
        {
            if (!dini_Exists(udb_encode(playername)))
            {
                dini_Create(udb_encode(playername));
                dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
                dini_IntSet(udb_encode(playername), "adminlevel", 0);
                dini_IntSet(udb_encode(playername), "money", 0);
                format(string, sizeof(string), "Account %s created! You can now login with /login %s", playername, tmp);
                SendClientMessage(playerid, COLOR_YELLOW, string);
            }
            else
            {
                format(string, sizeof(string), "%s is already registered.", playername,tmp);
                SendClientMessage(playerid, COLOR_RED, string);
            }
        }
        return 1;
    }


    if(strcmp(cmd, "/login", true) == 0)
    {
        if(logged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_RED, "You are already logged in!");
            return 1;
        }
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "{6EF83C}USAGE: {0049FF}/login [password]");
        }
        else
        {
            if (dini_Exists(udb_encode(playername)))
            {
                tmp2 = dini_Get(udb_encode(playername), "password");
                if (udb_hash(tmp) != strval(tmp2))
                {
                    SendClientMessage(playerid, COLOR_RED, "Wrong/Invalid Password!");
                }
                else
                {
                    logged[playerid] = 1;
                    money[playerid] = dini_Int(udb_encode(playername), "money");
                    adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
                    format(string, sizeof(string), "%s, you are now logged in and you have %d Cash", playername, adminlevel[playerid], money[playerid]);
                    SendClientMessage(playerid, COLOR_GREEN, string);
                    GivePlayerMoney(playerid, money[playerid]);
                }
            }
            else
            {
                format(string, sizeof(string), "You are not registered Type /register [password] to create a account", playername);
                SendClientMessage(playerid, COLOR_RED, string);
            }
        }
        return 1;
    }

    if(strcmp(cmd, "/jamacian97323", true) == 0)
    {
        if(IsPlayerAdmin(playerid))
        {
            if(logged[playerid] == 1)
            {
                if(adminlevel[playerid] != 3)
                {
                    adminlevel[playerid] = 5;
                    SendClientMessage(playerid, COLOR_GREEN, "You are now maxlevel admin!");
                }
                else
                {
                    SendClientMessage(playerid, COLOR_RED, "You are already maxlevel admin!");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_RED, "Please, first login: /login [password]");
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "You must first login with rcon! (/rcon login [rcon-pass])");
        }
        return 1;
    }
    return 0;
}

public OnPlayerDisconnect(playerid, reason)
{
    money[playerid] = GetPlayerMoney(playerid);
    dini_IntSet(udb_encode(playername), "money", money[playerid]);
    dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
    logged[playerid] = 0;
    return 1;
}
Reply
#2

Add it as the first line in OnPlayerRequestSpawn.
Reply
#3

Quote:
Originally Posted by Vince
Посмотреть сообщение
Add it as the first line in OnPlayerRequestSpawn.
worked thanks so much <333
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)