[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Attach3DTextLabelToVehicle
Дата: 13.03.2010, Суббота, 18:08:47 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
Доброго времени суток форумчане.Такая возникла проблема очень актуальная и интересная,значит сделал я горя пополам команду с выдачей 3D текста для машин на продажу ну и купленных.Вот код:
Quote
if(strcmp(cmd, "/regcar", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
return SendClientMessage(playerid, COLOR_GRAD2, "(( Используйте: /regcar [playerid/PartOfName] [xx-xxx-xxx] ))");
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
return SendClientMessage(playerid, COLOR_GRAD2, "(( Используйте: /regcar [playerid/PartOfName] [xx-xxx-xxx] ))");
}
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new Text3D:VText;
format(string,sizeof(string),"%s",(result));
VText = Create3DTextLabel(string,0x008080FF,0.0,0.0,0.0,20,0,1);
Attach3DTextLabelToVehicle(Text3D:VText, vehicleid, 0.0, 0.0, 0.0);
}
return 1;
}
}
else
{
format(string, sizeof(string), " (( %d не активен ))", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}

Всё работает на 5+,НО есть одно большое НО. Как сделать так чтобы этот номер сохранялся в cars.cfg? Кто поможет - тот получит мои последнии 3 рубля :Р

Добавлено (13.03.2010, 18.08)
---------------------------------------------
UP вопрос очень актуален,прошу руку помощи...

Дата: 14.03.2010, Воскресенье, 15:33:40 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
Всё понял,но пожалуйста,помоги с циклом... Дай примерный код...
Дата: 14.03.2010, Воскресенье, 21:26:43 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
Kweckey, вообщем смотри что получается
В самом начале начинаю создавать переменную,для этого беру:
Quote
new Text3D:Numbersforcars[количество машин в cars.cfg];

далее в public OnGameModeInit():

Там где массив создаю цикл и добавляю:

Quote
format(string1, sizeof(string), "%d",CarInfo[h][cNumber]); // Это так понимать,что будет переменная
Numbersforcars[h] = Create3DTextLabel(string1, 0x33AAFFFF, 7.77, 7.77, 7.77, 15.0, 0, 1 );
Attach3DTextLabelToVehicle(Numbersforcars[h], h, 0.0, 0.0, 1.0 );

Теперь с переменной в enum cInfo:

Quote
cNumber,

в public LoadCar():

Quote
public LoadCar()
{
new arrCoords[14][64];
new strFromFile2[256];
new File: file = fopen("cars.cfg", io_read);
if (file)
{
new idx = 184;
while (idx < sizeof(CarInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
CarInfo[idx][cModel] = strval(arrCoords[0]);
CarInfo[idx][cLocationx] = floatstr(arrCoords[1]);
CarInfo[idx][cLocationy] = floatstr(arrCoords[2]);
CarInfo[idx][cLocationz] = floatstr(arrCoords[3]);
CarInfo[idx][cAngle] = floatstr(arrCoords[4]);
CarInfo[idx][cColorOne] = strval(arrCoords[5]);
CarInfo[idx][cColorTwo] = strval(arrCoords[6]);
strmid(CarInfo[idx][cOwner], arrCoords[7], 0, strlen(arrCoords[7]), 255);
strmid(CarInfo[idx][cDescription], arrCoords[8], 0, strlen(arrCoords[8]), 255);
CarInfo[idx][cValue] = strval(arrCoords[9]);
CarInfo[idx][cLicense] = strval(arrCoords[10]);
CarInfo[idx][cOwned] = strval(arrCoords[11]);
CarInfo[idx][cLock] = strval(arrCoords[12]);
CarInfo[idx][cNumber] = strval(arrCoords[13]);
printf("CarInfo: %d Owner:%s LicensePlate %s",idx,CarInfo[idx][cOwner],CarInfo[idx][cLicense]);
idx++;
}
}
return 1;
}

получается что так.
Дальше в public OnPropUpdate():
Quote
idx = 184;
while (idx < sizeof(CarInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%s,%d,%d,%d\n", // соответственно добавил под номер место
CarInfo[idx][cModel],//
CarInfo[idx][cLocationx],//
CarInfo[idx][cLocationy],//
CarInfo[idx][cLocationz],//
CarInfo[idx][cAngle],//
CarInfo[idx][cColorOne],//
CarInfo[idx][cColorTwo],//
CarInfo[idx][cOwner],//
CarInfo[idx][cDescription],//
CarInfo[idx][cValue],//
CarInfo[idx][cLicense],//
CarInfo[idx][cOwned],//
CarInfo[idx][cLock],//
CarInfo[idx][cNumber]);
if(idx == 184)
{
file2 = fopen("cars.cfg", io_write);
}
else
{
file2 = fopen("cars.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}

Исправь пожалуйста мои ошибки если таковы имеются...

Дата: 15.03.2010, Понедельник, 11:17:17 | Сообщение # $NUMBER
Группа: Удаленные
Сообщений:
Репутация: +
if(strcmp(cmd, "/regcar", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
return SendClientMessage(playerid, COLOR_GRAD2, "(( Используйте: /regcar [playerid/PartOfName] [xx-xxx-xxx] ))");
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
return SendClientMessage(playerid, COLOR_GRAD2, "(( Используйте: /regcar [playerid/PartOfName] [xx-xxx-xxx] ))");
}
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new Text3D:VText;
format(string,sizeof(string),"%s",(result));
VText = Create3DTextLabel(string,0x008080FF,0.0,0.0,0.0,20,0,1);
Attach3DTextLabelToVehicle(Text3D:VText, vehicleid, 0.0, 0.0, 0.0);
CarInfo[vehicleid][cNumber] = string; // Будет работать если будеш записывать ТОЛЬКО цифры,а не буквы!!!
OnPropUpdate();
}
return 1;
}
}
else
{
format(string, sizeof(string), " (( %d не активен ))", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
Дата: 15.03.2010, Понедельник, 14:30:11 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
Kweckey, эффекта 0,хоть и скомпилировал без ошибок и варнов...

Johnny_Xayc, error 006: must be assigned to an array

ошибка там где ты показал,тоесть:

Quote
CarInfo[vehicleid][cNumber] = string; // Будет работать если будеш записывать ТОЛЬКО цифры,а не буквы!!!
Дата: 15.03.2010, Понедельник, 16:12:57 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
Ладно,попробую просто осуществить всё на dini,так будет проще + есть уже догадки как сделать. Всем спасибо заседание окончено ok

Добавлено (15.03.2010, 16.12)
---------------------------------------------
Ну как я и говорил,на dini всё работает O_O

Дата: 15.03.2010, Понедельник, 23:00:11 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Репутация: 5+
У меня на MySQL стоит покупка автомобилей,
Quote (kimi)
Юзай лучше это или еще лучше это
с этим я не работал и не очень-то охото,лучше пока буду делать,как делаю,а потом посмотрю.Всем пасибки! Тему закройте пожалуйста,а лучше удалите,ибо тут мои коды чтоб новечки не копипастили CRAZY
  • Страница 1 из 1
  • 1
Поиск: