 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
чудеса с 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
|
| |
|
|
|
 |
|
 | |
| |
|