23.02.2009, 16:37
Hey there,
I'm currently running a modified version of LVRCR 1.8.
The car system on it, is flawed and I can't seem to figure out how to fix it. Basically, the problem is that when a player purchases a car, the script stores the ID of the player, instead of the playername. So here's a hypothetical situation:
Me (ID: 0) buys car.
I log out.
Someone else logs into server and becomes ID: 0.
That person now owns my car!
Can anyone help me?
Pawno (Car Command):
All the way to 10... etc...
Pawno (Message):
I'm currently running a modified version of LVRCR 1.8.
The car system on it, is flawed and I can't seem to figure out how to fix it. Basically, the problem is that when a player purchases a car, the script stores the ID of the player, instead of the playername. So here's a hypothetical situation:
Me (ID: 0) buys car.
I log out.
Someone else logs into server and becomes ID: 0.
That person now owns my car!
Can anyone help me?
Pawno (Car Command):
Код:
if(strcmp(cmd,"/buycar",true)==0) { if(IsSpawned[playerid] == 0) { SendClientMessage(playerid, COLOR_ERROR, "You are dead. You cannot use this command"); return 1; } //if(IsSpawned[playerid] == 1) { //SendClientMessage(playerid, COLOR_ERROR, "This command has been disabled due to upgrades. Check back soon"); //return 1; //} if(Jailed[playerid] == 1) { SendClientMessage(playerid, COLOR_ERROR, "You cannot use this command in jail"); return 1; } if(!IsPlayerInCheckpoint(playerid)) { SendClientMessage(playerid,COLOR_ERROR,"You need to be in the checkpoint at AutoBahn to attempt to sell a car"); return 1; } autobahnowner[playerid]=dUserINT(PlayerName(playerid)).("autobahnowner"); if(autobahnowner[playerid] == 1337) { SendClientMessage(playerid,COLOR_ERROR,"You are the owner of AutoBahn. You cannot buy any vehicle from AutoBahn"); return 1; } if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == 19) { if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SendClientMessage(playerid, 0xA9A9A9AA, "|_Vehicle Purchase Failed_|"); SendClientMessage(playerid, COLOR_ERROR, "You cannot be in a car when using this command"); return 1; } new buyername[24]; GetPlayerName(playerid,buyername, 24); new x_nr[256]; x_nr = strtok(cmdtext, idx); if(!strlen(x_nr)) { SendClientMessage(playerid, COLOR_ERROR, "USAGE: /buycar 1-10"); return 1; } if(strcmp(x_nr,"1",true) == 0) { if(GetPlayerMoney(playerid) <= 39999) { SendClientMessage(playerid, 0xA9A9A9AA, "|_Vehicle Purchase Failed_|"); SendClientMessage(playerid, COLOR_ERROR, "You cannot afford to buy a Sultan car ($40000)"); return 1; } new boughtcar; GetPlayerName(playerid,buyername,24); boughtcar = CreateVehicle(560, 2174.2114,1421.0642,10.5913,91.0247, -1, -1, 99999999999); BoughtCars[boughtcar] =999; BoughtCarsOwner[boughtcar] =playerid; SendClientMessage(playerid, 0xA9A9A9AA, "|_Vehicle Purchased_|"); SendClientMessage(playerid, 0x00C7FFAA, "You have bought a Sultan vehicle from AutoBahn for $40000"); GivePlayerMoney(playerid,-40000); PutPlayerInVehicle(playerid, boughtcar, 0); printf("**(CAR PURCHASE)** %s(%d) has purchased a Sultan car from AutoBahn ($40000)",buyername,playerid); for(new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { autobahnowner[i]=dUserINT(PlayerName(i)).("autobahnowner"); if(autobahnowner[i] == 1337) { new autoowner[24]; GetPlayerName(i,autoowner,24); SendClientMessage(i, 0xA9A9A9AA, "|_Vehicle Sold_|"); format(string, sizeof(string), "AutoBahn salesmen have sold a Sultan vehicle to %s(%d) - You receive $40000",buyername,playerid); SendClientMessage(i, 0x00C7FFAA, string); SendClientMessage(i, 0x00C7FFAA, "You can sell the AutoBahn business to a player using /sellautobahn (id)"); GivePlayerMoney(i,40000); printf("**(CAR PURCHASE CASH)** AutoBahn owner %s(%d) has received $40000 from a Sultan car sale",autoowner,i); } } } } else if(strcmp(x_nr,"2",true) == 0) { if(GetPlayerMoney(playerid) <= 59999) { SendClientMessage(playerid, 0xA9A9A9AA, "|_Vehicle Purchase Failed_|"); SendClientMessage(playerid, COLOR_ERROR, "You cannot afford to buy a Elegy car ($60000)"); return 1; } new boughtcar; GetPlayerName(playerid,buyername,24); boughtcar = CreateVehicle(562, 2174.2114,1421.0642,10.5913,91.0247, -1, -1, 99999999999); BoughtCars[boughtcar] =999; BoughtCarsOwner[boughtcar] =playerid; SendClientMessage(playerid, 0xA9A9A9AA, "|_Vehicle Purchased_|"); SendClientMessage(playerid, 0x00C7FFAA, "You have bought a Elegy vehicle from AutoBahn for $60000"); GivePlayerMoney(playerid,-60000); PutPlayerInVehicle(playerid, boughtcar, 0); printf("**(CAR PURCHASE)** %s(%d) has purchased a Elegy car from AutoBahn ($60000)",buyername,playerid); for(new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { autobahnowner[i]=dUserINT(PlayerName(i)).("autobahnowner"); if(autobahnowner[i] == 1337) { new autoowner[24]; GetPlayerName(i,autoowner,24); SendClientMessage(i, 0xA9A9A9AA, "|_Vehicle Sold_|"); format(string, sizeof(string), "AutoBahn salesmen have sold a Elegy vehicle to %s(%d) - You receive $60000",buyername,playerid); SendClientMessage(i, 0x00C7FFAA, string); SendClientMessage(i, 0x00C7FFAA, "You can sell the AutoBahn business to a player using /sellautobahn (id)"); GivePlayerMoney(i,60000); printf("**(CAR PURCHASE CASH)** AutoBahn owner %s(%d) has received $60000 from a Elegy car sale",autoowner,i); } } } }
Pawno (Message):
Код:
new string[256]; if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && BoughtCars[GetPlayerVehicleID(playerid)] == 999 && BoughtCarsOwner[GetPlayerVehicleID(playerid)] != playerid) { SendClientMessage(playerid,COLOR_YELLOW,"This car has been purchased from AutoBahn. You are not the owner"); format(string, sizeof(string), "This vehicle is registered to playerid: %d",BoughtCarsOwner[GetPlayerVehicleID(playerid)]); SendClientMessage(playerid, COLOR_YELLOW, string); RemovePlayerFromVehicle(playerid); return 1;