Вход

Просмотр полной версии : [Вопрос] Помогите перевести с R5 на R39



Bady
26.02.2015, 17:01
Помогите перевести часть кода с MySQL r5 на MySQL r39-2.

Код:


stock UpdateBizz(bizide)
{
format(query1, sizeof(query1), "SELECT * FROM `bizz` WHERE `id`=%d",bizide-1);
mysql_query(query1);
mysql_store_result();
new biz_num = mysql_num_rows();
if(biz_num > 0)
{
mysql_fetch_row(query1);
sscanf(query1, "e<p<|>is[24]s[64]ffffffddfffifffdddddddd>", BizzInfo[bizide]);
DestroyDynamicPickup(BizzInfo[bizide][bPickEnter]);
DestroyDynamicPickup(BizzInfo[bizide][bPickExit]);
DestroyDynamicPickup(BizzInfo[bizide][bBuyPick]);
DestroyDynamic3DTextLabel(BizzInfo[bizide][bEnterText]);
if(BizzInfo[bizide][bType] == 1) // 24/7
{
BizzInfo[bizide][bPickEnter] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]);
BizzInfo[bizide][bPickExit] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bExitX], BizzInfo[bizide][bExitY], BizzInfo[bizide][bExitZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
BizzInfo[bizide][bBuyPick] = CreateDynamicPickup(1239, 23, BizzInfo[bizide][bBuyX], BizzInfo[bizide][bBuyY], BizzInfo[bizide][bBuyZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
if(!strcmp(BizzInfo[bizide][bOwner], "None", true)) BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel("Бизнес продается", COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 10.0);
else BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel(BizzInfo[bizide][bName], COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 15.0);
}
else if(BizzInfo[bizide][bType] == 2) // АЗС
{
new string[80];
format(string, sizeof(string), "АЗС: %s\nЦена за 5л: %d", BizzInfo[bizide][bName], BizzInfo[bizide][bProdPrice]*5);
UpdateDynamic3DTextLabelText(BizzInfo[bizide][bEnterText], COLOR_LIGHTBLUE, string);
}
mysql_free_result();
}
}
stock LoadBizz()
{
format(query1, sizeof(query1), "SELECT * FROM `bizz`");
mysql_query(query1);
mysql_store_result();
new biz_num = mysql_num_rows();
if(biz_num > -1)
{
for(new i = 1; i <= biz_num; i++)
{
mysql_fetch_row(query1);
sscanf(query, "e<p<|>is[24]s[64]ffffffddfffifffddddds[32]ddd>", BizzInfo[i]);
if(BizzInfo[i][bType] == 1 || BizzInfo[i][bType] == 3 || BizzInfo[i][bType] == 4) // 24/7, ресторан, закусочная
{
BizzInfo[i][bPickEnter] = CreateDynamicPickup(1318, 23, BizzInfo[i][bEnterX], BizzInfo[i][bEnterY], BizzInfo[i][bEnterZ]);
BizzInfo[i][bPickExit] = CreateDynamicPickup(1318, 23, BizzInfo[i][bExitX], BizzInfo[i][bExitY], BizzInfo[i][bExitZ], BizzInfo[i][bWorld], BizzInfo[i][bInt]);
BizzInfo[i][bBuyPick] = CreateDynamicPickup(1239, 23, BizzInfo[i][bBuyX], BizzInfo[i][bBuyY], BizzInfo[i][bBuyZ], BizzInfo[i][bWorld], BizzInfo[i][bInt]);
if(!strcmp(BizzInfo[i][bOwner], "None", true)) BizzInfo[i][bEnterText] = CreateDynamic3DTextLabel("Бизнес продается", COLOR_YELLOW, BizzInfo[i][bEnterX], BizzInfo[i][bEnterY], BizzInfo[i][bEnterZ]+1, 10.0);
else BizzInfo[i][bEnterText] = CreateDynamic3DTextLabel(BizzInfo[i][bName], COLOR_YELLOW, BizzInfo[i][bEnterX], BizzInfo[i][bEnterY], BizzInfo[i][bEnterZ]+1, 15.0);
}
else if(BizzInfo[i][bType] == 2) // АЗС
{
new string[80];
format(string, sizeof(string), "АЗС: %s\nЦена за 5л: %d", BizzInfo[i][bName], BizzInfo[i][bProdPrice]*5);
BizzInfo[i][bEnterText] = CreateDynamic3DTextLabel(string, COLOR_LIGHTBLUE, BizzInfo[i][bBuyX], BizzInfo[i][bBuyY], BizzInfo[i][bBuyZ]+1, 10.0);
}
TOTALBIZZ++;
}
printf(" Бизнесов загружено: %d", TOTALBIZZ);
}
mysql_free_result();
}

stock SaveBizz(bizide)
{
format(query1, sizeof(query1), "UPDATE `bizz` SET `Name`='%s',`Owner`='%s',`EnterX`=%f,`EnterY`=%f,`EnterZ`=%f,`SpawnX`=%f,`SpawnY`=%f,`SpawnZ`=%f,`ExitX`=%f,`ExitY`=%f,`ExitZ`=%f,`Type`=%i,`BuyX`=%f,`BuyY`=%f,`BuyZ`=%f,`Int`=%d,`World`=%d,`Price`=%d,`Nalog`=%d,`ProdPrice`=%d,`Bank`=%d,`Prods`=%d WHERE `id`=%d",
BizzInfo[bizide][bName],
BizzInfo[bizide][bOwner],
BizzInfo[bizide][bEnterX],
BizzInfo[bizide][bEnterY],
BizzInfo[bizide][bEnterZ],
BizzInfo[bizide][bSpawnX],
BizzInfo[bizide][bSpawnY],
BizzInfo[bizide][bSpawnZ],
BizzInfo[bizide][bExitX],
BizzInfo[bizide][bExitY],
BizzInfo[bizide][bExitZ],
BizzInfo[bizide][bType],
BizzInfo[bizide][bBuyX],
BizzInfo[bizide][bBuyY],
BizzInfo[bizide][bBuyZ],
BizzInfo[bizide][bInt],
BizzInfo[bizide][bWorld],
BizzInfo[bizide][bPrice],
BizzInfo[bizide][bNalog],
BizzInfo[bizide][bProdPrice],
BizzInfo[bizide][bBank],
BizzInfo[bizide][bProds],
bizide-1);
mysql_query(query1);


Ошибки:

C:\Users\Íèêèòà\Desktop\new.pwn\gamemodes\new.pwn(2552) : error 017: undefined symbol "mysql_store_result"
C:\Users\Íèêèòà\Desktop\new.pwn\gamemodes\new.pwn(2553) : error 017: undefined symbol "mysql_num_rows"
C:\Users\Íèêèòà\Desktop\new.pwn\gamemodes\new.pwn(2556) : error 017: undefined symbol "mysql_fetch_row"
C:\Users\Íèêèòà\Desktop\new.pwn\gamemodes\new.pwn(2576) : error 017: undefined symbol "mysql_free_result"

Mazzilla
26.02.2015, 17:24
stock UpdateBizz(bizide)
{
new query[36];
format(query, sizeof(query), "SELECT * FROM `bizz` WHERE `id`=%d", bizide-1);
mysql_function_query(1, query, true, "callback_UpdateBizz", "i", bizide);
mysql_query(query);
}

forward callback_UpdateBizz(bizide);
public callback_UpdateBizz(bizide)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
// ... - имя переменной в массиве BizzInfo
BizzInfo[bizide][...] = cache_get_row_int(0, 0);
cache_get_row(0, 1, BizzInfo[bizide][...]);
cache_get_row(0, 2, BizzInfo[bizide][...]);
BizzInfo[bizide][...] = cache_get_row_float(0, 3);
BizzInfo[bizide][...] = cache_get_row_float(0, 4);
BizzInfo[bizide][...] = cache_get_row_float(0, 5);
BizzInfo[bizide][...] = cache_get_row_float(0, 6);
BizzInfo[bizide][...] = cache_get_row_float(0, 7);
BizzInfo[bizide][...] = cache_get_row_float(0, 8);
BizzInfo[bizide][...] = cache_get_row_int(0, 9);
BizzInfo[bizide][...] = cache_get_row_int(0, 10);
BizzInfo[bizide][...] = cache_get_row_float(0, 11);
BizzInfo[bizide][...] = cache_get_row_float(0, 12);
BizzInfo[bizide][...] = cache_get_row_float(0, 13);
BizzInfo[bizide][...] = cache_get_row_int(0, 14);
BizzInfo[bizide][...] = cache_get_row_float(0, 15);
BizzInfo[bizide][...] = cache_get_row_float(0, 16);
BizzInfo[bizide][...] = cache_get_row_float(0, 17);
BizzInfo[bizide][...] = cache_get_row_int(0, 18);
BizzInfo[bizide][...] = cache_get_row_int(0, 19);
BizzInfo[bizide][...] = cache_get_row_int(0, 20);
BizzInfo[bizide][...] = cache_get_row_int(0, 21);
BizzInfo[bizide][...] = cache_get_row_int(0, 22);
BizzInfo[bizide][...] = cache_get_row_int(0, 23);
BizzInfo[bizide][...] = cache_get_row_int(0, 24);
BizzInfo[bizide][...] = cache_get_row_int(0, 25);

DestroyDynamicPickup(BizzInfo[bizide][bPickEnter]);
DestroyDynamicPickup(BizzInfo[bizide][bPickExit]);
DestroyDynamicPickup(BizzInfo[bizide][bBuyPick]);
DestroyDynamic3DTextLabel(BizzInfo[bizide][bEnterText]);
if(BizzInfo[bizide][bType] == 1) // 24/7
{
BizzInfo[bizide][bPickEnter] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]);
BizzInfo[bizide][bPickExit] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bExitX], BizzInfo[bizide][bExitY], BizzInfo[bizide][bExitZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
BizzInfo[bizide][bBuyPick] = CreateDynamicPickup(1239, 23, BizzInfo[bizide][bBuyX], BizzInfo[bizide][bBuyY], BizzInfo[bizide][bBuyZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
if(!strcmp(BizzInfo[bizide][bOwner], "None", true)) BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel("Бизнес продается", COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 10.0);
else BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel(BizzInfo[bizide][bName], COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 15.0);
}
else if(BizzInfo[bizide][bType] == 2) // АЗС
{
new string[80];
format(string, sizeof(string), "АЗС: %s\nЦена за 5л: %d", BizzInfo[bizide][bName], BizzInfo[bizide][bProdPrice]*5);
UpdateDynamic3DTextLabelText(BizzInfo[bizide][bEnterText], COLOR_LIGHTBLUE, string);
}
}
return true;
}

http://wiki.sa-mp.com/wiki/MySQL/R33
Остальное сам - по аналогии.

Bady
26.02.2015, 22:31
Правильно ли перевел?

stock UpdateBizz()
{
for(new bizide = 0; bizide < sizeof(BizzInfo); bizide++)
{
sscanf(query1, "e<p<|>is[24]s[64]ffffffddfffifffdddddddd>", BizzInfo[bizide]);
DestroyDynamicPickup(BizzInfo[bizide][bPickEnter]);
DestroyDynamicPickup(BizzInfo[bizide][bPickExit]);
DestroyDynamicPickup(BizzInfo[bizide][bBuyPick]);
DestroyDynamic3DTextLabel(BizzInfo[bizide][bEnterText]);
if(BizzInfo[bizide][bType] == 1) // 24/7
{
BizzInfo[bizide][bPickEnter] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]);
BizzInfo[bizide][bPickExit] = CreateDynamicPickup(1318, 23, BizzInfo[bizide][bExitX], BizzInfo[bizide][bExitY], BizzInfo[bizide][bExitZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
BizzInfo[bizide][bBuyPick] = CreateDynamicPickup(1239, 23, BizzInfo[bizide][bBuyX], BizzInfo[bizide][bBuyY], BizzInfo[bizide][bBuyZ], BizzInfo[bizide][bWorld], BizzInfo[bizide][bInt]);
if(!strcmp(BizzInfo[bizide][bOwner], "None", true)) BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel("Бизнес продается", COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 10.0);
else BizzInfo[bizide][bEnterText] = CreateDynamic3DTextLabel(BizzInfo[bizide][bName], COLOR_YELLOW, BizzInfo[bizide][bEnterX], BizzInfo[bizide][bEnterY], BizzInfo[bizide][bEnterZ]+1, 15.0);
}
else if(BizzInfo[bizide][bType] == 2) // АЗС
{
new string[80];
format(string, sizeof(string), "АЗС: %s\nЦена за 5л: %d", BizzInfo[bizide][bName], BizzInfo[bizide][bProdPrice]*5);
UpdateDynamic3DTextLabelText(BizzInfo[bizide][bEnterText], COLOR_LIGHTBLUE, string);
}
}
return true;
}
publics: LoadBizz()
{
static rows, fields;
cache_get_data(rows, fields);
if(rows)
{
for(new he = 0;he < rows; he++)
{
sscanf(query1, "e<p<|>is[24]s[64]ffffffddfffifffddddds[32]ddd>", BizzInfo[he]);
if(BizzInfo[he][bType] == 1 || BizzInfo[he][bType] == 3 || BizzInfo[he][bType] == 4) // 24/7, ресторан, закусочная
{
BizzInfo[he][bPickEnter] = CreateDynamicPickup(1318, 23, BizzInfo[he][bEnterX], BizzInfo[he][bEnterY], BizzInfo[he][bEnterZ]);
BizzInfo[he][bPickExit] = CreateDynamicPickup(1318, 23, BizzInfo[he][bExitX], BizzInfo[he][bExitY], BizzInfo[he][bExitZ], BizzInfo[he][bWorld], BizzInfo[he][bInt]);
BizzInfo[he][bBuyPick] = CreateDynamicPickup(1239, 23, BizzInfo[he][bBuyX], BizzInfo[he][bBuyY], BizzInfo[he][bBuyZ], BizzInfo[he][bWorld], BizzInfo[he][bInt]);
if(!strcmp(BizzInfo[he][bOwner], "None", true)) BizzInfo[he][bEnterText] = CreateDynamic3DTextLabel("Бизнес продается", COLOR_YELLOW, BizzInfo[he][bEnterX], BizzInfo[he][bEnterY], BizzInfo[he][bEnterZ]+1, 10.0);
else BizzInfo[he][bEnterText] = CreateDynamic3DTextLabel(BizzInfo[he][bName], COLOR_YELLOW, BizzInfo[he][bEnterX], BizzInfo[he][bEnterY], BizzInfo[he][bEnterZ]+1, 15.0);
}
else if(BizzInfo[he][bType] == 2) // АЗС
{
new string[80];
format(string, sizeof(string), "АЗС: %s\nЦена за 5л: %d", BizzInfo[he][bName], BizzInfo[he][bProdPrice]*5);
BizzInfo[he][bEnterText] = CreateDynamic3DTextLabel(string, COLOR_LIGHTBLUE, BizzInfo[he][bBuyX], BizzInfo[he][bBuyY], BizzInfo[he][bBuyZ]+1, 10.0);
}
TOTALBIZZ++;
}
}
return true;
}

L0ndl3m
26.02.2015, 22:48
Не логично было ли проверить на работоспособность код? Если работает, - правильно перевели ( в большинстве случаях ), если нет значит неверно перевели.

Bady
26.02.2015, 22:58
Не логично было ли проверить на работоспособность код? Если работает, - правильно перевели ( в большинстве случаях ), если нет значит неверно перевели.
На данный момент нету возможности протестировать

Bady
27.02.2015, 22:50
Паблик загрузки не работет, HELP!
В логах пишет что загрузился, но бизнесы не появляются и т..д.

Mazzilla
28.02.2015, 16:43
Я же привёл пример, как должен выглядеть этот паблик. Сходства не вижу с вашим вариантом.