Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Cмена Стиля Боя С Сохранением - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ FS ][ All ]
Cмена Стиля Боя С Сохранением
Оценка: -----

#1
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Раскрыть информацию
Описание:
  • В каждой тренажерке (в каждом городе) находится пикап, если на него "наступить" откроется меню с выбором стиля боя!
  • Купленный стиль боя сохранится и будет с вами до тех пор, пока вы не изучите другой стиль )

Как подключить?
  • Открываем pawno.exe создаем новый файл. Удаляем из него все и вставляем мой код
  • Сохраняем файл в папке filterscripts под именем FightStyles.pwn
  • Жмем F5 - в папке должен появиться FightStyles.amx
  • Открываем server.cfg и добавляем в строчку filterscripts слово FightStyles
  • Запускаем сервер.

Исходный код:
#include <a_samp>
#include <mxINI>

#define Money 5000//стоимость изучения стиля боя
#define FightDialog 163//ID диалога
#define GREEN_COLOR "{00d200}"
#define RED_COLOR "{d20000}"
#define LIGHT_GREY_COLOR "{d2d2d2}"

new TrenerMenu[3];
public OnFilterScriptInit()
{
	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);
	return 1;
}
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;
}
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;
}
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;
}
forward StartFightStyle(playerid);
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;
}
stock fName(playerid)
{
	new frog[MAX_PLAYER_NAME];
	GetPlayerName(playerid, frog, sizeof(frog));
	return frog;
}

ну вот и все =)
Автор: Frog163
3

#2
Пользователь офлайн   Erick 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
после выбора или же закрытия окна, игрока замораживает, незнаю для чего сделали это.. :D
TogglePlayerControllable(playerid, 0);

Вот это дело за заморозку отвечает :D

Сообщение отредактировал Erick: 27 Октябрь 2011 - 09:57

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей