Доступ к готовым решениям

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

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

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

Мануал Система АTM Из игры.

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

Merlin

Умник
Всем привет , вот вырезал ещё в 2013 работу с Rezone систему ATM , НУ и валяется у меня вот решил выложить.
К new
PHP:
new TOTALATM;

В команды добавим.
PHP:
if(strcmp(cmd, "/addatm", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] >= 6)
		{
		    SetPVarInt(playerid, "addatm", 1);
			TOTALATM++;
			new Float:X, Float:Y, Float:Z;
			GetPlayerPos(playerid, X, Y, Z);
			new obj;
			obj = CreateObject(2754, X+1, Y+1, Z+1, 0.0,0.0,0.0);
			EditObject(playerid, obj);
		}
		return true;
	}
В public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) ПОЛНОСТЬЮ
PHP:
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
	if(GetPVarInt(playerid, "addatm") !=1)
	{
	    if(GetPVarInt(playerid, "ModelID") !=0)
	    {
			if(response == 1)
			{
				SPD(playerid, DIALOG_SAVE_1, DIALOG_STYLE_MSGBOX, "Объект изменён",\
				"Желаете ли вы сохранить объект в файл?\n\nФайл с объектами находится в {FFFFFF}scriptfiles/soe/*.txt",\
				"Сохранить...","Отмена");
				O[foX] = fX;
				O[foY] = fY;
				O[foZ] = fZ;
				O[roX] = fRotX;
				O[roY] = fRotY;
				O[roZ] = fRotZ;
			}
		}
	}
	else
	{
	    if(response == 1)
		{
			ATMInfo[TOTALATM][aid]= TOTALATM;
			ATMInfo[TOTALATM][aX]= fX;
			ATMInfo[TOTALATM][aY]= fY;
			ATMInfo[TOTALATM][aZ]= fZ;
			ATMInfo[TOTALATM][arZ]= fRotZ;
			LABELATM[TOTALATM] = Create3DTextLabel("Нажмите 'ENTER'",COLOR_GREEN, fX,fY,fZ+1,20.0,0,1);
			saveatm();
		}
	}
}
В Конце мода добавим
PHP:
stock saveatm()
{
    new idx;
	new File: file2;
	while (idx < sizeof(ATMInfo))
	{
		if(ATMInfo[idx][aid] !=0)
		{
			new coordsstring[256];
			format(coordsstring, sizeof(coordsstring), "%d|%f|%f|%f|%f\n",
	  		ATMInfo[idx][aid],
			ATMInfo[idx][aX],
			ATMInfo[idx][aY],
			ATMInfo[idx][aZ],
			ATMInfo[idx][arZ]);
			if(idx == 0)
			{
				file2 = fopen("logs/atm.cfg", io_write);
			}
			else
			{
				file2 = fopen("logs/atm.cfg", io_append);
			}
	  		fwrite(file2, coordsstring);
			fclose(file2);
		}
		idx++;
	}
}
stock LoadATM()
{
	new arrCoords[5][64];
	new strFromFile2[256];
	new File: file = fopen("logs/atm.cfg", io_read);
	new idx;
	if(file)
	{
		while(idx < sizeof(ATMInfo))
		{
			fread(file, strFromFile2);
			split(strFromFile2, arrCoords, '|');
  			if(strval(arrCoords[0]) != 0)
		    {
				ATMInfo[idx][aid]= strval(arrCoords[0]);
				ATMInfo[idx][aX]= floatstr(arrCoords[1]);
				ATMInfo[idx][aY]= floatstr(arrCoords[2]);
				ATMInfo[idx][aZ]= floatstr(arrCoords[3]);
				ATMInfo[idx][arZ]= floatstr(arrCoords[4]);
	        	TOTALATM++;
	        	ATM[idx] = CreateDynamicObject(2754, ATMInfo[idx][aX], ATMInfo[idx][aY], ATMInfo[idx][aZ], 0.0, 0.0, ATMInfo[idx][arZ]);
	        	LABELATM[idx] = Create3DTextLabel("Нажмите 'ENTER'",COLOR_GREEN, ATMInfo[idx][aX],ATMInfo[idx][aY],ATMInfo[idx][aZ]+1,20.0,0,1);
			}
            idx++;
        }
    }
    printf("%d банкоматов было успешно загружено!", TOTALATM);
    fclose(file);
    return 1;
}
В начале мода :
PHP:
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#define MAX_ATM 50
enum atm
{
	aid,
	Float:aX,
	Float:aY,
	Float:aZ,
	Float:arZ
};
new ATMInfo[MAX_ATM][atm];
new ATM[MAX_ATM];
new Text3D:LABELATM[MAX_ATM];
enum SavedEnums {
	Float:foX,
	Float:foY,
	Float:foZ,
	Float:roX,
	Float:roY,
	Float:roZ
};
new O[SavedEnums];
В public OnGameModeInit()//события, когда загружается мод
PHP:
LoadATM();// Загружаем банкоматы
Ну в принцепе всё , тока создать файл cfg и указать его.
Автор Вырезки : Merlin
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу