Jump to content

script Dynamický Systém: Bomby


ApoWo

Recommended Posts

Zdravím. Vyšla nová verzia môjho systému, verzia 1.1 ktorá priniesla nový typ bomby, bomba na zem. Novinky tejto verzie:

• Nemôžete mať 2 bomby naraz,

• Nemôžete nastúpiť do vozidla ak máte aktívnu sebavražednú bombu,

• Bomba na zem - vytvorí sa objekt na vašej pozícií,

• Timery budú zničené pri odpojení z hry,

• Nemôžete plantovať bomby vo vozidle, počas jazdy..

 

Môžete sa tešiť na verziu 1.2, v ktorej budete môcť bomby detonovať pomocou klavesy :)

 

Kód:

 

#include <a_samp>
#define DIALOG_BOMB			 100
#define DIALOG_TIME_0		 101
#define DIALOG_TIME_1		 102
forward timer0(playerid);
new timer00[MAX_PLAYERS];
new bool:active[MAX_PLAYERS];
forward timer1(playerid);
new timer01[MAX_PLAYERS];
new bool:bactive[MAX_PLAYERS];
new bbomb[MAX_PLAYERS];
forward destroy(playerid);
main() {
print("\nfilterscript loaded\n");
}
public OnFilterScriptInit()
{
return 0;
}
public OnPlayerConnect(playerid)
{
bactive[playerid] = false;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
bactive[playerid] = false;
destroy(playerid);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/bomb", true))
{
 if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}Tento príkaz nemôžeš použiť vo Vozidle.");
 else ShowPlayerDialog(playerid, DIALOG_BOMB, DIALOG_STYLE_LIST, "{FFFFFF}Vyber si typ Bomby", "Samovražedná bomba \nBomba na zem", "Hotovo", "Cancel");
 return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_BOMB)
{
 if(response)
 {
	 switch(listitem)
	 {
 case 0:
		 {
			 ShowPlayerDialog(playerid, DIALOG_TIME_0, DIALOG_STYLE_INPUT, "{FFFFFF}Vyber si čas na detonáciu", "1000ms. = 1sec.", "Hotovo", "Cancel");
}
case 1:
{
 ShowPlayerDialog(playerid, DIALOG_TIME_1, DIALOG_STYLE_INPUT, "{FFFFFF}Vyber si čas na detonáciu", "1000ms. = 1sec.", "Hotovo", "Cancel");
}
}
}
}

if(dialogid == DIALOG_TIME_0)
{
 if(bactive[playerid] == true) return SendClientMessage(playerid, -1, "{FF0000}Už máš aktívnu jednu bombu");
 else
if(response)
 {
if(!inputtext[0]) {
 SendClientMessage(playerid, -1, "{FF0000}Nezadal si žiaden čas");
 ShowPlayerDialog(playerid, DIALOG_TIME_0, DIALOG_STYLE_INPUT, "{FFFFFF}Vyber si čas na detonáciu", "", "Hotovo", "Cancel");
}
else {
 timer00[playerid] = SetTimerEx("timer0", strval(inputtext), false, "i", playerid);
 active[playerid] = true;
 bactive[playerid] = true;
}
}
}
if(dialogid == DIALOG_TIME_1)
{
 if(bactive[playerid] == true) return SendClientMessage(playerid, -1, "{FF0000}Už máš aktívnu jednu bombu");
 else
if(response)
 {
	 if(!inputtext[0]) {
 SendClientMessage(playerid, -1, "{FF0000}Nezadal si žiaden čas");
 ShowPlayerDialog(playerid, DIALOG_TIME_1, DIALOG_STYLE_INPUT, "{FFFFFF}Vyber si čas na detonáciu", "", "Hotovo", "Cancel");
}
else {
 timer01[playerid] = SetTimerEx("timer1", strval(inputtext), false, "i", playerid);
bactive[playerid] = true;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
bbomb[playerid] = CreateObject(1252, x+0.5, y, z, 0, 0, 0, 50.0);
	 }
}
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:x, Float:y, Float:z;
if(active[playerid] == true) {
 GetPlayerPos(playerid, x, y, z);
 SetPlayerPos(playerid, x, y, z);
 SendClientMessage(playerid, -1, "{FF0000}Máš aktívnu bombu. Nemôžeš šoférovať.");
}
return 1;
}
public timer0(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateExplosion(x, y, z, 1, 10.0);
SetPlayerHealth(playerid, 0);
bactive[playerid] = false;
active[playerid] = false;
return 1;
}
public timer1(playerid)
{
new Float:x, Float:y, Float:z;
GetObjectPos(bbomb[playerid], x, y, z);
CreateExplosion(x, y, z, 1, 10.0);
DestroyObject(bbomb[playerid]);
bactive[playerid] = false;
return 1;
}
public destroy(playerid)
{
KillTimer(timer00[playerid]);
return 1;
}

 

 

PS: Kód je poprehadzovaný..

Link to comment
Share on other sites

debilina, načo tu dávate svoje prvé veci, chápem že každý chce zafrajeriť prvým scriptom, ale čo z toho keď je to blbosť ... keby tu bol aspoň fix na killnutie timeru pri disconnecte ...

Link to comment
Share on other sites

debilina, načo tu dávate svoje prvé veci, chápem že každý chce zafrajeriť prvým scriptom, ale čo z toho keď je to blbosť ... keby tu bol aspoň fix na killnutie timeru pri disconnecte ...

Chápem že tu tým spamujeme, ale chceme ukázať že niečo dokážeme a chceme to robiť. Ďakujem za upozornenie na ten timer.

 

MrSweet: Vďaka :)

Link to comment
Share on other sites

NOVÁ VERZIA 1.2, NOVINKY A KÓD V HLAVNOM PRÍSPEVKU.

 

Paulo, je to hra a tá bomba slúži napr. na atentát. Keď napr. vo filme vidíš ako teroristi namontujú na obeť bombu pošlú ju pred vojakov a vyhodia ich tak tak som to chcel aj ja :)

Premenoval som to na Dynamický Systém: Bomby pretože v prvej verzií bola len jedná bomba :d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...