26.08.2014, 14:36
Hello,
I have a problem with y_iterate. I thing something wrong is with Iter_Add.
I'am loading vehicles and add it to variable "new IteratorArray:PlayerVehicles[MAX_PLAYERS]<MAX_VEHICLES>;"
Then I'am call command:
Everything ok, BUT when I buy vehicle and do same to add vehicleid to iterate, it's show nothing.
Yes, first I've used " foreach(new vehicleid : PlayerVehicles[playerid])" but it's same
And strange is it show normal Iter_Count, but doesn't show vehicles.
Sorry for my bad english.
I have a problem with y_iterate. I thing something wrong is with Iter_Add.
I'am loading vehicles and add it to variable "new IteratorArray:PlayerVehicles[MAX_PLAYERS]<MAX_VEHICLES>;"
Then I'am call command:
Код:
CMD:carcontrol(playerid) { printf("%i\n%i %i %i", Iter_Count(PlayerVehicles[playerid]), Iter_First(PlayerVehicles[playerid]), Iter_End(PlayerVehicles[playerid]), Iter_Next(PlayerVehicles[playerid], Iter_First(PlayerVehicles[playerid]))); if(Iter_Count(PlayerVehicles[playerid]) != 0) { new vehicles, string[ 200 ] ; strcat(string, "Press on vehicle for more info\n"); for (new i = Iter_First(PlayerVehicles[playerid]); i != Iter_End(PlayerVehicles[playerid]); i = Iter_Next(PlayerVehicles[playerid], i)) { vehicles++; format(string, sizeof(string), "%s%i. %s\n",string, vehicles, aVehicleNames[ Vehicle[ i ][ vModel ] - 400 ]); } //if(vehicles == 0) return SendClientMessage(playerid, -1, "You don't have any vehicle!"); ShowPlayerDialog(playerid, DIALOG_CARSLIST, DIALOG_STYLE_LIST, "Car control", string, "Select", "Abort"); } return 1; }
Yes, first I've used " foreach(new vehicleid : PlayerVehicles[playerid])" but it's same
And strange is it show normal Iter_Count, but doesn't show vehicles.
Sorry for my bad english.
Код:
case DIALOG_CARBUY: { Iter_Init(PlayerVehicles); new car = GetPVarInt(playerid, "viewingcar"); if(response) { if( Player[ playerid ][ pMoney ] < carShopInfo[ car ][ csPrice ] ) return SendClientMessage(playerid, -1, "Tiek pinigų neturite!"); new rand = random(sizeof(randCarShopSpawn)); new tmp = CreateVehicle(carShopInfo[ car ][ csModel ], randCarShopSpawn[ rand ][ 0 ], randCarShopSpawn[ rand ][ 1 ], randCarShopSpawn[ rand ][ 2 ], randCarShopSpawn[ rand ][ 3 ], carShopInfo[ car ][ csColor1 ],carShopInfo[ car ][ csColor2 ], -1); Iter_Add(PlayerVehicles[ playerid ], tmp); TogglePlayerSpectating( playerid, false ); PutPlayerInVehicle(playerid, tmp, 0); SetPVarInt(playerid, "carshoptd", 0); for(new i = 10; i <= 16; i++) TextDrawHideForPlayer(playerid, Textdraw[ i ]); PlayerTextDrawHide(playerid, pTextdraw[ playerid ][ 2 ]); CancelSelectTextDraw(playerid); Player[ playerid ][ pMoney ] -= carShopInfo[ car ][ csPrice ]; GivePlayerMoney(playerid, -carShopInfo[ car ][ csPrice ]); new query[ 130 ]; inline vehiclebuy(vehicleid){ Vehicle[ vehicleid ][ vID ] = cache_insert_id(); Vehicle[ vehicleid ][ vOwnerType ] = true; Vehicle[ vehicleid ][ vOwnerID ] = Player[ playerid ][ pID ]; Vehicle[ vehicleid ][ vLocked ] = true; Vehicle[ vehicleid ][ vColor ][ 0 ] = carShopInfo[ car ][ csColor1 ]; Vehicle[ vehicleid ][ vColor ][ 1 ] = carShopInfo[ car ][ csColor2 ]; Vehicle[ vehicleid ][ vKeysOwnerID ] = Player[ playerid ][ pID ]; } mysql_format(SQL, query, sizeof(query), "INSERT INTO vehicles (vOwnerID, vModel, vLocked, vColor1, vColor2, vKeysOwnerID) VALUES ('%i','%i', '1','%i','%i','%i')", Player[ playerid ][ pID ], carShopInfo[ car ][ csModel ], carShopInfo[ car ][ csColor1 ],carShopInfo[ car ][ csColor2 ], Player[ playerid ][ pID ]); mysql_tquery_inline(SQL, query, using inline vehiclebuy, "i", tmp); } }
Код:
stock LoadPlayerVehicles( playerid ) { new query[ 50 ]; inline vehicleload(pid){ #pragma unused pid if(cache_num_rows()) { Iter_Init(PlayerVehicles); for(new i = 0; i < cache_get_row_count(); i++){ new vehicleid = CreateVehicle(cache_get_field_content_int(i, "vModel"), cache_get_field_content_float(i, "vPosX"), cache_get_field_content_float(i, "vPosY"), cache_get_field_content_float(i, "vPosZ"), cache_get_field_content_float(i, "vPosA"), cache_get_field_content_int(i, "vColor1"), cache_get_field_content_int(i, "vColor2"), -1); Vehicle[ vehicleid ][ vOwnerType ] = true; Vehicle[ vehicleid ][ vID ] = cache_get_field_content_int(i, "vID"); Vehicle[ vehicleid ][ vOwnerID ] = Player[ playerid ][ pID ]; Vehicle[ vehicleid ][ vModel ] = GetVehicleModel(vehicleid); Vehicle[ vehicleid ][ vLocked ] = !!cache_get_field_content_int(i, "vLocked"); Vehicle[ vehicleid ][ vColor ][ 0 ] = cache_get_field_content_int(i, "vColor1"); Vehicle[ vehicleid ][ vColor ][ 1 ] = cache_get_field_content_int(i, "vColor2"); Vehicle[ vehicleid ][ vColor ][ 2 ] = cache_get_field_content_int(i, "vPaintjob"); Vehicle[ vehicleid ][ vKeysOwnerID ] = cache_get_field_content_int(i, "vKeysOwnerID"); Iter_Add(PlayerVehicles[ playerid ], vehicleid); } return 1; } } mysql_format(SQL, query, sizeof(query), "SELECT * FROM vehicles WHERE vOwnerID='%i'", Player[ playerid ][ pID ] ); mysql_tquery_inline(SQL, query, using inline vehicleload, "i", playerid); return 1; }