Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SA-MP Reallife Gamemode
- *
- * (c) by Kaliber,2013
- *
- */
- #include <a_samp>
- #include <sscanf2>
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 100
- #define MAX_ENUM 5
- #define byte 5
- enum PLAYER_ENUM {
- pGeschlecht,
- pAlter,
- pAdmin,
- pScore,
- pGeld
- };
- new PlayerInfo[MAX_PLAYERS][PLAYER_ENUM],bool:spawned[MAX_PLAYERS char],pName[MAX_PLAYERS][MAX_PLAYER_NAME+1];
- public OnGameModeInit() {
- UsePlayerPedAnims();
- ShowPlayerMarkers(0);
- SetGameModeText("German Reallife");
- return 1;
- }
- public OnPlayerConnect(playerid) {
- GameTextForPlayer(playerid,"~y~Verbinde...",5000,5);
- for(new i; i<MAX_ENUM; i++) PlayerInfo[playerid][PLAYER_ENUM:i] = 0;
- GetPlayerName(playerid,pName[playerid],MAX_PLAYER_NAME+1);
- spawned{playerid} = true;
- return 1;
- }
- public OnPlayerRequestClass(playerid,classid) {
- return SetSpawnInfo(playerid,299,0,0,0,5,0,29,25,0,0,0,0),SpawnPlayer(playerid);
- }
- stock Set_Camera(playerid) {
- TogglePlayerControllable(playerid,false);
- SetPlayerPos(playerid,1529.6,-1691.2,30.3);
- SetPlayerCameraPos(playerid,1529.6,-1691.2,25.0);
- SetPlayerCameraLookAt(playerid,1580.6,-1691.2,13.3);
- }
- public OnPlayerSpawn(playerid) {
- new string[64];
- if(spawned{playerid}) {
- Set_Camera(playerid);
- format(string,64,"/Accounts/%s.ini",pName[playerid]);
- if(!fexist(string)) return ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"{FF0000}Registration","{FFFFFF}Gebe bitte hier dein Passwort ein um dich zu registrieren:","Bestätigen","");
- return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{FF0000}Login","{FFFFFF}Bitte logge dich mit deinem Passwort ein:","Bestätigen","Abbrechen");
- }
- TogglePlayerControllable(playerid,true);
- SetPlayerPos(playerid,1529.6,-1691.2,13.3);
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case 0: {
- if(!inputtext[0]) return ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"{FF0000}Registration","{FF0000}Dein Passwort ist zu kurz!\n\n{FFFFFF}Gebe bitte hier dein Passwort ein um dich zu registrieren:","Bestätigen","");
- SavePw(playerid,inputtext);
- ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"{FF0000}Registration","{FFFFFF}Bist du männlich oder weiblich?","männlich","weiblich");
- }
- case 1: {
- if(!response) return Kick(playerid);
- new pw[32];
- GetPlayerPW(playerid,pw,32);
- if(!strcmp(pw,inputtext)) return LoadPlayer(playerid),SpawnPlayer(playerid);
- return SendClientMessage(playerid,0xFF4800FF,"Du hast dein Passwort falsch eingegeben!"),ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{FF0000}Login","{FFFFFF}Bitte logge dich mit deinem Passwort ein:","Bestätigen","Abbrechen");
- }
- case 2: {
- PlayerInfo[playerid][pGeschlecht] = response;
- ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{FF0000}Registration","{FFFFFF}Bitte gebe hier dein Alter ein (z.B. 18):","Bestätigen","");
- }
- case 3: {
- PlayerInfo[playerid][pAlter] = strval(inputtext);
- PlayerInfo[playerid][pScore] = 1;
- GivePlayerMoney(playerid,2500);
- SetPlayerScore(playerid,1);
- spawned{playerid} = false;
- SendClientMessage(playerid,0xFF0000,"Du hast dich erfolgreich registriert!");
- SpawnPlayer(playerid);
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid,cmdtext[]) {
- new string[64];
- if(!strcmp("/admins",cmdtext)) {
- new buffer[64],i;
- for(; i<MAX_PLAYERS; i++) {
- if(!PlayerInfo[i][pAdmin] || !IsPlayerConnected(i)) continue;
- format(buffer,64,"%s (ID: %d)\n",pName[i],i),strins(string,buffer,strlen(string),64);
- }
- ShowPlayerDialog(playerid,999,DIALOG_STYLE_MSGBOX,"{FF0000}Folgende Admins sind online:",string,"Bestätigen","");
- return 1;
- }
- if(!strcmp("/makeadmin",cmdtext)) {
- if(!IsPlayerAdmin(playerid) && !PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,0xFF4800FF,"Du bist kein Rcon-Admin!");
- new pID,level;
- if(sscanf(cmdtext,"ui",pID,level)) return SendClientMessage(playerid,0xFF4800FF,"Verwendung: /makeadmin [spielerid]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0xFF4800FF,"Dieser Spieler ist nicht online!");
- PlayerInfo[pID][pAdmin] = level;
- SendClientMessage(pID,0xFF4800FF,"Du bist nun Administrator !");
- return 1;
- }
- if(!strcmp("/goto",cmdtext)) {
- if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,0xFF4800FF,"Du bist kein Admin!");
- new pID,Float:Q[3];
- if(sscanf(cmdtext,"u",pID)) return SendClientMessage(playerid,0xFF4800FF,"Verwendung: /goto [spielerid]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0xFF4800FF,"Dieser Spieler ist nicht online!");
- GetPlayerPos(pID,Q[0],Q[1],Q[2]);
- SetPlayerPos(playerid,Q[0],Q[1]+2,Q[2]);
- return 1;
- }
- format(string,64,"Der Command {FF0000}%s{FFFFFF} existiert nicht!",cmdtext);
- return SendClientMessage(playerid,0xFFFFFFFF,string);
- }
- public OnPlayerDisconnect(playerid,reason) {
- SavePlayer(playerid);
- return 1;
- }
- stock SavePw(playerid,pw[]) {
- new string[64];
- format(string,64,"/Accounts/PW/%s.ini",pName[playerid]);
- new File:f = fopen(string,io_write);
- fwrite(f,pw);
- fclose(f);
- return 1;
- }
- stock GetPlayerPW(playerid,str[],len) {
- new string[64];
- format(string,64,"/Accounts/PW/%s.ini",pName[playerid]);
- new File:f = fopen(string,io_read);
- fread(f,str,len);
- fclose(f);
- return 1;
- }
- stock SavePlayer(playerid) {
- new buffer[MAX_ENUM],string[64];
- buffer[0] = (PlayerInfo[playerid][pGeschlecht]+byte);
- buffer[1] = (PlayerInfo[playerid][pAlter]+byte);
- buffer[2] = (PlayerInfo[playerid][pAdmin]+byte);
- buffer[3] = (PlayerInfo[playerid][pScore]+byte);
- buffer[4] = (PlayerInfo[playerid][pGeld]+byte);
- format(string,64,"/Accounts/%s.ini",pName[playerid]);
- new File:f=fopen(string,io_write);
- fwrite(f,buffer);
- fclose(f);
- return 1;
- }
- stock LoadPlayer(playerid) {
- new buffer[MAX_ENUM],string[64];
- format(string,64,"/Accounts/%s.ini",pName[playerid]);
- new File:f=fopen(string,io_read);
- fwrite(f,buffer);
- fclose(f);
- PlayerInfo[playerid][pGeschlecht] = (buffer[0]-byte);
- PlayerInfo[playerid][pAlter] = (buffer[1]-byte);
- PlayerInfo[playerid][pAdmin] = (buffer[2]-byte);
- PlayerInfo[playerid][pScore] = (buffer[3]-byte);
- PlayerInfo[playerid][pGeld] = (buffer[4]-byte);
- spawned{playerid}=false;
- SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
- GivePlayerMoney(playerid,PlayerInfo[playerid][pGeld]);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement