Перейти к содержанию
Авторизация  
Emiliano

Проблема с подъездом

Рекомендуемые сообщения

Emiliano

1. Подъезд не обновляется после рестарта сервера.

stock UpdatePadik(padik)
{
	DestroyDynamicPickup(Padik[padik][paPic]);
	DestroyDynamicPickup(Padik[padik][paPic2]);
	new p[64];
	format(p,64,"{63CF53}??????? ?????: {CFCFCF}%d",padik);
	Create3DTextLabel(p,COLOR_BLUE,Padik[padik][pavX], Padik[padik][pavY], Padik[padik][pavZ],Padik[padik][pavWorld],Padik[padik][pavInt]);
    Padik[padik][paPic] = CreateDynamicPickup(19133, 1, Padik[padik][pavX], Padik[padik][pavY], Padik[padik][pavZ],Padik[padik][pavWorld],Padik[padik][pavInt]);
	Padik[padik][paPic2] = CreateDynamicPickup(19133, 1, Padik[padik][paiX], Padik[padik][paiY], Padik[padik][paiZ], padik, Padik[padik][paInt]);
	return true;
}

2. Не могу создавать дома в подъезде.

stock SaveHouse()
{
	new id;
	new File: file;
	new string[200];
	while(id < sizeof(House))
	{
	    f("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d\t\t\n",
		House[id][hX][0],House[id][hY][0],House[id][hZ][0],House[id][hX][1],House[id][hY][1],House[id][hZ][1],House[id][hX][2],House[id][hY][2],House[id][hZ][2], House[id][hAngle],House[id][hPlayer],House[id][hCena],House[id][hInt],House[id][hOpen],House[id][hHouse],House[id][hKlass],House[id][hPickup],House[id][hIcon]);
		if(id == 0) file = fopen("House/House.cfg", io_write);
		else file = fopen("House/House.cfg", io_append);
		fwrite(file, string);
		id++;
		fclose(file);
	}
	return true;
}
stock LoadHouse()
{
	new allhouse[18][50];
	new string[200];
	new File: file = fopen("House/House.cfg", io_read);
	if(file)
	{
	    new id;
	    while(id < sizeof(House))
	    {
	        fread(file, string);
	        split(string, allhouse, ',');
	        House[id][hX][0] = floatstr(allhouse[0]);
	        House[id][hY][0] = floatstr(allhouse[1]);
	        House[id][hZ][0] = floatstr(allhouse[2]);
	        House[id][hX][1] = floatstr(allhouse[3]);
	        House[id][hY][1] = floatstr(allhouse[4]);
	        House[id][hZ][1] = floatstr(allhouse[5]);
	        House[id][hX][2] = floatstr(allhouse[6]);
	        House[id][hY][2] = floatstr(allhouse[7]);
	        House[id][hZ][2] = floatstr(allhouse[8]);
	        House[id][hAngle] = floatstr(allhouse[9]);
	        strmid(House[id][hPlayer], allhouse[10], 0, strlen(allhouse[10]), 9999);
	        House[id][hCena] = strval(allhouse[11]);
	        House[id][hInt] = strval(allhouse[12]);
	        House[id][hOpen] = strval(allhouse[13]);
	        House[id][hHouse] = strval(allhouse[14]);
	        House[id][hKlass] = strval(allhouse[15]);
	        House[id][hPickup] = strval(allhouse[16]);
	        House[id][hIcon] = strval(allhouse[17]);
	        id++;
	    }
	    fclose(file);
	}
	return true;
}

Помогите плс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Aleksandr_Fedosov

@Emiliano,у вас есть stock LoadPadik? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Emiliano

Да. 

Вот он:

stock LoadPadik()
{
new ids[32];
    new iniOpens = ini_openFile("Padik.cfg");
ini_getInteger(iniOpens, "AllPadik", AllPadik);
ini_closeFile(iniOpens);
if(AllPadik != 0)
{
for(new padik = 1; padik <= AllPadik; padik++)
{
format(ids,sizeof(ids),"Padik/%d.ini",padik);
    new iniDpen = ini_openFile(ids);
ini_getFloat(iniDpen, "paiX", Padik[padik][paiX]);
ini_getFloat(iniDpen, "paiY", Padik[padik][paiY]);
ini_getFloat(iniDpen, "paiZ", Padik[padik][paiZ]);
ini_getFloat(iniDpen, "pavX", Padik[padik][pavX]);
ini_getFloat(iniDpen, "pavY", Padik[padik][pavY]);
ini_getFloat(iniDpen, "pavZ", Padik[padik][pavZ]);
ini_getInteger(iniDpen, "paInt", Padik[padik][paInt]);
ini_getInteger(iniDpen, "pavWorld", Padik[padik][pavWorld]);
ini_getInteger(iniDpen, "pavInt", Padik[padik][pavInt]);
ini_closeFile(iniDpen);
new p[64];
format(p,64,"{63CF53}Подъезд номер: {CFCFCF}%d",padik);
Create3DTextLabel(p,COLOR_BLUE,Padik[padik][pavX], Padik[padik][pavY], Padik[padik][pavZ],50.0,0,1);
Padik[padik][paPic] = CreateDynamicPickup(19133, 1, Padik[padik][pavX], Padik[padik][pavY], Padik[padik][pavZ],Padik[padik][pavWorld],Padik[padik][pavInt]);
Padik[padik][paPic2] = CreateDynamicPickup(19133, 1, Padik[padik][paiX], Padik[padik][paiY], Padik[padik][paiZ], padik, Padik[padik][paInt]);
}
}
return true;
}

 

Изменено пользователем Emiliano

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

А рестарт, конечно, через /rcon gmx. В OnGameModeExit() корректно выгружаются из памяти данные о подъездах?

По второму вопросу проще. А виртуальные миры и интерьеры в базе домов хоть как-то хранятся? Нет? Тогда сами ответили на свой вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Aleksandr_Fedosov

@Emiliano,скиньте код команд создания подъездов и домов а также стоит ли у вас в OnGameModeInit LoadPadik(); ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Emiliano


CMD:createpadik(playerid)
{
if(Player[playerid][pAdmin] AllPadik++;
GetPlayerPos(playerid, Padik[AllPadik][pavX],Padik[AllPadik][pavY],Padik[AllPadik][pavZ]);
Padik[AllPadik][paiX] = 2403.1;
Padik[AllPadik][paiY] = -2503.5;
Padik[AllPadik][paiZ] = -50.1;
Padik[AllPadik][paInt] = 4;
Padik[AllPadik][pavWorld] = GetPlayerVirtualWorld(playerid);
Padik[AllPadik][pavInt] = GetPlayerInterior(playerid);
new iniDpen = ini_openFile("Padik.cfg");
ini_setInteger(iniDpen, "AllPadik", AllPadik);
ini_closeFile(iniDpen);
SavePadik(AllPadik);
UpdatePadik(AllPadik);
Padik[AllPadik][paPic] = CreateDynamicPickup(19133, 1, Padik[AllPadik][pavX], Padik[AllPadik][pavY], Padik[AllPadik][pavZ],Padik[AllPadik][pavWorld],Padik[AllPadik][pavInt]);
Padik[AllPadik][paPic2] = CreateDynamicPickup(19133, 1, Padik[AllPadik][paiX], Padik[AllPadik][paiY], Padik[AllPadik][paiZ], AllPadik, Padik[AllPadik][paInt]);
SendClientMessage(playerid,COLOR_YELLOW,"Вы успешно создали подъезд!");
new p[64];
format(p,64,"{63CF53}Подъезд номер: {CFCFCF}%d",AllPadik);
Create3DTextLabel(p,COLOR_BLUE,Padik[AllPadik][pavX], Padik[AllPadik][pavY], Padik[AllPadik][pavZ],50.0,0,1);
return true;
}


CMD:setpos(playerid, params[])
{
com
flood
if(Player[playerid][pAdmin] adm
if(sscanf(params, "i", params[0])) return SCM(playerid, COLOR_WHITE, "Введите: /setpos [id дома]");
new Float: X;
new Float: Y;
new Float: Z;
GetPlayerPos(playerid, X, Y, Z);
House[params[0]][hX][0] = X;
House[params[0]][hY][0] = Y;
House[params[0]][hZ][0] = Z;
SaveHouse();
BuyHouse();
SCM(playerid, COLOR_YELLOW, "Дом успешно создан!");
return true;
}
Изменено пользователем Emiliano

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Aleksandr_Fedosov

@Emiliano, у вас в /setpos нету проверки на вирт.мир игрока добавьте и всё будет работать 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Emiliano

2 вопрос почти решён. Теперь дом создается но пикап выхода из подъезда пропадает.

Изменено пользователем Emiliano

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.