19:11
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
чудеса с mysql запросами
_BigSm0ke_Дата: Четверг, 25.07.2013, 00:29 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Это кароче какой-то бред, я не пойму в чем прикол.
Есть значит 2 таблицы. accounts - собсно аккаунты и friendlist - список друзей игроков.

Есть функция сохранения аккаунта:

[pwn]

SaveAccount(playerid)
{
if(PlayerAccount[playerid][aLogged] == true && !IsPlayerNPC(playerid))
{
CheckMySQLConnection();
new
query[1024],query1[1024],query2[1024],query22[512],
sqlname[MAX_PLAYER_NAME],
sqlpass[64],
sqlpost[24];
mysql_real_escape_string(PlayerAccount[playerid][aName], sqlname);
mysql_real_escape_string(PlayerAccount[playerid][aPassword], sqlpass);
mysql_real_escape_string(PlayerAccount[playerid][aPost], sqlpost);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
PlayerAccount[playerid][aX]=X;
PlayerAccount[playerid][aY]=Y;
PlayerAccount[playerid][aZ]=Z;
PlayerAccount[playerid][aInt]=GetPlayerInterior(playerid);
PlayerAccount[playerid][aWorld]=GetPlayerVirtualWorld(playerid);
format(query, sizeof(query), "UPDATE `accounts` SET `Nickname` = '%s',`Password` ='%s',`CharInfo`='%d',`HP`='%d',`CP`='%d',`Skin`='%d',`Sex`='%d',`Age`='%d',`Country`='%d',`Int`='%d',`World`='%d',`Money`='%d',`BMoney`='%d ',`PMoney`='%d',`Admin`='%d',`Phone`='%d',`House`='%d',`Hotel`='%d',`Biz`='%d',`Car1`='%d',`Car2`='%d',`Car3`='%d',",
sqlname,
sqlpass,
PlayerAccount[playerid][aCharInfo],
PlayerAccount[playerid][aHP],
PlayerAccount[playerid][aCP],
PlayerAccount[playerid][aSkin],
PlayerAccount[playerid][aSex],
PlayerAccount[playerid][aAge],
PlayerAccount[playerid][aCountry],
PlayerAccount[playerid][aInt],
PlayerAccount[playerid][aWorld],
PlayerAccount[playerid][aMoney],
PlayerAccount[playerid][aBMoney],
PlayerAccount[playerid][aPMoney],
PlayerAccount[playerid][aAdmin],
PlayerAccount[playerid][aPhone],
PlayerAccount[playerid][aHouse],
PlayerAccount[playerid][aHotel],
PlayerAccount[playerid][aBiz],
PlayerAccount[playerid][aCar1],
PlayerAccount[playerid][aCar2],
PlayerAccount[playerid][aCar3]);
format(query1, sizeof(query1), " `WCar`='%d',`FCar` = '%d',`Fraction` = '%d',`Post`='%s',`Rank`='%d',`Work`='%d',\
`PlayedTime`='%d',`PlayedSession`='%d',`LastOnline`='%d', `X` = '%f', `Y` = '%f', `Z` = '%f',\
`FermerSkill`='%d', `CarierSkill`='%d',`TruckerSkill`='%d',`LawyerSkill`='%d',`DetectiveSkill`='%d',`TaxiSkill`='%d',`SportSkill`='%d',`MechSkill`='%d' WHERE `ID` = '%d'",
PlayerAccount[playerid][aWCar],
PlayerAccount[playerid][aFCar],
PlayerAccount[playerid][aFraction],
sqlpost,
PlayerAccount[playerid][aRank],
PlayerAccount[playerid][aWork],
PlayerAccount[playerid][aPlayedTime],
PlayerAccount[playerid][aPlayedSession],
PlayerAccount[playerid][aLastOnline],
PlayerAccount[playerid][aX],
PlayerAccount[playerid][aY],
PlayerAccount[playerid][aZ],
PlayerAccount[playerid][aFermerSkill],
PlayerAccount[playerid][aCarierSkill],
PlayerAccount[playerid][aTruckerSkill],
PlayerAccount[playerid][aLawyerSkill],
PlayerAccount[playerid][aDetectiveSkill],
PlayerAccount[playerid][aTaxiSkill],
PlayerAccount[playerid][aSportSkill],
PlayerAccount[playerid][aMechSkill],
PlayerAccount[playerid][aID]);
format(query2, sizeof(query2), "UPDATE `accounts` SET `Cigs`='%d',`Clock`='%d',`Rope`='%d',`Mask`='%d',`Hat`='%d',`Glass`='%d',`Kanistra`='%d', `Drugs`='%d',`Weapon`='%d',`Ammo`='%d',`DriverLic`='%d',`SailLic`='%d',`FlyLic`='%d',`WeaponLic`='%d',`TaxDebt`='%d',`Spawn`='%d',`InHouse`= '%d',`InBiz`='%d',`DrugTemp`='%d',`DrugLimit`='%d',`WeaponTemp`='%d',`WeaponLimit`='%d',`SportBlock`='%d',`PoliBlock`='%d',`WSkill1`='%d', ",
PlayerAccount[playerid][aCigs],
PlayerAccount[playerid][aClock],
PlayerAccount[playerid][aRope],
PlayerAccount[playerid][aMask],
PlayerAccount[playerid][aHat],
PlayerAccount[playerid][aGlass],
PlayerAccount[playerid][aKanistra],
PlayerAccount[playerid][aDrugs],
PlayerAccount[playerid][aWeapon],
PlayerAccount[playerid][aAmmo],
PlayerAccount[playerid][aDriverLic],
PlayerAccount[playerid][aSailLic],
PlayerAccount[playerid][aFlyLic],
PlayerAccount[playerid][aWeaponLic],
PlayerAccount[playerid][aTaxDebt],
PlayerAccount[playerid][aSpawn],
PlayerAccount[playerid][aInHouse],
PlayerAccount[playerid][aInBiz],
PlayerAccount[playerid][aDrugTemp],
PlayerAccount[playerid][aDrugLimit],
PlayerAccount[playerid][aWeaponTemp],
PlayerAccount[playerid][aWeaponLimit],
PlayerAccount[playerid][aSportBlock],
PlayerAccount[playerid][aPoliBlock],
PlayerAccount[playerid][aWSkill1]);
format(query22, sizeof(query22), "`WSkill2`='%d',`WSkill3`='%d',`WSkill4`='%d',`WSkill5`='%d',`WSkill6`='%d',`WSkill7`='%d',`WSkill8`='%d',`WSkill9`='%d',`WSkill10`='%d',`Al coLvl`='%d',`DrugLvl`='%d',`SmokeLvl`='%d',`BleedLvl`='%d',`BreakLvl`='%d',`Lomka`='%d' WHERE `ID` = '%d'",
PlayerAccount[playerid][aWSkill2],
PlayerAccount[playerid][aWSkill3],
PlayerAccount[playerid][aWSkill4],
PlayerAccount[playerid][aWSkill5],
PlayerAccount[playerid][aWSkill6],
PlayerAccount[playerid][aWSkill7],
PlayerAccount[playerid][aWSkill8],
PlayerAccount[playerid][aWSkill9],
PlayerAccount[playerid][aWSkill10],
PlayerAccount[playerid][aAlcoLvl],
PlayerAccount[playerid][aDrugLvl],
PlayerAccount[playerid][aSmokeLvl],
PlayerAccount[playerid][aBleedLvl],
PlayerAccount[playerid][aBreakLvl],
PlayerAccount[playerid][aLomka],
PlayerAccount[playerid][aID]);

strcat(query,query1,1024);
strcat(query2,query22,1024);
mysql_query(query);
mysql_query(query2);
printf("Save Account, ID: %s ",sqlname);
printf(" %s ",query);
printf(" %s ",query2);
SaveFriendList(playerid);
}
return 1;
}

[/pwn]

как видите после сохранения аккаунта вызывается функция сохранения френд листа, вот она:

[pwn]

SaveFriendList(playerid)
{
CheckMySQLConnection();
new query[1024];
format(query, sizeof(query), "UPDATE `friendlist` SET `f1`='%d',`f2`='%d',`f3`='%d',`f4`='%d',`f5`='%d',`f6`='%d',`f7`='%d',`f8`='%d',`f9`='%d',`f10`='%d',`f11`='%d',`f12`='%d',`f13`='%d',`f14`= '%d',`f15`='%d',`f16`='%d',`f17`='%d',`f18`='%d',`f19`='%d',`f20`='%d' WHERE `charid` = '%d'",
friendlist[playerid][0],friendlist[playerid][1],friendlist[playerid][2],friendlist[playerid][3],friendlist[playerid][4],friendlist[playerid][5],friendlist[playerid][6],
friendlist[playerid][7],friendlist[playerid][8],friendlist[playerid][9],friendlist[playerid][10],friendlist[playerid][11],friendlist[playerid][12],friendlist[playerid][13],
friendlist[playerid][14],friendlist[playerid][15],friendlist[playerid][16],friendlist[playerid][17],friendlist[playerid][18],friendlist[playerid][19],PlayerAccount[playerid][aID]);
mysql_query(query);
printf("%s",query);
return 1;
}

