Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Координаты спавна

Статус
В этой теме нельзя размещать новые ответы.

Primo

Новичок
Доброго времени суток уважаемые форумчане.

Столкнулся с необычной для меня проблемой.
При заходе на сервер игрок появляется на нулевых координатах по неизвестной мне причине.
Лично я в коде ничего касающегося этого не нашел, поэтому прошу помощи у вас.

Код:
#include <a_samp>
#include <mxINI>
#include <md5>

#define COLOR_RED2 0xAA3333AA
#define COLOR_RED 0xAA3333AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_SYSTEM 0xFF0000AA

//new Level[MAX_PLAYERS];
new KillingSpree[MAX_PLAYERS];
new MonsterKill[MAX_PLAYERS];
new GodLike[MAX_PLAYERS];
new Rampage[MAX_PLAYERS];

enum pInfo {
    pMoney, // Ñîõðàíÿåò êîë-âî äåíåã.
    Float:pHeal, // Ñîõðàíÿåò êîë-âî æèçíåé.
    Level[MAX_PLAYERS],
    Kill[MAX_PLAYERS],
	Float:posx,
	Float:posy,
	Float:posz
};
new Player[MAX_PLAYERS][pInfo];

forward SaveAccounts();
forward LevelUpScan(playerid);

public LevelUpScan(playerid)
{
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(Player[i][Level]==1)
        {
        GivePlayerWeapon(i,6,99999);
        }
        if(Player[i][Level]==2)
        {
        GivePlayerWeapon(i,8,99999);
        }
        if(Player[i][Level]==3)
        {
        GivePlayerWeapon(i,9,99999);
        }
        if(Player[i][Level]==4)
        {
        GivePlayerWeapon(i,22,99999);
        }
        if(Player[i][Level]==5)
        {
        GivePlayerWeapon(i,24,99999);
        }
        if(Player[i][Level]==6)
        {
        GivePlayerWeapon(i,25,99999);
        }
        if(Player[i][Level]==7)
        {
        GivePlayerWeapon(i,26,99999);
        }
        if(Player[i][Level]==7)
        {
        GivePlayerWeapon(i,27,99999);
        }
        if(Player[i][Level]==8)
        {
        GivePlayerWeapon(i,28,99999);
        }
        if(Player[i][Level]==9)
        {
        GivePlayerWeapon(i,32,99999);
        }
        if(Player[i][Level]==10)
        {
        GivePlayerWeapon(i,29,99999);
        }
        if(Player[i][Level]==11)
        {
        GivePlayerWeapon(i,30,99999);
        }
        if(Player[i][Level]==12)
        {
        GivePlayerWeapon(i,33,99999);
        }
        if(Player[i][Level]==13)
        {
        GivePlayerWeapon(i,34,99999);
        }
        if(Player[i][Level]==14)
        {
        GivePlayerWeapon(i,18,99999);
        }
        if(Player[i][Level]==15)
        {
        GivePlayerWeapon(i,37,99999);
        //Vehicle();
		}
        if(Player[i][Level]==16)
        {
        GivePlayerWeapon(i,35,99999);
        }
        if(Player[i][Level]==17)
        {
        GivePlayerWeapon(i,36,99999);
        }
        if(Player[i][Level]==18)
        {
        GivePlayerWeapon(i,38,99999);
        }
        if(Player[i][Level]==19)
        {
        GivePlayerWeapon(i,16,99999);
        }
        if(Player[i][Level]==20)
        {
			new pName[MAX_PLAYER_NAME];
			GetPlayerName(i, pName, sizeof(pName));
			new string[128];
			format(string, sizeof(string),"Â ýòîì ðàóíäå ïîáåäèë '%s'! Ïðèìèòå íàøè ïîçäðàâëåíèÿ!", pName);
     	  	SendClientMessageToAll(COLOR_GREEN, string);
    	   	SetTimer("End", 1000*10, 0);
        }
    }
    return 1;
}

main()
{
	print("\n----------------------------------");
	print(" Blank Gamemode by your name here");
	print("----------------------------------\n");
}
public OnGameModeInit()
{
    SendRconCommand("worldtime 23:00");
	SetWorldTime(23);
	AllowInteriorWeapons(1);
	ShowNameTags(1);
	ShowPlayerMarkers(1);
	UsePlayerPedAnims();
	DisableInteriorEnterExits();
	SetGameModeText("VErtoe GunGame"); // - Èìÿ ãåéììîäà, ýòî òàê íà âñÿêèé ñëó÷àé
    SendRconCommand("mapname gg_arenat"); // - MapName íàçâàíèå êàðòû
    //SendRconCommand("weather 44"); // - ïîãîäà íà ñåðâåðå 44 - òåìíîå íåáî, 17 - ÿñíàÿ áåç îáëîêîâ

	SetGameModeText("GunGame VErtoe");
	SetTimer("LevelUpScan",600,1);
	return 1;
}
public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, Player[playerid][posx], Player[playerid][posy], Player[playerid][posz]);
	return 1;
}

public OnPlayerConnect(playerid)
{
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //óçíàåì íèê èãðîêà
    new account[128];
	new string[64];
    format(account,sizeof(account),"users/%s.ini",PlayerName); //ñîçäàåì àêê
    format(string, sizeof(string), "*%s ïðèñîåäèíèëñÿ.", PlayerName);
    SendClientMessageToAll(COLOR_GREEN, string);
    if(!fexist(account)) //åñëè àêêà íå ñóùåñòâóåò, òî...
    {
        ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Ðåãèñòðàöèÿ", "Âû äîëæíû çàðåãèñòðèðîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "REGISTER", ""); //...Ïîêàçûâàåì èãðîêó äèàëîã ðåãè
    }
        else
    {
        ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "LOGIN", ""); //åñëè îí åñòü, òî àâòîðèçóåì åãî
    }
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
  	new pName[MAX_PLAYER_NAME];
    new string[256];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "*%s ïîêèíóë èãðó.", pName);
    SendClientMessageToAll(COLOR_GREEN, string);
    SaveAccounts();
	return 1;
}

public OnPlayerSpawn(playerid)
{
	SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid, Player[playerid][posx], Player[playerid][posy], Player[playerid][posz]);
    if(GetPVarInt(playerid, "Logged") != 1) return 0;
	{
		for(new i=0;i<MAX_PLAYERS;i++)
    	{
			if(Player[i][Level]==0)
       		{
				GivePlayerWeapon(i,2,99999);
			}
		}
	}
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    SendDeathMessage(killerid, playerid, reason);
	Player[killerid][Kill]++;
	KillingSpree[killerid]++;
	MonsterKill[killerid]++;
	GodLike[killerid]++;
	Rampage[killerid]++;
	KillingSpree[playerid] = 0;
	MonsterKill[playerid] = 0;
	GodLike[playerid] = 0;
	Rampage[playerid] = 0;
	//Kill[playerid]--;
	new string[256];
	new pName[MAX_PLAYER_NAME];
	GetPlayerName(killerid, pName, sizeof(pName));
	if(Player[killerid][Kill] == 3)
	{
	Player[killerid][Level]++;
	Player[killerid][Kill] = 0;
	format(string, sizeof(string), "'%s' ïîâûñèë óðîâåíü. Åãî óðîâåíü %d", pName, Player[killerid][Level]);
	SendClientMessageToAll(COLOR_RED,string);
	}
	if(KillingSpree[killerid] == 2)
	{
	    format(string, sizeof(string), "Ñåðèÿ óáèéñòâ!!!...");
		SendClientMessageToAll(COLOR_GREEN, string);
	}
	if(MonsterKill[killerid] == 4)
	{
	    format(string, sizeof(string), "Ìîíñòð!!!...");
		SendClientMessageToAll(COLOR_GREEN, string);
	}
	if(GodLike[killerid] == 7)
	{
	    format(string, sizeof(string), "ÁÎÃÎÏÎÄÎÁÅÍ!!!...");
		SendClientMessageToAll(COLOR_ORANGE, string);
	}
	if(Rampage[killerid] == 10)
	{
	    format(string, sizeof(string), "...!!!Êðîâàâàÿ áàíÿ!!!...");
		SendClientMessageToAll(COLOR_RED, string);
	}
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/ll", cmdtext, true, 10) == 0)
	{
		Player[playerid][Level] = 15;
		return 1;
	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//=========================== Ðåãèñòðöèÿ ===========================
        if(dialogid == 1) //Ðåãèñòðàöèÿ
        {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Ðåãèñòðàöèÿ", "Âû äîëæíû çàðåãèñòðèðîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "Îê", "");
                if(response) //ïðîâåðêà íà êíîïêó "ÎÊ" è íà íàæàòèå Enter'à
                {
                        new PlayerName[MAX_PLAYER_NAME];
                        GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //óçíàåì íèê
                        new account[128];
                        format(account,sizeof(account),"users/%s.ini",PlayerName);//èùåì àêê
                        if(fexist(account)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "LOGIN", ""); //åñëè àêê óæå ñóùåñòâóåò, òî ëîãèíèì èãðîêà
                        new iniFile = ini_createFile(account); //ñîçäàåì àêê
                        if(iniFile < 0) ini_openFile (account); //åñëè ôàéë ïóñòîé, òî...
                        {
                                ini_setString(iniFile,"Ïàðîëü",inputtext); //çàïèøåì ïàðîëü è çàêîäèðóåì åãî
                                ini_setInteger(iniFile, "Money", 0); // Çàïèøåì êîë-âî äåíåã â ôàéë.
                                ini_setFloat(iniFile, "Heal", 100.0); // Çàïèøåì êîë-âî æèçíåé â ôàéë.
                                ini_setInteger(iniFile, "Kill", 0);
                				ini_setInteger(iniFile, "Level", 0);
                                ini_closeFile(iniFile); //çàêðîåì ôàéë
                                SetPVarInt(playerid, "Logged", 0); //ñîçäàåì ïåðåìåííóþ àâòîðèçàöèè
                                ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "LOGIN", ""); //òåïåðü ïîñëå ðåãèñòðàöèè, ìû äàäèì èãðîêó çàëîãèíèòüñÿ
                        }
                }
                else //Ïðîâåðêà íà âòîðóþ êíîïêó, íî åå òî ìû íå óêàçàëè. Íî åñëè íàæàòü Esc, òî ìû íå ðåãàåìñÿ. Òàê ÷òî ìû ñòàâèì ïðîâåðêó íà íàæàòèå Esc'åéïà
                {
                        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Ðåãèñòðàöèÿ", "Âû äîëæíû çàðåãèñòðèðîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "Îê", "");
                }
		}
		if(dialogid == 2)
    	{
        	if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "LOGIN", ""); //åñëè èãðîê íå ââåäåò ïàðîëü, òî èãðîê ìîã îáîéòè ðåãó. Íî ñ ýòîé ïðîâåðêîé ýòî èñêëþ÷àåòñÿ
        	if(response) // ïðîâåðêà íà êíîïêó "ÎÊ" è Enter
        	{
          		new PlayerName[MAX_PLAYER_NAME], password[64];
  		 		GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
            	new account[128];
            	format(account,sizeof(account),"users/%s.ini",PlayerName);
            	if(IsPlayerNPC(playerid))return 1;
            	new iniFile = ini_openFile(account);
            	ini_getString(iniFile, "Ïàðîëü",password); // Óçíà¸ì ïàðîëü àêêàóíòà.
            	if(!strcmp(inputtext, password, true))
            	{
                	ini_getInteger(iniFile, "Money", Player[playerid][pMoney]); // Çàïèøåì êîë-âî äåíåã â ïåðåìåííóþ.
                	ini_getFloat(iniFile, "Heal", Player[playerid][pHeal]); // Çàïèøåì êîë-âî æèçíåé â ïåðåìåííóþ.
                	ini_getInteger(iniFile, "Kill", Player[playerid][Kill]);
                	ini_getInteger(iniFile, "Level", Player[playerid][Level]);
                	SetPlayerHealth(playerid, Player[playerid][pHeal]);
                	GivePlayerMoney(playerid, Player[playerid][pMoney]);
            	    ini_getFloat(iniFile, "PosX", Player[playerid][posx]);
				    ini_getFloat(iniFile, "PosY", Player[playerid][posy]);
				    ini_getFloat(iniFile, "PosZ", Player[playerid][posz]);
                	ini_closeFile(iniFile);
                	OnPlayerSpawn(playerid);
                	return 1;
            	}
            	else
            	{
                	SendClientMessage(playerid, COLOR_SYSTEM, "System: Íåâåðíûé ïàðîëü!");
                	ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "Îê", "");
                	return 1;
            	}
        	}
        	else //Åñëè íàæàòü Esc, òî...
        	{
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû äîëæíû àâòîðèçîâàòüñÿ! \nÂâåäèòå âàø ïàðîëü:", "Îê", ""); // íå äàåì èãðîêó îáîéòè àâòîðèçàöèþ è ïîêàçûâàåì åìó ñíîâà îêíî àâòîðèçàöèè
        	}
    	}
    	return 0;
}

public SaveAccounts()
{
    for(new f; f < GetMaxPlayers(); f++)
    {
        if(!IsPlayerConnected(f))continue;
        SaveAccount(f);
    }
}

stock SaveAccount(playerid)
{
    new PlayerName[MAX_PLAYER_NAME], account[128];
    GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
    format(account,sizeof(account), "users/%s.ini", PlayerName);
	new Float:health;
	GetPlayerHealth(playerid, health);
	new Float:x;
	new Float:y;
	new Float:z;
	GetPlayerPos(playerid, x, y, z);
    new iniFile = ini_openFile(account);
    ini_setInteger(iniFile, "Money", GetPlayerMoney(playerid));
    ini_setFloat(iniFile, "Heal", health);
    ini_setInteger(iniFile, "Kill", Player[playerid][Kill]);
    ini_setInteger(iniFile, "Level", Player[playerid][Level]);
    ini_setFloat(iniFile, "PosX", x);
    ini_setFloat(iniFile, "PosY", y);
    ini_setFloat(iniFile, "PosZ", z);
    ini_closeFile(iniFile);
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
Заранее благодарю за помощь.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу