PDA

Просмотр полной версии : Flashbang[Световая граната в GTA:SA]



Salvacore
11.06.2014, 09:44
В начало мода


new
Text:flashbangStage[5]
;
new
FlashbangStage[MAX_PLAYERS],
FlashbangSwayLevel[MAX_PLAYERS]
;

В OnGameModeInit


for (new t = 1; t <= 4; t++){
flashbangStage[t] = TextDrawCreate(-20.000000,2.000000,"|");
TextDrawUseBox(flashbangStage[t],1);
TextDrawTextSize(flashbangStage[t],660.000000,22.000000);
TextDrawAlignment(flashbangStage[t],0);
TextDrawFont(flashbangStage[t],3);
TextDrawLetterSize(flashbangStage[t],1.000000,52.200000);
TextDrawBackgroundColor(flashbangStage[t],0x000000ff);
TextDrawColor(flashbangStage[t],0x000000ff);
TextDrawSetOutline(flashbangStage[t],1);
TextDrawSetProportional(flashbangStage[t],1);
TextDrawSetShadow(flashbangStage[t],1);
}
TextDrawBoxColor(flashbangStage[1],0xffffffff);
TextDrawBoxColor(flashbangStage[2],0xffffffaa);
TextDrawBoxColor(flashbangStage[3],0xffffff55);
TextDrawBoxColor(flashbangStage[4],0xffffff22);

Ко всем командам


CMD:flashbang(playerid, params[])//DC_CMD
{
new
weaponId,
ammoAmount
;
GetPlayerWeaponData(playerid, 8, weaponId, ammoAmount);
if (weaponId == WEAPON_GRENADE && ammoAmount > 0) return SendClientMessage(playerid, -1, "У тебя уже есть флешка!");
SendClientMessage(playerid, -1, "Теперь у тебя есть флешка.");
GivePlayerWeapon(playerid, WEAPON_GRENADE, 1);
return 1;
}

В OnPlayerTakeDamage


if (weaponid == WEAPON_GRENADE || weaponid == 51){
new
Float:health
;
GetPlayerHealth(playerid, health);
SetPlayerHealth(playerid, (health - (amount * 0.3)));
FlashbangStage[playerid] = 1;
HandleFlashbangStage(playerid);
}

В конец мода


forward HandleFlashbangStage(playerid);
public HandleFlashbangStage(playerid){
switch (FlashbangStage[playerid]){
case 1 .. 5{
SetPlayerDrunkLevel(playerid, (FlashbangStage[playerid] == 1) ? 50000 : GetPlayerDrunkLevel(playerid));
if (FlashbangStage[playerid] == 2){
FlashbangSwayLevel[playerid] = 1;
HandleFlashbangSway(playerid);
}
if (FlashbangStage[playerid] < 5) TextDrawShowForPlayer(playerid, flashbangStage[FlashbangStage[playerid]]);
if (FlashbangStage[playerid] > 1) TextDrawHideForPlayer(playerid, flashbangStage[FlashbangStage[playerid] - 1]);
FlashbangStage[playerid] = ((FlashbangStage[playerid] == 5) ? -1 : FlashbangStage[playerid]);
}
}
if (FlashbangStage[playerid] < 5 && FlashbangStage[playerid] != -1){
FlashbangStage[playerid]++;
new time = (FlashbangStage[playerid] == 2) ? 1800 : 100;
SetTimerEx("HandleFlashbangStage", time, false, "i", playerid);
}
return 1;
}
forward HandleFlashbangSway(playerid);
public HandleFlashbangSway(playerid){
switch (FlashbangSwayLevel[playerid]){
case 1 .. 6:{
SetPlayerDrunkLevel(playerid, 10000 - (2000 * (FlashbangSwayLevel[playerid] - 1)));
if (FlashbangSwayLevel[playerid] == 6) FlashbangSwayLevel[playerid] = -1;
}
}
if (FlashbangSwayLevel[playerid] < 6 && FlashbangSwayLevel[playerid] != -1){
FlashbangSwayLevel[playerid]++;
new time = (FlashbangSwayLevel[playerid] == 5) ? 1000 : 600;
SetTimerEx("HandleFlashbangSway", time, false, "i", playerid);
}
}


http://www.youtube.com/watch?feature=player_embedded&v=nZzEd6vnvzQ
Автор кода: CaveDweller

Maksim97
11.06.2014, 16:55
прикольно)

georJik
11.06.2014, 19:15
Неплохо

Exclusive
11.06.2014, 22:08
Неплохо

Солидарен.

ߣΘnÐγ*
12.06.2014, 13:29
Не видела такого ещё.

SmitSon
28.09.2014, 13:39
Идеально!) Только минус в том что если бросить флешку возле любой машины, то она убивает игрока. Но не наносит дамаг тс. Так было задумано?

Eliano
30.09.2014, 21:53
Под корректировать и в самый раз для РП серверов.
Хорошая работа.