Maks_King77 1 Опубликовано 23 декабря, 2015 (изменено) На сервере Grand Role Play есть команда /chmodel, думаю объяснять для чего она нужна - не стоит. Суть проблемы в том, что при вводе /chmodel и id желаемой машины (допустим 400), автомобиль не заменяется. Только после рестарта, модель автомобиля меняется. Я, разумеется хочу, чтобы новая модель автомобиля спавнилась сразу, нежели после рестарта. Буду весьма благодарен, кто сможет помочь. if(strcmp(cmd, "/chmodel", true) == 0) { if(PlayerInfo[playerid][pAdmin] >= 7) { new cars = GetVID(PlayerInfo[playerid][pCKey]); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используй: /chmodel [ID автомобиля]"); new proplev = strval(tmp); if(proplev < 400 || proplev > 611) { SendClientMessage(playerid, COLOR_GREY,"Такой машины нету!"); return 1; } VehicleSystem[GetCreatorID(cars)][modelCA] = proplev; SaveCar(GetCreatorID(cars)); SetVehiclePos(GetVID(PlayerInfo[playerid][pCKey]),VehicleSystem[PlayerInfo[playerid][pCKey]][xCA],VehicleSystem[PlayerInfo[playerid][pCKey]][yCA],VehicleSystem[PlayerInfo[playerid][pCKey]][zCA]); SetVehicleZAngle(GetVID(PlayerInfo[playerid][pCKey]),VehicleSystem[PlayerInfo[playerid][pCKey]][aCA]); //DestroyVehicle; //CreateVehicle; return 1; } else { SendClientMessage(playerid, COLOR_RED, "Команда временно отключена."); } return 1; } Изменено 23 декабря, 2015 пользователем Maks_King77 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vladimir_Kulkov 87 Опубликовано 23 декабря, 2015 (изменено) if(strcmp(cmd, "/avtozamen", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Вы должны быть в автомобиле"); new cars = GetPlayerVehicleID(playerid); new szName[32]; GetPlayerName(playerid,szName,32); if(!strcmp(szName,"Nikolay_Silko",true) || !strcmp(szName,"Vladimir_Kulikov",true)) { if(AdminLog[playerid] != 1) return SendClientMessage(playerid,COLOR_FADE1,ADMINLOG); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используйте: /avtozamen"); new veh = strval(tmp); if((veh > 603) || (veh CarInfo[GetRealID(cars)][cMod] = veh; SaveCar(GetRealID(cars)); SetVehicleToRespawn(cars); new Float:plocx,Float:plocy,Float:plocz; GetPlayerPos(playerid, plocx, plocy, plocz); SetVehiclePos(cars,plocx,plocy+2, plocz); SendClientMessage(playerid, COLOR_GRAD2, "Вы заменили авто"); return true; } SendClientMessage(playerid, COLOR_GRAD2, "Не для тебя мама ягодку растила"); return true; } Изменено 23 декабря, 2015 пользователем depula2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maks_King77 1 Опубликовано 23 декабря, 2015 , насколько мне известно, то система создания автомобилей Grand RP, отличается от системы Gamer'a Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vladimir_Kulkov 87 Опубликовано 23 декабря, 2015 @Maks_King77, под себя сделай Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maks_King77 1 Опубликовано 23 декабря, 2015 , вообщем-то, взял за основу твой код, при компиляции вылазили ошибки, но я их исправил. После, зашел в игру - эффект тот же. Распишу что же происходит в игре: Я сажусь в автомобиль, ввожу /chmodel и id автомобиля. Автомобиль как бы "респавнится" но модель автомобиля остается той же. И только после рестарта - модель автомобиля сменилась.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 23 декабря, 2015 (изменено) Удаляй авто и создавай по новой. if(strcmp(cmd, "/chmodel", true) == 0) { if(PlayerInfo[playerid][pAdmin] >= 7) { new cars = GetVID(PlayerInfo[playerid][pCKey]),GetPlayerVehicleID(playerid);; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Используй: /chmodel [ID автомобиля]"); new proplev = strval(tmp); if(proplev < 400 || proplev > 611) { SendClientMessage(playerid, COLOR_GREY,"Такой машины нету!"); return 1; } VehicleSystem[GetCreatorID(cars)][modelCA] = proplev; SaveCar(GetCreatorID(cars)); DestroyVehicle(car); car = CreateVehicle(proplev,VehicleSystem[PlayerInfo[playerid][pCKey]][xCA],VehicleSystem[PlayerInfo[playerid][pCKey]][yCA],VehicleSystem[PlayerInfo[playerid][pCKey]][zCA],VehicleSystem[PlayerInfo[playerid][pCKey]][aCA],ЦВЕТ 1,ЦВЕТ 2,60000*4); return 1; } else { SendClientMessage(playerid, COLOR_RED, "Команда временно отключена."); } return 1; } Вместо ЦВЕТ 1 и ЦВЕТ 2 свои переменные, ибо я не знаю какие они у тебя там. Изменено 23 декабря, 2015 пользователем Red_Devils 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maks_King77 1 Опубликовано 23 декабря, 2015 car =Юра, переменную вроде бы нашел, но когда ввел color 1 (вместо цвет 1), color2 (вместо цвет 2), выдает это: C:\Users\??????\Desktop\GRAND ROLEPLAY\gamemodes\grand.pwn(45668) : error 017: undefined symbol "color1" Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 23 декабря, 2015 @Maks_King77,Если написано что символ не известен, то переменная не та, явно. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maks_King77 1 Опубликовано 23 декабря, 2015 @Red_Devils, Не подскажешь, как проще всего найти нужную переменную? Поскольку, мод с паблика, для меня совершенно не знаком. Мб данная переменная будет в /addcar, или же /chcolor? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 23 декабря, 2015 В /chcolor 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maks_King77 1 Опубликовано 23 декабря, 2015 @Red_Devils, if(strcmp(cmd, "/chcolor", true) == 0) { if(PlayerInfo[playerid][pCKey]==0) { SendClientMessage(playerid, COLOR_GRAD1, "? ??? ??? ?????? ??????!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "???????????: /chcolor [0-255] [0-255]"); return 1; } //new color=strval(tmp); new para1; new para2; para1 = strval(tmp); para2 = strval(tmp); //tmp = strtok(cmdtext, idx); if(para1<0||para1>255&¶2<0||para2>255) { SendClientMessage(playerid, COLOR_GRAD1, "???????????: /chcolor [0-255] [0-255]"); return 1; } new summa; summa = 20000; if(PlayerInfo[playerid][pCash]<summa) { SendClientMessage(playerid, COLOR_GRAD1, "? ??? ???????????? ?????!"); return 1; } for(new i5=0; i5<MAX_PLAYERS;i5++) { if(IsPlayerConnected(i5)&&gPlayerLogged[i5]==1) { if(IsPlayerInVehicle(i5,GetVID(PlayerInfo[playerid][pCKey]))) { SendClientMessage(playerid, COLOR_GRAD1, "? ?????? ???-?? ?????????!"); return 1; } } } format(string,sizeof(string),"?? ???????? ???? ?????? ?? %d ??????.",summa); GivePlayerMoney(playerid,-summa); ChangeVehicleColor(GetVID(PlayerInfo[playerid][pCKey]),para1,para2); VehicleSystem[PlayerInfo[playerid][pCKey]][Farbe1]=para1; VehicleSystem[PlayerInfo[playerid][pCKey]][Farbe2]=para2; PlayerInfo[playerid][pCash]-=summa; SendClientMessage(playerid, COLOR_LIGHTBLUE, string); //SetVehiclePos(GetVID(PlayerInfo[playerid][pCKey]),VehicleSystem[PlayerInfo[playerid][pCKey]][xCA],VehicleSystem[PlayerInfo[playerid][pCKey]][yCA],VehicleSystem[PlayerInfo[playerid][pCKey]][zCA]); //SetVehicleZAngle(GetVID(PlayerInfo[playerid][pCKey]),VehicleSystem[PlayerInfo[playerid][pCKey]][aCA]); //ChangeVehicleColor(GetVID(PlayerInfo[playerid][pCKey]),color,color); SavePlayer(playerid); SaveCar(PlayerInfo[playerid][pCKey]); return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 23 декабря, 2015 Ну вот же, вместо ЦВЕТ 1 пишешь VehicleSystem[PlayerInfo[playerid][pCKey]][Farbe1], а вместо ЦВЕТ 2 пишешь VehicleSystem[PlayerInfo[playerid][pCKey]][Farbe2] 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты