Serega575757
Дебютант
Помогите сделать команду /buy в диалоговом окне
Вот сама команда:
Вот сама команда:
HTML:
if(iscmd(cmd,"/buy") || iscmd(cmd,"/fbuy")){
new /*price, level, */id = GetPlayerVirtualWorld(playerid), gid, f = 0;
new string[256];
if(iscmd(cmd,"/fbuy")) f = 1;
if(pType[id]==prop_biz){
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)){
Message(playerid,"3десь вы можете купить (введите /buy [id товара]): ",clYellow);
for(new i=1; i<max_goods; i++) if(pGoods[id][i]){
format(string, sizeof(string),"%i. %s ($%i)",i,gdsLabel[i],pGPrice[id][i]);
ShowPlayerDialog(playerid,2012,DIALOG_STYLE_MSGBOX,"{E5DF23}покупка товаров",string,"закрыть","");
}
return 1;
}
if(pTrash[id]>99){
Message(playerid,"Вы не можете ничего здесь купить, поскольку уже некуда складывать мусор",clDarkRed);
return 1;
}
if(pWear[id]>99.5){
Message(playerid,"Вы не можете ничего здесь купить, поскольку бизнес сильно поврежден",clDarkRed);
return 1;
}
gid = strval(tmp);
if(!pGoods[id][gid] || !gid){
Message(playerid,"Такого товара здесь нет",clDarkRed);
return 1;
}
if(gdsReq[gid]>pRaw[id]){
Message(playerid,"К сожалению, запрошенного вами товара в наличии нет",clDarkRed);
return 1;
}
new price = floatround(pGPrice[id][gid]);
if(PlayerCash[playerid]<price){
Message(playerid,"У вас недостаточно денег",clDarkRed);
return 1;
}
switch(gdsType[gid]){
case gds_clothes: SetPlayerModel(playerid,gdsExp[gid]);
case gds_health: {
if(f){
if(PlayerGDSCount[playerid]+gdsReq[gid]>6){
Message(playerid,"Вы не можете купить более 6кг еды",clDarkRed);
return 1;
}
PlayerGDSCount[playerid] += gdsReq[gid];
} else ChangePlayerHealth(playerid,gdsExp[gid]/*,gdsExp2[gid]*/);
}
case gds_weapon: {
if(PlayerLevel[playerid]<3){
Message(playerid,"Покупать оружие разрешается с 3 уровня",clDarkRed);
return 1;
}
GivePlayerWeaponEx(playerid,gdsExp[gid],gdsExp2[gid]);
}
case gds_phone: {
PlayerNumber[playerid] = rand(100000,900000)+random(100000);
SavePlayer(playerid);
format(msg,max_line,"Bы купили новый мобильный телефон, ваш номер теперь: %i (на счет зачислено $%i)",PlayerNumber[playerid],price/2);
Message(playerid,msg,clYellow);
PlayerAccount[playerid] += price/2;
return 1;
}
case gds_alcahol: {
ChangePlayerHealth(playerid,gdsExp[gid]/*,100.0*/);
PlayerAlco[playerid] += gdsExp2[gid];
GetPlayerFacingAngle(playerid,AlcoRot[playerid]);
if(PlayerAlco[playerid]>4000) PlayerAlco[playerid] = 4000;
ApplyAnimation(playerid,"PED","WALK_DRUNK",4.1,0,1,1,1,1);
}
case gds_tools: {
if(PlayerTools[playerid]>gdsExp[gid]){
Message(playerid,"У вас уже есть комплект инструментов более высокого уровня",clDarkRed);
return 1;
} else if(PlayerTools[playerid]==gdsExp[gid]){
Message(playerid,"У вас уже есть точно такой же комплект инструментов",clDarkRed);
return 1;
}
if(PlayerMuscle[playerid]<gdsExp[gid]*2){
format(msg,max_line,"Bам необходимо иметь %i уровень силы, чтобы использовать этот набор",gdsExp[gid]*2);
Message(playerid,msg,clDarkRed);
return 1;
}
PlayerTools[playerid] = gdsExp[gid];
if(gdsExp[gid]>3){
format(msg,max_line,"%s купил %s набор инструментов",
name,TSName[gdsExp[gid]]);
FMessage(2,1,msg,clLightRed,3);
}
}
}
format(msg,max_line,"Bы купили %s за $%i",gdsLabel[gid],price);
if(gdsType[gid]==gds_alcahol && gdsExp2[gid]) format(msg,max_line,
"%s (+%s ê îïüÿíåíèþ)",msg,tformat(gdsExp2[gid]));
Message(playerid,msg,clYellow);
SavePlayer(playerid);
GivePlayerCash(playerid,-price);
AddWear(id,float(gdsReq[gid])/10.0);
pRaw[id] -= gdsReq[gid];
pTrash[id]++;
pBank[id] += price;
return 1;
}
return 1;
}
Последнее редактирование:
