g_mysql.inc 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289
  1. /*
  2. /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
  3. | $$$ | $$ /$$__ $$ | $$__ $$| $$__ $$
  4. | $$$$| $$| $$ \__/ | $$ \ $$| $$ \ $$
  5. | $$ $$ $$| $$ /$$$$ /$$$$$$| $$$$$$$/| $$$$$$$/
  6. | $$ $$$$| $$|_ $$|______/| $$__ $$| $$____/
  7. | $$\ $$$| $$ \ $$ | $$ \ $$| $$
  8. | $$ \ $$| $$$$$$/ | $$ | $$| $$
  9. |__/ \__/ \______/ |__/ |__/|__/
  10. Next Generation Role Play
  11. (created by Next Generation Gaming Development Team)
  12. Combined:
  13. (***) GhoulSlayeR
  14. Developed to be included with NG-RP Gamemode, it will not run on it's own accord.
  15. */
  16. #include <a_mysql>
  17. // MySQL Configuration
  18. #define SQL_HOST "localhost"
  19. #define SQL_DB "ngrp"
  20. #define SQL_USER "ngrp"
  21. #define SQL_PASS "w3J7CyfLfWYm2XXc"
  22. // Threads
  23. #define NO_THREAD -1
  24. #define LOADUSERDATA_THREAD 1
  25. #define SENDUSERDATA_THREAD 2
  26. #define LOGIN_THREAD 3
  27. new MainPipeline;
  28. // Callbacks
  29. public OnQueryFinish(query[], resultid, extraid, connectionHandle)
  30. {
  31. switch(resultid)
  32. {
  33. case LOADUSERDATA_THREAD:
  34. {
  35. new string[256];
  36. mysql_store_result(MainPipeline);
  37. if(mysql_retrieve_row())
  38. {
  39. mysql_fetch_field_row(PlayerInfo[extraid][pIP], "IP", MainPipeline);
  40. mysql_fetch_field_row(string, "ConnectedTime", MainPipeline); PlayerInfo[extraid][pConnectTime] = strval(string);
  41. mysql_fetch_field_row(string, "Sex", MainPipeline); PlayerInfo[extraid][pSex] = strval(string);
  42. mysql_fetch_field_row(string, "Band", MainPipeline); PlayerInfo[extraid][pBanned] = strval(string);
  43. mysql_fetch_field_row(string, "PermBand", MainPipeline); PlayerInfo[extraid][pPermaBanned] = strval(string);
  44. mysql_fetch_field_row(string, "Warnings", MainPipeline); PlayerInfo[extraid][pWarns] = strval(string);
  45. mysql_fetch_field_row(string, "Disabled", MainPipeline); PlayerInfo[extraid][pDisabled] = strval(string);
  46. mysql_fetch_field_row(string, "Level", MainPipeline); PlayerInfo[extraid][pLevel] = strval(string);
  47. mysql_fetch_field_row(string, "AdminLevel", MainPipeline); PlayerInfo[extraid][pAdmin] = strval(string);
  48. mysql_fetch_field_row(string, "DonateRank", MainPipeline); PlayerInfo[extraid][pDonateRank] = strval(string);
  49. mysql_fetch_field_row(string, "Respect", MainPipeline); PlayerInfo[extraid][pExp] = strval(string);
  50. mysql_fetch_field_row(string, "Money", MainPipeline); SetPVarInt(extraid, "Cash", strval(string));
  51. mysql_fetch_field_row(string, "Bank", MainPipeline); PlayerInfo[extraid][pAccount] = strval(string);
  52. mysql_fetch_field_row(string, "pHealth", MainPipeline); PlayerInfo[extraid][pHealth] = floatstr(string);
  53. mysql_fetch_field_row(string, "pArmor", MainPipeline); PlayerInfo[extraid][pArmor] = floatstr(string);
  54. mysql_fetch_field_row(string, "pSHealth", MainPipeline); PlayerInfo[extraid][pSHealth] = floatstr(string);
  55. mysql_fetch_field_row(string, "Int", MainPipeline); PlayerInfo[extraid][pInt] = strval(string);
  56. mysql_fetch_field_row(string, "Local", MainPipeline); PlayerInfo[extraid][pLocal] = strval(string);
  57. mysql_fetch_field_row(string, "VirtualWorld", MainPipeline); PlayerInfo[extraid][pVW] = strval(string);
  58. mysql_fetch_field_row(string, "Model", MainPipeline); PlayerInfo[extraid][pModel] = strval(string);
  59. mysql_fetch_field_row(string, "SPos_x", MainPipeline); PlayerInfo[extraid][pPos_x] = floatstr(string);
  60. mysql_fetch_field_row(string, "SPos_y", MainPipeline); PlayerInfo[extraid][pPos_y] = floatstr(string);
  61. mysql_fetch_field_row(string, "SPos_z", MainPipeline); PlayerInfo[extraid][pPos_z] = floatstr(string);
  62. mysql_fetch_field_row(string, "SPos_r", MainPipeline); PlayerInfo[extraid][pPos_r] = floatstr(string);
  63. mysql_fetch_field_row(string, "BanAppealer", MainPipeline); PlayerInfo[extraid][pBanAppealer] = strval(string);
  64. mysql_fetch_field_row(string, "ShopTech", MainPipeline); PlayerInfo[extraid][pShopTech] = strval(string);
  65. mysql_fetch_field_row(string, "Undercover", MainPipeline); PlayerInfo[extraid][pUndercover] = strval(string);
  66. mysql_fetch_field_row(string, "TogReports", MainPipeline); PlayerInfo[extraid][pTogReports] = strval(string);
  67. mysql_fetch_field_row(string, "Radio", MainPipeline); PlayerInfo[extraid][pRadio] = strval(string);
  68. mysql_fetch_field_row(string, "RadioFreq", MainPipeline); PlayerInfo[extraid][pRadioFreq] = strval(string);
  69. mysql_fetch_field_row(string, "UpgradePoints", MainPipeline); PlayerInfo[extraid][gPupgrade] = strval(string);
  70. mysql_fetch_field_row(string, "Origin", MainPipeline); PlayerInfo[extraid][pOrigin] = strval(string);
  71. mysql_fetch_field_row(string, "Muted", MainPipeline); PlayerInfo[extraid][pMuted] = strval(string);
  72. mysql_fetch_field_row(string, "Crimes", MainPipeline); PlayerInfo[extraid][pCrimes] = strval(string);
  73. mysql_fetch_field_row(string, "Accent", MainPipeline); PlayerInfo[extraid][pAccent] = strval(string);
  74. mysql_fetch_field_row(string, "CHits", MainPipeline); PlayerInfo[extraid][pCHits] = strval(string);
  75. mysql_fetch_field_row(string, "FHits", MainPipeline); PlayerInfo[extraid][pFHits] = strval(string);
  76. mysql_fetch_field_row(string, "Arrested", MainPipeline); PlayerInfo[extraid][pArrested] = strval(string);
  77. mysql_fetch_field_row(string, "Phonebook", MainPipeline); PlayerInfo[extraid][pPhoneBook] = strval(string);
  78. mysql_fetch_field_row(string, "LottoNr", MainPipeline); PlayerInfo[extraid][pLottoNr] = strval(string);
  79. mysql_fetch_field_row(string, "Fishes", MainPipeline); PlayerInfo[extraid][pFishes] = strval(string);
  80. mysql_fetch_field_row(string, "BiggestFish", MainPipeline); PlayerInfo[extraid][pBiggestFish] = strval(string);
  81. mysql_fetch_field_row(string, "Job", MainPipeline); PlayerInfo[extraid][pJob] = strval(string);
  82. mysql_fetch_field_row(string, "Job2", MainPipeline); PlayerInfo[extraid][pJob2] = strval(string);
  83. mysql_fetch_field_row(string, "Paycheck", MainPipeline); PlayerInfo[extraid][pPayCheck] = strval(string);
  84. mysql_fetch_field_row(string, "HeadValue", MainPipeline); PlayerInfo[extraid][pHeadValue] = strval(string);
  85. mysql_fetch_field_row(string, "Jailed", MainPipeline); PlayerInfo[extraid][pJailed] = strval(string);
  86. mysql_fetch_field_row(string, "JailTime", MainPipeline); PlayerInfo[extraid][pJailTime] = strval(string);
  87. mysql_fetch_field_row(string, "WRestricted", MainPipeline); PlayerInfo[extraid][pWRestricted] = strval(string);
  88. mysql_fetch_field_row(string, "Materials", MainPipeline); PlayerInfo[extraid][pMats] = strval(string);
  89. mysql_fetch_field_row(string, "Packages", MainPipeline); SetPVarInt(extraid, "Packages", strval(string));
  90. mysql_fetch_field_row(string, "Crates", MainPipeline); PlayerInfo[extraid][pCrates] = strval(string);
  91. mysql_fetch_field_row(string, "Pot", MainPipeline); PlayerInfo[extraid][pPot] = strval(string);
  92. mysql_fetch_field_row(string, "Crack", MainPipeline); PlayerInfo[extraid][pCrack] = strval(string);
  93. mysql_fetch_field_row(string, "Leader", MainPipeline); PlayerInfo[extraid][pLeader] = strval(string);
  94. mysql_fetch_field_row(string, "Member", MainPipeline); PlayerInfo[extraid][pMember] = strval(string);
  95. mysql_fetch_field_row(string, "Division", MainPipeline); PlayerInfo[extraid][pDivision] = strval(string);
  96. mysql_fetch_field_row(string, "FMember", MainPipeline); PlayerInfo[extraid][pFMember] = strval(string);
  97. mysql_fetch_field_row(string, "Rank", MainPipeline); PlayerInfo[extraid][pRank] = strval(string);
  98. mysql_fetch_field_row(string, "DetSkill", MainPipeline); PlayerInfo[extraid][pDetSkill] = strval(string);
  99. mysql_fetch_field_row(string, "SexSkill", MainPipeline); PlayerInfo[extraid][pSexSkill] = strval(string);
  100. mysql_fetch_field_row(string, "BoxSkill", MainPipeline); PlayerInfo[extraid][pBoxSkill] = strval(string);
  101. mysql_fetch_field_row(string, "LawSkill", MainPipeline); PlayerInfo[extraid][pLawSkill] = strval(string);
  102. mysql_fetch_field_row(string, "MechSkill", MainPipeline); PlayerInfo[extraid][pMechSkill] = strval(string);
  103. mysql_fetch_field_row(string, "JackSkill", MainPipeline); PlayerInfo[extraid][pJackSkill] = strval(string);
  104. mysql_fetch_field_row(string, "CarSkill", MainPipeline); PlayerInfo[extraid][pCarSkill] = strval(string);
  105. mysql_fetch_field_row(string, "TruckSkill", MainPipeline); PlayerInfo[extraid][pTruckSkill] = strval(string);
  106. mysql_fetch_field_row(string, "NewsSkill", MainPipeline); PlayerInfo[extraid][pNewsSkill] = strval(string);
  107. mysql_fetch_field_row(string, "DrugsSkill", MainPipeline); PlayerInfo[extraid][pDrugsSkill] = strval(string);
  108. mysql_fetch_field_row(string, "ArmsSkill", MainPipeline); PlayerInfo[extraid][pArmsSkill] = strval(string);
  109. mysql_fetch_field_row(string, "SmugglerSkill", MainPipeline); PlayerInfo[extraid][pSmugSkill] = strval(string);
  110. mysql_fetch_field_row(string, "FishSkill", MainPipeline); PlayerInfo[extraid][pFishSkill] = strval(string);
  111. mysql_fetch_field_row(string, "FightingStyle", MainPipeline); PlayerInfo[extraid][pFightStyle] = strval(string);
  112. mysql_fetch_field_row(string, "HouseInvite", MainPipeline); PlayerInfo[extraid][pHouseInvite] = strval(string);
  113. mysql_fetch_field_row(string, "Clothes", MainPipeline); PlayerInfo[extraid][pClothes] = strval(string);
  114. mysql_fetch_field_row(string, "PhoneNr", MainPipeline); PlayerInfo[extraid][pPnumber] = strval(string);
  115. mysql_fetch_field_row(string, "Apartment", MainPipeline); PlayerInfo[extraid][pPhousekey] = strval(string);
  116. mysql_fetch_field_row(string, "Apartment2", MainPipeline); PlayerInfo[extraid][pPhousekey2] = strval(string);
  117. mysql_fetch_field_row(string, "Renting", MainPipeline); PlayerInfo[extraid][pRenting] = strval(string);
  118. mysql_fetch_field_row(string, "Vehicles", MainPipeline); PlayerInfo[extraid][pVehicles] = strval(string);
  119. mysql_fetch_field_row(string, "VehFile", MainPipeline); PlayerInfo[extraid][pVehFile] = strval(string);
  120. mysql_fetch_field_row(string, "VehActive", MainPipeline); PlayerInfo[extraid][pVehActive] = strval(string);
  121. mysql_fetch_field_row(string, "Type1", MainPipeline); PlayerInfo[extraid][pType1] = strval(string);
  122. mysql_fetch_field_row(string, "Type2", MainPipeline); PlayerInfo[extraid][pType2] = strval(string);
  123. mysql_fetch_field_row(string, "Type3", MainPipeline); PlayerInfo[extraid][pType3] = strval(string);
  124. mysql_fetch_field_row(string, "Type4", MainPipeline); PlayerInfo[extraid][pType4] = strval(string);
  125. mysql_fetch_field_row(string, "Type5", MainPipeline); PlayerInfo[extraid][pType5] = strval(string);
  126. mysql_fetch_field_row(string, "CarLic", MainPipeline); PlayerInfo[extraid][pCarLic] = strval(string);
  127. mysql_fetch_field_row(string, "FlyLic", MainPipeline); PlayerInfo[extraid][pFlyLic] = strval(string);
  128. mysql_fetch_field_row(string, "BoatLic", MainPipeline); PlayerInfo[extraid][pBoatLic] = strval(string);
  129. mysql_fetch_field_row(string, "FishLic", MainPipeline); PlayerInfo[extraid][pFishLic] = strval(string);
  130. mysql_fetch_field_row(string, "CheckCash", MainPipeline); PlayerInfo[extraid][pCheckCash] = strval(string);
  131. mysql_fetch_field_row(string, "Checks", MainPipeline); PlayerInfo[extraid][pChecks] = strval(string);
  132. mysql_fetch_field_row(string, "GunLic", MainPipeline); PlayerInfo[extraid][pGunLic] = strval(string);
  133. for(new i = 0; i < 12; i++)
  134. {
  135. new gun[32];
  136. format(gun, sizeof(gun), "Gun%d", i);
  137. mysql_fetch_field_row(string, gun, MainPipeline);
  138. PlayerInfo[extraid][pGuns][i] = strval(string);
  139. }
  140. mysql_fetch_field_row(string, "CarTime", MainPipeline); PlayerInfo[extraid][pCarTime] = strval(string);
  141. mysql_fetch_field_row(string, "DrugsTime", MainPipeline); PlayerInfo[extraid][pDrugsTime] = strval(string);
  142. mysql_fetch_field_row(string, "LawyerTime", MainPipeline); PlayerInfo[extraid][pLawyerTime] = strval(string);
  143. mysql_fetch_field_row(string, "LawyerFreeTime", MainPipeline); PlayerInfo[extraid][pLawyerFreeTime] = strval(string);
  144. mysql_fetch_field_row(string, "MechTime", MainPipeline); PlayerInfo[extraid][pMechTime] = strval(string);
  145. mysql_fetch_field_row(string, "SexTime", MainPipeline); PlayerInfo[extraid][pSexTime] = strval(string);
  146. mysql_fetch_field_row(string, "PayDay", MainPipeline); PlayerInfo[extraid][pPayDay] = strval(string);
  147. mysql_fetch_field_row(string, "PayDayHad", MainPipeline); PlayerInfo[extraid][pPayDayHad] = strval(string);
  148. mysql_fetch_field_row(string, "CDPlayer", MainPipeline); PlayerInfo[extraid][pCDPlayer] = strval(string);
  149. mysql_fetch_field_row(string, "Dice", MainPipeline); PlayerInfo[extraid][pDice] = strval(string);
  150. mysql_fetch_field_row(string, "Spraycan", MainPipeline); PlayerInfo[extraid][pSpraycan] = strval(string);
  151. mysql_fetch_field_row(string, "Rope", MainPipeline); PlayerInfo[extraid][pRope] = strval(string);
  152. mysql_fetch_field_row(string, "Cigars", MainPipeline); PlayerInfo[extraid][pCigar] = strval(string);
  153. mysql_fetch_field_row(string, "Sprunk", MainPipeline); PlayerInfo[extraid][pSprunk] = strval(string);
  154. mysql_fetch_field_row(string, "Bombs", MainPipeline); PlayerInfo[extraid][pBombs] = strval(string);
  155. mysql_fetch_field_row(string, "Wins", MainPipeline); PlayerInfo[extraid][pWins] = strval(string);
  156. mysql_fetch_field_row(string, "Loses", MainPipeline); PlayerInfo[extraid][pLoses] = strval(string);
  157. mysql_fetch_field_row(string, "Tutorial", MainPipeline); PlayerInfo[extraid][pTut] = strval(string);
  158. mysql_fetch_field_row(string, "OnDuty", MainPipeline); PlayerInfo[extraid][pDuty] = strval(string);
  159. mysql_fetch_field_row(string, "Hospital", MainPipeline); SetPVarInt(extraid, "Hospital", strval(string));
  160. mysql_fetch_field_row(string, "Adjustable", MainPipeline); PlayerInfo[extraid][pAdjustable] = strval(string);
  161. mysql_fetch_field_row(string, "Married", MainPipeline); PlayerInfo[extraid][pMarried] = strval(string);
  162. mysql_fetch_field_row(PlayerInfo[extraid][pMarriedTo], "MarriedTo", MainPipeline);
  163. mysql_fetch_field_row(PlayerInfo[extraid][pContractBy], "ContractBy", MainPipeline);
  164. mysql_fetch_field_row(PlayerInfo[extraid][pContractDetail], "ContractDetail", MainPipeline);
  165. mysql_fetch_field_row(string, "WantedLevel", MainPipeline); PlayerInfo[extraid][pWantedLevel] = strval(string);
  166. mysql_fetch_field_row(string, "Insurance", MainPipeline); PlayerInfo[extraid][pInsurance] = strval(string);
  167. mysql_fetch_field_row(string, "NewMuted", MainPipeline); PlayerInfo[extraid][pNMute] = strval(string);
  168. mysql_fetch_field_row(string, "NewMutedTotal", MainPipeline); PlayerInfo[extraid][pNMuteTotal] = strval(string);
  169. mysql_fetch_field_row(string, "AdMuted", MainPipeline); PlayerInfo[extraid][pADMute] = strval(string);
  170. mysql_fetch_field_row(string, "AdMutedTotal", MainPipeline); PlayerInfo[extraid][pADMuteTotal] = strval(string);
  171. mysql_fetch_field_row(string, "HelpMute", MainPipeline); PlayerInfo[extraid][pHelpMute] = strval(string);
  172. mysql_fetch_field_row(string, "Helper", MainPipeline); PlayerInfo[extraid][pHelper] = strval(string);
  173. mysql_fetch_field_row(string, "ReportMuted", MainPipeline); PlayerInfo[extraid][pRMuted] = strval(string);
  174. mysql_fetch_field_row(string, "ReportMutedTotal", MainPipeline); PlayerInfo[extraid][pRMutedTotal] = strval(string);
  175. mysql_fetch_field_row(string, "ReportMutedTime", MainPipeline); PlayerInfo[extraid][pRMutedTime] = strval(string);
  176. mysql_fetch_field_row(string, "VIPMuted", MainPipeline); PlayerInfo[extraid][pVMuted] = strval(string);
  177. mysql_fetch_field_row(string, "VIPMutedTime", MainPipeline); PlayerInfo[extraid][pVMutedTime] = strval(string);
  178. mysql_fetch_field_row(string, "GiftTime", MainPipeline); PlayerInfo[extraid][pGiftTime] = strval(string);
  179. mysql_fetch_field_row(string, "AdvisorDutyHours", MainPipeline); PlayerInfo[extraid][pDutyHours] = strval(string);
  180. mysql_fetch_field_row(string, "AcceptedHelp", MainPipeline); PlayerInfo[extraid][pAcceptedHelp] = strval(string);
  181. mysql_fetch_field_row(string, "AcceptReport", MainPipeline); PlayerInfo[extraid][pAcceptReport] = strval(string);
  182. mysql_fetch_field_row(string, "TrashReport", MainPipeline); PlayerInfo[extraid][pTrashReport] = strval(string);
  183. mysql_fetch_field_row(string, "FactionModerator", MainPipeline); PlayerInfo[extraid][pFactionModerator] = strval(string);
  184. mysql_fetch_field_row(string, "GangModerator", MainPipeline); PlayerInfo[extraid][pGangModerator] = strval(string);
  185. mysql_fetch_field_row(string, "GangWarn", MainPipeline); PlayerInfo[extraid][pGangWarn] = strval(string);
  186. mysql_fetch_field_row(string, "FactionBanned", MainPipeline); PlayerInfo[extraid][pFactionBanned] = strval(string);
  187. mysql_fetch_field_row(string, "CSFBanned", MainPipeline); PlayerInfo[extraid][pCSFBanned] = strval(string);
  188. mysql_fetch_field_row(string, "pVIPInviteDay", MainPipeline); PlayerInfo[extraid][pVIPInviteDay] = strval(string);
  189. mysql_fetch_field_row(string, "TempVIP", MainPipeline); PlayerInfo[extraid][pTempVIP] = strval(string);
  190. mysql_fetch_field_row(string, "BuddyInvite", MainPipeline); PlayerInfo[extraid][pBuddyInvited] = strval(string);
  191. mysql_fetch_field_row(string, "Tokens", MainPipeline); PlayerInfo[extraid][pTokens] = strval(string);
  192. mysql_fetch_field_row(string, "PTokens", MainPipeline); PlayerInfo[extraid][pPaintTokens] = strval(string);
  193. mysql_fetch_field_row(string, "TriageTime", MainPipeline); PlayerInfo[extraid][pTriageTime] = strval(string);
  194. mysql_fetch_field_row(PlayerInfo[extraid][pPrisonedBy], "PrisonedBy", MainPipeline);
  195. mysql_fetch_field_row(PlayerInfo[extraid][pPrisonReason], "PrisonReason", MainPipeline);
  196. mysql_fetch_field_row(PlayerInfo[extraid][pFlag], "Flag", MainPipeline);
  197. mysql_fetch_field_row(string, "TaxiLicense", MainPipeline); PlayerInfo[extraid][pTaxiLicense] = strval(string);
  198. mysql_fetch_field_row(string, "TicketTime", MainPipeline); PlayerInfo[extraid][pTicketTime] = strval(string);
  199. mysql_fetch_field_row(string, "Screwdriver", MainPipeline); PlayerInfo[extraid][pScrewdriver] = strval(string);
  200. mysql_fetch_field_row(string, "Smslog", MainPipeline); PlayerInfo[extraid][pSmslog] = strval(string);
  201. mysql_fetch_field_row(string, "Wristwatch", MainPipeline); PlayerInfo[extraid][pWristwatch] = strval(string);
  202. mysql_fetch_field_row(string, "Surveillance", MainPipeline); PlayerInfo[extraid][pSurveillance] = strval(string);
  203. mysql_fetch_field_row(string, "Tire", MainPipeline); PlayerInfo[extraid][pTire] = strval(string);
  204. mysql_fetch_field_row(string, "Firstaid", MainPipeline); PlayerInfo[extraid][pFirstaid] = strval(string);
  205. mysql_fetch_field_row(string, "Rccam", MainPipeline); PlayerInfo[extraid][pRccam] = strval(string);
  206. mysql_fetch_field_row(string, "Receiver", MainPipeline); PlayerInfo[extraid][pReceiver] = strval(string);
  207. mysql_fetch_field_row(string, "GPS", MainPipeline); PlayerInfo[extraid][pGPS] = strval(string);
  208. mysql_fetch_field_row(string, "Sweep", MainPipeline); PlayerInfo[extraid][pSweep] = strval(string);
  209. mysql_fetch_field_row(string, "SweepLeft", MainPipeline); PlayerInfo[extraid][pSweepLeft] = strval(string);
  210. mysql_fetch_field_row(string, "Bugged", MainPipeline); PlayerInfo[extraid][pBugged] = strval(string);
  211. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog0], "Smslog0", MainPipeline);
  212. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog1], "Smslog1", MainPipeline);
  213. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog2], "Smslog2", MainPipeline);
  214. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog3], "Smslog3", MainPipeline);
  215. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog4], "Smslog4", MainPipeline);
  216. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog5], "Smslog5", MainPipeline);
  217. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog6], "Smslog6", MainPipeline);
  218. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog7], "Smslog7", MainPipeline);
  219. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog8], "Smslog8", MainPipeline);
  220. mysql_fetch_field_row(PlayerInfo[extraid][pSmslog9], "Smslog9", MainPipeline);
  221. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog0], "KillLog0", MainPipeline);
  222. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog1], "KillLog1", MainPipeline);
  223. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog2], "KillLog2", MainPipeline);
  224. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog3], "KillLog3", MainPipeline);
  225. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog4], "KillLog4", MainPipeline);
  226. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog5], "KillLog5", MainPipeline);
  227. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog6], "KillLog6", MainPipeline);
  228. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog7], "KillLog7", MainPipeline);
  229. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog8], "KillLog8", MainPipeline);
  230. mysql_fetch_field_row(PlayerInfo[extraid][pKillLog9], "KillLog9", MainPipeline);
  231. mysql_fetch_field_row(string, "pWExists", MainPipeline); PlayerInfo[extraid][pWExists] = strval(string);
  232. mysql_fetch_field_row(string, "pWX", MainPipeline); PlayerInfo[extraid][pWX] = floatstr(string);
  233. mysql_fetch_field_row(string, "pWY", MainPipeline); PlayerInfo[extraid][pWY] = floatstr(string);
  234. mysql_fetch_field_row(string, "pWZ", MainPipeline); PlayerInfo[extraid][pWZ] = floatstr(string);
  235. mysql_fetch_field_row(string, "pWVW", MainPipeline); PlayerInfo[extraid][pWVW] = strval(string);
  236. mysql_fetch_field_row(string, "pWInt", MainPipeline); PlayerInfo[extraid][pWInt] = strval(string);
  237. mysql_fetch_field_row(string, "pWValue", MainPipeline); PlayerInfo[extraid][pWValue] = strval(string);
  238. mysql_fetch_field_row(string, "pWSeeds", MainPipeline); PlayerInfo[extraid][pWSeeds] = strval(string);
  239. mysql_fetch_field_row(string, "Warrants", MainPipeline); PlayerInfo[extraid][pWarrant] = strval(string);
  240. mysql_fetch_field_row(string, "JudgeJailTime", MainPipeline); PlayerInfo[extraid][pJudgeJailTime] = strval(string);
  241. mysql_fetch_field_row(string, "JudgeJailType", MainPipeline); PlayerInfo[extraid][pJudgeJailType] = strval(string);
  242. mysql_fetch_field_row(string, "ProbationTime", MainPipeline); PlayerInfo[extraid][pProbationTime] = strval(string);
  243. mysql_fetch_field_row(string, "DMIndicators", MainPipeline); PlayerInfo[extraid][pDMIndicators] = strval(string);
  244. mysql_fetch_field_row(string, "DMKills", MainPipeline); PlayerInfo[extraid][pDMKills] = strval(string);
  245. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport0], "DMReport0", MainPipeline);
  246. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport1], "DMReport1", MainPipeline);
  247. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport2], "DMReport2", MainPipeline);
  248. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport3], "DMReport3", MainPipeline);
  249. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport4], "DMReport4", MainPipeline);
  250. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport5], "DMReport5", MainPipeline);
  251. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport6], "DMReport6", MainPipeline);
  252. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport7], "DMReport7", MainPipeline);
  253. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport8], "DMReport8", MainPipeline);
  254. mysql_fetch_field_row(PlayerInfo[extraid][pDMReport9], "DMReport9", MainPipeline);
  255. mysql_fetch_field_row(string, "Order", MainPipeline); PlayerInfo[extraid][pOrder] = strval(string);
  256. mysql_fetch_field_row(string, "OBlocked", MainPipeline); PlayerInfo[extraid][pOBlocked] = strval(string);
  257. mysql_fetch_field_row(string, "CallsAccepted", MainPipeline); PlayerInfo[extraid][pCallsAccepted] = strval(string);
  258. mysql_fetch_field_row(string, "PatientsDelivered", MainPipeline); PlayerInfo[extraid][pPatientsDelivered] = strval(string);
  259. mysql_fetch_field_row(string, "LiveBanned", MainPipeline); PlayerInfo[extraid][pLiveBanned] = strval(string);
  260. mysql_fetch_field_row(string, "FreezeBank", MainPipeline); PlayerInfo[extraid][pFreezeBank] = strval(string);
  261. mysql_fetch_field_row(string, "Speedo", MainPipeline); PlayerInfo[extraid][pSpeedo] = strval(string);
  262. for(new i = 0; i < MAX_PLAYERVEHICLES; i++)
  263. {
  264. new vehstring[128];
  265. format(vehstring, sizeof(vehstring), "pv%dPosX", i);
  266. mysql_fetch_field_row(string, vehstring, MainPipeline);
  267. PlayerVehicleInfo[extraid][i][pvPosX] = floatstr(string);
  268. format(vehstring, sizeof(vehstring), "pv%dPosY", i);
  269. mysql_fetch_field_row(string, vehstring, MainPipeline);
  270. PlayerVehicleInfo[extraid][i][pvPosY] = floatstr(string);
  271. format(vehstring, sizeof(vehstring), "pv%dPosZ", i);
  272. mysql_fetch_field_row(string, vehstring, MainPipeline);
  273. PlayerVehicleInfo[extraid][i][pvPosZ] = floatstr(string);
  274. format(vehstring, sizeof(vehstring), "pv%dPosAngle", i);
  275. mysql_fetch_field_row(string, vehstring, MainPipeline);
  276. PlayerVehicleInfo[extraid][i][pvPosAngle] = floatstr(string);
  277. format(vehstring, sizeof(vehstring), "pv%dModelId", i);
  278. mysql_fetch_field_row(string, vehstring, MainPipeline);
  279. PlayerVehicleInfo[extraid][i][pvModelId] = strval(string);
  280. format(vehstring, sizeof(vehstring), "pv%dLock", i);
  281. mysql_fetch_field_row(string, vehstring, MainPipeline);
  282. PlayerVehicleInfo[extraid][i][pvLock] = strval(string);
  283. format(vehstring, sizeof(vehstring), "pv%dLocked", i);
  284. mysql_fetch_field_row(string, vehstring, MainPipeline);
  285. PlayerVehicleInfo[extraid][i][pvLocked] = strval(string);
  286. format(vehstring, sizeof(vehstring), "pv%dPaintJob", i);
  287. mysql_fetch_field_row(string, vehstring, MainPipeline);
  288. PlayerVehicleInfo[extraid][i][pvPaintJob] = strval(string);
  289. format(vehstring, sizeof(vehstring), "pv%dColor1", i);
  290. mysql_fetch_field_row(string, vehstring, MainPipeline);
  291. PlayerVehicleInfo[extraid][i][pvColor1] = strval(string);
  292. format(vehstring, sizeof(vehstring), "pv%dColor2", i);
  293. mysql_fetch_field_row(string, vehstring, MainPipeline);
  294. PlayerVehicleInfo[extraid][i][pvColor2] = strval(string);
  295. format(vehstring, sizeof(vehstring), "pv%dPrice", i);
  296. mysql_fetch_field_row(string, vehstring, MainPipeline);
  297. PlayerVehicleInfo[extraid][i][pvPrice] = strval(string);
  298. format(vehstring, sizeof(vehstring), "pv%dTicket", i);
  299. mysql_fetch_field_row(string, vehstring, MainPipeline);
  300. PlayerVehicleInfo[extraid][i][pvTicket] = strval(string);
  301. format(vehstring, sizeof(vehstring), "pv%dWeapon0", i);
  302. mysql_fetch_field_row(string, vehstring, MainPipeline);
  303. PlayerVehicleInfo[extraid][i][pvWeapons][0] = strval(string);
  304. format(vehstring, sizeof(vehstring), "pv%dWeapon1", i);
  305. mysql_fetch_field_row(string, vehstring, MainPipeline);
  306. PlayerVehicleInfo[extraid][i][pvWeapons][1] = strval(string);
  307. format(vehstring, sizeof(vehstring), "pv%dWeapon2", i);
  308. mysql_fetch_field_row(string, vehstring, MainPipeline);
  309. PlayerVehicleInfo[extraid][i][pvWeapons][2] = strval(string);
  310. format(vehstring, sizeof(vehstring), "pv%dWepUpgrade", i);
  311. mysql_fetch_field_row(string, vehstring, MainPipeline);
  312. PlayerVehicleInfo[extraid][i][pvWepUpgrade] = strval(string);
  313. format(vehstring, sizeof(vehstring), "pv%dFuel", i);
  314. mysql_fetch_field_row(string, vehstring, MainPipeline);
  315. PlayerVehicleInfo[extraid][i][pvFuel] = floatstr(string);
  316. format(vehstring, sizeof(vehstring), "pv%dImpound", i);
  317. mysql_fetch_field_row(string, vehstring, MainPipeline);
  318. PlayerVehicleInfo[extraid][i][pvImpounded] = strval(string);
  319. for(new m = 0; m < MAX_MODS; m++)
  320. {
  321. format(vehstring, sizeof(vehstring), "pv%dMod%d", i, m);
  322. mysql_fetch_field_row(string, vehstring, MainPipeline);
  323. PlayerVehicleInfo[extraid][i][pvMods][m] = strval(string);
  324. }
  325. }
  326. for(new i = 0; i < MAX_PLAYERTOYS; i++)
  327. {
  328. new toys[128];
  329. format(toys, sizeof(toys), "pt%dModelID", i);
  330. mysql_fetch_field_row(string, toys, MainPipeline);
  331. PlayerToyInfo[extraid][i][ptModelID] = strval(string);
  332. format(toys, sizeof(toys), "pt%dBone", i);
  333. mysql_fetch_field_row(string, toys, MainPipeline);
  334. PlayerToyInfo[extraid][i][ptBone] = strval(string);
  335. format(toys, sizeof(toys), "pt%dPosX", i);
  336. mysql_fetch_field_row(string, toys, MainPipeline);
  337. PlayerToyInfo[extraid][i][ptPosX] = floatstr(string);
  338. format(toys, sizeof(toys), "pt%dPosY", i);
  339. mysql_fetch_field_row(string, toys, MainPipeline);
  340. PlayerToyInfo[extraid][i][ptPosY] = floatstr(string);
  341. format(toys, sizeof(toys), "pt%dPosY", i);
  342. mysql_fetch_field_row(string, toys, MainPipeline);
  343. PlayerToyInfo[extraid][i][ptPosY] = floatstr(string);
  344. format(toys, sizeof(toys), "pt%dPosZ", i);
  345. mysql_fetch_field_row(string, toys, MainPipeline);
  346. PlayerToyInfo[extraid][i][ptPosZ] = floatstr(string);
  347. format(toys, sizeof(toys), "pt%dRotX", i);
  348. mysql_fetch_field_row(string, toys, MainPipeline);
  349. PlayerToyInfo[extraid][i][ptRotX] = floatstr(string);
  350. format(toys, sizeof(toys), "pt%dRotY", i);
  351. mysql_fetch_field_row(string, toys, MainPipeline);
  352. PlayerToyInfo[extraid][i][ptRotY] = floatstr(string);
  353. format(toys, sizeof(toys), "pt%dRotZ", i);
  354. mysql_fetch_field_row(string, toys, MainPipeline);
  355. PlayerToyInfo[extraid][i][ptRotZ] = floatstr(string);
  356. }
  357. }
  358. mysql_free_result(MainPipeline);
  359. OnPlayerLoad(extraid);
  360. }
  361. case SENDUSERDATA_THREAD:
  362. {
  363. }
  364. case LOGIN_THREAD:
  365. {
  366. mysql_store_result(MainPipeline);
  367. new result = mysql_num_rows(MainPipeline);
  368. mysql_free_result(MainPipeline);
  369. if(IsPlayerConnected(extraid))
  370. {
  371. if(result > 0)
  372. {
  373. SafeLogin(extraid, 1);
  374. }
  375. else
  376. {
  377. SafeLogin(extraid, 2);
  378. }
  379. }
  380. }
  381. }
  382. }
  383. forward OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle);
  384. public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle)
  385. {
  386. printf("[MySQL] Query Error - (Thread: %d) (ExtraID: %d) (ErrorID: %d)", resultid, extraid, errorid);
  387. print("[MySQL] Check /logs/querydump.log to review the query that threw the error.");
  388. Log("logs/querydump.log", query);
  389. if(resultid != -1)
  390. {
  391. if(errorid == 2013 || errorid == 2014 || errorid == 2006 || errorid == 2027 || errorid == 2055)
  392. {
  393. print("[MySQL] Connection Error Detected in Threaded Query, Attempting to Re-send Query.");
  394. mysql_query(query, resultid, extraid, MainPipeline);
  395. }
  396. }
  397. }
  398. // Custom Functions
  399. // g_mysql_Init()
  400. // Description: Called with Gamemode Init.
  401. stock g_mysql_Init()
  402. {
  403. mysql_debug(1);
  404. MainPipeline = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  405. printf("[MySQL] (All Pipelines) Connecting to MySQL Database Server %s...", SQL_HOST);
  406. if(mysql_ping(MainPipeline) == -1)
  407. {
  408. printf("[MySQL] (MainPipeline) Fatal Error! Could not connect to MySQL: Host %s - DB: %s - User: %s", SQL_HOST, SQL_DB, SQL_USER);
  409. print("[MySQL] Note: Make sure that you have provided the correct connection credentials.");
  410. SendRconCommand("exit");
  411. }
  412. print("[MySQL] (MainPipeline) Connection successful toward MySQL Database Server!");
  413. return 1;
  414. }
  415. // g_mysql_Exit()
  416. // Description: Called with Gamemode Exit.
  417. stock g_mysql_Exit()
  418. {
  419. mysql_close(MainPipeline);
  420. return 1;
  421. }
  422. // g_mysql_SafeUpdating();
  423. // Description: Sets SQL_SAFE_UPDATE to 0 before sending query.
  424. stock g_mysql_SafeUpdating()
  425. {
  426. mysql_query("SET SQL_SAFE_UPDATES=0;", NO_THREAD, 0, MainPipeline);
  427. return 1;
  428. }
  429. // g_mysql_ReturnEscaped(string unEscapedString)
  430. // Description: Takes a unescaped string and returns an escaped one.
  431. stock g_mysql_ReturnEscaped(unEscapedString[])
  432. {
  433. new EscapedString[256];
  434. mysql_real_escape_string(unEscapedString, EscapedString);
  435. return EscapedString;
  436. }
  437. // g_mysql_GetAccString(string column, string accountName)
  438. // Description: Returns a string from a specific account column.
  439. // Notice: No threading support, for small queries.
  440. stock g_mysql_GetAccString(column[], accountName[])
  441. {
  442. new string[128], returnedstr[256];
  443. format(string, sizeof(string), "SELECT `%s` from accounts WHERE Username = '%s'", column, accountName);
  444. mysql_query(string, NO_THREAD, 0, MainPipeline);
  445. mysql_store_result(MainPipeline);
  446. if(mysql_retrieve_row())
  447. {
  448. mysql_fetch_field_row(returnedstr, column, MainPipeline);
  449. }
  450. mysql_free_result(MainPipeline);
  451. return returnedstr;
  452. }
  453. // g_mysql_GetAccInt(string column, string accountName)
  454. // Description: Returns a int from a specific account column.
  455. // Notice: No threading support, for small queries.
  456. stock g_mysql_GetAccInt(column[], accountName[])
  457. {
  458. new string[128], returnedint;
  459. format(string, sizeof(string), "SELECT `%s` from accounts WHERE Username = '%s'", column, accountName);
  460. mysql_query(string, NO_THREAD, 0, MainPipeline);
  461. mysql_store_result(MainPipeline);
  462. returnedint = mysql_fetch_int(MainPipeline);
  463. mysql_free_result(MainPipeline);
  464. return returnedint;
  465. }
  466. // g_mysql_GetAccFloat(string column, string accountName)
  467. // Description: Returns a float from a specific account column.
  468. // Notice: No threading support, for small queries.
  469. stock g_mysql_GetAccFloat(column[], accountName[])
  470. {
  471. new string[128], Float:returnedfloat;
  472. format(string, sizeof(string), "SELECT `%s` from accounts WHERE Username = '%s'", column, accountName);
  473. mysql_query(string, NO_THREAD, 0, MainPipeline);
  474. mysql_store_result(MainPipeline);
  475. mysql_fetch_float(returnedfloat, MainPipeline);
  476. mysql_free_result(MainPipeline);
  477. return returnedfloat;
  478. }
  479. // g_mysql_SetAccString(string column, string accountName, string str)
  480. // Description: Sets a string in a specific account column.
  481. // Notice: Useful for small queries.
  482. stock g_mysql_SetAccString(column[], accountName[], str[])
  483. {
  484. new string[128];
  485. g_mysql_SafeUpdating();
  486. mysql_real_escape_string(str, str);
  487. format(string, sizeof(string), "UPDATE `accounts` SET `%s` = '%s' WHERE Username = '%s'", column, str, accountName);
  488. mysql_query(string, SENDUSERDATA_THREAD, 0, MainPipeline);
  489. return 1;
  490. }
  491. // g_mysql_SetAccInt(string column, string accountName, int interger)
  492. // Description: Sets a string in a specific account column.
  493. // Notice: Useful for small queries.
  494. stock g_mysql_SetAccInt(column[], accountName[], interger)
  495. {
  496. new string[128];
  497. g_mysql_SafeUpdating();
  498. format(string, sizeof(string), "UPDATE `accounts` SET `%s` = %d WHERE Username = '%s'", column, interger, accountName);
  499. mysql_query(string, SENDUSERDATA_THREAD, 0, MainPipeline);
  500. return 0;
  501. }
  502. // g_mysql_SetAccFloat(string column, string accountName, float floatingpoint)
  503. // Description: Sets a string in a specific account column.
  504. // Notice: Useful for small queries.
  505. stock g_mysql_SetAccFloat(column[], accountName[], Float:floatingpoint)
  506. {
  507. new string[128];
  508. g_mysql_SafeUpdating();
  509. format(string, sizeof(string), "UPDATE `accounts` SET `%s` = %f WHERE Username = '%s'", column, floatingpoint, accountName);
  510. mysql_query(string, SENDUSERDATA_THREAD, 0, MainPipeline);
  511. return 0;
  512. }
  513. // g_mysql_CheckConnection()
  514. stock g_mysql_CheckConnection()
  515. {
  516. mysql_ping(MainPipeline);
  517. return 1;
  518. }
  519. // g_mysql_AccountLoginCheck(playerid)
  520. forward g_mysql_AccountLoginCheck(playerid);
  521. public g_mysql_AccountLoginCheck(playerid)
  522. {
  523. new string[128];
  524. format(string, sizeof(string), "SELECT Username from accounts WHERE Username = '%s'", GetPlayerNameExt(playerid));
  525. mysql_query(string, LOGIN_THREAD, playerid, MainPipeline);
  526. // Reset the GUI
  527. SetPlayerJoinCamera(playerid);
  528. ClearChatbox(playerid);
  529. SetPlayerVirtualWorld(playerid, 0);
  530. return 1;
  531. }
  532. // g_mysql_DoesAccountExist(string accountName[])
  533. // Description: Checks if a Username matches inside the MySQL Database.
  534. stock g_mysql_DoesAccountExist(accountName[])
  535. {
  536. new string[128];
  537. format(string, sizeof(string), "SELECT Username from accounts WHERE Username = '%s'", accountName);
  538. mysql_query(string, NO_THREAD, 0, MainPipeline);
  539. mysql_store_result(MainPipeline);
  540. new result = mysql_num_rows(MainPipeline);
  541. mysql_free_result(MainPipeline);
  542. if(result > 0)
  543. {
  544. return 1;
  545. }
  546. return 0;
  547. }
  548. // g_mysql_CreateAccount(string accountName[], string accountKey[])
  549. // Description: Creates a new account in the database.
  550. // Note: Not a heavy used function, leave in sanity check.
  551. stock g_mysql_CreateAccount(accountName[], accountKey[])
  552. {
  553. new string[128];
  554. if(!g_mysql_DoesAccountExist(accountName))
  555. {
  556. format(string, sizeof(string), "INSERT INTO `accounts` (`Username`, `Key`) VALUES ('%s','%s')", accountName, accountKey);
  557. mysql_query(string, NO_THREAD, 0, MainPipeline);
  558. return 1;
  559. }
  560. return 0;
  561. }
  562. // g_mysql_DeleteAccount(string accountName[])
  563. // Description: Deletes an account in the database.
  564. // Note: Not a heavy used function, leave in sanity check.
  565. stock g_mysql_DeleteAccount(accountName[])
  566. {
  567. new string[128];
  568. if(g_mysql_DoesAccountExist(accountName))
  569. {
  570. format(string, sizeof(string), "DELETE FROM `accounts` WHERE `Username`='%s';", accountName);
  571. mysql_query(string, NO_THREAD, 0, MainPipeline);
  572. return 1;
  573. }
  574. return 0;
  575. }
  576. // g_mysql_LoadAccount(playerid)
  577. // Description: Loads an account from database into memory.
  578. stock g_mysql_LoadAccount(playerid)
  579. {
  580. new string[128];
  581. format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `Username` = '%s'", GetPlayerNameExt(playerid));
  582. mysql_query(string, LOADUSERDATA_THREAD, playerid, MainPipeline);
  583. return 1;
  584. }
  585. // g_mysql_SaveAccount(playerid)
  586. // Description: Saves an account from memory into the database.
  587. stock g_mysql_SaveAccount(playerid)
  588. {
  589. new query[4096], accountName[MAX_PLAYER_NAME];
  590. GetPlayerName(playerid, accountName, MAX_PLAYER_NAME);
  591. g_mysql_SafeUpdating();
  592. format(query, sizeof(query), "UPDATE `accounts` SET \
  593. `IP` = '%s', \
  594. `Registered` = %d, \
  595. `ConnectedTime` = %d, \
  596. `Sex` = %d, \
  597. `Age` = %d, \
  598. `Band` = %d, \
  599. `PermBand` = %d, \
  600. `Warnings` = %d, \
  601. `Disabled` = %d, \
  602. `Level` = %d, \
  603. `AdminLevel` = %d, \
  604. `DonateRank` = %d, \
  605. `Respect` = %d, \
  606. `Money` = %d, \
  607. `Bank` = %d,",
  608. PlayerInfo[playerid][pIP],
  609. PlayerInfo[playerid][pReg],
  610. PlayerInfo[playerid][pConnectTime],
  611. PlayerInfo[playerid][pSex],
  612. PlayerInfo[playerid][pAge],
  613. PlayerInfo[playerid][pBanned],
  614. PlayerInfo[playerid][pPermaBanned],
  615. PlayerInfo[playerid][pWarns],
  616. PlayerInfo[playerid][pDisabled],
  617. PlayerInfo[playerid][pLevel],
  618. PlayerInfo[playerid][pAdmin],
  619. PlayerInfo[playerid][pDonateRank],
  620. PlayerInfo[playerid][pExp],
  621. GetPVarInt(playerid, "Cash"),
  622. PlayerInfo[playerid][pAccount]
  623. );
  624. format(query, sizeof(query), "%s \
  625. `pHealth` = %f, \
  626. `pArmor` = %f, \
  627. `pSHealth` = %f, \
  628. `Int` = %d, \
  629. `Local` = %d, \
  630. `VirtualWorld` = %d, \
  631. `Model` = %d, \
  632. `SPos_x` = %f, \
  633. `SPos_y` = %f, \
  634. `SPos_z` = %f, \
  635. `SPos_r` = %f, \
  636. `BanAppealer` = %d, \
  637. `ShopTech` = %d, \
  638. `Undercover` = %d, \
  639. `TogReports` = %d,",
  640. query,
  641. PlayerInfo[playerid][pHealth],
  642. PlayerInfo[playerid][pArmor],
  643. PlayerInfo[playerid][pSHealth],
  644. PlayerInfo[playerid][pInt],
  645. PlayerInfo[playerid][pLocal],
  646. PlayerInfo[playerid][pVW],
  647. PlayerInfo[playerid][pModel],
  648. PlayerInfo[playerid][pPos_x],
  649. PlayerInfo[playerid][pPos_y],
  650. PlayerInfo[playerid][pPos_z],
  651. PlayerInfo[playerid][pPos_r],
  652. PlayerInfo[playerid][pBanAppealer],
  653. PlayerInfo[playerid][pShopTech],
  654. PlayerInfo[playerid][pUndercover],
  655. PlayerInfo[playerid][pTogReports]
  656. );
  657. format(query, sizeof(query), "%s \
  658. `Radio` = %d, \
  659. `RadioFreq` = %d, \
  660. `UpgradePoints` = %d, \
  661. `Origin` = %d, \
  662. `Muted` = %d, \
  663. `Crimes` = %d, \
  664. `Accent` = %d, \
  665. `CHits` = %d, \
  666. `FHits` = %d, \
  667. `Arrested` = %d, \
  668. `Phonebook` = %d, \
  669. `LottoNr` = %d, \
  670. `Fishes` = %d, \
  671. `BiggestFish` = %d, \
  672. `Job` = %d,",
  673. query,
  674. PlayerInfo[playerid][pRadio],
  675. PlayerInfo[playerid][pRadioFreq],
  676. PlayerInfo[playerid][gPupgrade],
  677. PlayerInfo[playerid][pOrigin],
  678. PlayerInfo[playerid][pMuted],
  679. PlayerInfo[playerid][pCrimes],
  680. PlayerInfo[playerid][pAccent],
  681. PlayerInfo[playerid][pCHits],
  682. PlayerInfo[playerid][pFHits],
  683. PlayerInfo[playerid][pArrested],
  684. PlayerInfo[playerid][pPhoneBook],
  685. PlayerInfo[playerid][pLottoNr],
  686. PlayerInfo[playerid][pFishes],
  687. PlayerInfo[playerid][pBiggestFish],
  688. PlayerInfo[playerid][pJob]
  689. );
  690. format(query, sizeof(query), "%s \
  691. `Job2` = %d, \
  692. `Paycheck` = %d, \
  693. `HeadValue` = %d, \
  694. `Jailed` = %d, \
  695. `JailTime` = %d, \
  696. `WRestricted` = %d, \
  697. `Materials` = %d, \
  698. `Packages` = %d, \
  699. `Crates` = %d, \
  700. `Pot` = %d, \
  701. `Crack` = %d, \
  702. `Leader` = %d, \
  703. `Member` = %d, \
  704. `Division` = %d, \
  705. `FMember` = %d,",
  706. query,
  707. PlayerInfo[playerid][pJob2],
  708. PlayerInfo[playerid][pPayCheck],
  709. PlayerInfo[playerid][pHeadValue],
  710. PlayerInfo[playerid][pJailed],
  711. PlayerInfo[playerid][pJailTime],
  712. PlayerInfo[playerid][pWRestricted],
  713. PlayerInfo[playerid][pMats],
  714. GetPVarInt(playerid, "Packages"),
  715. PlayerInfo[playerid][pCrates],
  716. PlayerInfo[playerid][pPot],
  717. PlayerInfo[playerid][pCrack],
  718. PlayerInfo[playerid][pLeader],
  719. PlayerInfo[playerid][pMember],
  720. PlayerInfo[playerid][pDivision],
  721. PlayerInfo[playerid][pFMember]
  722. );
  723. format(query, sizeof(query), "%s \
  724. `Rank` = %d, \
  725. `DetSkill` = %d, \
  726. `SexSkill` = %d, \
  727. `BoxSkill` = %d, \
  728. `LawSkill` = %d, \
  729. `MechSkill` = %d, \
  730. `JackSkill` = %d, \
  731. `CarSkill` = %d, \
  732. `TruckSkill` = %d, \
  733. `NewsSkill` = %d, \
  734. `DrugsSkill` = %d, \
  735. `ArmsSkill` = %d, \
  736. `SmugglerSkill` = %d, \
  737. `FishSkill` = %d, \
  738. `CheckCash` = %d,",
  739. query,
  740. PlayerInfo[playerid][pRank],
  741. PlayerInfo[playerid][pDetSkill],
  742. PlayerInfo[playerid][pSexSkill],
  743. PlayerInfo[playerid][pBoxSkill],
  744. PlayerInfo[playerid][pLawSkill],
  745. PlayerInfo[playerid][pMechSkill],
  746. PlayerInfo[playerid][pJackSkill],
  747. PlayerInfo[playerid][pCarSkill],
  748. PlayerInfo[playerid][pTruckSkill],
  749. PlayerInfo[playerid][pNewsSkill],
  750. PlayerInfo[playerid][pDrugsSkill],
  751. PlayerInfo[playerid][pArmsSkill],
  752. PlayerInfo[playerid][pSmugSkill],
  753. PlayerInfo[playerid][pFishSkill],
  754. PlayerInfo[playerid][pCheckCash]
  755. );
  756. format(query, sizeof(query), "%s \
  757. `Checks` = %d, \
  758. `GunLic` = %d, \
  759. `CarTime` = %d \
  760. WHERE `Username` = '%s'",
  761. query,
  762. PlayerInfo[playerid][pChecks],
  763. PlayerInfo[playerid][pGunLic],
  764. PlayerInfo[playerid][pCarTime],
  765. accountName
  766. );
  767. mysql_query(query, SENDUSERDATA_THREAD, playerid, MainPipeline);
  768. format(query, sizeof(query), "UPDATE `accounts` SET \
  769. `DrugsTime` = %d, \
  770. `LawyerTime` = %d, \
  771. `LawyerFreeTime` = %d, \
  772. `MechTime` = %d, \
  773. `SexTime` = %d, \
  774. `PayDay` = %d, \
  775. `PayDayHad` = %d, \
  776. `CDPlayer` = %d, \
  777. `Dice` = %d, \
  778. `Spraycan` = %d, \
  779. `Rope` = %d, \
  780. `Cigars` = %d, \
  781. `Sprunk` = %d, \
  782. `Bombs` = %d, \
  783. `Wins` = %d,",
  784. PlayerInfo[playerid][pDrugsTime],
  785. PlayerInfo[playerid][pLawyerTime],
  786. PlayerInfo[playerid][pLawyerFreeTime],
  787. PlayerInfo[playerid][pMechTime],
  788. PlayerInfo[playerid][pSexTime],
  789. PlayerInfo[playerid][pPayDay],
  790. PlayerInfo[playerid][pPayDayHad],
  791. PlayerInfo[playerid][pCDPlayer],
  792. PlayerInfo[playerid][pDice],
  793. PlayerInfo[playerid][pSpraycan],
  794. PlayerInfo[playerid][pRope],
  795. PlayerInfo[playerid][pCigar],
  796. PlayerInfo[playerid][pSprunk],
  797. PlayerInfo[playerid][pBombs],
  798. PlayerInfo[playerid][pWins]
  799. );
  800. for(new i = 0; i < 12; i++)
  801. {
  802. format(query, sizeof(query), "%s `Gun%d` = %d,", query, i, PlayerInfo[playerid][pGuns][i]);
  803. }
  804. format(query, sizeof(query), "%s \
  805. `Loses` = %d, \
  806. `Tutorial` = %d, \
  807. `OnDuty` = %d, \
  808. `Hospital` = %d, \
  809. `Adjustable` = %d, \
  810. `Married` = %d, \
  811. `MarriedTo` = '%s', \
  812. `ContractBy` = '%s', \
  813. `ContractDetail` = '%s', \
  814. `WantedLevel` = %d, \
  815. `Insurance` = %d, \
  816. `NewMuted` = %d, \
  817. `NewMutedTotal` = %d, \
  818. `AdMuted` = %d, \
  819. `AdMutedTotal` = %d,",
  820. query,
  821. PlayerInfo[playerid][pLoses],
  822. PlayerInfo[playerid][pTut],
  823. PlayerInfo[playerid][pDuty],
  824. GetPVarInt(playerid, "Hospital"),
  825. PlayerInfo[playerid][pAdjustable],
  826. PlayerInfo[playerid][pMarried],
  827. PlayerInfo[playerid][pMarriedTo],
  828. PlayerInfo[playerid][pContractBy],
  829. g_mysql_ReturnEscaped(PlayerInfo[playerid][pContractDetail]),
  830. PlayerInfo[playerid][pWantedLevel],
  831. PlayerInfo[playerid][pInsurance],
  832. PlayerInfo[playerid][pNMute],
  833. PlayerInfo[playerid][pNMuteTotal],
  834. PlayerInfo[playerid][pADMute],
  835. PlayerInfo[playerid][pADMuteTotal]
  836. );
  837. format(query, sizeof(query), "%s \
  838. `HelpMute` = %d, \
  839. `Helper` = %d, \
  840. `ReportMuted` = %d, \
  841. `ReportMutedTotal` = %d, \
  842. `ReportMutedTime` = %d, \
  843. `VIPMuted` = %d, \
  844. `VIPMutedTime` = %d, \
  845. `GiftTime` = %d, \
  846. `AdvisorDutyHours` = %d, \
  847. `AcceptedHelp` = %d, \
  848. `AcceptReport` = %d, \
  849. `TrashReport` = %d, \
  850. `FactionModerator` = %d, \
  851. `GangModerator` = %d, \
  852. `GangWarn` = %d,",
  853. query,
  854. PlayerInfo[playerid][pHelpMute],
  855. PlayerInfo[playerid][pHelper],
  856. PlayerInfo[playerid][pRMuted],
  857. PlayerInfo[playerid][pRMutedTotal],
  858. PlayerInfo[playerid][pRMutedTime],
  859. PlayerInfo[playerid][pVMuted],
  860. PlayerInfo[playerid][pVMutedTime],
  861. PlayerInfo[playerid][pGiftTime],
  862. PlayerInfo[playerid][pDutyHours],
  863. PlayerInfo[playerid][pAcceptedHelp],
  864. PlayerInfo[playerid][pAcceptReport],
  865. PlayerInfo[playerid][pTrashReport],
  866. PlayerInfo[playerid][pFactionModerator],
  867. PlayerInfo[playerid][pGangModerator],
  868. PlayerInfo[playerid][pGangWarn]
  869. );
  870. format(query, sizeof(query), "%s \
  871. `FactionBanned` = %d, \
  872. `CSFBanned` = %d, \
  873. `VIPInviteDay` = %d, \
  874. `TempVIP` = %d, \
  875. `BuddyInvite` = %d, \
  876. `Tokens` = %d, \
  877. `PTokens` = %d, \
  878. `TriageTime` = %d, \
  879. `PrisonedBy` = '%s', \
  880. `PrisonReason` = '%s', \
  881. `Flag` = '%s', \
  882. `TaxiLicense` = %d, \
  883. `TicketTime` = %d, \
  884. `Screwdriver` = %d, \
  885. `Smslog` = %d, \
  886. `Speedo` = %d \
  887. WHERE `Username` = '%s'",
  888. query,
  889. PlayerInfo[playerid][pFactionBanned],
  890. PlayerInfo[playerid][pCSFBanned],
  891. PlayerInfo[playerid][pVIPInviteDay],
  892. PlayerInfo[playerid][pTempVIP],
  893. PlayerInfo[playerid][pBuddyInvited],
  894. PlayerInfo[playerid][pTokens],
  895. PlayerInfo[playerid][pPaintTokens],
  896. PlayerInfo[playerid][pTriageTime],
  897. PlayerInfo[playerid][pPrisonedBy],
  898. g_mysql_ReturnEscaped(PlayerInfo[playerid][pPrisonReason]),
  899. g_mysql_ReturnEscaped(PlayerInfo[playerid][pFlag]),
  900. PlayerInfo[playerid][pTaxiLicense],
  901. PlayerInfo[playerid][pTicketTime],
  902. PlayerInfo[playerid][pScrewdriver],
  903. PlayerInfo[playerid][pSmslog],
  904. PlayerInfo[playerid][pSpeedo],
  905. accountName
  906. );
  907. mysql_query(query, SENDUSERDATA_THREAD, playerid, MainPipeline);
  908. format(query, sizeof(query), "UPDATE `accounts` SET \
  909. `Wristwatch` = %d, \
  910. `Surveillance` = %d, \
  911. `Tire` = %d, \
  912. `Firstaid` = %d, \
  913. `Rccam` = %d, \
  914. `Receiver` = %d, \
  915. `GPS` = %d, \
  916. `Sweep` = %d, \
  917. `SweepLeft` = %d, \
  918. `Bugged` = %d,",
  919. PlayerInfo[playerid][pWristwatch],
  920. PlayerInfo[playerid][pSurveillance],
  921. PlayerInfo[playerid][pTire],
  922. PlayerInfo[playerid][pFirstaid],
  923. PlayerInfo[playerid][pRccam],
  924. PlayerInfo[playerid][pReceiver],
  925. PlayerInfo[playerid][pGPS],
  926. PlayerInfo[playerid][pSweep],
  927. PlayerInfo[playerid][pSweepLeft],
  928. PlayerInfo[playerid][pBugged]
  929. );
  930. format(query, sizeof(query), "%s \
  931. `Smslog0` = '%s', \
  932. `Smslog1` = '%s', \
  933. `Smslog2` = '%s', \
  934. `Smslog3` = '%s', \
  935. `Smslog4` = '%s', \
  936. `Smslog5` = '%s', \
  937. `Smslog6` = '%s', \
  938. `Smslog7` = '%s', \
  939. `Smslog8` = '%s', \
  940. `Smslog9` = '%s',",
  941. query,
  942. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog0]),
  943. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog1]),
  944. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog2]),
  945. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog3]),
  946. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog4]),
  947. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog5]),
  948. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog6]),
  949. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog7]),
  950. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog8]),
  951. g_mysql_ReturnEscaped(PlayerInfo[playerid][pSmslog9])
  952. );
  953. format(query, sizeof(query), "%s \
  954. `KillLog0` = '%s', \
  955. `KillLog1` = '%s', \
  956. `KillLog2` = '%s', \
  957. `KillLog3` = '%s', \
  958. `KillLog4` = '%s', \
  959. `KillLog5` = '%s', \
  960. `KillLog6` = '%s', \
  961. `KillLog7` = '%s', \
  962. `KillLog8` = '%s', \
  963. `KillLog9` = '%s',",
  964. query,
  965. PlayerInfo[playerid][pKillLog0],
  966. PlayerInfo[playerid][pKillLog1],
  967. PlayerInfo[playerid][pKillLog2],
  968. PlayerInfo[playerid][pKillLog3],
  969. PlayerInfo[playerid][pKillLog4],
  970. PlayerInfo[playerid][pKillLog5],
  971. PlayerInfo[playerid][pKillLog6],
  972. PlayerInfo[playerid][pKillLog7],
  973. PlayerInfo[playerid][pKillLog8],
  974. PlayerInfo[playerid][pKillLog9]
  975. );
  976. format(query, sizeof(query), "%s \
  977. `pWExists` = %d, \
  978. `pWX` = %f, \
  979. `pWY` = %f, \
  980. `pWZ` = %f, \
  981. `pWVW` = %d, \
  982. `pWInt` = %d, \
  983. `pWValue` = %d, \
  984. `pWSeeds` = %d, \
  985. `Warrants` = %d, \
  986. `JudgeJailTime` = %d, \
  987. `JudgeJailType` = %d, \
  988. `BeingSentenced` = %d, \
  989. `ProbationTime` = %d, \
  990. `DMIndicators` = %d, \
  991. `DMKills` = %d,",
  992. query,
  993. PlayerInfo[playerid][pWExists],
  994. PlayerInfo[playerid][pWX],
  995. PlayerInfo[playerid][pWY],
  996. PlayerInfo[playerid][pWZ],
  997. PlayerInfo[playerid][pWVW],
  998. PlayerInfo[playerid][pWInt],
  999. PlayerInfo[playerid][pWValue],
  1000. PlayerInfo[playerid][pWSeeds],
  1001. PlayerInfo[playerid][pWarrant],
  1002. PlayerInfo[playerid][pJudgeJailTime],
  1003. PlayerInfo[playerid][pJudgeJailType],
  1004. PlayerInfo[playerid][pBeingSentenced],
  1005. PlayerInfo[playerid][pProbationTime],
  1006. PlayerInfo[playerid][pDMIndicators],
  1007. PlayerInfo[playerid][pDMKills]
  1008. );
  1009. format(query, sizeof(query), "%s \
  1010. `DMReport0` = '%s', \
  1011. `DMReport1` = '%s', \
  1012. `DMReport2` = '%s', \
  1013. `DMReport3` = '%s', \
  1014. `DMReport4` = '%s', \
  1015. `DMReport5` = '%s', \
  1016. `DMReport6` = '%s', \
  1017. `DMReport7` = '%s', \
  1018. `DMReport8` = '%s', \
  1019. `DMReport9` = '%s',",
  1020. query,
  1021. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport0]),
  1022. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport1]),
  1023. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport2]),
  1024. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport3]),
  1025. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport4]),
  1026. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport5]),
  1027. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport6]),
  1028. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport7]),
  1029. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport8]),
  1030. g_mysql_ReturnEscaped(PlayerInfo[playerid][pDMReport9])
  1031. );
  1032. format(query, sizeof(query), "%s \
  1033. `Order` = %d, \
  1034. `OBlocked` = %d, \
  1035. `CallsAccepted` = %d, \
  1036. `PatientsDelivered` = %d, \
  1037. `LiveBanned` = %d, \
  1038. `FreezeBank` = %d \
  1039. WHERE `Username` = '%s'",
  1040. query,
  1041. PlayerInfo[playerid][pOrder],
  1042. PlayerInfo[playerid][pOBlocked],
  1043. PlayerInfo[playerid][pCallsAccepted],
  1044. PlayerInfo[playerid][pPatientsDelivered],
  1045. PlayerInfo[playerid][pLiveBanned],
  1046. PlayerInfo[playerid][pFreezeBank],
  1047. accountName
  1048. );
  1049. mysql_query(query, SENDUSERDATA_THREAD, playerid, MainPipeline);
  1050. format(query, sizeof(query), "UPDATE `accounts` SET ");
  1051. for(new i = 0; i < MAX_PLAYERVEHICLES; i++)
  1052. {
  1053. format(query, sizeof(query), "%s `pv%dPosX` = %f,", query, i, PlayerVehicleInfo[playerid][i][pvPosX]);
  1054. format(query, sizeof(query), "%s `pv%dPosY` = %f,", query, i, PlayerVehicleInfo[playerid][i][pvPosY]);
  1055. format(query, sizeof(query), "%s `pv%dPosZ` = %f,", query, i, PlayerVehicleInfo[playerid][i][pvPosZ]);
  1056. format(query, sizeof(query), "%s `pv%dPosAngle` = %f,", query, i, PlayerVehicleInfo[playerid][i][pvPosAngle]);
  1057. format(query, sizeof(query), "%s `pv%dModelId` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvModelId]);
  1058. format(query, sizeof(query), "%s `pv%dLock` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvLock]);
  1059. format(query, sizeof(query), "%s `pv%dLocked` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvLocked]);
  1060. format(query, sizeof(query), "%s `pv%dPaintJob` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvPaintJob]);
  1061. format(query, sizeof(query), "%s `pv%dColor1` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvColor1]);
  1062. format(query, sizeof(query), "%s `pv%dColor2` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvColor2]);
  1063. format(query, sizeof(query), "%s `pv%dPrice` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvPrice]);
  1064. format(query, sizeof(query), "%s `pv%dWeapon0` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvWeapons][0]);
  1065. format(query, sizeof(query), "%s `pv%dWeapon1` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvWeapons][1]);
  1066. format(query, sizeof(query), "%s `pv%dWeapon2` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvWeapons][2]);
  1067. format(query, sizeof(query), "%s `pv%dLock` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvLock]);
  1068. format(query, sizeof(query), "%s `pv%dWepUpgrade` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvWepUpgrade]);
  1069. format(query, sizeof(query), "%s `pv%dFuel` = %f,", query, i, PlayerVehicleInfo[playerid][i][pvFuel]);
  1070. format(query, sizeof(query), "%s `pv%dImpound` = %d,", query, i, PlayerVehicleInfo[playerid][i][pvImpounded]);
  1071. for(new m = 0; m < MAX_MODS; m++)
  1072. {
  1073. if(m == MAX_MODS-1 && MAX_PLAYERVEHICLES-1 == i)
  1074. {
  1075. format(query, sizeof(query), "%s `pv%dMod%d` = %d WHERE `Username` = '%s'", query, i, m, PlayerVehicleInfo[playerid][i][pvMods][m], g_mysql_ReturnEscaped(accountName));
  1076. }
  1077. else
  1078. {
  1079. format(query, sizeof(query), "%s `pv%dMod%d` = %d,", query, i, m, PlayerVehicleInfo[playerid][i][pvMods][m]);
  1080. }
  1081. }
  1082. }
  1083. mysql_query(query, SENDUSERDATA_THREAD, playerid, MainPipeline);
  1084. format(query, sizeof(query), "UPDATE `accounts` SET ");
  1085. for(new i = 0; i < MAX_PLAYERTOYS; i++)
  1086. {
  1087. format(query, sizeof(query), "%s `pt%dModelID` = %d,", query, i, PlayerToyInfo[playerid][i][ptModelID]);
  1088. format(query, sizeof(query), "%s `pt%dBone` = %d,", query, i, PlayerToyInfo[playerid][i][ptBone]);
  1089. format(query, sizeof(query), "%s `pt%dPosX` = %f,", query, i, PlayerToyInfo[playerid][i][ptPosX]);
  1090. format(query, sizeof(query), "%s `pt%dPosY` = %f,", query, i, PlayerToyInfo[playerid][i][ptPosY]);
  1091. format(query, sizeof(query), "%s `pt%dPosZ` = %f,", query, i, PlayerToyInfo[playerid][i][ptPosZ]);
  1092. format(query, sizeof(query), "%s `pt%dRotX` = %f,", query, i, PlayerToyInfo[playerid][i][ptRotX]);
  1093. format(query, sizeof(query), "%s `pt%dRotY` = %f,", query, i, PlayerToyInfo[playerid][i][ptRotY]);
  1094. if(MAX_PLAYERTOYS-1 == i)
  1095. {
  1096. format(query, sizeof(query), "%s `pt%dRotZ` = %f WHERE `Username` = '%s'", query, i, PlayerToyInfo[playerid][i][ptRotZ], g_mysql_ReturnEscaped(accountName));
  1097. }
  1098. else
  1099. {
  1100. format(query, sizeof(query), "%s `pt%dRotZ` = %f,", query, i, PlayerToyInfo[playerid][i][ptRotZ]);
  1101. }
  1102. }
  1103. mysql_query(query, SENDUSERDATA_THREAD, playerid, MainPipeline);
  1104. return 1;
  1105. }
  1106. // g_mysql_ReturnPassword(string accountName[])
  1107. // Description: Returns the account's password.
  1108. stock g_mysql_ReturnPassword(accountName[])
  1109. {
  1110. new string[128], key[64];
  1111. if(g_mysql_DoesAccountExist(accountName))
  1112. {
  1113. format(string, sizeof(string), "SELECT `Key` from accounts WHERE Username = '%s'", accountName);
  1114. mysql_query(string, NO_THREAD, 0, MainPipeline);
  1115. mysql_store_result(MainPipeline);
  1116. if(mysql_retrieve_row())
  1117. {
  1118. mysql_fetch_field_row(key, "Key", MainPipeline);
  1119. }
  1120. mysql_free_result(MainPipeline);
  1121. }
  1122. return key;
  1123. }
  1124. // g_mysql_ConvertAccount(string accountName[])
  1125. // Description: Converts a flatfile within /users/ toward the MySQL database and then deletes it.
  1126. stock g_mysql_ConvertAccount(accountName[])
  1127. {
  1128. new string[128];
  1129. if(doesAccountExist(accountName))
  1130. {
  1131. if(g_mysql_DoesAccountExist(accountName))
  1132. {
  1133. return 0;
  1134. }
  1135. format(string, sizeof(string), "users/%s.ini", accountName);
  1136. new File: Profile = fopen(string, io_read);
  1137. if(Profile)
  1138. {
  1139. new key[256], val[256], Data[256], Query[1024];
  1140. format(string, sizeof(string), "INSERT INTO `accounts` (`Username`) VALUES ('%s')", accountName);
  1141. mysql_query(string, SENDUSERDATA_THREAD, 0, MainPipeline);
  1142. g_mysql_SafeUpdating();
  1143. printf("[MySQL] Converting %s's Profile from File to MySQL Database.", accountName);
  1144. format(Query, sizeof(Query), "UPDATE `accounts` SET");
  1145. while(fread(Profile, Data, sizeof(Data)))
  1146. {
  1147. key = ini_GetKey(Data);
  1148. val = ini_GetValue(Data);
  1149. StripNewLine(val);
  1150. format(Query, sizeof(Query), "%s `%s`='%s',", Query, key, val);
  1151. if(strlen(Query) >= 768)
  1152. {
  1153. format(Query, sizeof(Query), "%s `Username`='%s' WHERE `Username`='%s'", Query, accountName, accountName);
  1154. mysql_query(Query, SENDUSERDATA_THREAD, 0, MainPipeline);
  1155. format(Query, sizeof(Query), "UPDATE `accounts` SET ");
  1156. }
  1157. }
  1158. fclose(Profile);
  1159. format(Query, sizeof(Query), "%s `Username`='%s' WHERE `Username`='%s'", Query, accountName, accountName);
  1160. mysql_query(Query, SENDUSERDATA_THREAD, 0, MainPipeline);
  1161. printf("[MySQL] %s's Profile Conversion has been completed!", accountName);
  1162. return 1;
  1163. }
  1164. }
  1165. return 0;
  1166. }