PDA

Просмотр полной версии : [Вопрос] Почему то 0 зоне присваеваеться значение 0



Zeror_Dalglish
17.06.2014, 02:19
Почему то присваиваться 0 значение зоне - 0


CMD:gzcolor(playerid, params[])
{
//if(PlayerInfo[playerid][pAdmin] < 2) return true;
if(sscanf(params, "d",params[0])) return SendClientMessage(playerid,RIFA_COLOR, "Введите: /gzcolor [банда]");
if(!IsInAllowedF(params[0])) return SendClientMessage(playerid,-1,"{22ff00}» {bbbbbb}Введите{FFFFFF}: /gzcolor [банда]");
{
for(new i = 1; i != sizeof(GZInfo); i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
GZInfo[i][gFrak] = params[0];
GangZoneStopFlashForAll(GZInfo[i][id]);
GangZoneHideForAll(GZInfo[i][id]);
GangZoneShowForAll(GZInfo[i][id], GZColor(params[0]));
SaveGZ();
@_TD_up(playerid);
return true;
}
}
}
return true;
}



forward SaveGZ();
public SaveGZ()
{
new querys[512];
for(new idx = 1; idx != sizeof(GZInfo); idx++)
{
format(querys, sizeof(querys), "UPDATE `GANGZONES_GANGWAR` SET `First_Coordinate`='%f', `Second_Coordinate`='%f', `Third_Coordinate`='%f', `Fourth_Coordinate`='%f', `Group`='%d' WHERE `id`='%d'",
GZInfo[idx][gCoords][0],GZInfo[idx][gCoords][1],GZInfo[idx][gCoords][2],GZInfo[idx][gCoords][3], GZInfo[idx][gFrak], idx);
mysql_function_query(connect_to_mysql, querys, false, "", "");
}
return 1;
}



GZInfo[91][GzoneInfo]

DeimoS
17.06.2014, 07:45
Может потому что циклы все с единицы начинаются, не?

Zeror_Dalglish
17.06.2014, 09:27
Может потому что циклы все с единицы начинаются, не?

Ну я, делал с 1 все равно..
Ну а так в базе с 0 зоны начинаються..

DeimoS
17.06.2014, 11:23
Удалите её и всё. Запись/загрузка идёт исходя из значения поля "ID", а не исходя из того, на каком месте стоит строка

Zeror_Dalglish
17.06.2014, 15:01
Удалите её и всё. Запись/загрузка идёт исходя из значения поля "ID", а не исходя из того, на каком месте стоит строка

кого удалить то?

- - - Добавлено - - -


кого удалить то?

И ещё почему то когда каптишь, например банду The Rifa (по цвету их терра) то пишит что каптишь например Los Santos Vagos..
Код самой команды:


CMD:capture(playerid, params[])
{
for(new i = 0; i != sizeof(GZInfo); i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(BandFrak[playerid] == GZInfo[i][gFrak]) return SendClientMessage(playerid,RIFA_COLOR,"Вы не можете захватить данную территорию.");
if(IsCapture != 0) return SendClientMessage(playerid, RIFA_COLOR, "Уже происходит захват одной из зон. Дождитесь окончания!");
vremyadokonca = 10;
Frags1 = 0;
Frags2 = 0;
IsCapture = i;
GangZoneFlashForAll(IsCapture, GZColor(BandFrak[playerid]));
CaptureStart(BandFrak[playerid], GZInfo[i][gFrak]);
IDGang1 = BandFrak[playerid];
IDGang2 = GZInfo[i][gFrak];
return 1;
}
}
return true;
}

Код начало капта:


stock CaptureStart(familyone, familytwo)
{
foreach(new i: Player)
{
if(!IsPlayerConnected(i) || !BandFrak[i]) continue;
{
TextDrawShowForPlayer(i, CaptureWarGang);
TextDrawShowForPlayer(i, CaptureWarGang2);
TextDrawShowForPlayer(i, CaptureTime);
TextDrawShowForPlayer(i, Textdraw4);
GangZoneShowForAll(GZInfo[i][id], GZColor(familyone));
new BANDAA[128], BANDAB[128], string228[67];
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(familyone),GetGangName(familytwo));
SendClientMessage(i, RIFA_COLOR, string228);
format(BANDAA, sizeof(BANDAA), "%s ~r~%i", GetGangName(familyone), Frags1);
TextDrawSetString(CaptureWarGang, BANDAA);
format(BANDAB, sizeof(BANDAB), "%s ~r~%i", GetGangName(familytwo), Frags2);
TextDrawSetString(CaptureWarGang2, BANDAB);
}
}
}

Код окончание капта:


@_Every_Second_Timer();
@_Every_Second_Timer()
{
new sgdsgsv[15];
new textgangone[64];
new textgangtwo[64];
new string[256];
vremyadokonca --;
Convert(vremyadokonca, sgdsgsv);
TextDrawSetString(CaptureTime, sgdsgsv);
format(textgangone,sizeof(textgangone),"%s: ~r~%i",GetGangName(IDGang1),Frags1);
TextDrawSetString(CaptureWarGang, textgangone);
//TextDrawShowForPlayer(i, CaptureWarGang);
format(textgangtwo,sizeof(textgangtwo),"%s: ~r~%i",GetGangName(IDGang2),Frags2);
TextDrawSetString(CaptureWarGang2, textgangtwo);
//TextDrawShowForPlayer(i, CaptureWarGang2);
if(!vremyadokonca)
{
foreach(new i: Player)
{
if(IDGang1 != BandFrak[i] && IDGang2 != BandFrak[i]) continue;
if(Frags1 == Frags2 || Frags2 < Frags1) format(string, 90, "Попытка %s захватить територию у %s провалилась (BETA1)", GetGangName(IDGang1), GetGangName(IDGang2));
else if(Frags1 > Frags2) format(string, 90, "%s захватила территорию у банды %s (BETA2)", GetGangName(IDGang1), GetGangName(IDGang2));
SendClientMessage(i, RIFA_COLOR, string);
GZGrove = 0, GZVagos = 0, GZBallas = 0, GZAztecas = 0, GZRifa = 0;
for(new v =0;v<sizeof(GZInfo);v++)
{
if(GZInfo[v][gFrak] == 1) GZGrove++;
if(GZInfo[v][gFrak] == 2) GZVagos++;
if(GZInfo[v][gFrak] == 3) GZBallas++;
if(GZInfo[v][gFrak] == 4) GZAztecas++;
if(GZInfo[v][gFrak] == 5) GZRifa++;
}
TextDrawHideForPlayer(i, CaptureWarGang);
TextDrawHideForPlayer(i, CaptureWarGang2);
TextDrawHideForPlayer(i, CaptureTime);
TextDrawHideForPlayer(i, Textdraw4);
}
GangZoneStopFlashForAll(IsCapture);
if(Frags1 > Frags2) GangZoneShowForAll(IsCapture, GZColor(IDGang1));
IsCapture = 0;
}
}

Zeror_Dalglish
17.06.2014, 22:30
UP UP UP

Пельмень
17.06.2014, 22:36
В каком смысле 0 значение? Подробнее, пожалуйста!

Zeror_Dalglish
17.06.2014, 22:53
В каком смысле 0 значение? Подробнее, пожалуйста!

Координат, да и вообще потом и 1 зона присваиваться 0.0.0 координат.

Пельмень
17.06.2014, 23:05
GZInfo[idx][gCoords] массив в студию, точнее то место, где идёт присваивание значений в этот массив. Если такого участка кода нет, то способ решения проблемы думаю понятен.

Zeror_Dalglish
17.06.2014, 23:19
GZInfo[idx][gCoords] массив в студию, точнее то место, где идёт присваивание значений в этот массив. Если такого участка кода нет, то способ решения проблемы думаю понятен.


Float:gCoords[4],
GZInfo[91][GzoneInfo],

Пельмень
17.06.2014, 23:28
Float:gCoords[4],
GZInfo[91][GzoneInfo],

Эмм, а ему вообще что-то присваивается?

Zeror_Dalglish
17.06.2014, 23:32
Эмм, а ему вообще что-то присваивается?

что? Кому что присваевает ты о чем?

Пельмень
17.06.2014, 23:36
что? Кому что присваевает ты о чем?

Ок, разложим по полочкам, у тебя имеется массив размером 4 ячейки (0..3) типа float, по дефолту он будет равен 0 (0.0). Получается у каждой GZ изначально координаты равны нулю, а в сохранении ганг зон, в базу данных идёт именно из этого массива, в котором изначально данные равны нулю, получается, если за всё время, до сохранения ганг зон, значения в ячейках не менялись, то базу данных запишется ноль.

Zeror_Dalglish
17.06.2014, 23:37
Ок, разложим по полочкам, у тебя имеется массив размером 4 ячейки (0..3) типа float, по дефолту он будет равен 0 (0.0). Получается у каждой GZ изначально координаты равны нулю, а в сохранении ганг зон, в базу данных идёт именно из этого массива, в котором изначально данные равны нулю, получается, если за всё время, до сохранения ганг зон, значения в ячейках не менялись, то базу данных запишется ноль.

Получаеться что они не были равны нолю, и выгружались из базы

Пельмень
17.06.2014, 23:42
Получаеться что они не были равны нолю, и выгружались из базы
Проверьте, выгружаются ли в ячейки значения из базы данных самым простым олдфаговским способом через printf, сразу-же в массиве с загрузкой данных из БД, выводите значение координат и id гз, к которой они принадлежат, если они будут равны нулю, а в базе данных, до этого, были иные значения в ячейках, сделайте mysql_debug(true); Или какая функция отвечает за дебаг запросов mysql, и проверьте, нет ли ошибки в выгрузке данных из БД.

Zeror_Dalglish
17.06.2014, 23:46
Проверьте, выгружаются ли в ячейки значения из базы данных самым простым олдфаговским способом через printf, сразу-же в массиве с загрузкой данных из БД, выводите значение координат и id гз, к которой они принадлежат, если они будут равны нулю, а в базе данных, до этого, были иные значения в ячейках, сделайте mysql_debug(true); Или какая функция отвечает за дебаг запросов mysql, и проверьте, нет ли ошибки в выгрузке данных из БД.


forward LoadGZ();
public LoadGZ()
{
new fields;
cache_get_data(TOTALGZ, fields);
if(!TOTALGZ) return print("[Загрузка ганг зон] Ошибка: Таблица пуста");
if(TOTALGZ > sizeof(GZInfo)) return printf("[Загрузка ганг зон] Ошибка: Число гангзон в базе данных (%d) больше, чем размер массива GZInfo(%d)", TOTALGZ, sizeof(GZInfo));
new time = GetTickCount();
for(new i = 0; i != sizeof(GZInfo); i++)
{
GZInfo[i][gCoords][0] = cache_get_field_content_float(i-1, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i-1, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i-1, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i-1, "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i-1, "Group", connect_to_mysql);
switch(GZInfo[i][gFrak])
{
case 1: GZGrove++;
case 2: GZBallas++;
case 3: GZRifa++;
case 4: GZAztecas++;
case 5: GZVagos++;
}
GZInfo[i][id] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]);
}
return printf(" [Загрузка ганг зон]: Было загружено - %d потрачено %d (ms)", TOTALGZ, GetTickCount() - time);
}

Не немножко не понял как..

Пельмень
18.06.2014, 00:01
GZInfo[i][gCoords][0] = cache_get_field_content_float(i-1, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i-1, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i-1, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i-1, "Fourth_Coordinate", connect_to_mysql);
После этого вставьте
printf ("[Debug] ID: %d | [0]: %f | [1]: %f | [2]: %f | [3]: %f", i, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]);

Zeror_Dalglish
18.06.2014, 00:15
GZInfo[i][gCoords][0] = cache_get_field_content_float(i-1, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i-1, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i-1, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i-1, "Fourth_Coordinate", connect_to_mysql);
После этого вставьте
printf ("[Debug] ID: %d | [0]: %f | [1]: %f | [2]: %f | [3]: %f", i, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]);
И что теперь сделать?

Пельмень
18.06.2014, 01:13
И что теперь сделать?
Теперь откройте server_log.txt и скопируйте эти строчки, далее зайдите на www.pastebin.com и вставьте их в поле, после этого нажмите кнопку Submit и предоставьте ссылку сюда.

Zeror_Dalglish
18.06.2014, 01:18
Теперь откройте server_log.txt и скопируйте эти строчки, далее зайдите на www.pastebin.com и вставьте их в поле, после этого нажмите кнопку Submit и предоставьте ссылку сюда.

http://pastebin.com/rtQ8Hh2W

Пельмень
18.06.2014, 01:25
http://pastebin.com/rtQ8Hh2W

for(new i = 0; i != sizeof(GZInfo); i++)
Переменной i изначально нужно присвоить 1, потому-что дальше, при загрузке, у вас идёт i-1, т.е при первой итерации строчки

GZInfo[i][gCoords][0] = cache_get_field_content_float(i-1, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i-1, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i-1, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i-1, "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i-1, "Group", connect_to_mysql);
Будут принимать в первый параметр -1, т.к 0-1 = -1

Zeror_Dalglish
18.06.2014, 01:54
for(new i = 0; i != sizeof(GZInfo); i++)
Переменной i изначально нужно присвоить 1, потому-что дальше, при загрузке, у вас идёт i-1, т.е при первой итерации строчки

GZInfo[i][gCoords][0] = cache_get_field_content_float(i-1, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i-1, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i-1, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i-1, "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i-1, "Group", connect_to_mysql);
Будут принимать в первый параметр -1, т.к 0-1 = -1

Тоесть убрать i-1 и вместо него просто i?

Пельмень
18.06.2014, 02:02
Тоесть убрать i-1 и вместо него просто i?
Можно и так, а можно начинать цикл с 1.

Zeror_Dalglish
18.06.2014, 02:28
forward LoadGZ();
public LoadGZ()
{
new fields;
cache_get_data(TOTALGZ, fields);
if(!TOTALGZ) return print("[Загрузка ганг зон] Ошибка: Таблица пуста");
if(TOTALGZ > sizeof(GZInfo)) return printf("[Загрузка ганг зон] Ошибка: Число гангзон в базе данных (%d) больше, чем размер массива GZInfo(%d)", TOTALGZ, sizeof(GZInfo));
new time = GetTickCount();
for(new i = 1; i != sizeof(GZInfo); i++)
{
GZInfo[i][gCoords][0] = cache_get_field_content_float(i, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i , "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i-1, "Group", connect_to_mysql);
//printf ("[Debug] ID: %d | [0]: %f | [1]: %f | [2]: %f | [3]: %f", i, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]);
switch(GZInfo[i][gFrak])
{
case 1: GZGrove++;
case 2: GZBallas++;
case 3: GZRifa++;
case 4: GZAztecas++;
case 5: GZVagos++;
}
GZInfo[i][id] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]);
}
return printf(" [Загрузка ганг зон]: Было загружено - %d потрачено %d (ms)", TOTALGZ, GetTickCount() - time);
}

Вот так вот сделал 1 зона куда то теряться..

- - - Добавлено - - -

А вот ещё конвертировать пробувал не получаеться...


format(convert_string,sizeof(convert_string),"Time: %02d:%02d",Convert(vremyadokonca, convert_string));
TextDrawSetString(CaptureTime, convert_string);



stock Convert(seconds, stringTo[], size = sizeof(stringTo))
{
stringTo[0] = 0x0;
new result[4];
result[0] = floatround(seconds / (3600 * 24));
result[1] = floatround(seconds / 3600);
result[2] = floatround((seconds / 60) - (result[1] * 60));
result[3] = floatround(seconds - ((result[1] * 3600) + (result[2] * 60)));
switch(result[0])
{
case 0:
{
switch(result[1])
{
case 0: format(stringTo,size,"%02d:%02d",result[2],result[3]);
default: format(stringTo,size,"%d:%02d:%02d",result[1],result[2],result[3]);
}
}
}
return stringTo;
}

Пельмень
18.06.2014, 02:51
Если вы убрали i-1, значит начинать цикл с еденицы нет никакого смысла, совершенно!

- - - Добавлено - - -


forward LoadGZ();
public LoadGZ()
{
new fields;
cache_get_data(TOTALGZ, fields);
if(!TOTALGZ) return print("[Загрузка ганг зон] Ошибка: Таблица пуста");
if(TOTALGZ > sizeof(GZInfo)) return printf("[Загрузка ганг зон] Ошибка: Число гангзон в базе данных (%d) больше, чем размер массива GZInfo(%d)", TOTALGZ, sizeof(GZInfo));
new time = GetTickCount();
for(new i = 0; i != sizeof(GZInfo); i++)
{
GZInfo[i][gCoords][0] = cache_get_field_content_float(i, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i , "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i, "Group", connect_to_mysql);
//printf ("[Debug] ID: %d | [0]: %f | [1]: %f | [2]: %f | [3]: %f", i, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]);
switch(GZInfo[i][gFrak])
{
case 1: GZGrove++;
case 2: GZBallas++;
case 3: GZRifa++;
case 4: GZAztecas++;
case 5: GZVagos++;
}
GZInfo[i][id] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]);
}
return printf(" [Загрузка ганг зон]: Было загружено - %d потрачено %d (ms)", TOTALGZ, GetTickCount() - time);
}

Zeror_Dalglish
18.06.2014, 14:20
Если вы убрали i-1, значит начинать цикл с еденицы нет никакого смысла, совершенно!

- - - Добавлено - - -


forward LoadGZ();
public LoadGZ()
{
new fields;
cache_get_data(TOTALGZ, fields);
if(!TOTALGZ) return print("[Загрузка ганг зон] Ошибка: Таблица пуста");
if(TOTALGZ > sizeof(GZInfo)) return printf("[Загрузка ганг зон] Ошибка: Число гангзон в базе данных (%d) больше, чем размер массива GZInfo(%d)", TOTALGZ, sizeof(GZInfo));
new time = GetTickCount();
for(new i = 0; i != sizeof(GZInfo); i++)
{
GZInfo[i][gCoords][0] = cache_get_field_content_float(i, "First_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][1] = cache_get_field_content_float(i, "Second_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][2] = cache_get_field_content_float(i, "Third_Coordinate", connect_to_mysql);
GZInfo[i][gCoords][3] = cache_get_field_content_float(i , "Fourth_Coordinate", connect_to_mysql);
GZInfo[i][gFrak] = cache_get_field_content_int(i, "Group", connect_to_mysql);
//printf ("[Debug] ID: %d | [0]: %f | [1]: %f | [2]: %f | [3]: %f", i, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]);
switch(GZInfo[i][gFrak])
{
case 1: GZGrove++;
case 2: GZBallas++;
case 3: GZRifa++;
case 4: GZAztecas++;
case 5: GZVagos++;
}
GZInfo[i][id] = GangZoneCreate(GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]);
}
return printf(" [Загрузка ганг зон]: Было загружено - %d потрачено %d (ms)", TOTALGZ, GetTickCount() - time);
}

Вот щяс все хорошо стало помогите с конвертованием ..

Пельмень
18.06.2014, 16:16
Функция Convert возвращает string, вы указываете в форматировании integer!

Zeror_Dalglish
18.06.2014, 16:27
Функция Convert возвращает string, вы указываете в форматировании integer!

Не очень понял, а если кодом?)
Не могу сделать что бы сохраняло зону после капта


if(!vremyadokonca)
{
foreach(new i: Player)
{
GangZoneStopFlashForAll(IsCapture);
if(Frags1 < Frags2)
{
format(string, 90, "Попытка %s захватить територию у %s провалилась (BETA1)", GetGangName(IDGang1), GetGangName(IDGang2));
SendClientMessage(i, RIFA_COLOR, string);
}
else if(Frags1 > Frags2)
{
format(string, 90, "%s захватила территорию у банды %s (BETA2)", GetGangName(IDGang1), GetGangName(IDGang2));
SendClientMessage(i, RIFA_COLOR, string);
GangZoneHideForAll(IsCapture);
GangZoneShowForAll(IsCapture, GZcolor(IDGang1));
GZGrove = 0, GZVagos = 0, GZBallas = 0, GZAztecas = 0, GZRifa = 0;
//GZInfo[i][gFrak] = IDGang2;
for(new v =0;v<sizeof(GZInfo);v++)
{
if(GZInfo[v][gFrak] == 1) GZGrove++;
if(GZInfo[v][gFrak] == 2) GZVagos++;
if(GZInfo[v][gFrak] == 3) GZBallas++;
if(GZInfo[v][gFrak] == 4) GZAztecas++;
if(GZInfo[v][gFrak] == 5) GZRifa++;
}
GZInfo[IsCapture][gFrak] = IDGang2;
SaveGZ();
}
TextDrawHideForPlayer(i, CaptureWarGang);
TextDrawHideForPlayer(i, CaptureWarGang2);
TextDrawHideForPlayer(i, CaptureTime);
TextDrawHideForPlayer(i, Textdraw4);
}
//if(Frags1 == Frags2 ||Frags1 > Frags2) GangZoneShowForAll(IsCapture, GZcolor(IDGang1));
IsCapture = 0;
}

Пытался так не сохраняет

Пельмень
18.06.2014, 16:34
А если кодом, то возможно так.

format(convert_string,sizeof(convert_string),"Time: %s",Convert(vremyadokonca, convert_string));
С сохранением подробнее объясните ситуацию.

- - - Добавлено - - -

Или так

Convert(vremyadokonca, convert_string);
new _@string [128];
format(_@string,sizeof(_@string),"Time: %s", convert_string);

Zeror_Dalglish
18.06.2014, 17:01
А если кодом, то возможно так.

format(convert_string,sizeof(convert_string),"Time: %s",Convert(vremyadokonca, convert_string));
С сохранением подробнее объясните ситуацию.

- - - Добавлено - - -

Или так

Convert(vremyadokonca, convert_string);
new _@string [128];
format(_@string,sizeof(_@string),"Time: %s", convert_string);

Конвертирование не работает.
Сохранение как сделать по окончанию капта?

Пельмень
18.06.2014, 23:58
С сохранением подробнее объясните ситуацию. (2)

Zeror_Dalglish
19.06.2014, 00:02
С сохранением подробнее объясните ситуацию. (2)

Нужно что бы после захвата сохраняло зону банде которая выиграла.

________________________________________________________________

А, что с конвертацией?

Пельмень
19.06.2014, 00:15
Нужно что бы после захвата сохраняло зону банде которая выиграла.

________________________________________________________________

А, что с конвертацией?

Я про код подробнее, я не знаю многих ньюансов в коде. Для конвертации можно выбрать иную функцию, или-же найти правильное применение, которую выложили вы.

Zeror_Dalglish
19.06.2014, 00:20
Я про код подробнее, я не знаю многих ньюансов в коде. Для конвертации можно выбрать иную функцию, или-же найти правильное применение, которую выложили вы.

А что там не так?

Пельмень
19.06.2014, 00:23
А что там не так?
Сама функция корректна, функции можно применять по разному.

Zeror_Dalglish
19.06.2014, 00:24
Я про сохранение
P.S: Ушел смотреть футбол.

Zeror_Dalglish
19.06.2014, 02:24
Я, не понимаю Вам помочь трудно?)

KShaddix
19.06.2014, 03:31
Следует избавиться от цикла в сохранении. Незачем сохранять зоны, которые даже не были задействованы.


forward SaveGZ(i);
public SaveGZ(i)
{
new querys[512];
format(querys, sizeof(querys), "UPDATE `GANGZONES_GANGWAR` SET `First_Coordinate`='%f', `Second_Coordinate`='%f', `Third_Coordinate`='%f', `Fourth_Coordinate`='%f', `Group`='%d' WHERE `id`='%d'",
GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3], GZInfo[i][gFrak], i);
mysql_function_query(connect_to_mysql, querys, false, "", "");
return 1;
}


И где вызывается функция сохранения зоны после окончания захвата, добавь аргумент IsCapture, т.е.:

SaveGZ(IsCapture);

Если будет сохраняться не на ту строку, то замени:

GZInfo[IsCapture][gFrak] = IDGang2;
SaveGZ();
на:

GZInfo[IsCapture-1][gFrak] = IDGang2;
SaveGZ(IsCapture-1);

Zeror_Dalglish
19.06.2014, 09:40
Следует избавиться от цикла в сохранении. Незачем сохранять зоны, которые даже не были задействованы.


forward SaveGZ(i);
public SaveGZ(i)
{
new querys[512];
format(querys, sizeof(querys), "UPDATE `GANGZONES_GANGWAR` SET `First_Coordinate`='%f', `Second_Coordinate`='%f', `Third_Coordinate`='%f', `Fourth_Coordinate`='%f', `Group`='%d' WHERE `id`='%d'",
GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3], GZInfo[i][gFrak], i);
mysql_function_query(connect_to_mysql, querys, false, "", "");
return 1;
}


И где вызывается функция сохранения зоны после окончания захвата, добавь аргумент IsCapture, т.е.:

SaveGZ(IsCapture);

Если будет сохраняться не на ту строку, то замени:

GZInfo[IsCapture][gFrak] = IDGang2;
SaveGZ();
на:

GZInfo[IsCapture-1][gFrak] = IDGang2;
SaveGZ(IsCapture-1);

Не ту зону сохроняет + банде не той.

KShaddix
19.06.2014, 15:28
Не ту зону сохроняет + банде не той.

И так тоже делал?


Если будет сохраняться не на ту строку, то замени:

GZInfo[IsCapture][gFrak] = IDGang2;
SaveGZ();
на:

GZInfo[IsCapture-1][gFrak] = IDGang2;
SaveGZ(IsCapture-1);

Zeror_Dalglish
19.06.2014, 15:31
И так тоже делал?

Da (3 символа)

KShaddix
19.06.2014, 15:42
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(familyone),GetGangName(familytwo));
А название банды во втором случае правильно выводится?

Zeror_Dalglish
19.06.2014, 16:00
format(string228, sizeof(string228), "%s начали захват территорий против %s", GetGangName(familyone),GetGangName(familytwo));
А название банды во втором случае правильно выводится?

da...

Zeror_Dalglish
19.06.2014, 17:08
С сохранением все хорошо.
С конвертированием помогите :)
И как сделать проверку типо "Данная территория принадлежит уже этой банде!"


CMD:gzcolor(playerid, params[])
{
//if(PlayerInfo[playerid][pAdmin] < 2) return true;
if(sscanf(params, "d",params[0])) return SendClientMessage(playerid,RIFA_COLOR, "Введите: /gzcolor [банда]");
if(!IsInAllowedF(params[0])) return SendClientMessage(playerid,-1,"{22ff00}» {bbbbbb}Введите{FFFFFF}: /gzcolor [банда]");
{
for(new i = 0; i != sizeof(GZInfo); i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
GZInfo[i][gFrak] = params[0];
GangZoneStopFlashForAll(GZInfo[i][id]);
GangZoneHideForAll(GZInfo[i][id]);
GangZoneShowForAll(GZInfo[i][id], GZcolor(params[0]));
GZGrove = 0, GZVagos = 0, GZBallas = 0, GZAztecas = 0, GZRifa = 0;
for(new territory = 0; territory < sizeof(GZInfo); territory++)
{
switch(GZInfo[territory][gFrak])
{
case 1: GZGrove++;
case 2: GZVagos++;
case 3: GZBallas++;
case 4: GZAztecas++;
case 5: GZRifa++;
}
}
SaveGZ(GZInfo[i][id]);
return true;
}
}
}
return true;
}

KShaddix
20.06.2014, 02:01
И как сделать проверку типо "Данная территория принадлежит уже этой банде!"



CMD:gzcolor(playerid, params[])
{
//if(PlayerInfo[playerid][pAdmin] < 2) return true;
if(sscanf(params, "d",params[0])) return SendClientMessage(playerid,RIFA_COLOR, "Введите: /gzcolor [банда]");
if(!IsInAllowedF(params[0])) return SendClientMessage(playerid,-1,"{22ff00}» {bbbbbb}Введите{FFFFFF}: /gzcolor [банда]");
{
for(new i = 0; i != sizeof(GZInfo); i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(GZInfo[i][gFrak] == params[0]) return SendClientMessage(playerid, -1, "Данная территория принадлежит уже этой банде!");
GZInfo[i][gFrak] = params[0];
GangZoneStopFlashForAll(GZInfo[i][id]);
GangZoneHideForAll(GZInfo[i][id]);
GangZoneShowForAll(GZInfo[i][id], GZcolor(params[0]));
GZGrove = 0, GZVagos = 0, GZBallas = 0, GZAztecas = 0, GZRifa = 0;
for(new territory = 0; territory < sizeof(GZInfo); territory++)
{
switch(GZInfo[territory][gFrak])
{
case 1: GZGrove++;
case 2: GZVagos++;
case 3: GZBallas++;
case 4: GZAztecas++;
case 5: GZRifa++;
}
}
SaveGZ(GZInfo[i][id]);
return true;
}
}
}
return true;
}

- - - Добавлено - - -

Как подчеркнул Пельмень, функция должна работать. Попробуй тогда так:


format(convert_string,sizeof(convert_string),"Time: %02d:%02d", (vremyadokonca-vremyadokonca/3600*3600)/60, vremyadokonca-vremyadokonca/60*60));
TextDrawSetString(CaptureTime, convert_string);

Zeror_Dalglish
20.06.2014, 10:10
CMD:gzcolor(playerid, params[])
{
//if(PlayerInfo[playerid][pAdmin] < 2) return true;
if(sscanf(params, "d",params[0])) return SendClientMessage(playerid,RIFA_COLOR, "Введите: /gzcolor [банда]");
if(!IsInAllowedF(params[0])) return SendClientMessage(playerid,-1,"{22ff00}» {bbbbbb}Введите{FFFFFF}: /gzcolor [банда]");
{
for(new i = 0; i != sizeof(GZInfo); i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(GZInfo[i][gFrak] == params[0]) return SendClientMessage(playerid, -1, "Данная территория принадлежит уже этой банде!");
GZInfo[i][gFrak] = params[0];
GangZoneStopFlashForAll(GZInfo[i][id]);
GangZoneHideForAll(GZInfo[i][id]);
GangZoneShowForAll(GZInfo[i][id], GZcolor(params[0]));
GZGrove = 0, GZVagos = 0, GZBallas = 0, GZAztecas = 0, GZRifa = 0;
for(new territory = 0; territory < sizeof(GZInfo); territory++)
{
switch(GZInfo[territory][gFrak])
{
case 1: GZGrove++;
case 2: GZVagos++;
case 3: GZBallas++;
case 4: GZAztecas++;
case 5: GZRifa++;
}
}
SaveGZ(GZInfo[i][id]);
return true;
}
}
}
return true;
}

- - - Добавлено - - -

Как подчеркнул Пельмень, функция должна работать. Попробуй тогда так:


format(convert_string,sizeof(convert_string),"Time: %02d:%02d", (vremyadokonca-vremyadokonca/3600*3600)/60, vremyadokonca-vremyadokonca/60*60));
TextDrawSetString(CaptureTime, convert_string);

Вот щяс хоть что то выводит..
ВОТ ТАК например 9 скунд я хочу что бы так 00:09.
А там выводит 09 просто

Zeror_Dalglish
21.06.2014, 15:58
UP (3 сим)

Zeror_Dalglish
22.06.2014, 04:40
Можно закрывать.