Аптечки by Igrik
Страница 1 из 1
Аптечки by Igrik
Здравствуйте пользователи [Вы должны быть зарегистрированы и подключены, чтобы видеть эту ссылку]
Хочу выложить на всеобщее обозрение свою первую работу в области PAWN скриптинга.
Скрипт представляет из себя систему аптечек.
Игрок покупает аптечку за $1000 (цену можно поменять в макросе), затем, при необходимости использует её (/useapt или LSHIFT+ALT). Максимальное количество аптечек, переносимых с собой - 10.
Код оптимизировал как смог, если можно оптимизировать ещё лучше, то предлагайте свои варианты.
Так же рассмотрю любые предложения по улучшению.
Т.к это моя первая работа надеюсь на понимание.
Автор: Igrik
При копировании на сторонние ресурсы, обязательно указывать автора.
Хочу выложить на всеобщее обозрение свою первую работу в области PAWN скриптинга.
Скрипт представляет из себя систему аптечек.
Игрок покупает аптечку за $1000 (цену можно поменять в макросе), затем, при необходимости использует её (/useapt или LSHIFT+ALT). Максимальное количество аптечек, переносимых с собой - 10.
Код оптимизировал как смог, если можно оптимизировать ещё лучше, то предлагайте свои варианты.
Так же рассмотрю любые предложения по улучшению.
Т.к это моя первая работа надеюсь на понимание.
- Код:
#define FILTERSCRIPT
#include a_samp
#pragma tabsize (0)
#define PRICE (1000)
#define MAX_APT (10)
#assert MAX_APT <= (255) //! Не менять
new
APT[MAX_PLAYERS char]
;
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" • APTE4KI (V1) BY Igrik");
print("--------------------------------------\n");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
APT{playerid} = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/buyapt", cmdtext, true, 10) == 0)
{
if (APT{playerid} == MAX_APT) return
SendClientMessage(playerid,-1,"Вы превысили лимит аптечек")
;
if (GetPlayerMoney(playerid)<PRICE) return
SendClientMessage(playerid,-1,"Недостаточно средств")
;
APT{playerid}++;
GivePlayerMoney(playerid,-PRICE);
SendClientMessage(playerid,-1,"Вы купили аптечку");
return 1;
}
if (strcmp("/useapt", cmdtext, true, 10) == 0)
{
if (APT{playerid}<1) return
SendClientMessage(playerid,-1,"Аптечка не куплена")
;
useApt(.p=playerid);
SendClientMessage(playerid,-1,"Вы использовали аптечку");
return 1;
}
return 0;
}
useApt(p)
{
new Float:a;
GetPlayerHealth(p,a);
if(a>=100)return 0;
APT{p}--;
SetPlayerHealth(p,100);
a = 0;
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_WALK && newkeys & KEY_SPRINT)
{
if (APT{playerid}>=1)
{
if (useApt(.p=playerid))
{
SetPlayerChatBubble(playerid,"Использовал аптечку",0xff0000aa,50,5000);
}
}
}
return 1;
}
Автор: Igrik
При копировании на сторонние ресурсы, обязательно указывать автора.
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|