| 
| М9сНиК | Дата: Суббота, 12.05.2012, 13:22:10 | Сообщение # 3 |  |   
|  |  | Сообщений: 61 Репутация: 0 [ +/- ]
 |  | Спасибо большое. Очень нравится ресурс, много чего интересного и полезного и отзывчивый админ, который всегда поможет если что-то не получается  Добавлено (12.05.2012, 13:22:10)---------------------------------------------
 Всё работает но есть 1 минус, только сегодня заметил. При использовании бонуса сами бонусы не вычитаются
 
 
 Code  ShowRedBonusMenu(i)
 {
 decl Handle:p;
 if ((p = CreatePanel()) == INVALID_HANDLE)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Не удалось \x05создать \x01меню");
 return;
 }
 DrawPanelText(p, "[ FreeDom ] Магазин\n \n");
 decl String:f[100];
 Format(f, sizeof(f), "Скорость %d сек (%d бонусов)", props_featureSEC, props_cash_speed);
 if (Kills[i] < props_cash_speed || SpeedTimer[i] != INVALID_HANDLE) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 Format(f, sizeof(f), "Невидимость %d сек (%d бонусов)", props_featureSEC, props_cash_invis);
 if (Kills[i] < props_cash_invis || InvisTimer[i] != INVALID_HANDLE) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 Format(f, sizeof(f), "Оздоровление (%d бонусов)", props_cash_regen);
 if (Kills[i] < props_cash_regen || props_on) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 Format(f, sizeof(f), "Узнать где враги (%d бонусов)", props_cash_where);
 if (Kills[i] < props_cash_where || WhereTimer[i] != INVALID_HANDLE) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 Format(f, sizeof(f), "Просветить предмет (%d бонусов)", props_cash_invpr);
 if (Kills[i] < props_cash_invpr || props_on) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 Format(f, sizeof(f), "Удалить предмет (%d бонусов)\n \n", props_cash_delpr);
 if (Kills[i] < props_cash_delpr || props_on) DrawPanelItem(p, f, ITEMDRAW_DISABLED);
 else DrawPanelItem(p, f);
 DrawPanelItem(p, "Выход");
 SendPanelToClient(p, i, Select_RedBonusMenu, 0);
 CloseHandle(p);
 }
 
 public Select_RedBonusMenu(Handle:menu, MenuAction:action, i, option)
 {
 if (action != MenuAction_Select || option > 6 || GetClientTeam(i) != 2)
 {
 return;
 }
 if (option == 1)
 {
 if (Kills[i] < props_cash_speed)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (SpeedTimer[i] != INVALID_HANDLE)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Скорость \x05УЖЕ \x01прокачана");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_speed);
 SetEntPropFloat(i, Prop_Send, "m_flLaggedMovementValue", 3.0);
 SpeedTimer[i] = CreateTimer(float(props_featureSEC), StopSpeed_Func, i, TIMER_FLAG_NO_MAPCHANGE);
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Скорость \x04активирована");
 ClientCommand(i, "playgamesound weapons/flashbang/flashbang_explode1.wav");
 }
 else if (option == 2)
 {
 if (Kills[i] < props_cash_invis)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (InvisTimer[i] != INVALID_HANDLE)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Невидимость \x05УЖЕ \x01прокачана");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_invis);
 SetColor(i, 255, 255, 255, 25);
 InvisTimer[i] = CreateTimer(float(props_featureSEC), StopInvis_Func, i, TIMER_FLAG_NO_MAPCHANGE);
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Невидимость \x04активирована");
 ClientCommand(i, "playgamesound weapons/elite/elite_deploy.wav");
 }
 else if (option == 3)
 {
 if (Kills[i] < props_cash_regen)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (GetEntProp(i, Prop_Send, "m_iHealth") > 99)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Вы и так \x05здоровы");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_regen);
 SetEntProp(i, Prop_Send, "m_iHealth", 100);
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Здоровье \x04восстановлено");
 Vertical_Effect(i, {0,255,0,255});
 ClientCommand(i, "playgamesound ui/freeze_cam.wav");
 }
 else if (option == 4)
 {
 if (Kills[i] < props_cash_where)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (WhereTimer[i] != INVALID_HANDLE)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Ждите \x0510 \x01секунд");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_where);
 decl Float:MyPos[3], Float:TargetPos[3];
 GetClientAbsOrigin(i, MyPos);
 MyPos[2] += 500.0;
 new targets = 0;
 for (new x = 1; x <= MaxClients; x++)
 {
 if (IsClientInGame(x) && IsPlayerAlive(x) && GetClientTeam(x) == 3)
 {
 GetClientAbsOrigin(x, TargetPos);
 TE_SetupBeamPoints(MyPos, TargetPos, PrecH, PrecH, 0, 0, 5.0, 25.0, 1.0, 0, 0.0, {255,0,0,255}, 50);
 TE_SendToClient(i);
 targets += 1;
 }
 }
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Найдено врагов: \x05%d", targets);
 ClientCommand(i, "playgamesound ambient/office/button1.wav");
 WhereTimer[i] = CreateTimer(10.0, StopWhere_Func, i, TIMER_FLAG_NO_MAPCHANGE);
 }
 else if (option == 5)
 {
 if (Kills[i] < props_cash_invpr)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (props_on)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Ждите \x05окончания \x01строительства");
 return;
 }
 new Prop_Index = wS_GetLookPropIndex(i);
 if (Prop_Index < 1)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Вы должны \x05смотреть \x01на предмет");
 return;
 }
 if (GetEntProp(Prop_Index, Prop_Send, "m_clrRender") == 436207615)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Этот предмет \x05уже \x01просвещен");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_invpr);
 SetColor(Prop_Index, 255, 255, 255, 25);
 CreateTimer(5.0, StopInvpr_Func, Prop_Index, TIMER_FLAG_NO_MAPCHANGE);
 ClientCommand(i, "playgamesound physics/plastic/plastic_box_strain2.wav");
 }
 else if (option == 6)
 {
 if (Kills[i] < props_cash_delpr)
 {
 ErrorMsgNoCash(i);
 return;
 }
 if (props_on)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Ждите \x05окончания \x01строительства");
 return;
 }
 new Prop_Index = wS_GetLookPropIndex(i);
 if (Prop_Index < 1)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] Вы должны \x05смотреть \x01на предмет");
 return;
 }
 SetEntProp(i, Prop_Send, "m_iAccount", Kills[i] - props_cash_delpr);
 new vladelec_i = GetEntPropEnt(Prop_Index, Prop_Send, "m_PredictableID");
 if (vladelec_i > 0 && IsClientInGame(vladelec_i) && IsPlayerAlive(vladelec_i))
 {
 PrintCenterText(vladelec_i, "ВНИМАНИЕ! %N удалил ваш проп!", i);
 }
 SetEntPropEnt(Prop_Index, Prop_Send, "m_PredictableID", 0);
 DispatchKeyValue(Prop_Index, "targetname", "t_dis_prop");
 Dissolve("t_dis_prop", "1");
 props_num -= 1;
 ClientCommand(i, "playgamesound physics/cardboard/cardboard_box_break1.wav");
 }
 ShowRedBonusMenu(i);
 }
 
 ErrorMsgNoCash(i)
 {
 PrintToChat(i, "\x01[ \x03FreeDom\x01 ] У вас \x05недостаточно \x01бонусов");
 ClientCommand(i, "playgamesound resource/warning.wav");
 }
 
 Vertical_Effect(i, Color[4])
 {
 decl Float:Pos1[3], Float:wS_Pos2[3];
 GetClientAbsOrigin(i, Pos1);
 wS_Pos2[0] = Pos1[0];
 wS_Pos2[1] = Pos1[1];
 wS_Pos2[2] = Pos1[2] + 70.0;
 TE_SetupBeamPoints(Pos1, wS_Pos2, PrecH, PrecH, 0, 0, 0.2, 50.0, 90.0, 0, 0.0, Color, 50);
 TE_SendToAll();
 }
 
 SetColor(i, r, g, b, a)
 {
 SetEntityRenderMode(i, RENDER_TRANSCOLOR);
 SetEntityRenderColor(i, r, g, b, a);
 }
 как сделать чтобы бонусы вычитались?
 |  |  |  |  |