PDA

Просмотр полной версии : [Вопрос] Pawno не отвечает



pap04ka
09.02.2014, 16:10
Добавляю паблик


public OnHouseSave(houseid)
{
mysql_format(MYSQL_ARG, asd, sizeof(asd),"UPDATE `"Houses"` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `hEnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '%f', `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` = '%f', `SafeY` = '%f', `SafeZ` = '%f', `SafeFA` = '%f', `ShkafX` = '%f', `ShkafY` = '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `HoloZ` = '%f', `HoloFA` = '%f', `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%d'",
HouseInfo[houseid][hOwned],
HouseInfo[houseid][hOwner],
HouseInfo[houseid][hEnterX],
HouseInfo[houseid][hEnterY],
HouseInfo[houseid][hEnterZ],
HouseInfo[houseid][hExitX],
HouseInfo[houseid][hExitY],
HouseInfo[houseid][hExitZ],
HouseInfo[houseid][hCarX],
HouseInfo[houseid][hCarY],
HouseInfo[houseid][hCarZ],
HouseInfo[houseid][hCarFA],
HouseInfo[houseid][SafeX],
HouseInfo[houseid][SafeY],
HouseInfo[houseid][SafeZ],
HouseInfo[houseid][SafeFA],
HouseInfo[houseid][ShkafX],
HouseInfo[houseid][ShkafY],
HouseInfo[houseid][ShkafZ],
HouseInfo[houseid][ShkafFA],
HouseInfo[houseid][HoloX],
HouseInfo[houseid][HoloY],
HouseInfo[houseid][HoloZ],
HouseInfo[houseid][HoloFA],
HouseInfo[houseid][hLevel],
HouseInfo[houseid][hPrice],
HouseInfo[houseid][hLock],
HouseInfo[houseid][hTakings],
HouseInfo[houseid][hInt],
HouseInfo[houseid][hHel],
HouseInfo[houseid][hClass],
HouseInfo[houseid][hID]
);
mysql_tquery(MYSQL_ARG, asd, "", "");
return true;
}

И при компилировании pawno не отвечает :(

DeimoS
09.02.2014, 17:05
Как массив asd создаётся?

Amfy
09.02.2014, 17:08
Используй strcat

pap04ka
09.02.2014, 18:41
Проблема не в массиве, я думаю. Так как, если уменьшить кол-во переменных, то компилится нормально

pap04ka
09.02.2014, 20:51
Используй strcat

Получилось так:

public OnHouseSave(houseid)
{
new strall[1024];
strcat(strall, "UPDATE `"Houses"` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `hEnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '%f', `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` = '%f', `SafeY` = '%f',`SafeZ` = '%f', `SafeFA` = '%f',");
strcat(strall, " `ShkafX` = '%f', `ShkafY` = '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `HoloZ` = '%f', `HoloFA` = '%f', `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%d'");
mysql_format(MYSQL_ARG, asd, sizeof(asd),strall,
HouseInfo[houseid][hOwned],
HouseInfo[houseid][hOwner],
HouseInfo[houseid][hEnterX],
HouseInfo[houseid][hEnterY],
HouseInfo[houseid][hEnterZ],
HouseInfo[houseid][hExitX],
HouseInfo[houseid][hExitY],
HouseInfo[houseid][hExitZ],
HouseInfo[houseid][hCarX],
HouseInfo[houseid][hCarY],
HouseInfo[houseid][hCarZ],
HouseInfo[houseid][hCarFA],
HouseInfo[houseid][SafeX],
HouseInfo[houseid][SafeY],
HouseInfo[houseid][SafeZ],
HouseInfo[houseid][SafeFA],
HouseInfo[houseid][ShkafX],
HouseInfo[houseid][ShkafY],
HouseInfo[houseid][ShkafZ],
HouseInfo[houseid][ShkafFA],
HouseInfo[houseid][HoloX],
HouseInfo[houseid][HoloY],
HouseInfo[houseid][HoloZ],
HouseInfo[houseid][HoloFA],
HouseInfo[houseid][hLevel],
HouseInfo[houseid][hPrice],
HouseInfo[houseid][hLock],
HouseInfo[houseid][hTakings],
HouseInfo[houseid][hInt],
HouseInfo[houseid][hHel],
HouseInfo[houseid][hClass],
HouseInfo[houseid][hID]
);
mysql_tquery(MYSQL_ARG, asd, "", "");
return true;
}

Скомпилировалось, но работает не корректно. (Как минимум, не сохраняет переменную, о том, куплен ли дом. И хреначит всем домам одинаковые координаты.)

Tracker1
10.02.2014, 12:19
Выведи запрос, который получается, перед посылкой в базу.
Алсо. strcat не самый удачный вариант. Используй русифицированный компилятор: там можно константные строки любой длинны указывать.

pap04ka
10.02.2014, 14:55
Выведи запрос, который получается, перед посылкой в базу.
Алсо. strcat не самый удачный вариант. Используй русифицированный компилятор: там можно константные строки любой длинны указывать.


public OnHouseSave(houseid)
{
new strall[1024],strc[1024];
strcat(strall, "UPDATE `"Houses"` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `hEnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '%f', `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` = '%f', `SafeY` = '%f',`SafeZ` = '%f', `SafeFA` = '%f',");
strcat(strall, " `ShkafX` = '%f', `ShkafY` = '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `HoloZ` = '%f', `HoloFA` = '%f', `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%d'");
strc = strall;
mysql_format(MYSQL_ARG, asd, sizeof(asd),strc,
HouseInfo[houseid][hOwned],
HouseInfo[houseid][hOwner],
HouseInfo[houseid][hEnterX],
HouseInfo[houseid][hEnterY],
HouseInfo[houseid][hEnterZ],
HouseInfo[houseid][hExitX],
HouseInfo[houseid][hExitY],
HouseInfo[houseid][hExitZ],
HouseInfo[houseid][hCarX],
HouseInfo[houseid][hCarY],
HouseInfo[houseid][hCarZ],
HouseInfo[houseid][hCarFA],
HouseInfo[houseid][SafeX],
HouseInfo[houseid][SafeY],
HouseInfo[houseid][SafeZ],
HouseInfo[houseid][SafeFA],
HouseInfo[houseid][ShkafX],
HouseInfo[houseid][ShkafY],
HouseInfo[houseid][ShkafZ],
HouseInfo[houseid][ShkafFA],
HouseInfo[houseid][HoloX],
HouseInfo[houseid][HoloY],
HouseInfo[houseid][HoloZ],
HouseInfo[houseid][HoloFA],
HouseInfo[houseid][hLevel],
HouseInfo[houseid][hPrice],
HouseInfo[houseid][hLock],
HouseInfo[houseid][hTakings],
HouseInfo[houseid][hInt],
HouseInfo[houseid][hHel],
HouseInfo[houseid][hClass],
HouseInfo[houseid][hID]
);
mysql_tquery(MYSQL_ARG, asd, "", "");
return true;
}
Типо такого? Но почему-то опять все координаты стали равны. Сохранение также не корректное.

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

Пишу так - работает.


public OnHouseSave(houseid)
{
new strall[2048];
strcat(strall,"UPDATE `"Houses"` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `hEnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '%f',");
strcat(strall," `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%d'");
mysql_format(MYSQL_ARG, asd, sizeof(asd), strall,
HouseInfo[houseid][hOwned],
HouseInfo[houseid][hOwner],
HouseInfo[houseid][hEnterX],
HouseInfo[houseid][hEnterY],
HouseInfo[houseid][hEnterZ],
HouseInfo[houseid][hExitX],
HouseInfo[houseid][hExitY],
HouseInfo[houseid][hExitZ],
HouseInfo[houseid][hLevel],
HouseInfo[houseid][hPrice],
HouseInfo[houseid][hLock],
HouseInfo[houseid][hTakings],
HouseInfo[houseid][hInt],
HouseInfo[houseid][hHel],
HouseInfo[houseid][hClass],
HouseInfo[houseid][hID]
);
mysql_tquery(MYSQL_ARG, asd, "", "");
return true;
}

Пишу так - не работает.

public OnHouseSave(houseid)
{
new strall[2048];
strcat(strall,"UPDATE `"Houses"` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `hEnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '%f',");
strcat(strall," `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` = '%f', `SafeY` = '%f', `SafeZ` = '%f', `SafeFA` = '%f',");
strcat(strall," `ShkafX` = '%f', `ShkafY` = '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `HoloZ` = '%f', `HoloFA` = '%f',");
strcat(strall," `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%d'");
mysql_format(MYSQL_ARG, asd, sizeof(asd), strall,
HouseInfo[houseid][hOwned],
HouseInfo[houseid][hOwner],
HouseInfo[houseid][hEnterX],
HouseInfo[houseid][hEnterY],
HouseInfo[houseid][hEnterZ],
HouseInfo[houseid][hExitX],
HouseInfo[houseid][hExitY],
HouseInfo[houseid][hExitZ],
HouseInfo[houseid][hCarX],
HouseInfo[houseid][hCarY],
HouseInfo[houseid][hCarZ],
HouseInfo[houseid][hCarFA],
HouseInfo[houseid][SafeX],
HouseInfo[houseid][SafeY],
HouseInfo[houseid][SafeZ],
HouseInfo[houseid][SafeFA],
HouseInfo[houseid][ShkafX],
HouseInfo[houseid][ShkafY],
HouseInfo[houseid][ShkafZ],
HouseInfo[houseid][ShkafFA],
HouseInfo[houseid][HoloX],
HouseInfo[houseid][HoloY],
HouseInfo[houseid][HoloZ],
HouseInfo[houseid][HoloFA],
HouseInfo[houseid][hLevel],
HouseInfo[houseid][hPrice],
HouseInfo[houseid][hLock],
HouseInfo[houseid][hTakings],
HouseInfo[houseid][hInt],
HouseInfo[houseid][hHel],
HouseInfo[houseid][hClass],
HouseInfo[houseid][hID]
);
mysql_tquery(MYSQL_ARG, asd, "", "");
return true;
}

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


Выведи запрос, который получается, перед посылкой в базу.
Алсо. strcat не самый удачный вариант. Используй русифицированный компилятор: там можно константные строки любой длинны указывать.

Можно поподробнее?

^_^
10.02.2014, 16:54
Можно поподробнее?
1)Выведи запрос = Выведи запрос в консоль

printf("ЗАПРОС:%s",strall); дабы ты смог посмотреть правильно ли он структурирован после форматирования
Перед посылкой в базу = до оператора mysql_tquery.
2) Русифицированный компилятор: КЛАЦ (http://pro-pawn.ru/showthread.php?3586-%D0%A0%D1%83%D1%81%D0%B8%D1%84%D0%B8%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80-Pawn)

pap04ka
10.02.2014, 17:01
Zapros:UPDATE `house` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `h
EnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '
%f', `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` =
'%f', `SafeY` = '%f', `SafeZ` = '%f', `SafeFA` = '%f', `ShkafX` = '%f', `ShkafY`
= '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `Hol
oZ` = '%f', `HoloFA` = '%f', `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `
hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%
d'

^_^
10.02.2014, 17:02
Zapros:UPDATE `house` SET `hOwned` = '%d', `hOwner` = '%e', `hEnterX` = '%f', `h
EnterY` = '%f', `hEnterZ` = '%f', `hExitX` = '%f', `hExitY` = '%f', `hExitZ` = '
%f', `hCarX` = '%f', `hCarY` = '%f', `hCarZ` = '%f', `hCarFA` = '%f', `SafeX` =
'%f', `SafeY` = '%f', `SafeZ` = '%f', `SafeFA` = '%f', `ShkafX` = '%f', `ShkafY`
= '%f', `ShkafZ` = '%f', `ShkafFA` = '%f', `HoloX` = '%f', `HoloY` = '%f', `Hol
oZ` = '%f', `HoloFA` = '%f', `hLevel` = '%d', `hPrice` = '%d', `hLock` = '%d', `
hTakings` = '%d', `hInt` = '%d', `hHel` = '%d', `hClass` = '%d' WHERE `hID` = '%
d'
В запросе всё правильно, что "говорит" MySQL лог?
Это вывело в консоли? :|

pap04ka
10.02.2014, 17:07
В запросе всё правильно, что "говорит" MySQL лог?
Это вывело в консоли? :|
В samp-server.exe

^_^
10.02.2014, 17:17
Какой из выше-написанных вариантов ты используешь?

pap04ka
10.02.2014, 17:37
В общем, поставил русифицированный, паблик поставил как в первом посте. И знаете что? Ничего не заработало! Ошибка совершенно в другом. В чем, пока что не известно.

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

Спасибо всем, кто пытался помочь. Если уж и получится открыть свой мод, то обязательно составлю страницу с благодарностями ;-)

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

Можно закрывать, я думаю.

Tracker1
10.02.2014, 18:39
Ну впринципе запрос то выведи наконец.
Выведи свое asd перед mysql_tquery в консоль.

bredvix
13.02.2014, 22:51
Закрыто.