Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #define COLOR_RED 0xFF0000
- #define COLOR_GREEN 0xFF0000
- #define COLOR_TOMATO 0xFF0000
- #define DIALOG_LOGIN 3
- #define DIALOG_REG 4
- #define VERLUST 10000
- #define BENZINPREIS 3
- forward BenzinVerlust(); // Wir forwarden unseren Timer für den Benzinverlust
- forward Auftanken(playerid); // Wir forwarden unseren Timer für das Tanken
- enum spieler_daten
- {
- wanted,
- skin,
- Float:lastx,Float:lasty,Float:lastz,
- eingeloggt,
- }
- new Spieler[MAX_PLAYERS][spieler_daten];
- new engine,lights,alarm,doors,bonnet,boot,objective; // Dies sind die Variablen die für das einschalten des Motors benötigt werden.
- new bool:Motor[MAX_VEHICLES]=false; // Dies ist die Boolean für den Motor. [MAX_VEHICLES] ist angehängt, da sie für jedes Fahrzeug unterschiedlich sein kann.
- new Tank[MAX_VEHICLES], bool:TanktGerade[MAX_VEHICLES]=false, tanktimer[MAX_PLAYERS];
- main()
- {
- print("\n----------------------------------");
- print(" Reallife GameMode by Niklas Bussmann started at 08.07.2012");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- ManualVehicleEngineAndLights(); // Dies muss in OnGameModeInit angegeben werden, damit das ganze System überhaupt funktioniert.
- SetTimer("BenzinVerlust", VERLUST, true);
- for (new i=0; i< MAX_VEHICLES; i++)
- {
- GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
- Motor[i] = false;
- Tank[i] = 100;
- }
- AddStaticVehicle(445,2407.8840,1958.3783, 1343.1572, 15.3746,6,3);
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
- if(fexist(accFormat))
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
- if(fexist(accFormat) && Spieler[playerid][eingeloggt])
- {
- dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
- dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
- dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
- dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
- dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
- dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
- dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
- }
- Spieler[playerid][eingeloggt] = 0;
- Spieler[playerid][wanted] = 0;
- Spieler[playerid][skin] = 0;
- Spieler[playerid][lastx] = (0.0);
- Spieler[playerid][lasty] = (0.0);
- Spieler[playerid][lastz] = (0.0);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
- if(dini_Isset(accFormat,"lastx"))
- {
- SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
- Motor[vehicleid] = false;
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/geld", cmdtext, true, 10) == 0)
- {
- SetPlayerScore(playerid, 5);
- GivePlayerMoney(playerid, 100000);
- return 1;
- }
- if(strcmp(cmdtext, "/m", true) == 0)
- {
- new car = GetPlayerVehicleID(playerid);
- if(GetPlayerVehicleSeat(playerid) == 0)
- {
- if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
- {
- SendClientMessage(playerid, COLOR_RED, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
- }
- else if (Motor[car] == false)
- {
- GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
- Motor[car] = true;
- }
- else
- {
- GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
- Motor[car] = false;
- }
- }
- else if (Tank[car] < 1)
- {
- SendClientMessage(playerid, COLOR_RED, "Der Tank ist leer. Du musst erst /tanken.");
- }
- else if (Motor[car] == false )
- {
- GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
- Motor[car] = true;
- }
- else
- {
- GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
- Motor[car] = false;
- }
- }
- if(strcmp(cmdtext, "/tanken", true) == 0)
- {
- if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug (oder kein Fahrer).");
- new car = GetPlayerVehicleID(playerid);
- if (TanktGerade[car]) return SendClientMessage(playerid,COLOR_RED,"Du tankst schon!");
- if (Motor[car] == true) return SendClientMessage(playerid, COLOR_RED,"Du musst vor dem Tanken den Motor ausschalten.");
- new ZuTanken = 100-Tank[car];
- new preis = ZuTanken * BENZINPREIS;
- if (GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid, COLOR_TOMATO, "Du hast nicht genug Geld!");
- GivePlayerMoney(playerid, -preis);
- SendClientMessage(playerid, COLOR_GREEN, "Tanken wird gestartet.");
- SetCameraBehindPlayer(playerid);
- TogglePlayerControllable(playerid,0);
- TanktGerade[car] = true;
- tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 510) // Überprüft ob das Fahrzeug ein Fahrrad ist (wie im Command oben)
- {
- GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective); // Speichere den derzeitigen Status
- SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); // Behalte alles bei, aber starte den Motor.
- }
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Spieler/%s.dini",pname);
- if(response)
- {
- switch(dialogid) // dialogid auswählen
- {
- case DIALOG_LOGIN: // ID Login
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
- return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
- }
- if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
- {
- Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
- Spieler[playerid][skin] = dini_Int(accFormat,"skin");
- Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
- Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
- Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
- GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
- SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
- Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
- SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
- SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
- }
- }
- case DIALOG_REG: // ID Registrieren
- {
- if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
- {
- ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
- return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
- }
- dini_Create(accFormat);
- dini_Set(accFormat,"Passwort",inputtext);
- Spieler[playerid][eingeloggt] = 1;
- SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
- }
- }
- }
- else
- {
- switch(dialogid)
- {
- case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Deine Daten wurden wieder erkannt. Bitte Logge dich ein!","Abbrechen","Weiter");
- case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Um auf diesem Server spielen zu können musst du dich Registrieren!","Abbrechen","Weiter");
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public BenzinVerlust()
- {
- for(new i=0; i<MAX_VEHICLES; i++)
- {
- if (Motor[i] == true)
- {
- Tank[i] = Tank[i]-1;
- if (Tank[i]<1)
- {
- Tank[i] = 0;
- GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
- Motor[i] = false;
- }
- }
- }
- return 1;
- }
- public Auftanken(playerid)
- {
- new car = GetPlayerVehicleID(playerid);
- Tank[car] = Tank[car] +1;
- if(Tank[car] >= 100)
- {
- TanktGerade[car] = false;
- Tank[car] = 100;
- SendClientMessage(playerid, COLOR_GREEN, "Dein Fahrzeug wurde vollgetankt.");
- TogglePlayerControllable(playerid,1);
- KillTimer(tanktimer[playerid]);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment