lava172
Умник
Приветсвую ув. пользователи. Такой вопрос. Возможно ли и если возможно, то как осуществить такую вещь.
есть команды /v sell
/v park
/v color цвет1 цвет2
Они предназначены для продажи, парковки и покраски транспорта.
Итак, к главному, эти команды выглядят на стандартном кмд процессоре вот так:
И вот проблемка, возможно ли сделать это все на ZCMD.
Так вот как это осуществить, при том при помощи sscanf2.
Я пробовал это сделать, но не получилось.
Получалось что-то вроде этого: с первыми 2-мя все в порядке казалось бы, например if(!strcmp(params,"Sell",true))
И пошло поехало действие: продажа авто, с парковкой тоже также. Но покраска, там же 3 параметра, сам color, да еще и 2 цвета. Так вот как же объединить все это в 1 команду. И sell, и park, и color с цветами.
Спасибо что дочитали до конца.
Надеюсь на вашу помощь.
есть команды /v sell
/v park
/v color цвет1 цвет2
Они предназначены для продажи, парковки и покраски транспорта.
Итак, к главному, эти команды выглядят на стандартном кмд процессоре вот так:
PHP:
if(!strcmp(cmd,"/v",true))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid,0xE7E6FFAA, "' Не верная команда /carhelp или /авто для просмотра команд '");
return 1;
}
if(!strcmp(tmp,"Sell",true))
{
if(IsPlayerInAnyVehicle(playerid))
{
new Car = GetPlayerVehicleID(playerid);
new result;
new cid;
new pName[60];
new m;
GetPlayerName(playerid,pName,60);
for(new i;i<MAX_xCARS1;i++)
{
if(Car == cInfo[i][cCarID])
{
result = 1;
cid = i;
break;
}
else result = 0;
}
if(result == 1)
{
if(!strcmp(pName,cInfo[cid][cOwner]))
{
m = cInfo[cid][cCoast];
m /= 2;
Give_Money(playerid,m);
cInfo[cid][Cuplena] = 0;
cInfo[cid][parkx] = cInfo[cid][xcx];
cInfo[cid][parky] = cInfo[cid][xcy];
cInfo[cid][parkz] = cInfo[cid][xcz];
cInfo[cid][pugol] = cInfo[cid][xcrot];
format(cInfo[cid][cOwner],60,"Sell");
new str[256];
new str2[60];
format(str,256,"%d,%f,%f,%f,%f,%f,%f,%f,%f,%d,%s,%d,%d,%d", cInfo[cid][cModel], cInfo[cid][xcx], cInfo[cid][xcy], cInfo[cid][xcz], cInfo[cid][xcrot], cInfo[cid][parkx], cInfo[cid][parky], cInfo[cid][parkz], cInfo[cid][pugol], cInfo[cid][cCoast], cInfo[cid][cOwner], cInfo[cid][cColor1], cInfo[cid][cColor2], cInfo[cid][Cuplena]);
format(str2,60,"%i",cid);
dini_Set("BuyAll/Cars.ini",str2,str);
pStats[playerid][Mycar] = 1000;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(Car);
cInfo[cid][cCarID] = CreateVehicle(cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy],cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cColor1],cInfo[cid][cColor2], 500);
DelTexstBuyCar();
TexstBuyCar();
new PlayerVehicleModelID = GetVehicleModel(GetPlayerVehicleID(playerid));
PlayerVehicleModelID -= 400;
format(GlobalInfo,sizeof(GlobalInfo),"..::|| ''%s'' продал свою машину %s ||::..", PlayerName(playerid), PlayerVehicle[PlayerVehicleModelID]);
SendClientMessageToAll(0x8080FFAA, GlobalInfo);
}
else
{
SellCar(playerid);
return 1;
}
}
else
{
SellCar(playerid);
return 1;
}
}
else
{
SellCar(playerid);
return 1;
}
}
if(!strcmp(tmp,"Park",true))
{
if(IsPlayerInAnyVehicle(playerid) == 1)
{
new Car = GetPlayerVehicleID(playerid);
new result;
new cid;
new pName[24];
for(new i;i<MAX_xCARS1;i++)
{
if(Car == cInfo[i][cCarID])
{
result = 1;
cid = i;
break;
}
else result = 0;
}
if(result && GetPlayerState(playerid) == 2)
{
if(!strcmp(pName,cInfo[cid][cOwner],false))
{
new Float:x,Float:y,Float:z,Float:rot;
GetVehicleZAngle(Car,rot);
GetVehiclePos(Car,x,y,z);
cInfo[cid][parkx] = x;
cInfo[cid][parky] = y;
cInfo[cid][parkz] = z;
cInfo[cid][pugol] = rot;
cInfo[cid][Cuplena] = 1;
new str[256];
new str2[60];
format(str,256,"%d,%f,%f,%f,%f,%f,%f,%f,%f,%d,%s,%d,%d,%d", cInfo[cid][cModel], cInfo[cid][xcx], cInfo[cid][xcy], cInfo[cid][xcz], cInfo[cid][xcrot], cInfo[cid][parkx], cInfo[cid][parky], cInfo[cid][parkz], cInfo[cid][pugol], cInfo[cid][cCoast], cInfo[cid][cOwner], cInfo[cid][cColor1], cInfo[cid][cColor2], cInfo[cid][Cuplena]);
format(str2,60,"%i",cid);
dini_Set("BuyAll/Cars.ini",str2,str);
SendClientMessage(playerid,0xE7E6FFAA,"' Транспорт припаркован '");
RemovePlayerFromVehicle(playerid);
DestroyVehicle(Car);
cInfo[cid][cCarID] = CreateVehicle(cInfo[cid][cModel],cInfo[cid][parkx],cInfo[cid][parky],cInfo[cid][parkz],cInfo[cid][pugol],cInfo[cid][cColor1],cInfo[cid][cColor2], 500);
}
else
{
ParkCar(playerid);
return 1;
}
}
else
{
ParkCar(playerid);
return 1;
}
}
else
{
ParkCar(playerid);
return 1;
}
}
if(!strcmp(tmp,"Color",true))
{
if(IsPlayerInAnyVehicle(playerid) == 1)
{
new Car = GetPlayerVehicleID(playerid);
new result;
new cid;
new pName[24];
for(new i;i<MAX_xCARS1;i++)
{
if(Car == cInfo[i][cCarID])
{
result = 1;
cid = i;
break;
}
else result = 0;
}
if(result && GetPlayerState(playerid) == 2)
{
if(!strcmp(pName,cInfo[cid][cOwner],false))
{
new c1,c2;
tmp = strtok(cmdtext, idx);
c1 = strval(tmp);
tmp = strtok(cmdtext, idx);
c2 = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid,0xE7E6FFAA,"' Используйте: /v color [цвет1] [цвет2] '");
return 1;
}
ChangeVehicleColor(Car,c1,c2);
cInfo[cid][cColor1] = c1;
cInfo[cid][cColor2] = c2;
new str[256];
new str2[60];
format(str,256,"%d,%f,%f,%f,%f,%f,%f,%f,%f,%d,%s,%d,%d,%d", cInfo[cid][cModel], cInfo[cid][xcx], cInfo[cid][xcy], cInfo[cid][xcz], cInfo[cid][xcrot], cInfo[cid][parkx], cInfo[cid][parky], cInfo[cid][parkz], cInfo[cid][pugol], cInfo[cid][cCoast], cInfo[cid][cOwner], cInfo[cid][cColor1], cInfo[cid][cColor2], cInfo[cid][Cuplena]);
format(str2,60,"%i",cid);
dini_Set("BuyAll/Cars.ini",str2,str);
}
else
{
ColorCar(playerid);
return 1;
}
}
else
{
ColorCar(playerid);
return 1;
}
}
else
{
ColorCar(playerid);
return 1;
}
}
return 1;
}
Так вот как это осуществить, при том при помощи sscanf2.
Я пробовал это сделать, но не получилось.
Получалось что-то вроде этого: с первыми 2-мя все в порядке казалось бы, например if(!strcmp(params,"Sell",true))
И пошло поехало действие: продажа авто, с парковкой тоже также. Но покраска, там же 3 параметра, сам color, да еще и 2 цвета. Так вот как же объединить все это в 1 команду. И sell, и park, и color с цветами.
Спасибо что дочитали до конца.
Надеюсь на вашу помощь.
