Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #pragma tabsize 0
- #include <dini>
- #include <utils>
- #include <sscanf>
- //--------------------------------------------------
- #define ORANGE 0xFF766AF0
- #define BLAU_DUNKEL 0x3071AFF1
- #define LIGHTGREEN 0x9ACD32AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_RED 0xAA3333AA
- #define DIALOG_LOGIN 3
- #define DIALOG_REG 4
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- new Text:txtTimeDisp;
- new hour, minute;
- new timestr[32];
- new Text:ForumsAdresse;
- new cmd[256];
- new AFK[MAX_PLAYERS];
- new PortTimer;
- new Pip[16];
- forward Spawn(playerid);
- forward UpdateTime();
- forward Getunnt(playerid);
- forward Ports(playerid);
- forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
- main()
- {
- print("\n----------------------------------");
- print(" Pain LP ");
- print("----------------------------------\n");
- }
- public UpdateTime()
- {
- gettime(hour, minute);
- format(timestr,32,"%02d:%02d",hour,minute);
- TextDrawSetString(txtTimeDisp,timestr);
- SetWorldTime(hour);
- new x=0;
- while(x!=MAX_PLAYERS) {
- if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
- SetPlayerTime(x,hour,minute);
- }
- x++;
- }
- }
- //--------------------------------------------------
- enum spieler_daten
- {
- wanted,
- skin,
- Float:lastx,Float:lasty,Float:lastz,
- money,
- AdminLevel,
- eingeloggt
- }
- new Spieler[MAX_PLAYERS][spieler_daten];
- //--------------------------------------------------
- public OnGameModeInit()
- {
- //Medic Cars (6 Autos)
- AddStaticVehicle(416,-304.5532,1036.4683,19.7430,268.7657,1,3);
- AddStaticVehicle(416,-304.4407,1031.7905,19.7462,270.7798,1,3);
- AddStaticVehicle(416,-304.4587,1028.0408,19.7432,270.6683,1,3);
- AddStaticVehicle(416,-303.8079,1023.9910,19.7445,271.3246,1,3);
- AddStaticVehicle(416,-304.2980,1019.7555,19.7455,268.4111,1,3);
- AddStaticVehicle(416,-304.2966,1015.8889,19.7469,271.2823,1,3);
- //N00b BMX (4 BMXs)
- AddStaticVehicle(481,-323.3593,1055.0157,19.2601,2.7057,3,3);
- AddStaticVehicle(481,-322.5260,1054.9510,19.2600,355.1519,6,6);
- AddStaticVehicle(481,-321.3553,1055.0850,19.2577,0.7695,46,46);
- AddStaticVehicle(481,-320.1240,1055.2275,19.2595,4.4956,65,9);
- PortTimer = SetTimer("Ports", 1000, 1);
- Create3DTextLabel("Stadthalle Eingang",-207.8804,1119.1957,20.4297,1,0); // Text Stadthalle Eingang
- Create3DTextLabel("Stadthalle Ausgang",0xFFFFFFFF,389.0088,173.6417,1008.3828,3,0); // Text Stadthalle Ausgang
- //Interior enter Pickups
- CreatePickup(1318, 2, 389.0088, 173.6417, 1008.3828, -1); // Pfeil Stadthalle Ausgang
- CreatePickup(1318, 2, -207.8804, 1119.1957, 20.4297, -1); // Pfeil Stadthalle Eingang
- //Bugfix
- ShowPlayerMarkers(0);
- UsePlayerPedAnims();
- DisableInteriorEnterExits();
- //Script Name/Forum/Sonstiges etc...
- ForumsAdresse = TextDrawCreate(388,5,"Sasukes Reallife Script");
- TextDrawLetterSize(ForumsAdresse,0.5,1.3);
- TextDrawColor(ForumsAdresse,0x0000D9A4);
- TextDrawSetShadow(ForumsAdresse,1);
- TextDrawUseBox(ForumsAdresse,0);
- // TextDraws
- txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
- TextDrawUseBox(txtTimeDisp, 0);
- TextDrawFont(txtTimeDisp, 3);
- TextDrawSetShadow(txtTimeDisp,0);
- TextDrawSetOutline(txtTimeDisp,2);
- TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
- TextDrawColor(txtTimeDisp,0xFFFFFFFF);
- TextDrawAlignment(txtTimeDisp,3);
- TextDrawLetterSize(txtTimeDisp,0.5,1.5);
- UpdateTime();
- SetTimer("UpdateTime",1000 * 60,1);
- SetGameModeText("Selfmade v0.1");
- AddPlayerClass(0, -317.2955, 1053.3845, 20.3403, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- KillTimer(PortTimer);
- TextDrawDestroy(ForumsAdresse);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetTimerEx("Spawn",50,0,"i",playerid);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- TextDrawShowForPlayer(playerid, ForumsAdresse);
- new pName [MAX_PLAYER_NAME] ;
- new string [48];
- GetPlayerName(playerid, pName, sizeof(pName) ) ;
- format(string, sizeof(string), "%s hat den Server betreten ", pName) ;
- SendClientMessageToAll (0xAAAAAAAA, string);
- gettime(hour, minute);
- SetPlayerTime(playerid,hour,minute);
- //-----------------------------------------------------------------
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Accounts/%s.datei",pname);
- if(fexist(accFormat))
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- GetPlayerPos(playerid, Spieler[playerid][lastx], Spieler[playerid][lasty], Spieler[playerid][lastz]);
- new pname[MAX_PLAYERS],accFormat[128];
- GetPlayerName(playerid,pname,sizeof pname);
- format(accFormat,sizeof accFormat,"/Accounts/%s.datei",pname);
- if(fexist(accFormat) && Spieler[playerid][eingeloggt])
- {
- dini_IntSet(accFormat,"money",GetPlayerMoney(playerid));
- dini_Set(accFormat,"ip",Pip);
- 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));
- dini_IntSet(accFormat, "AdminLevel", Spieler[playerid][AdminLevel]);
- print("\n***Speichern erfolgreich***\n");
- }
- 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);
- //-----------------------------------------------------------------------------
- new pName[MAX_PLAYER_NAME], string[56] ;
- GetPlayerName(playerid, pName, sizeof(pName));
- switch (reason)
- {
- case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Lost Connection)", pName);
- case 1: format(string, sizeof(string), "%s hat den Server verlassen. (Leaving)", pName);
- case 2: format(string, sizeof(string), "%s hat den Server verlassen. (Kicked)", pName);
- }
- SendClientMessageToAll (0xAAAAAAAA, string);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- //--------------------------------------------------
- TextDrawShowForPlayer(playerid,txtTimeDisp);
- gettime(hour, minute);
- SetPlayerTime(playerid,hour,minute);
- //-----------------------------------------------------------
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(killerid != INVALID_PLAYER_ID)
- {
- SendClientMessage(killerid, COLOR_RED, "Du hast ein Verbrechen begangen: Mord.");
- SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid)+2);
- new WantedString[256];
- format(WantedString, sizeof(WantedString), "Aktuelles Wantedlevel: %d", GetPlayerWantedLevel(playerid));
- SendClientMessage(playerid, COLOR_YELLOW, WantedString);
- }
- SendClientMessage(playerid,0xAAAAAAAA, "Du bist gestorben");
- //TextDraw
- TextDrawHideForPlayer(playerid,txtTimeDisp);
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- stock strget(strx[], pos, search = ' ') {
- new arg, ret[128], idxx;
- for (new i = 0; i < strlen(strx); i++) {
- if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
- arg++;
- if (arg == pos + 1){
- ret[i-idxx] = EOS;
- return ret;
- } else if (arg == pos)
- idxx= i+1;
- }
- else if (arg == pos)
- ret[i - idxx] = strx[i];
- }
- return ret;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(strcmp(cmdtext, "/Serverrestart", true) == 0)
- {
- if(Spieler[playerid][AdminLevel] > 0)
- return SendClientMessage(playerid, ORANGE, "Du hast nicht die benötigte Berächtigung, um den Server neu zu starten.");
- SaveAllPlayerAccounts();
- SendClientMessageToAll(ORANGE, "Der Server wird neu gesartet.\nEuer Accounts wurde aber gespeichert.");
- GameModeExit();
- return 1;
- }
- if(strcmp("/afk",cmdtext,true) == 0)
- {
- if(AFK[playerid] == 0)
- {
- new string[128];
- new spieler[MAX_PLAYER_NAME];
- TogglePlayerControllable(playerid,0);
- GetPlayerName(playerid, spieler, sizeof(spieler));
- format(string, sizeof(string), "%s ist Abwesend", spieler);
- SendClientMessageToAll(LIGHTGREEN, string);
- AFK[playerid] = 1;
- }
- else
- {
- SendClientMessage(playerid, LIGHTGREEN, "Du bist bereits Abwesend. Mach /back!");
- }
- return 1;
- }
- if(strcmp("/back",cmdtext, true) == 0)
- {
- if(AFK[playerid] == 1)
- {
- new string[128];
- new spieler[MAX_PLAYER_NAME];
- TogglePlayerControllable(playerid,1);
- GetPlayerName(playerid, spieler, sizeof(spieler));
- format(string, sizeof(string), "%s ist wieder Anwesend", spieler);
- SendClientMessageToAll(LIGHTGREEN, string);
- AFK[playerid] = 0;
- }
- else
- {
- SendClientMessage(playerid, LIGHTGREEN, "Du bist nicht AFK");
- }
- return 1;
- }
- // Auto Spawnen
- if(!strcmp(strget(cmdtext, 0), "/v")) {
- if(IsPlayerAdmin(playerid)) {{
- new autoid = strval(strget(cmdtext, 1));
- new farbe1 = strval(strget(cmdtext, 2));
- new farbe2 = strval(strget(cmdtext, 2));
- if(autoid <= 399) { SendClientMessage(playerid,0xFF0000AA,"[Auto]:So Eine Car Id gibt es Nicht (399 bis 612)"); }
- if(autoid >= 612) { SendClientMessage(playerid,0xFF0000AA,"[Auto]:So Eine Car Id gibt es Nicht (399 bis 612)"); }
- else {
- new Float:x, Float:y, Float:z, Float:za, gla;
- GetPlayerPos(playerid,x,y,z); GetPlayerFacingAngle(playerid,za); gla = CreateVehicle(autoid,x,y,z,za,farbe1,farbe2,-1); PutPlayerInVehicle(playerid,gla,0); }}}
- SetTimerEx("Getunnt", 250, false, "i", playerid);
- return 1;
- }
- // Auto Spawnen
- if(!strcmp(strget(cmdtext, 0), "/veh")) {
- if(Spieler[playerid][AdminLevel] > 0)
- {{
- new autoid = strval(strget(cmdtext, 1));
- new farbe1 = strval(strget(cmdtext, 2));
- new farbe2 = strval(strget(cmdtext, 2));
- if(autoid <= 399) { SendClientMessage(playerid,0xFF0000AA,"[Auto]:So Eine Car Id gibt es Nicht (400 bis 612)"); }
- if(autoid >= 612) { SendClientMessage(playerid,0xFF0000AA,"[Auto]:So Eine Car Id gibt es Nicht (400 bis 612)"); }
- else {
- new Float:x, Float:y, Float:z, Float:za, gla;
- GetPlayerPos(playerid,x,y,z); GetPlayerFacingAngle(playerid,za); gla = CreateVehicle(autoid,x,y,z,za,farbe1,farbe2,-1); PutPlayerInVehicle(playerid,gla,0); }}}
- SetTimerEx("Getunnt", 250, false, "i", playerid);
- return 1;
- }
- return 0;
- }
- CMD:Serverrestart(playerid, params[])
- {
- if(Spieler[playerid][AdminLevel] > 4)
- return SendClientMessage(playerid, LIGHTGREEN, "Du hast nicht die benötigte Berächtigung, um den Server neu zu starten.");
- SaveAllPlayerAccounts();
- SendClientMessageToAll(*DeineFarbe, "Der Server wird neu gesartet.\nEuer Accounts wurde aber gespeichert.");
- GameModeExit();
- return 1;
- }
- //---------------------------------------------------------------------------------------------------------
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- 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,"/Accounts/%s.datei",pname);
- if(response)
- {
- switch(dialogid)
- {
- case DIALOG_LOGIN:
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
- return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
- }
- if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
- {
- 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][AdminLevel] = dini_Int(accFormat, "AdminLevel"); // Das Level wird aus der Datei geladen
- Spieler[playerid][eingeloggt] = 1;
- SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
- SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
- }
- }
- case DIALOG_REG: // ID Registrieren
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
- return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
- }
- dini_Create(accFormat);
- dini_Set(accFormat,"Passwort",inputtext);
- dini_IntSet(accFormat, "AdminLevel" , 0); // Hier wird das Adminlevel in der Spielerdatei auf 0 gesetzt.
- Spieler[playerid][AdminLevel] = 0; // Hier wird das Levels des neu registrierten Spielers auf 0 gesetzt.
- 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","Bitte logge dich ein","Abbrechen","Weiter");
- case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public Ports(playerid)
- {
- if (PlayerToPoint(1, playerid, -207.8804, 1119.1957, 20.4297))
- {
- SetPlayerInterior(playerid, 3);
- SetPlayerPos(playerid, 384.6784, 173.8257, 1008.3828);
- SetPlayerFacingAngle(playerid, 0.0);
- }
- else if (PlayerToPoint(1, playerid, 389.0088, 173.6417, 1008.3828))
- {
- SetPlayerInterior(playerid, 0);
- SetPlayerPos(playerid, -204.0682, 1119.2292, 19.7422);
- SetPlayerFacingAngle(playerid, 90.0);
- }
- return 1;
- }
- public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
- {
- if (IsPlayerConnected(playerid))
- {
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- tempposx = (oldposx -x);
- tempposy = (oldposy -y);
- tempposz = (oldposz -z);
- if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- return 1;
- }
- }
- return 0;
- }
- public Spawn(playerid)
- {
- SpawnPlayer(playerid);
- return 1;
- }
- stock SaveAllPlayerAccounts()
- {
- for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
- {
- if(IsPlayerConnected(playerid) && playerid != INVALID_PLAYER_ID)
- {
- SpielerSpeichern(playerid);
- }
- }
- return 1;
- }
- stock SpielerSpeichern(playerid)
- {
- new Spielerdatei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.datei",name);
- dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
- dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
- dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
- dini_IntSet(Spielerdatei,"Banned",GetPVarInt(playerid,"Banned"));
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement