Jump to content
Prosíme všetkých užívateľov, ktorý sa chcú opätovne pripojiť na discord aby znovu spárovali svoje účty kliknutím na "Discord" v navigácií a pripojili sa na server Read more... ×
Sign in to follow this  
Nope

script INC Just Event 1 KB SCRIPT

Recommended Posts

INC Just Event v1.0

Stejně jako include Just Property i tenhle má jen vypomáhat v kódování. Není to už zcela hotový script, který se jen vrazí na server!

Porovnávání

5. Kompilované Just Gang Systém v0.1 má 239 kB 
4. Kompilované Just AdminScript v1.0 má 108 kB
3. Kompilované Just House Systém v1.0 s 3 domy má pouze 41 kB
2. Kompilované Just Property v1.0 s 1 nemovkou má pouze 20 kB !!!
1. Kompilované Just Event v1.0 s použitím fcí a maker... naprosto neuvěřitelný 1 kB !!! (nky. 2)
68970331.jpg

 

Spoiler

Ještě přemýšlím o tom, že to všechno dám dohromady a udělám nějakou knihovnu. Hlavně když teď už udělat menší script (inc) udělat zkrátka nejde, protože 0 kB a byl by plně funkční asi těžko 😄 

Ke stažení
Jelikož to má sotva pár řádků, tak to jde vložit i klidně rovnou nahoru nebo někam do kódu a není ani nějak třeba to nahrávat přes nějaký soubor:d . Kód:

Spoiler

#include <a_samp>
#undef 	MAX_PLAYERS
#define MAX_PLAYERS 		50
#define MAX_EVENT_VEHICLES 	10
native 	IsValidVehicle(vehicleid);
new 	EventVehicles[MAX_EVENT_VEHICLES], Event, bool:OnEvent[MAX_PLAYERS];
#define EventVehicleID(%0) EventVehicles[%0]
#define IsThisEventVehicle(%0) IsValidVehicle(EventVehicles[%0])
#define IsPlayerInEventVehicle(%0,%1) GetPlayerVehicleID(playerid)==EventVehicles[%1]
#define CreateEventVehicle(%0,%1,%2,%3,%4,%5,%6) EventVehicles[%0]=CreateVehicle(%1,%2,%3,%4,90.0,%5,%6,-1)
#define IsPlayerOnEvent(%0) OnEvent[%0]

 

Tohle je tak 30 % základu na vytvoření EventScript dle přání. Ukážeme si několik fcí a možností co jde dělat dál:
Kategorizace eventů (typy eventů)

#define GetEventType() Event

/*
	0 == Žádný
	1 == Tunning Sráz
	2 == Běh
	3 == Závod
*/

	if (!strcmp("/event", cmdtext)) {

		if (GetEventType() == 0) 
			return SendClientMessage(playerid, -1, "Momentálně neprobíhá žádný event !");

		if (GetEventType() == 1 && !IsPlayerInAnyVehicle(playerid)) 
			return SendClientMessage(playerid, -1, "Nejsi ve vozidle !");

		if ((GetEventType() == 2 || GetEventType() == 3) && IsPlayerInAnyVehicle(playerid)) 
			return SendClientMessage(playerid, -1, "Nesmíš být ve vozidle !");

		return 1;
	}

Poslat hráče na event

SendPlayerOnEvent(playerid, type) {
	if (IsPlayerOnEvent(playerid)) 
		return SendClientMessage(playerid, -1, "Už jsi na eventu !");
	if (type == 1) SetPlayerPos(playerid, ...);
	if (type == 2) SetPlayerPos(playerid, ...);
	OnEvent[playerid] = true;
	return 1;
}
// Sample code
	if (!strcmp("/event", cmdtext)) {

		SendPlayerOnEvent(playerid, GetEventType());
		return 1;
	}

Poslat hráče na event do vozidla

// CreateEventVehicle(MAX_EVENT_VECHILES, modelid, pos1, pos2, pos3, barva1, barva2);
// IsThisEventVehicle(MAX_EVENT_VECHILES);

GetFreeEventVeh() {
	for (new i = 0; i < MAX_EVENT_VEHICLES; i++) {
		if (!IsThisEventVehicle(i)) return i;
	}
	return -1;
}

SendPlayerOnRace(playerid) {
	if (GetFreeEventVeh() == -1)
		return SendClientMessage(playerid, -1, "Už není prostor !");
	if (IsPlayerOnEvent(playerid)) 
		return SendClientMessage(playerid, -1, "Už jsi na eventu !");
	new Float: pos[3];
	GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
	CreateEventVehicle(GetFreeEventVeh(), 415, pos[0], pos[1], pos[2], random(199), random(199));
	OnEvent[playerid] = true;
	return 1;
}

// Sample code
	if (!strcmp("/race", cmdtext)) {

		SendPlayerOnRace(playerid);
		return 1;
	}

Zrušit event a zničit všechny event vozidla

EndEvent() {
	for (new i = 0; i < MAX_EVENT_VEHICLES; i++) if (!IsThisEventVehicle(i)) DestroyVehicle(EventVehicleID(i));
	for (new a = 0; a < MAX_PLAYERS; i++) if (IsPlayerOnEvent(a)) OnEvent[a] = false;
	return 1;
}

Pojistka v případě odpojení

public OnPlayerDisconnect(playerid, reason) {
	if (IsPlayerOnEvent(playerid)) {
		for (new i = 0; i < MAX_EVENT_VEHICLES; i++) {
			if (IsPlayerInEventVehicle(playerid, i)) DestroyVehicle(EventVehicleID(i));
		}
	}
	return 1;
}

A jelikož je tohle trochu i návod, tak pro @HighPrint
:d
WhiteFlashyGoshawk-size_restricted.gif&k

Edited by Nope
  • Líbí se mi to! (+1) 1

Sdílet tento příspěvek


Link to post
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
Sign in to follow this  

×