vovandolg
11.01.2016, 19:29
Вот допустим у меня 2 кода есть они похожи немного вначале загрузка бизнесов и заправок,
суть одна и та же должна быть, и в БД таблицы построены тоже схожим методом:
publics: LoadSBizz()
{
static rows, fields;
cache_get_data(rows, fields);
new temp[64],string2[360],i=0;
if(rows)
{
for(new he = 0;he < rows; he++)
{
cache_get_row(he, 0, temp), SBizzInfo[he][sID] = strval(temp);
cache_get_row(he, 1, temp), SBizzInfo[he][sOwned] = strval(temp);
cache_get_row(he, 2, temp), strmid(SBizzInfo[he][sOwner], temp, 0, strlen(temp), 255);
cache_get_row(he, 3, temp), strmid(SBizzInfo[he][sMessage], temp, 0, strlen(temp), 255);
cache_get_row(he, 4, temp), SBizzInfo[he][sEntranceX] = floatstr(temp);
cache_get_row(he, 5, temp), SBizzInfo[he][sEntranceY] = floatstr(temp);
cache_get_row(he, 6, temp), SBizzInfo[he][sEntranceZ] = floatstr(temp);
cache_get_row(he, 7, temp), SBizzInfo[he][sBuyPrice] = strval(temp);
cache_get_row(he, 8, temp), SBizzInfo[he][sLocked] = strval(temp);
cache_get_row(he, 9, temp), SBizzInfo[he][sPrice] = strval(temp);
cache_get_row(he, 10, temp), SBizzInfo[he][sBenz] = strval(temp);
cache_get_row(he, 11, temp), SBizzInfo[he][sPriceBenz] = strval(temp);
cache_get_row(he, 12, temp), SBizzInfo[he][sTill] = strval(temp);
i++;
if(SBizzInfo[he][sOwned] == 0)
{
format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Цена: {32CD32}%d{FFFFFF} вирт\n\n\n[{FF0000}Заправка не работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sBuyPrice]);
SBizzInfo[he][sLocked] = 1;
}
else
{
if(SBizzInfo[he][sLocked] == 0) format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Владелец: {32CD32}%s\nБензин: %d/10000\nСтоимость: %d вирт.\n\n{FFFFFF}[{32CD32}Заправка работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sOwner],SBizzInfo[he][sBenz],SBizzInfo[he][sPriceBenz]);
else format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Владелец: {32CD32}%s\nБензин: %d/10000\nСтоимость: %d вирт.\n\n{FFFFFF}[{FF0000}Заправка не работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sOwner],SBizzInfo[he][sBenz],SBizzInfo[he][sPriceBenz]);
}
SBizzInfo[he][sLabel] = Create3DTextLabel(string2,COLOR_YELLOW,SBizzInfo[he][sEntranceX], SBizzInfo[he][sEntranceY], SBizzInfo[he][sEntranceZ],20.0,0,1);
SBizzInfo[he][sIcon] = CreateDynamicMapIcon(SBizzInfo[he][sEntranceX], SBizzInfo[he][sEntranceY], SBizzInfo[he][sEntranceZ], 42, COLOR_WHITE, 0, -1, -1, 50.0);
}
printf("[ %d ] Заправки успешно загружены.",i);
}
else printf("Заправки не загружены.");
return true;
}
И вот вопрос почему при данной загрузке меняется положение заправок и их владельцы,
я читал про strmid и так не чего не понял, так как в подобной загрузке бизнесов так же построен код,
но там всё кашерно без всяких смен владельцев грузится и на своих местах они стоят.
суть одна и та же должна быть, и в БД таблицы построены тоже схожим методом:
publics: LoadSBizz()
{
static rows, fields;
cache_get_data(rows, fields);
new temp[64],string2[360],i=0;
if(rows)
{
for(new he = 0;he < rows; he++)
{
cache_get_row(he, 0, temp), SBizzInfo[he][sID] = strval(temp);
cache_get_row(he, 1, temp), SBizzInfo[he][sOwned] = strval(temp);
cache_get_row(he, 2, temp), strmid(SBizzInfo[he][sOwner], temp, 0, strlen(temp), 255);
cache_get_row(he, 3, temp), strmid(SBizzInfo[he][sMessage], temp, 0, strlen(temp), 255);
cache_get_row(he, 4, temp), SBizzInfo[he][sEntranceX] = floatstr(temp);
cache_get_row(he, 5, temp), SBizzInfo[he][sEntranceY] = floatstr(temp);
cache_get_row(he, 6, temp), SBizzInfo[he][sEntranceZ] = floatstr(temp);
cache_get_row(he, 7, temp), SBizzInfo[he][sBuyPrice] = strval(temp);
cache_get_row(he, 8, temp), SBizzInfo[he][sLocked] = strval(temp);
cache_get_row(he, 9, temp), SBizzInfo[he][sPrice] = strval(temp);
cache_get_row(he, 10, temp), SBizzInfo[he][sBenz] = strval(temp);
cache_get_row(he, 11, temp), SBizzInfo[he][sPriceBenz] = strval(temp);
cache_get_row(he, 12, temp), SBizzInfo[he][sTill] = strval(temp);
i++;
if(SBizzInfo[he][sOwned] == 0)
{
format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Цена: {32CD32}%d{FFFFFF} вирт\n\n\n[{FF0000}Заправка не работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sBuyPrice]);
SBizzInfo[he][sLocked] = 1;
}
else
{
if(SBizzInfo[he][sLocked] == 0) format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Владелец: {32CD32}%s\nБензин: %d/10000\nСтоимость: %d вирт.\n\n{FFFFFF}[{32CD32}Заправка работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sOwner],SBizzInfo[he][sBenz],SBizzInfo[he][sPriceBenz]);
else format(string2, sizeof(string2), "{FFFF00}%s\n{FFFFFF}Владелец: {32CD32}%s\nБензин: %d/10000\nСтоимость: %d вирт.\n\n{FFFFFF}[{FF0000}Заправка не работает{FFFFFF}]",SBizzInfo[he][sMessage],SBizzInfo[he][sOwner],SBizzInfo[he][sBenz],SBizzInfo[he][sPriceBenz]);
}
SBizzInfo[he][sLabel] = Create3DTextLabel(string2,COLOR_YELLOW,SBizzInfo[he][sEntranceX], SBizzInfo[he][sEntranceY], SBizzInfo[he][sEntranceZ],20.0,0,1);
SBizzInfo[he][sIcon] = CreateDynamicMapIcon(SBizzInfo[he][sEntranceX], SBizzInfo[he][sEntranceY], SBizzInfo[he][sEntranceZ], 42, COLOR_WHITE, 0, -1, -1, 50.0);
}
printf("[ %d ] Заправки успешно загружены.",i);
}
else printf("Заправки не загружены.");
return true;
}
И вот вопрос почему при данной загрузке меняется положение заправок и их владельцы,
я читал про strmid и так не чего не понял, так как в подобной загрузке бизнесов так же построен код,
но там всё кашерно без всяких смен владельцев грузится и на своих местах они стоят.