[/pwn]

Заявляю с полной уверенностью, что таблицы все нормальные, запросы как вручную через navicat так и из мода поотдельности хорошо сохраняют данные и никаких проблем не возникает.

Вот скажем сделаем простенькую команду:

[pwn]
CMD:saveaccount(playerid,params[])
{
SaveAccount(playerid);
SendClientMessage(playerid, COLOR_GREEN, " Аккаунт сохранен ");
return 1;
}
[/pwn]

так вот она при вводе в игре выдает "SERVER: UNKNOWN COMMAND"
а в окне сервера в результате функций printf выводятся запросы сохранения аккаунта, но запроса на сохранение френдлиста нету.

И сейчас самое главное:

Я ставлю SaveFriendList(playerid); в самое начало:

[pwn]
SaveAccount(playerid)
{
if(PlayerAccount[playerid][aLogged] == true && !IsPlayerNPC(playerid))
{
SaveFriendList(playerid);
CheckMySQLConnection();
new
query[1024],query1[1024],query2[1024],query22[512],
sqlname[MAX_PLAYER_NAME],
sqlpass[64],
.....далее как выше
[/pwn]

то все тут же работает нормально... в окне сервера выводит запросы и сохранения френдлиста и аккаунта, в игре в чате пишет "Аккаунт сохранен"...

чудеса.. в чем прикол?)



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Четверг, 25.07.2013, 00:30
AlcoholikДата: Четверг, 25.07.2013, 12:06 | Сообщение # 2
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Массив PlayerAccount какой размер имеет? И ещё, зачем так делать?
Цитата
strcat(query,query1,1024);
strcat(query2,query22,1024);

Обработай лучше в 4 раза запрос.
В логах ничего нет странного?



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
_BigSm0ke_Дата: Суббота, 17.08.2013, 23:23 | Сообщение # 3
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Цитата (RoACh)
Массив PlayerAccount какой размер имеет?

MAX_PLAYERS
Цитата (RoACh)
Обработай лучше в 4 раза запрос.


кароче да вся проблема была в этих длинных строках query... сделал сохранение 4-мя последовательными запросами с одной query[1024];



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Воскресенье, 18.08.2013, 15:56
KlebitДата: Воскресенье, 18.08.2013, 18:02 | Сообщение # 4
Уверенный в себе
Группа: Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус:
зачем постоянно сохранять информацию, которая меняется от силы раз в день?
ZiGGiДата: Воскресенье, 18.08.2013, 19:57 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Вот это у тебя, чувак, таблицы, стыдно должно быть. Почитай основы проектирования баз данных, избежишь множества проблем.


Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
_BigSm0ke_Дата: Воскресенье, 18.08.2013, 22:38 | Сообщение # 6
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
А что именно не то с таблицами?)


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
ZiGGiДата: Вторник, 20.08.2013, 00:53 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Цитата (_BigSm0ke_)
А что именно не то с таблицами?)

Всё. WSkill1, WSkill2, etc., серьёзно?)
wiki: http://ru.wikipedia.org/wiki/Вторая_нормальная_форма



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
_BigSm0ke_Дата: Вторник, 20.08.2013, 01:26 | Сообщение # 8
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Что-то я не совсем понял, если честно =) WSkill1...WSKill10 - уровни владения оружием weapontype... а что не так? Типа можно инфу о владении всеми оружиями запихнуть в 1 ячейку?) Или я опять что-то не так понял...


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
AlcoholikДата: Вторник, 20.08.2013, 23:08 | Сообщение # 9
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
_BigSm0ke_, можно всю таблицу запихнуть в одну ячейку, толку от этого не прибудет
ZiGGi, Если бы эти вещи писали бы человеческим языком, я бы их читал, однако пишут как раз очень убого, что не хочется читать, и в универе читали так-же, поэтому никто не ходил. Расскажи мне, что ты имеешь в виду.



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
WeddewДата: Понедельник, 26.08.2013, 19:21 | Сообщение # 10
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Не актуально. Closed



www.weddew-shop.ru
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua