stock LoadObjects() { new data[512], objects = 0; mysql_query("SELECT * FROM `gamemode_objects`"); mysql_store_result(); while(mysql_fetch_row_format(data, "|") == 1) { new model, Float:pos[3], Float:rot[3], vw, int, other; sscanf(data, "p<|>ddddddffffff", other, model, other, other, vw, int, pos[0], pos[1], pos[2], rot[0], rot[1], rot[2]); if( vw == -1 ) vw = 0; new objectid = CreateDynamicObject(model, pos[0], pos[1], pos[2], rot[0], rot[1], rot[2], vw, int, -1, 500.0, 500.0); Iter_Add(Objects, objectid); sscanf(data, "p<|>ddddddffffff", pObject[objectid][object_uid], pObject[objectid][object_model], pObject[objectid][object_owner_type], pObject[objectid][object_owner_uid], pObject[objectid][object_virtual], pObject[objectid][object_interior], pObject[objectid][object_pos_x], pObject[objectid][object_pos_y], pObject[objectid][object_pos_z], pObject[objectid][object_rot_x], pObject[objectid][object_rot_y], pObject[objectid][object_rot_z]); } mysql_free_result(); printf("[MySQL] Wczytano %d obiektów.", objects); return objects; } stock GetPointInAngleOfPlayer(playerid, &Float:x, &Float:y, &Float:z, Float:distance, Float:angle) { new Float:current_angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, current_angle); if( IsPlayerInAnyVehicle(playerid) ) { GetVehicleZAngle(GetPlayerVehicleID(playerid), current_angle); } new Float:a = current_angle + angle; x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); } stock AddObject(model, ownertype, owner, virtual, interior, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { mysql_query(sprintf("INSERT INTO `gamemode_objects` (`object_uid`, `object_model`, `object_ownertype`, `object_owner`, `object_virtual`, `object_interior`, `object_posx`, `object_posy`, `object_posz`, `object_rotx`, `object_roty`, `object_rotz`) VALUES (NULL, '%d', '%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%f')", model, ownertype, owner, virtual, interior, x, y, z, rx, ry, rz)); new uid = mysql_insert_id(); new objectid = CreateDynamicObject(model, x, y, z, rx, ry, rz, virtual, interior, -1, 500.0, 500.0); pObject[objectid][object_uid] = uid; pObject[objectid][object_model] = model; pObject[objectid][object_pos_x] = x; pObject[objectid][object_pos_y] = y; pObject[objectid][object_pos_z] = z; pObject[objectid][object_rot_x] = rx; pObject[objectid][object_rot_y] = ry; pObject[objectid][object_rot_z] = rz; pObject[objectid][object_interior] = interior; pObject[objectid][object_virtual] = virtual; pObject[objectid][object_owner_type] = ownertype; pObject[objectid][object_owner_uid] = owner; SaveObject(objectid); Iter_Add(Objects, objectid); return objectid; } stock SaveObject(objectid) { new query[256]; format(query, 256, "UPDATE `gamemode_objects` SET `object_model` = '%d', `object_ownertype` = '%d', `object_owner` = '%d', `object_virtual` = '%d', `object_interior` = '%d', `object_posx` = '%f', `object_posy` = '%f', `object_posz` = '%f', `object_rotx` = '%f', `object_roty = '%f'`, `object_rotz` = '%f' WHERE `object_uid` = '%d'", pObject[objectid][object_model], pObject[objectid][object_owner_type], pObject[objectid][object_owner_uid], pObject[objectid][object_virtual], pObject[objectid][object_interior], pObject[objectid][object_pos_x], pObject[objectid][object_pos_y], pObject[objectid][object_pos_z], pObject[objectid][object_rot_x], pObject[objectid][object_rot_y], pObject[objectid][object_rot_z], pObject[objectid][object_uid]); mysql_query(query); mysql_free_result(); return 1; } DeleteObject(objectid) { Iter_Remove(Objects, objectid); mysql_query(sprintf("DELETE FROM `gamemode_objects` WHERE `object_uid` = '%d'", pObject[objectid][object_uid])); pObject[objectid][object_uid] = 0; pObject[objectid][object_model] = 0; pObject[objectid][object_pos_x] = 0; pObject[objectid][object_pos_y] = 0; pObject[objectid][object_pos_z] = 0; pObject[objectid][object_rot_x] = 0; pObject[objectid][object_rot_y] = 0; pObject[objectid][object_rot_z] = 0; pObject[objectid][object_interior] = 0; pObject[objectid][object_virtual] = 0; pObject[objectid][object_owner_type] = 0; pObject[objectid][object_owner_uid] = 0; DestroyDynamicObject(objectid); mysql_free_result(); return 1; }