LenD
Специалист
Вот вам хорошая сестема стилев боя и тренажорок
Описание:
В каждой тренажерке (в каждом городе) находится пикап, если на него "наступить" откроется меню с выбором стиля боя!
Купленный стиль боя сохранится и будет с вами до тех пор, пока вы не изучите другой стиль )
в include
в define
в forward
В new
в public OnGameModeInit()
в конец мода
ну вот и все от +ка не откажусь
Описание:
В каждой тренажерке (в каждом городе) находится пикап, если на него "наступить" откроется меню с выбором стиля боя!
Купленный стиль боя сохранится и будет с вами до тех пор, пока вы не изучите другой стиль )
в include
PHP:
#include <a_samp>
#include <mxINI>
PHP:
#define Money 5000//стоимость изучения стиля боя
#define FightDialog 163//ID диалога
#define GREEN_COLOR "{00d200}"
#define RED_COLOR "{d20000}"
#define LIGHT_GREY_COLOR "{d2d2d2}"
PHP:
forward StartFightStyle(playerid);
PHP:
new TrenerMenu[3];
PHP:
TrenerMenu[0] = CreatePickup(1239,2,772.7536,5.4348,1000.7802,-1);
TrenerMenu[1] = CreatePickup(1239,2,763.1567,-48.2660,1000.5859,-1);
TrenerMenu[2] = CreatePickup(1239,2,774.8008,-71.0272,1000.6484,-1);
PHP:
public OnPlayerConnect(playerid)
{
new str[30];
format(str, 30, "%s.fight", fName(playerid));
if(fexist(str))
{
new styleid, file = ini_openFile(str);
ini_getInteger(file, "FightStyle", styleid);
SetPVarInt(playerid, "FightStyle", styleid);
StartFightStyle(playerid);
}
return 1;
}
PHP:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == TrenerMenu[0] || pickupid == TrenerMenu[1] || pickupid == TrenerMenu[2])
{
TogglePlayerControllable(playerid, 0);//заморозка, можно убрать
ShowPlayerDialog(playerid,FightDialog,DIALOG_STYLE_LIST, ""GREEN_COLOR"ТреНер", ""RED_COLOR"1. "LIGHT_GREY_COLOR"Normal \n"RED_COLOR"2. "LIGHT_GREY_COLOR"Boxing \n"RED_COLOR"3. "LIGHT_GREY_COLOR"Kungfu \n"RED_COLOR"4. "LIGHT_GREY_COLOR"Knee Head \n"RED_COLOR"5. "LIGHT_GREY_COLOR"Grab Kick \n"RED_COLOR"6. "LIGHT_GREY_COLOR"ELBOW ", "Обучиться", "");
}
return 1;
}
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == FightDialog)
{
if(response)
{
if(GetPlayerMoney(playerid) >= Money)
{
switch(listitem)
{
case 0: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился нормальному стилю боя");
case 1: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился стилю боя: Boxing");
case 2: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился стилю боя: Kungfu");
case 3: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился стилю боя: Knee Head");
case 4: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился стилю боя: Grab Kick");
case 5: SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Ты обучился стилю боя: ELBOW");
}
SetPVarInt(playerid, "FightStyle", listitem);
new str[30], file;
format(str, 30, "%s.fight", fName(playerid));
if(fexist(str)) file = ini_openFile(str);
else file = ini_createFile(str);
ini_setInteger(file, "FightStyle", listitem);
StartFightStyle(playerid);
} else return SendClientMessage(playerid,-1,""RED_COLOR"ТреНер: "LIGHT_GREY_COLOR"Xалявы не будет, плати 5000$ или уберайся от сюда");
}
TogglePlayerControllable(playerid, 1);
}
return 0;
}
PHP:
public StartFightStyle(playerid)
{
switch(GetPVarInt(playerid, "FightStyle"))
{
case 0: SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL);
case 1: SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
case 2: SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
case 3: SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
case 4: SetPlayerFightingStyle(playerid, FIGHT_STYLE_GRABKICK);
case 5: SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
}
return 1;
}
PHP:
stock fName(playerid)
{
new frog[MAX_PLAYER_NAME];
GetPlayerName(playerid, frog, sizeof(frog));
return frog;
}
ну вот и все от +ка не откажусь
