Под них нужен не массив, а переменная вещественного типа (Float)
Вид для печати
Под них нужен не массив, а переменная вещественного типа (Float)
Ну в таблице делаешь столбец форматом Float. Потом в enum создаёшь что-то типа
И в запросе что-то типаPHP код:
Float:PosX,
Float:PosY,
Float:PosZ,
И вообще вики для кого? :)PHP код:
new data[15];
db_get_field_assoc(result, "Имя_поля", data, sizeof(data));
NameVarchar[ячейка][PosX] = floatstr(data);
db_get_field_assoc(result, "Имя_поля", data, sizeof(data));
NameVarchar[ячейка][PosY] = floatstr(data);
db_get_field_assoc(result, "Имя_поля", data, sizeof(data));
NameVarchar[ячейка][PosZ] = floatstr(data);
http://wiki.sa-mp.com/wiki/Db_get_field_RU
С горем пополам вроде разобрался,счас проверим на работоспособность
В общем парился-парился но своего добился:
number 2PHP код:
#include <a_samp>
new model,type,Float:X,Float:Y,Float:Z,world,rPikap;
public OnFilterScriptInit()
{
LoadPicups();
return 1;
}
stock LoadPicups()
{
new DB:db = db_open("Race.db");
new DBResult:dbresult;
new query[100],irace[20];
format(query,sizeof(query),"SELECT * FROM `rinfo`");
dbresult = db_query(db,query);
db_get_field(dbresult, 0, irace, sizeof(irace));
model = strval(irace);
db_get_field(dbresult, 1, irace, sizeof(irace));
type = strval(irace);
db_get_field(dbresult, 2, irace, sizeof(irace));
X = floatstr(irace);
db_get_field(dbresult, 3, irace, sizeof(irace));
Y = floatstr(irace);
db_get_field(dbresult, 4, irace, sizeof(irace));
Z = floatstr(irace);
db_get_field(dbresult, 5, irace, sizeof(irace));
world = strval(irace);
rPikap = CreatePickup(model,type,X,Y,Z,world);
printf("пикап создан:\nмодель:%d\nтип:%d\nкоордината Х:%f\nкоордината Y:%f\nкоордината Z:%f\nНомер виртуального мира:%d",model,type,X,Y,Z,world);
db_free_result(dbresult);
return 1;
}
public OnPlayerPickUpPickup( playerid, pickupid )
{
if(pickupid == rPikap)SetPlayerPos(playerid, 2308.0684,1520.6025,10.5474);
return 1;
}
PHP код:
#include <a_samp>
enum irace
{
model,
type,
Float:X,
Float:Y,
Float:Z,
world,
rPikap
};
new iRace[MAX_PLAYERS][irace];
public OnPlayerConnect(playerid)
{
LoadPicups(playerid);
return 1;
}
stock LoadPicups(playerid)
{
new DB:db = db_open("Race.db");
new DBResult:dbresult;
new query[100],race[20];
format(query,sizeof(query),"SELECT * FROM `rinfo`");
dbresult = db_query(db,query);
db_get_field(dbresult, 0, race, sizeof(race));
iRace[playerid][model] = strval(race);
db_get_field(dbresult, 1, race, sizeof(race));
iRace[playerid][type] = strval(race);
db_get_field(dbresult, 2, race, sizeof(race));
iRace[playerid][X] = floatstr(race);
db_get_field(dbresult, 3, race, sizeof(race));
iRace[playerid][Y] = floatstr(race);
db_get_field(dbresult, 4, race, sizeof(race));
iRace[playerid][Z] = floatstr(race);
db_get_field(dbresult, 5, race, sizeof(race));
iRace[playerid][world] = strval(race);
iRace[playerid][rPikap] = CreatePickup(iRace[playerid][model],iRace[playerid][type],iRace[playerid][X],iRace[playerid][Y],iRace[playerid][Z],iRace[playerid][world]);
printf("пикап создан:\nмодель:%d\nтип:%d\nкоордината Х:%f\nкоордината Y:%f\nкоордината Z:%f\nНомер виртуального мира:%d",iRace[playerid][model],iRace[playerid][type],iRace[playerid][X],iRace[playerid][Y],iRace[playerid][Z],iRace[playerid][world]);
db_free_result(dbresult);
return 1;
}
public OnPlayerPickUpPickup( playerid, pickupid )
{
if(pickupid == iRace[playerid][rPikap])SetPlayerPos(playerid, 2308.0684,1520.6025,10.5474);
return 1;
}
Может кому-то понадобиться,а может кто-нибудь найдет ошибки и т.п..Код HTML:CREATE TABLE rinfo (model INTEGER, type INTEGER, X DOUBLE, Y DOUBLE, Z DOUBLE, world INTEGER)
Эмм,как не странно,я опять нуждаюсь в помощи :с
То что сделал выше считывает данные с 1 строки,а если будет 2,3,5,10 и т.д. то как считывать определенную строку которую мне надо?
Создай идентификатор для каждой строки (создай строку, обзови её чем-то типа "ID" и установи ей значение auto_increment) и по нему уже ищи нужную тебе строку.
И да, если ты собираешься подобным образом грузить пикапы, для каждого отдельного пикапа придётся создавать свой stock =) Циклом грузи
И смысл тут в playerid? О_о
PHP код:
iRace[playerid][Z]
правильно, ты и запрашиваешь первую строку.Цитата:
То что сделал выше считывает данные с 1 строки,а если будет 2,3,5,10 и т.д. то как считывать определенную строку которую мне надо?