SA-MP Forums Archive
Mysql car loading and saving huge problem. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Mysql car loading and saving huge problem. (/showthread.php?tid=600278)



Mysql car loading and saving huge problem. - AlterEGO - 06.02.2016

EDIT: Alright I think I figured what's causing this. Maybe it's the actual command who does this. Anyone can take a quick look at these? Again, the problem is that every player recieves the bought vehicle into his own statstics instead of the actual buyer.


Commands: (/buybiz /buyvehicle.)

PHP код:
if(strcmp(cmd"/buyvehicle"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            
tmp strtok(cmdtextidx);
            if(!
IsAtDealership(playerid))
            {
                return 
1;
            }
            if(!
strlen(tmp))
            {
                if(
PlayerToPoint(3.0playerid,2130.7195,-1147.0983,24.3918))
                {
                    
SendClientMessage(playerid,COLOR_YELLOW2,"BMX (25000) (481), Faggio (45000) (462), Freeway (50000) (463), Clover (65000) (542)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Sanchez (70000) (468), PCJ-600 (75000) (461), Majestic (79000) (517), Tahoma (80000) (566)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Picador (80000) (600), Voodoo (85000) (412), Sabre (90000) (475), Buccaneer (90000) (518)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Bobcat (100000) (422), Mesa (100000) (500), Tornado (100000) (576)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Hermes (100000) (474), Greenwood (110000) (492), Blade (120000) (536), Merit (120000) (551)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Feltzer (120000) (533), Sentinel (130000) (405), Stratum (130000) (561), Premier (130000) (426)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Washington (130000) (421), Broadway (140000) (575), Remmington (140000) (534)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Sunrise (150000) (550), Burrito (150000) (482), Glendale (150000) (466), Stallion (155000) (439)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Savanna (160000) (567), Landstalker (165000) (400), Slamvan (200000) (535), Yosemite (200000) (554)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Admiral (200000) (445), Virgo (210000) (491), Stafford (215000) (580)");
                    
SendClientMessage(playerid,COLOR_YELLOW,"Glendale Shit (50000} (604), Camper (70000) (483), FCR-900 (75000) (521), Super GT (450000) (506)");
                    
SendClientMessage(playerid,COLOR_YELLOW,"Hustler (125000) (545), Vincent (78000) (540), Blista Compact (160000) (496)");
                    
SendClientMessage(playerid,COLOR_YELLOW,"Regina (120000) (479), Phoenix (310000) (603), Emperor (150000) (585), Tampa (100000) (549)");
                    
SendClientMessage(playerid,COLOR_YELLOW,"Primo (165000) (547), Intruder (120000) (546), Willard (130000) (529), Cadrona (150000) (527)");
                    
SendClientMessage(playerid,COLOR_YELLOW,"Fortune (130000) (526), Nebula (120000) (516), Bike (35000) (509), Previon (70000) (436)");
                }
                else if(
PlayerToPoint(3.0playerid,535.0407,-1290.8215,17.1243))
                {
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Rancher (240000) (489), Stallion (220000) (439) Huntley (275000) (579), Alpha (170000) (602), Windsor (200000) (555)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Club (200000) (589), Buffalo (200000) (402), Uranus (245000) (558), Elegy (300000) (562)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Flash (300000) (565), ZR-350 (300000) (477), Jester (440000) (559), Comet (480000) (480)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Cheetah (500000) (415), Sultan (575000) (560), NRG-500 (600000) (522), Banshee (670000) (429)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Bullet (700000) (541), Turismo (700000) (451), Infernus (720000) (411)");
                }
                else if(
PlayerToPoint(3.0playerid,1925.2889,-2261.9919,13.5469))
                {
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Sparrow (500000) (469), Cropduster (700000) (512), Dodo (750000) (593), Rustler (800000) (476)");
                    
SendClientMessage(playerid,COLOR_YELLOW2,"Leviathan (850000) (417), Maverick (900000) (487), Beagle (1000000) (511), Stunt (1500000) (513)");
                }
                else
                {
                    
SendClientMessage(playeridCOLOR_WHITE"You aren't near enough to a dealership pickup.");
                    return 
1;
                }
                
SendClientMessage(playeridCOLOR_GRAD2"{33CCFF}USAGE:{FFFFFF} /buyvehicle [ModelID] [ColorID] [ColorID]");
                return 
1;
            }
            new 
vehicle;
            
vehicle strval(tmp);
            
tmp strtok(cmdtextidx);
              if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_GRAD2"{33CCFF}USAGE:{FFFFFF} /buyvehicle [ModelID] [ColorID] [ColorID]");
                return 
1;
            }
            new 
color1;
            
color1 strval(tmp);
            
tmp strtok(cmdtextidx);
              if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_GRAD2"{33CCFF}USAGE:{FFFFFF} /buyvehicle [ModelID] [ColorID] [ColorID]");
                return 
1;
            }
            new 
color2;
            
color2 strval(tmp);
            new 
vehicleprice;
            if(
color1 && color1 126)
            {
                  
SendClientMessage(playeridCOLOR_GREY"   Wrong color id!");
                  return 
1;
            }
            if(
color2 && color2 126)
            {
                  
SendClientMessage(playeridCOLOR_GREY"   Wrong color id!");
                  return 
1;
            }
            if(
PlayerToPoint(3.0playerid,2130.7195,-1147.0983,24.3918))
            {
                if(
vehicle == 481) { vehicleprice 25000; }
                else if(
vehicle == 426) { vehicleprice 130000; }
                else if(
vehicle == 542) { vehicleprice 60000; }
                else if(
vehicle == 462) { vehicleprice 45000; }
                else if(
vehicle == 463) { vehicleprice 50000; }
                else if(
vehicle == 468) { vehicleprice 70000; }
                else if(
vehicle == 461) { vehicleprice 75000; }
                else if(
vehicle == 517) { vehicleprice 79000; }
                else if(
vehicle == 566) { vehicleprice 80000; }
                else if(
vehicle == 600) { vehicleprice 80000; }
                else if(
vehicle == 412) { vehicleprice 85000; }
                else if(
vehicle == 475) { vehicleprice 90000; }
                else if(
vehicle == 518) { vehicleprice 90000; }
                else if(
vehicle == 422) { vehicleprice 100000; }
                else if(
vehicle == 500) { vehicleprice 100000; }
                else if(
vehicle == 576) { vehicleprice 100000; }
                else if(
vehicle == 474) { vehicleprice 100000; }
                else if(
vehicle == 492) { vehicleprice 110000; }
                else if(
vehicle == 536) { vehicleprice 120000; }
                else if(
vehicle == 551) { vehicleprice 120000; }
                else if(
vehicle == 533) { vehicleprice 120000; }
                else if(
vehicle == 405) { vehicleprice 130000; }
                else if(
vehicle == 561) { vehicleprice 130000; }
                else if(
vehicle == 421) { vehicleprice 130000; }
                else if(
vehicle == 575) { vehicleprice 140000; }
                else if(
vehicle == 534) { vehicleprice 140000; }
                else if(
vehicle == 550) { vehicleprice 150000; }
                else if(
vehicle == 482) { vehicleprice 150000; }
                else if(
vehicle == 466) { vehicleprice 150000; }
                else if(
vehicle == 567) { vehicleprice 160000; }
                else if(
vehicle == 400) { vehicleprice 165000; }
                else if(
vehicle == 535) { vehicleprice 200000; }
                else if(
vehicle == 554) { vehicleprice 200000; }
                else if(
vehicle == 445) { vehicleprice 200000; }
                else if(
vehicle == 491) { vehicleprice 210000; }
                else if(
vehicle == 580) { vehicleprice 215000; }
                else if(
vehicle == 604) { vehicleprice 50000; }
                else if(
vehicle == 483) { vehicleprice 70000; }
                else if(
vehicle == 521) { vehicleprice 75000; }
                else if(
vehicle == 540) { vehicleprice 78000; }
                else if(
vehicle == 545) { vehicleprice 125000; }
                else if(
vehicle == 496) { vehicleprice 160000; }
                else if(
vehicle == 479) { vehicleprice 120000; }
                else if(
vehicle == 439) { vehicleprice 155000; }
                else if(
vehicle == 603) { vehicleprice 310000; }
                else if(
vehicle == 585) { vehicleprice 150000; }
                else if(
vehicle == 549) { vehicleprice 100000; }
                else if(
vehicle == 547) { vehicleprice 165000; }
                else if(
vehicle == 546) { vehicleprice 120000; }
                else if(
vehicle == 529) { vehicleprice 130000; }
                else if(
vehicle == 527) { vehicleprice 150000; }
                else if(
vehicle == 526) { vehicleprice 130000; }
                else if(
vehicle == 516) { vehicleprice 120000; }
                else if(
vehicle == 509) { vehicleprice 35000; }
                else if(
vehicle == 506) { vehicleprice 450000; }
                else if(
vehicle == 436) { vehicleprice 70000; }
                else { 
SendClientMessage(playerid,COLOR_GREY," Invalid ModelID !"); return 1; }
            }
            else if(
PlayerToPoint(3.0playerid,535.0407,-1290.8215,17.1243))
            {
                if(
vehicle == 489) { vehicleprice 240000; }
                else if(
vehicle == 439) { vehicleprice 220000; }
                else if(
vehicle == 579) { vehicleprice 275000; }
                else if(
vehicle == 602) { vehicleprice 170000; }
                else if(
vehicle == 555) { vehicleprice 200000; }
                else if(
vehicle == 402) { vehicleprice 200000; }
                else if(
vehicle == 558) { vehicleprice 245000; }
                else if(
vehicle == 589) { vehicleprice 200000; }
                else if(
vehicle == 562) { vehicleprice 300000; }
                else if(
vehicle == 565) { vehicleprice 300000; }
                else if(
vehicle == 477) { vehicleprice 300000; }
                else if(
vehicle == 559) { vehicleprice 440000; }
                else if(
vehicle == 480) { vehicleprice 480000; }
                else if(
vehicle == 415) { vehicleprice 500000; }
                else if(
vehicle == 560) { vehicleprice 575000; }
                else if(
vehicle == 522) { vehicleprice 600000; }
                else if(
vehicle == 429) { vehicleprice 670000; }
                else if(
vehicle == 541) { vehicleprice 700000; }
                else if(
vehicle == 451) { vehicleprice 700000; }
                else if(
vehicle == 411) { vehicleprice 720000; }
                else { 
SendClientMessage(playerid,COLOR_GREY," Invalid ModelID !"); return 1; }
            }
            else if(
PlayerToPoint(3.0playerid,1925.2889,-2261.9919,13.5469))
            {
                if(
vehicle == 469) { vehicleprice 500000; }
                else if(
vehicle == 512) { vehicleprice 700000; }
                else if(
vehicle == 593) { vehicleprice 750000; }
                else if(
vehicle == 467) { vehicleprice 800000; }
                else if(
vehicle == 417) { vehicleprice 850000; }
                else if(
vehicle == 487) { vehicleprice 900000; }
                else if(
vehicle == 511) { vehicleprice 1000000; }
                else if(
vehicle == 513) { vehicleprice 1500000; }
                else { 
SendClientMessage(playerid,COLOR_GREY," Invalid ModelID !"); return 1; }
            }
            else if(
PlayerToPoint(3.0playerid,2941.5188,-2051.4182,3.5480))
            {
                if(
vehicle == 473) { vehicleprice 400000; }
                else if(
vehicle == 453) { vehicleprice 500000; }
                else if(
vehicle == 454) { vehicleprice 600000; }
                else if(
vehicle == 452) { vehicleprice 700000; }
                else if(
vehicle == 446) { vehicleprice 750000; }
                else if(
vehicle == 493) { vehicleprice 800000; }
                else { 
SendClientMessage(playerid,COLOR_GREY," Invalid ModelID !"); return 1; }
            }
            else
            {
                
SendClientMessage(playeridCOLOR_RED"You are not near any dealership!");
                return 
1;
            }
            if(
vehicleprice == 0) { return 1; }
            if(
WeekendType == 4)
            {
                
format(stringsizeof(string), "Vehicles are on 20% sale (the price is %d instead of%d) (Vehicle sale weekend!)"vehicleprice*8/10,vehicleprice);
                
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                
vehicleprice=vehicleprice*8/10;
            }
            if(
GetPlayerPCash(playerid) < vehicleprice)
            {
                
SendClientMessage(playerid,COLOR_GREY," You cannot afford this vehicle !");
                return 
1;
            }
            if(
ForwardOwnCar(1,playerid)) { SendClientMessage(playerid,COLOR_GREY,"You already have a vehicle spawned, Please /v despawn it"); return 1; }
            else if(
ForwardOwnCar(2,playerid)) { SendClientMessage(playerid,COLOR_GREY,"You already have a vehicle spawned, Please /v despawn it"); return 1; }
            else if(
ForwardOwnCar(3,playerid)) { SendClientMessage(playerid,COLOR_GREY,"You already have a vehicle spawned, Please /v despawn it"); return 1; }
            if(
PlayerInfo[playerid][pCarkey] != SCRIPT_CARS && PlayerInfo[playerid][pCarkey2] != SCRIPT_CARS && PlayerInfo[playerid][pCarkey3] != SCRIPT_CARS)
            {
                
SendClientMessage(playerid,COLOR_GREY," You already have 3 key slots !");
                return 
1;
            }
            new 
found 0;
            for(new 
0sizeof(CarInfo); i++) //for(new i = 0; i < sizeof(CarInfo); i++)
              
{
                if(
found != 1)
                {
                    if(
CarInfo[i][cOwned] == 0)
                    {
                        
found 1;
                        
CarInfo[i][cMod][0] = 0;
                        
CarInfo[i][cMod][1] = 0;
                        
CarInfo[i][cMod][2] = 0;
                        
CarInfo[i][cMod][3] = 0;
                        
CarInfo[i][cMod][4] = 0;
                        
CarInfo[i][cMod][5] = 0;
                        
CarInfo[i][cMod][6] = 0;
                        
CarInfo[i][cMod][7] = 0;
                        
CarInfo[i][cMod][8] = 0;
                        
CarInfo[i][cMod][9] = 0;
                        if(
PlayerInfo[playerid][pCarkey] == SCRIPT_CARS)
                        {
                             
PlayerInfo[playerid][pCarkey] = i;
                        }
                        else if(
PlayerInfo[playerid][pCarkey2] == SCRIPT_CARS)
                        {
                            
PlayerInfo[playerid][pCarkey2] = i;
                        }
                        else if(
PlayerInfo[playerid][pCarkey3] == SCRIPT_CARS)
                        {
                            
PlayerInfo[playerid][pCarkey3] = i;
                        }
                        
format(stringsizeof(string), "You have bought a %s, for $%d.",VehicleName[vehicle-400],vehicleprice);
                        
SendClientMessage(playerid,COLOR_WHITE,string);
                        
SendClientMessage(playerid,COLOR_WHITE,"remember to /v park your vehicle, Also /v for other commands.");
                        
GivePlayerPCash(playerid,-vehicleprice);
                        
CarInfo[i][cOwned] = 1;
                        
CarInfo[i][cModel] = vehicle;
                        
format(stringsizeof(string), "%s",VehicleName[vehicle-400]);
                        
strmid(CarInfo[i][cDescription], string0strlen(string), 255);
                        
CarInfo[i][cValue] = vehicleprice;
                        
CarInfo[i][cColorOne] = color1;
                        
CarInfo[i][cColorTwo] = color2;
                        
CarInfo[i][cLock] = 0;
                        new 
Float:yx,Float:yy,Float:yz,Float:urangle;
                        
GetPlayerPos(playeridyxyyyz);
                        
GetPlayerFacingAngle(playerid,urangle);
                        
CarInfo[i][cLocationx] = yx;
                        
CarInfo[i][cLocationy] = yy;
                        
CarInfo[i][cLocationz] = yz;
                        
CarInfo[i][cAngle] = urangle;
                        
CarInfo[i][cDonate] = 0;
                        
CarInfo[i][cFuel] = 100;
                        
CarInfo[i][cTrunkWep][1] = 0;
                        
CarInfo[i][cTrunkWep][2] = 0;
                        
CarInfo[i][cTrunkWep][3] = 0;
                        
CarInfo[i][cTrunkWep][4] = 0;
                        
CarInfo[i][cTrunkAmmo][1] = 0;
                        
CarInfo[i][cTrunkAmmo][2] = 0;
                        
CarInfo[i][cTrunkAmmo][3] = 0;
                        
CarInfo[i][cTrunkAmmo][4] = 0;
                        
CarInfo[i][cTrunkArmour] = 0.0;
                        
CarInfo[i][cTrunkCounter] = 0;
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        
format(stringsizeof(string), "%s"sendername);
                        
strmid(CarInfo[i][cOwner], string0strlen(string), 255);
                        new 
carid AddStaticVehicleEx(CarInfo[i][cModel],CarInfo[i][cLocationx],CarInfo[i][cLocationy],CarInfo[i][cLocationz]+1,CarInfo[i][cAngle],CarInfo[i][cColorOne],CarInfo[i][cColorTwo],3600);
                        
VehicleOwned[carid] = i;
                        
//SaveCars();
                        
OnPlayerDataSave(playerid);
                        return 
1;
                        }
                    }
                  }
            if(
found != 1)
            {
                
SendClientMessage(playeridCOLOR_WHITE"Sorry, all the Vehicle Slots have been used please inform an admin.");
            }
        }
        return 
1;
    } 
PHP код:
if(strcmp(cmd"/buybiz"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            new 
Float:oldposxFloat:oldposyFloat:oldposz;
            
GetPlayerName(playeridplayernamesizeof(playername));
            
GetPlayerPos(playeridoldposxoldposyoldposz);
            if(
PlayerInfo[playerid][pPbiskey] != 255)
            {
                
SendClientMessage(playeridCOLOR_WHITE"   You already own a business, type /sellbiz if you want to buy this one.");
                return 
1;
            }
            for(new 
0sizeof(SBizzInfo); b++)
            {
                if(
PlayerToPoint(2.0playeridSBizzInfo[b][sbEntranceX], SBizzInfo[b][sbEntranceY], SBizzInfo[b][sbEntranceZ]) && SBizzInfo[b][sbOwned] == 0)
                {
                    if(
PlayerInfo[playerid][pLevel] < SBizzInfo[b][sbLevelNeeded] &&  PlayerInfo[playerid][pFB] == 0)
                    {
                        
format(stringsizeof(string), "You Must Be Level %d To Purchase This",SBizzInfo[b][sbLevelNeeded]);
                        
SendClientMessage(playeridCOLOR_GRAD5string);
                        return 
1;
                    }
                    if(
GetPlayerPCash(playerid) >= SBizzInfo[b][sbBuyPrice]  || PlayerInfo[playerid][pFB] == 1)
                    {
                        
PlayerInfo[playerid][pPbiskey] = b+100;
                        
SBizzInfo[b][sbOwned] = 1;
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        
strmid(SBizzInfo[b][sbOwner], sendername0strlen(sendername), 255);
                        if(
PlayerInfo[playerid][pFB] == 0)
                        {
                            if(
WeekendType == 5)
                            {
                                
GivePlayerPCash(playerid,-SBizzInfo[b][sbBuyPrice]*8/10);
                                
SendClientMessage(playerid,COLOR_LIGHTBLUE,"It's properties weekend! Every property is worth 20% less. Congratulations!");
                            }
                            else
                            {
                                
GivePlayerPCash(playerid,-SBizzInfo[b][sbBuyPrice]);
                            }
                        }
                        
DestroyPickup(SBizzInfo[b][sbPickupID]);
                        
SBizzInfo[b][sbPickupID]=CreatePickup(12391SBizzInfo[b][sbEntranceX], SBizzInfo[b][sbEntranceY], SBizzInfo[b][sbEntranceZ]);
                        
SendClientMessage(playeridCOLOR_WHITE"Congratulations, On your New Purchase.");
                        
SendClientMessage(playeridCOLOR_WHITE"Type /help to review the new business help section.");
                        
//OnPropUpdate();
                        
HouseEntered[playerid] = b;
                        
OnPlayerDataSave(playerid);
                        return 
1;
                    }
                    else
                    {
                        
SendClientMessage(playeridCOLOR_WHITE"You don't have the cash for that");
                        return 
1;
                    }
                }
            }
            for(new 
0sizeof(BizzInfo); b++)
            {
                if(
PlayerToPoint(2.0playeridBizzInfo[b][bEntranceX], BizzInfo[b][bEntranceY], BizzInfo[b][bEntranceZ]) && BizzInfo[b][bOwned] == 0)
                {
                    if(
PlayerInfo[playerid][pLevel] < BizzInfo[b][bLevelNeeded] &&  PlayerInfo[playerid][pFB] == 0)
                    {
                        
format(stringsizeof(string), "You Must Be Level %d To Purchase This",BizzInfo[b][bLevelNeeded]);
                        
SendClientMessage(playeridCOLOR_GRAD5string);
                        return 
1;
                    }
                    if(
GetPlayerPCash(playerid) >= BizzInfo[b][bBuyPrice]  || PlayerInfo[playerid][pFB] == 1)
                    {
                        
PlayerInfo[playerid][pPbiskey] = b;
                        
BizzInfo[b][bOwned] = 1;
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        
strmid(BizzInfo[b][bOwner], sendername0strlen(sendername), 255);
                        if(
PlayerInfo[playerid][pFB] == 0)
                        {
                            
GivePlayerPCash(playerid,-BizzInfo[b][bBuyPrice]);
                        }
                        
//PlayerPlayMusic(playerid);
                        
SetPlayerInterior(playerid,BizzInfo[b][bInterior]);
                        
PlayerInfo[playerid][pInt] = BizzInfo[b][bInterior];
                        
DestroyPickup(BizzInfo[b][bPickupID]);
                        
BizzInfo[b][bPickupID]=CreatePickup(12391BizzInfo[b][bEntranceX], BizzInfo[b][bEntranceY], BizzInfo[b][bEntranceZ]);
                        
SetPlayerPos(playerid,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
                        
GameTextForPlayer(playerid"~w~Welcome~n~You can exit at any time by moving to this door and typing /exit"50003);
                        
PlayerInfo[playerid][pInt] = BizzInfo[b][bInterior];
                        
PlayerInfo[playerid][pLocal] = ;
                        
SendClientMessage(playeridCOLOR_WHITE"Congratulations, On your New Purchase.");
                        
SendClientMessage(playeridCOLOR_WHITE"Type /help to review the new business help section.");
                        
//OnPropUpdate();
                        
HouseEntered[playerid] = b;
                        
OnPlayerDataSave(playerid);
                        
SetPlayerVirtualWorld(playerid,b);
                        return 
1;
                    }
                    else
                    {
                        
SendClientMessage(playeridCOLOR_WHITE"You don't have the cash for that");
                        return 
1;
                    }
                }
            }
        }
        return 
1;
    }