Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Don't remove the credits
- _____ _ _
- | ___| | | | |
- | |____ _____ _ __ | |_ | |__ _ _
- | __\ \ / / _ \ '_ \| __| | '_ \| | | |
- | |___\ V / __/ | | | |_ | |_) | |_| |
- \____/ \_/ \___|_| |_|\__| |_.__/ \__, |
- __/ |
- |___/
- ______ _ _____ _____
- | ___ (_) / __ \/ __ \
- | |_/ /_ ___ ___ _ __ `' / /'`' / /'
- | /| |/ __/ _ \| '_ \ / / / /
- | |\ \| | (_| (_) | |_) |./ /___./ /___
- \_| \_|_|\___\___/| .__/ \_____/\_____/
- | |
- |_|
- _____ ____ _ _
- | _ | / ___| | | | |
- | |/' |/ /___ | |__ ___| |_ __ _
- | /| || ___ \ | '_ \ / _ \ __/ _` |
- \ |_/ /| \_/ | | |_) | __/ || (_| |
- \___(_)_____/ |_.__/ \___|\__\__,_|
- */
- #include <a_samp>
- #pragma semicolon 0
- #pragma tabsize 0
- enum ricop_evento
- {
- eArmas[8],
- bool:eUseSkin,
- eSkin,
- eVagas,
- eQuantidadeVagas,
- Float:eVida,
- Float:eColete,
- Float:ePos[3],
- eInterior,
- eVirWorld,
- eStatus,
- }
- new EventoInfo[ricop_evento];
- new bool:eEntrou[MAX_PLAYERS];
- new eString[0x80];
- new eventoCarro[MAX_VEHICLES];
- #define ricop true
- #define eCor 0x77BBFFAA
- #define DIALOG_CREDITOS 1123 //Change 1123 if already exist a dialog in your gamemode
- //Change this to your administration system
- #define Admin(%0) IsPlayerAdmin(%0)
- //example:
- //#define Admin(%0) PlayerInfo[%0][pAdmin] //used to gf
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Event System by [Ricop522] loaded !"); //
- print("");
- print(" -----------------------------------------");
- print("");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n--------------------------------------");
- print(" Event System by [Ricop522] unloaded !");
- print("");
- print(" -----------------------------------------");
- print("");
- print("--------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- eEntrou[playerid] = false;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new rCmd[0x80], idx, tmp[128];
- if(!strcmp(rCmd, "/ecredits", true))
- {
- ShowPlayerDialog(playerid, DIALOG_CREDITOS, DIALOG_STYLE_LIST, "[ EN ]", "[Event System]\n\n\n<<< Created by Ricop522 >>>\n\n\n Thanks to - N/A \n\n\n Thanks for use this FS in your server!", "OK", " ");
- return 1;
- }
- if(!strcmp(rCmd, "/event", true))
- {
- new r_r[0x24], eArma, eOption;
- r_r = strtok(cmdtext, idx);
- if(!strlen(r_r))
- {
- SendClientMessage(playerid, eCor, "Use: /event [option]'");
- SendClientMessage(playerid, -1, "enter, \"/ecredits\"");
- if(Admin(playerid))
- {
- SendClientMessage(playerid, -1, "[Admin]: gun[1-8], useskin, eventskin, life, armour");
- SendClientMessage(playerid, -1, "[Admin]: maxplayers, open, close, kick, createcar, destroycars");
- }
- return 0x01;
- }
- if(strcmp(r_r,"destroycars",true) == 0)
- {
- for(new i = 0; i < MAX_VEHICLES; ++i) {
- if(eventoCarro[i] == 1)
- DestroyVehicle(i);
- }
- format(eString, sizeof(eString), "Admin %s destroyed all the event cars !", eNome(playerid));
- SendClientMessageToAll(eCor, eString);
- return 1;
- }
- if(strcmp(r_r,"createcar",true) == 0)
- {
- new contador = 0;
- for(new i = 0; i < MAX_VEHICLES; ++i) {
- if(eventoCarro[i] == 1)
- ++contador;
- }
- if(contador > EventoInfo[eQuantidadeVagas]) return SendClientMessage(playerid, -1, "[ERROR]: The cars are at the maximum event players !");
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- new carroid, cor1, cor2, idcarro;
- tmp = strtok(cmdtext, idx); //Carro ID
- if(!strlen(tmp)) return SendClientMessage(playerid, -1, "<!> /evento criarcarro [carid] [cor1] [cor2]");
- carroid = strval(tmp);
- if(carroid < 400 || carroid > 611) return SendClientMessage(playerid, -1, "[AD:Event] Ops, vehicle ID isn't allowed!");
- tmp = strtok(cmdtext, idx); //Cor 1
- if(!strlen(tmp)) return SendClientMessage(playerid, -1, "<!> /evento criarcarro [carid] [cor1] [cor2]");
- cor1 = strval(tmp);
- if(cor1 < -1 || cor1 > 126) return SendClientMessage(playerid, -1, "[AD:Event]: Use 0 to 126 colors");
- tmp = strtok(cmdtext, idx); //Cor 2
- if(!strlen(tmp)) return SendClientMessage(playerid, -1, "<!> /event createcar [carid] [color1] [color2]");
- cor2 = strval(tmp);
- if(cor2 < -1 || cor2 > 126) return SendClientMessage(playerid, -1, "[AD:Event]: Use 0 to 126 colors");
- new Float:Pos[3]; GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
- idcarro = CreateVehicle(carroid, Pos[0],Pos[1],Pos[2], 0.0, cor1, cor2, 60000);
- eventoCarro[idcarro] = 1;
- LinkVehicleToInterior(idcarro, GetPlayerInterior(playerid));
- SetVehicleVirtualWorld(idcarro, GetPlayerVirtualWorld(playerid));
- format(eString, sizeof(eString), "<!> Event car of ID [%d] created! [Model: %i color1: %1, color2: %i, PosX: %f,Y:%f,Z:%f].", idcarro, carroid, cor1, cor2, Pos[0],Pos[1],Pos[2]);
- SendClientMessage(playerid, eCor, eString);
- format(eString, sizeof(eString), "<!> Admin %s criou o carro [%d] para um evento. [Model: %i color1: %1, color2: %i, PosX: %f,Y:%f,Z:%f].", idcarro, carroid, cor1, cor2, Pos[0],Pos[1],Pos[2]);
- for(new i = 0; i < GetMaxPlayers(); ++i) if(IsPlayerAdmin(i)) SendClientMessage(i, -1, eString);
- return 0x01;
- }
- if(strcmp(r_r,"kick",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use /evento kick [ID] [reason]");
- new id = strval(tmp);
- new length = strlen(cmdtext), offset = idx, result[128]
- while ((idx < length) && (cmdtext[idx] <= ' ')) idx++;
- while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; }
- result[idx - offset] = EOS;
- if(!strlen(result)) return SendClientMessage(playerid, eCor, "<!> Use /event kick [ID] [reason]");
- if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID || eEntrou[id] == false) return SendClientMessage(playerid, -1, "Invalid playerid / Offline playerid / The player isn't at the event.");
- if(strlen(result) == 0) { format(eString, sizeof(eString), "[AD:Event]: Administrator %s kickou %s do evento, motivo: Not informed", eNome(playerid), eNome(id)); }
- else { format(eString, sizeof(eString), "[AD:Event]: Administrator %s kicked %s from the event, reason: %s", eNome(playerid), eNome(id),(result)); }
- SendClientMessageToAll(eCor, eString);
- Kick(id);
- return 0x01;
- }
- if(strcmp(r_r,"close",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- new length = strlen(cmdtext), offset = idx, result[128]
- while ((idx < length) && (cmdtext[idx] <= ' ')) idx++;
- while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; }
- result[idx - offset] = EOS;
- if(!strlen(result)) return SendClientMessage(playerid, eCor, "<!> /event close [reason]");
- EventoInfo[eStatus] = false;
- if(strlen(result) == 0) { format(eString, sizeof(eString), "[AD:Event]: Administrator %s closes the event, reason: Not informed", eNome(playerid)); }
- else { format(eString, sizeof(eString), "[AD:Event]: Administrator %s closes the event, reason: %s", eNome(playerid), (result)); }
- SendClientMessageToAll(eCor, eString);
- resetarEvento();
- return 0x01;
- }
- if(strcmp(r_r,"open",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- EventoInfo[eStatus] = true;
- format(eString, sizeof(eString), "[AD:Event]: Administrator %s open an event! use \"/event enter\" to enter! MaxPlayers: %i", eNome(playerid), EventoInfo[eQuantidadeVagas]);
- SendClientMessageToAll(eCor, eString);
- return 0x01;
- }
- if(strcmp(r_r,"maxplayers",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event maxplayers [how many?]");
- eOption = strval(tmp);
- EventoInfo[eColete] = eOption;
- format(eString, sizeof(eString), "[AD:Event]: Maximum event people seted to %i", eOption);
- SendClientMessage(playerid, eCor, eString);
- return 0x01;
- }
- if(strcmp(r_r,"armour",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event armour [how many?]");
- new Float:eOption2 = floatstr(tmp);
- EventoInfo[eColete] = eOption2;
- format(eString, sizeof(eString), "[AD:Event]: Event armour seted to %f", eOption2);
- SendClientMessage(playerid, eCor, eString);
- return 0x01;
- }
- if(strcmp(r_r,"health",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event life [how many?]");
- new Float:eOption2 = floatstr(tmp);
- EventoInfo[eVida] = eOption2;
- format(eString, sizeof(eString), "[AD:Event]: Event life seted to %f", eOption2);
- SendClientMessage(playerid, eCor, eString);
- return 0x01;
- }
- if(strcmp(r_r,"eventskin",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- if(EventoInfo[eUseSkin] == false) return SendClientMessage(playerid, eCor, "[AD:Event]: Use \"/event useskin 1\" to active the event skin.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event eventskin [skinid]");
- eOption = strval(tmp);
- if(eOption < 0 || eOption > 299) return SendClientMessage(playerid, eCor, "[AD:Event]: Use 1 to 299 skins.");
- EventoInfo[eSkin] = eOption;
- return 0x01;
- }
- if(strcmp(r_r,"useskin",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event useskin [option]");
- eOption = strval(tmp);
- if(eOption < 0 || eOption > 1) return SendClientMessage(playerid, eCor, "[AD:Event]: Use (1 - active) | (0 - unactive).");
- if(eOption == 1) (EventoInfo[eUseSkin] = true); else (EventoInfo[eUseSkin] = false);
- return 0x01;
- }
- if(strcmp(r_r,"enter",true) == 0)
- {
- if(EventoInfo[eStatus] == 0) return SendClientMessage(playerid, eCor, "[AD:Event]: Evento fechado!");
- eEntrou[playerid] = true;
- entrarEvento(playerid);
- }
- if(strcmp(r_r,"gun1",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun1 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][0] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun2",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun2 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][1] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun3",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun3 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][2] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun4",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun4 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][3] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun5",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun5 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][4] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun6",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun6 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][5] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun7",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun7 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][6] = eArma;
- return 0x01;
- }
- if(strcmp(r_r,"gun8",true) == 0)
- {
- if(!Admin(playerid)) return SendClientMessage(playerid, eCor, "[AD:Event]: You're not an Administrator.");
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, eCor, "<!> Use: /event gun8 [gunID]");
- eArma = strval(tmp);
- if(eArma < 1 || eArma > 49) return SendClientMessage(playerid, eCor, "[AD:Event]: invalid weapon id.");
- EventoInfo[eArmas][7] = eArma;
- return 0x01;
- }
- return 0x01;
- }
- return 0x0;
- }
- stock resetarEvento()
- {
- for(new r = 0; r <= 7; ++r) EventoInfo[eArmas][r] = 0;
- EventoInfo[eUseSkin] = false;
- EventoInfo[eSkin] = 1;
- EventoInfo[eVagas] = 10;
- EventoInfo[eQuantidadeVagas] = 0;
- EventoInfo[eVida] = 100.0;
- EventoInfo[eColete] = 0.0;
- EventoInfo[ePos][0] = 0.0;
- EventoInfo[ePos][1] = 0.0;
- EventoInfo[ePos][2] = 0.0;
- EventoInfo[eInterior] = 0;
- EventoInfo[eVirWorld] = 0;
- EventoInfo[eStatus] = 0;
- return ricop;
- }
- stock entrarEvento(playerid)
- {
- if(eEntrou[playerid] == true) return SendClientMessage(playerid, eCor, "<!> You already are at the event !");
- if(EventoInfo[eQuantidadeVagas] == EventoInfo[eVagas])
- {
- format(eString, sizeof(eString), "[AD:Event] The event already are in the limit (%i max!)", EventoInfo[eVagas]);
- SendClientMessageToAll(eCor, eString);
- EventoInfo[eStatus] = false;
- return 1;
- }
- format(eString, sizeof(eString), "[AD:Event] %s entered into event", eNome(playerid));
- SendClientMessageToAll(eCor, eString);
- entrarEvento(playerid);
- SetPlayerPos(playerid, EventoInfo[ePos][0],EventoInfo[ePos][1],EventoInfo[ePos][2]);
- SetPlayerInterior(playerid, EventoInfo[eInterior]);
- SetPlayerVirtualWorld(playerid, EventoInfo[eVirWorld]);
- SetPlayerHealth(playerid, EventoInfo[eVida]);
- SetPlayerArmour(playerid, EventoInfo[eColete]);
- if(EventoInfo[eUseSkin] == true) SetPlayerSkin(playerid, EventoInfo[eSkin]);
- EventoInfo[eQuantidadeVagas]++;
- return 0x01;
- }
- stock eNome(playerid)
- {
- new nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, nome, sizeof(nome));
- return nome;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' ')) index++;
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; }
- result[index - offset] = EOS; return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement