Attach3DTextLabelToVehicle
|
|
Дата: 13.03.2010, Суббота, 18:08:47 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
Доброго времени суток форумчане.Такая возникла проблема очень актуальная и интересная,значит сделал я горя пополам команду с выдачей 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
Всё понял,но пожалуйста,помоги с циклом... Дай примерный код...
|
|
|
Дата: 14.03.2010, Воскресенье, 21:26:43 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
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: в 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
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
Ладно,попробую просто осуществить всё на dini,так будет проще + есть уже догадки как сделать. Всем спасибо заседание окончено Добавлено (15.03.2010, 16.12) --------------------------------------------- Ну как я и говорил,на dini всё работает
|
|
|
Дата: 15.03.2010, Понедельник, 23:00:11 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 31
У меня на MySQL стоит покупка автомобилей,Quote (kimi) Юзай лучше это или еще лучше это с этим я не работал и не очень-то охото,лучше пока буду делать,как делаю,а потом посмотрю.Всем пасибки! Тему закройте пожалуйста,а лучше удалите,ибо тут мои коды чтоб новечки не копипастили
|
|
|