Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- hE-Vent
- Autor: |GSR|Honig
- Datum: 06.01.2012
- Info für den Benutzer:
- Es ist nicht erlaubt, Credits zu entfernen!
- Du darfst das Script bearbeiten und auf deinem Server verwenden, es allerdings
- nicht veröffentlichen, als deins ausgeben o.ä.!
- */
- #include <a_samp>
- #include <zcmd>
- #define Msg SendClientMessage
- #define MsgAll SendClientMessageToAll
- #define rot 0xFF0000FF
- #define gruen 0x00FF00FF
- #define gelb 0xFFFF00FF
- #define weiss 0xFFFFFFFF
- #define DIALOG_EVENT_START 65
- #define DIALOG_EVENT_SELECT_CAR 66
- #define DIALOG_EVENT_SELECT_COL 67
- #define DIALOG_EVENT_SELECT_MAX 68
- #define DIALOG_EVENT_SELECT_PRICE 69
- #define DIALOG_EVENT_SELECT_COUNT 70
- forward RaceCount();
- new str[128];
- new name[25];
- new Text:first;
- new Text:second;
- new Text:third;
- new Float:ePort[3];
- new Float:e_cpX[15];
- new Float:e_cpY[15];
- new Float:e_cpZ[15];
- new Float:Abstand;
- new ResetEventTime = 0;
- new PlayerCheck[MAX_PLAYERS];
- new e_Check[MAX_PLAYERS];
- new timer;
- new win;
- enum evInfo
- {
- e_cID,
- e_cCol,
- e_cAnzahl,
- e_Preis,
- e_Count,
- e_3rd,
- e_2nd,
- e_1st,
- bool:e_Active
- }
- new EventInfo[evInfo];
- public OnFilterScriptInit()
- {
- print("|- hE-Vent gestartet! -|");
- ResetEvent();
- //=======================================//
- third = TextDrawCreate(20.000000, 310.000000, "3. ---");
- TextDrawBackgroundColor(third, 255);
- TextDrawFont(third, 2);
- TextDrawLetterSize(third, 0.600000, 2.000000);
- TextDrawColor(third, -16776961);
- TextDrawSetOutline(third, 0);
- TextDrawSetProportional(third, 1);
- TextDrawSetShadow(third, 1);
- //=======================================//
- second = TextDrawCreate(20.000000, 282.000000, "2. ---");
- TextDrawBackgroundColor(second, 255);
- TextDrawFont(second, 2);
- TextDrawLetterSize(second, 0.600000, 2.000000);
- TextDrawColor(second, -65281);
- TextDrawSetOutline(second, 0);
- TextDrawSetProportional(second, 1);
- TextDrawSetShadow(second, 1);
- //=======================================//
- first = TextDrawCreate(20.000000, 251.000000, "1. ---");
- TextDrawBackgroundColor(first, 255);
- TextDrawFont(first, 2);
- TextDrawLetterSize(first, 0.620000, 2.000000);
- TextDrawColor(first, 16711935);
- TextDrawSetOutline(first, 0);
- TextDrawSetProportional(first, 1);
- TextDrawSetShadow(first, 1);
- //=======================================//
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- if(response)
- {
- switch(dialogid)
- {
- case DIALOG_EVENT_START:
- {
- ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_CAR,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Bitte gib die {00FF00}ModelID {FFFFFF}der Fahrzeuge ein (400-611):","Okay","Abbrechen");
- }
- case DIALOG_EVENT_SELECT_CAR:
- {
- EventInfo[e_cID] = strval(inputtext);
- if(!strval(inputtext)) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_CAR,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Du musst eine {00FF00}ModelID {FF0000}eingeben (400-611)!","Okay","Abbrechen");
- if(EventInfo[e_cID] < 400 || EventInfo[e_cID] > 611) ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_CAR,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Die {00FF00}ModelID {FF0000}muss zwischen 400 und 611 liegen!","Okay","Abbrechen");
- format(str,128,"* ModelID: %d",EventInfo[e_cID]);
- Msg(playerid,gruen,str);
- ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_COL,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Bitte gib eine {00FF00}FarbID {FFFFFF}ein (0-126):","Okay","Abbrechen");
- }
- case DIALOG_EVENT_SELECT_COL:
- {
- EventInfo[e_cCol] = strval(inputtext);
- if(!strval(inputtext)) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_COL,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Du musst eine {00FF00}FarbID {FF0000}eingeben (0-126)!","Okay","Abbrechen");
- if(EventInfo[e_cCol] < 0 || EventInfo[e_cCol] > 126) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_COL,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Die {00FF00}FarbID {FF0000}muss zwischen 0 und 126 liegen!","Okay","Abbrechen");
- format(str,128,"* FarbID: %d",EventInfo[e_cCol]);
- Msg(playerid,gruen,str);
- ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_MAX,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Gib bitte die Anzahl der beteiligten {00FF00}Fahrzeuge {FFFFFF}ein (Max. 10):","Okay","Abbrechen");
- }
- case DIALOG_EVENT_SELECT_MAX:
- {
- EventInfo[e_cAnzahl] = strval(inputtext);
- if(!strval(inputtext)) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_MAX,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Du musst die Anzahl der beteiligten {00FF00}Fahrzeuge {FF0000}eingeben (Max. 10)!","Okay","Abbrechen");
- if(EventInfo[e_cAnzahl] < 0 || EventInfo[e_cAnzahl] > 15) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_MAX,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Die Maximale Anzahl der beteiligten {00FF00}Fahrzeuge {FF0000}beträgt 10!","Okay","Abbrechen");
- format(str,128,"* Anzahl Fahrzeuge: %d",EventInfo[e_cAnzahl]);
- Msg(playerid,gruen,str);
- ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_PRICE,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Gib bitte den {00FF00}Preis {FFFFFF}ein:","Okay","Abbrechen");
- }
- case DIALOG_EVENT_SELECT_PRICE:
- {
- EventInfo[e_Preis] = strval(inputtext);
- if(!strval(inputtext)) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_PRICE,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Gib bitte den {00FF00}Preis {FF0000}ein:","Okay","Abbrechen");
- format(str,128,"* Preis: $%d",EventInfo[e_Preis]);
- Msg(playerid,gruen,str);
- ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_COUNT,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Gib bitte die Zeit in {00FF00}Sekunden {FFFFFF}ein, wann das Event anfängt:","Okay","Abbrechen");
- }
- case DIALOG_EVENT_SELECT_COUNT:
- {
- EventInfo[e_Count] = strval(inputtext);
- if(!strval(inputtext)) return ShowPlayerDialog(playerid,DIALOG_EVENT_SELECT_COUNT,DIALOG_STYLE_INPUT,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","{FF0000}Du musst die Zeit in {00FF00}Sekunden {FF0000}eingeben!","Okay","Abbrechen");
- new Float:Pos[4];
- format(str,128,"* Zeit bis zum Start: %d Sekunden",EventInfo[e_Count]);
- Msg(playerid,gruen,str);
- GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
- GetPlayerFacingAngle(playerid,Pos[3]);
- for(new i=0;i<EventInfo[e_cAnzahl];i++)
- {
- Abstand += 3.0;
- CreateVehicle(EventInfo[e_cID],Pos[0]+Abstand,Pos[1],Pos[2],Pos[3],EventInfo[e_cCol],EventInfo[e_cCol],-1);
- }
- Msg(playerid,gruen,"* Eventfahrzeuge erstellt.");
- Msg(playerid,gruen,"* Nun musst du {FFFF00}15 Race-Checkpoints erstellen. Gehe dazu zur gewünschten Stelle und tippe {00FF00}/check.");
- SetPVarInt(playerid,"CP",1);
- GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
- ePort[0] = Pos[0];
- ePort[1] = Pos[1];
- ePort[2] = Pos[2];
- }
- }
- }
- else
- {
- switch(dialogid)
- {
- case DIALOG_EVENT_START .. DIALOG_EVENT_SELECT_COUNT:
- {
- Msg(playerid,rot,"* Event erstellen abgebrochen.");
- ResetEvent();
- }
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- DisablePlayerCheckpoint(playerid);
- if(EventInfo[e_Active] == true)
- {
- e_Check[playerid]++;
- SetPlayerCheckpoint(playerid,e_cpX[e_Check[playerid]],e_cpY[e_Check[playerid]],e_cpZ[e_Check[playerid]],20.0);
- if(e_Check[playerid] == 14)
- {
- new stra[128];
- if(win == 0)
- {
- win = 1;
- format(str,128,"~g~1. ~w~%s",PlayerName(playerid));
- GameTextForAll(str,5000,5);
- TextDrawSetString(first,str);
- TextDrawShowForAll(first);
- Msg(playerid,gruen,"|- FINISHED! (1. Platz) -|");
- GivePlayerMoney(playerid,EventInfo[e_Preis]);
- format(str,128,"Du bekommst {FFFF00}$%d Preisgeld!",EventInfo[e_Preis]);
- Msg(playerid,gruen,str);
- EventInfo[e_1st] = playerid;
- format(stra,128,"1. wurde... %s! Herzlichen Glückwunsch!",PlayerName(playerid));
- MsgAll(gruen,stra);
- }
- else if(win == 1 && EventInfo[e_1st] != playerid)
- {
- win = 2;
- format(str,128,"~y~2. ~w~%s",PlayerName(playerid));
- GameTextForAll(str,5000,5);
- TextDrawSetString(second,str);
- TextDrawShowForAll(second);
- Msg(playerid,gruen,"|- FINISHED! (2. Platz) -|");
- EventInfo[e_2nd] = playerid;
- format(stra,128,"2. wurde... %s!",PlayerName(playerid));
- MsgAll(gelb,stra);
- }
- else if(win == 2 && EventInfo[e_2nd] != playerid)
- {
- format(str,128,"~r~3. ~w~%s",PlayerName(playerid));
- GameTextForAll(str,5000,5);
- TextDrawSetString(third,str);
- TextDrawShowForAll(third);
- Msg(playerid,gruen,"|- FINISHED! (3. Platz) -|");
- EventInfo[e_3rd] = playerid;
- format(stra,128,"3. wurde... %s!",PlayerName(playerid));
- MsgAll(rot,stra);
- ResetEventTime = 10;
- }
- }
- }
- return 1;
- }
- public RaceCount()
- {
- if(EventInfo[e_Count] > 1)
- {
- EventInfo[e_Count] --;
- format(str,84,"~g~Zeit bis zum Event:~n~~r~%d",EventInfo[e_Count]);
- GameTextForAll(str,1000,5);
- }
- if(EventInfo[e_Count] == 1)
- {
- EventInfo[e_Count] = 0;
- MsgAll(gruen,"|=== {FFFF00}EVENT {00FF00}GESTARTET ==|");
- MsgAll(weiss,"| Allen Teilnehmern viel Glück!");
- MsgAll(gruen,"|=========================================|");
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- SetPlayerCheckpoint(i,e_cpX[0],e_cpY[0],e_cpZ[0],20.0);
- e_Check[i] = 0;
- }
- }
- if(ResetEventTime > 1)
- {
- ResetEventTime --;
- }
- if(ResetEventTime == 1)
- {
- ResetEvent();
- }
- return 1;
- }
- COMMAND:gotoevent(playerid,params[])
- {
- if(GetPVarInt(playerid,"CanPort") == 0) return Msg(playerid,rot,"Du kannst dich zu keinem Event porten!");
- if(GetPlayerInterior(playerid) != 0) return Msg(playerid,rot,"Du darfst in keinem Interior sein wenn du dich porten willst!");
- if(GetPlayerWantedLevel(playerid) != 0) return Msg(playerid,rot,"Nicht wenn du Wanteds hast :-)");
- SetPlayerPos(playerid,ePort[0],ePort[1],ePort[2]);
- Msg(playerid,gruen,"Du hast dich zum Event geportet!");
- Msg(playerid,weiss,"Viel Spaß!");
- return 1;
- }
- COMMAND:event(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(EventInfo[e_Active] == true) return Msg(playerid,rot,"Es läuft bereits ein Event, tippe /sevent!");
- EventInfo[e_Active] = true;
- ShowPlayerDialog(playerid,DIALOG_EVENT_START,DIALOG_STYLE_MSGBOX,"{33CCFF}h-RaceEvent {FFFFFF}by |GSR|Honig","Wirklich ein {00FF00}Event {FFFFFF}starten?","Ja","Nein");
- return 1;
- }
- COMMAND:sevent(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(EventInfo[e_Active] == false) return Msg(playerid,rot,"Es läuft kein Event!");
- ResetEvent();
- Msg(playerid,rot,"* Du hast das Event erfolgreich beendet!");
- return 1;
- }
- COMMAND:check(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(GetPVarInt(playerid,"CP") == 0) return Msg(playerid,rot,"Das kannst du momentan nicht verwenden.");
- switch(PlayerCheck[playerid])
- {
- case 0: {GetPlayerPos(playerid,e_cpX[0],e_cpY[0],e_cpZ[0]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 1/15");}
- case 1: {GetPlayerPos(playerid,e_cpX[1],e_cpY[1],e_cpZ[1]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 2/15");}
- case 2: {GetPlayerPos(playerid,e_cpX[2],e_cpY[2],e_cpZ[2]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 3/15");}
- case 3: {GetPlayerPos(playerid,e_cpX[3],e_cpY[3],e_cpZ[3]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 4/15");}
- case 4: {GetPlayerPos(playerid,e_cpX[4],e_cpY[4],e_cpZ[4]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 5/15");}
- case 5: {GetPlayerPos(playerid,e_cpX[5],e_cpY[5],e_cpZ[5]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 6/15");}
- case 6: {GetPlayerPos(playerid,e_cpX[6],e_cpY[6],e_cpZ[6]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 7/15");}
- case 7: {GetPlayerPos(playerid,e_cpX[7],e_cpY[7],e_cpZ[7]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 8/15");}
- case 8: {GetPlayerPos(playerid,e_cpX[8],e_cpY[8],e_cpZ[8]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 9/15");}
- case 9: {GetPlayerPos(playerid,e_cpX[9],e_cpY[9],e_cpZ[9]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 10/15");}
- case 10: {GetPlayerPos(playerid,e_cpX[10],e_cpY[10],e_cpZ[10]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 11/15");}
- case 11: {GetPlayerPos(playerid,e_cpX[11],e_cpY[11],e_cpZ[11]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 12/15");}
- case 12: {GetPlayerPos(playerid,e_cpX[12],e_cpY[12],e_cpZ[12]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 13/15");}
- case 13: {SetPVarInt(playerid,"CP",2); GetPlayerPos(playerid,e_cpX[13],e_cpY[13],e_cpZ[13]); PlayerCheck[playerid]++; return SendClientMessage(playerid,gruen,"* 14/15! Vorletzter Checkpoint. Der letzte ist das Ziel. Tippe dort /finish"); }
- }
- return 1;
- }
- COMMAND:finish(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(GetPVarInt(playerid,"CP") != 2) return Msg(playerid,rot,"Das kannst du momentan nicht verwenden.");
- SetPVarInt(playerid,"CP",0);
- SetPVarInt(playerid,"Ready",1);
- GetPlayerPos(playerid,e_cpX[14],e_cpY[14],e_cpZ[14]);
- Msg(playerid,gruen,"Das war der letzte Checkpoint! Tippe nun {FFFF00}/startevent {FFFF00}um das {FFFF00}Event {FFFF00}zu starten!");
- return 1;
- }
- COMMAND:startevent(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(GetPVarInt(playerid,"Ready") == 0) return Msg(playerid,rot,"Das kannst du momentan nicht verwenden.");
- timer = SetTimer("RaceCount",1000,true);
- MsgAll(weiss,"|--------- Event-Time! ---------|");
- MsgAll(gruen,"Es wurde ein {33CCFF}Race-Event {FFFFFF}gestartet!");
- MsgAll(gruen,"Um hinzugehen, tippe {33CCFF}/gotoevent!");
- MsgAll(weiss,"|----------------------------------|");
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- SetPVarInt(i,"CanPort",1);
- }
- return 1;
- }
- COMMAND:vdel(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return Msg(playerid,rot,"Du besitzt nicht die nötigen Rechte um diesen Befehl auszuführen!");
- if(!IsPlayerInAnyVehicle(playerid)) return Msg(playerid,rot,"Du bist nicht in einem Fahrzeug!");
- DestroyVehicle(GetPlayerVehicleID(playerid));
- Msg(playerid,gruen,"* Fahrzeug gelöscht.");
- return 1;
- }
- stock ResetEvent()
- {
- EventInfo[e_cID] = 0;
- EventInfo[e_cCol] = 0;
- EventInfo[e_cAnzahl] = 0;
- EventInfo[e_Preis] = 0;
- EventInfo[e_Count] = 0;
- EventInfo[e_3rd] = 0;
- EventInfo[e_2nd] = 0;
- EventInfo[e_1st] = 0;
- EventInfo[e_Active] = false;
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- SetPVarInt(i,"CanPort",0);
- SetPVarInt(i,"CP",0);
- PlayerCheck[i] = 0;
- e_Check[i] = 0;
- }
- for(new i=0;i<15;i++)
- {
- e_cpX[i] = 0.0;
- e_cpY[i] = 0.0;
- e_cpZ[i] = 0.0;
- }
- for(new i=0;i<3;i++)
- {
- ePort[i] = 0.0;
- }
- KillTimer(timer);
- win = 0;
- Abstand = 0.0;
- TextDrawHideForAll(third);
- TextDrawHideForAll(second);
- TextDrawHideForAll(first);
- return 1;
- }
- stock PlayerName(playerid)
- {
- GetPlayerName(playerid,name,25);
- return name;
- }
- /*
- Viel Spaß wünscht
- Honig
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement