Advertisement
Guest User

Kleines Selfmade (c) by Kaliber

a guest
Mar 6th, 2013
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.43 KB | None | 0 0
  1. /* SA-MP Reallife Gamemode
  2.  *
  3.  * (c) by Kaliber,2013
  4.  *
  5.  */
  6. #include <a_samp>
  7. #include <sscanf2>
  8. #undef MAX_PLAYERS
  9. #define MAX_PLAYERS 100
  10. #define MAX_ENUM 5
  11. #define byte 5
  12. enum PLAYER_ENUM {
  13.     pGeschlecht,
  14.     pAlter,
  15.     pAdmin,
  16.     pScore,
  17.     pGeld
  18. };
  19. new PlayerInfo[MAX_PLAYERS][PLAYER_ENUM],bool:spawned[MAX_PLAYERS char],pName[MAX_PLAYERS][MAX_PLAYER_NAME+1];
  20.  
  21. public OnGameModeInit() {
  22.     UsePlayerPedAnims();
  23.     ShowPlayerMarkers(0);
  24.     SetGameModeText("German Reallife");
  25.     return 1;
  26. }
  27. public OnPlayerConnect(playerid) {
  28.     GameTextForPlayer(playerid,"~y~Verbinde...",5000,5);
  29.     for(new i; i<MAX_ENUM; i++) PlayerInfo[playerid][PLAYER_ENUM:i] = 0;
  30.     GetPlayerName(playerid,pName[playerid],MAX_PLAYER_NAME+1);
  31.     spawned{playerid} = true;
  32.     return 1;
  33. }
  34. public OnPlayerRequestClass(playerid,classid) {
  35.     return SetSpawnInfo(playerid,299,0,0,0,5,0,29,25,0,0,0,0),SpawnPlayer(playerid);
  36. }
  37. stock Set_Camera(playerid) {
  38.     TogglePlayerControllable(playerid,false);
  39.     SetPlayerPos(playerid,1529.6,-1691.2,30.3);
  40.     SetPlayerCameraPos(playerid,1529.6,-1691.2,25.0);
  41.     SetPlayerCameraLookAt(playerid,1580.6,-1691.2,13.3);
  42. }
  43. public OnPlayerSpawn(playerid) {
  44.     new string[64];
  45.     if(spawned{playerid}) {
  46.         Set_Camera(playerid);
  47.         format(string,64,"/Accounts/%s.ini",pName[playerid]);
  48.         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","");
  49.         return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{FF0000}Login","{FFFFFF}Bitte logge dich mit deinem Passwort ein:","Bestätigen","Abbrechen");
  50.     }
  51.     TogglePlayerControllable(playerid,true);
  52.     SetPlayerPos(playerid,1529.6,-1691.2,13.3);
  53.     SetCameraBehindPlayer(playerid);
  54.     return 1;
  55. }
  56. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  57.     switch(dialogid) {
  58.         case 0: {
  59.             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","");
  60.             SavePw(playerid,inputtext);
  61.             ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"{FF0000}Registration","{FFFFFF}Bist du männlich oder weiblich?","männlich","weiblich");
  62.         }
  63.         case 1: {
  64.             if(!response) return Kick(playerid);
  65.             new pw[32];
  66.             GetPlayerPW(playerid,pw,32);
  67.             if(!strcmp(pw,inputtext)) return LoadPlayer(playerid),SpawnPlayer(playerid);
  68.             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");
  69.         }
  70.         case 2: {
  71.             PlayerInfo[playerid][pGeschlecht] = response;
  72.             ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"{FF0000}Registration","{FFFFFF}Bitte gebe hier dein Alter ein (z.B. 18):","Bestätigen","");
  73.         }
  74.         case 3: {
  75.             PlayerInfo[playerid][pAlter] = strval(inputtext);
  76.             PlayerInfo[playerid][pScore] = 1;
  77.             GivePlayerMoney(playerid,2500);
  78.             SetPlayerScore(playerid,1);
  79.             spawned{playerid} = false;
  80.             SendClientMessage(playerid,0xFF0000,"Du hast dich erfolgreich registriert!");
  81.             SpawnPlayer(playerid);
  82.         }
  83.     }
  84.     return 1;
  85. }
  86. public OnPlayerCommandText(playerid,cmdtext[]) {
  87.     new string[64];
  88.     if(!strcmp("/admins",cmdtext)) {
  89.         new buffer[64],i;
  90.         for(; i<MAX_PLAYERS; i++) {
  91.             if(!PlayerInfo[i][pAdmin] || !IsPlayerConnected(i)) continue;
  92.             format(buffer,64,"%s (ID: %d)\n",pName[i],i),strins(string,buffer,strlen(string),64);
  93.         }
  94.         ShowPlayerDialog(playerid,999,DIALOG_STYLE_MSGBOX,"{FF0000}Folgende Admins sind online:",string,"Bestätigen","");
  95.         return 1;
  96.     }
  97.     if(!strcmp("/makeadmin",cmdtext)) {
  98.         if(!IsPlayerAdmin(playerid) && !PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,0xFF4800FF,"Du bist kein Rcon-Admin!");
  99.         new pID,level;
  100.         if(sscanf(cmdtext,"ui",pID,level)) return SendClientMessage(playerid,0xFF4800FF,"Verwendung: /makeadmin [spielerid]");
  101.         if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0xFF4800FF,"Dieser Spieler ist nicht online!");
  102.         PlayerInfo[pID][pAdmin] = level;
  103.         SendClientMessage(pID,0xFF4800FF,"Du bist nun Administrator !");
  104.         return 1;
  105.     }
  106.     if(!strcmp("/goto",cmdtext)) {
  107.         if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,0xFF4800FF,"Du bist kein Admin!");
  108.         new pID,Float:Q[3];
  109.         if(sscanf(cmdtext,"u",pID)) return SendClientMessage(playerid,0xFF4800FF,"Verwendung: /goto [spielerid]");
  110.         if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0xFF4800FF,"Dieser Spieler ist nicht online!");
  111.         GetPlayerPos(pID,Q[0],Q[1],Q[2]);
  112.         SetPlayerPos(playerid,Q[0],Q[1]+2,Q[2]);
  113.         return 1;
  114.     }
  115.     format(string,64,"Der Command {FF0000}%s{FFFFFF} existiert nicht!",cmdtext);
  116.     return SendClientMessage(playerid,0xFFFFFFFF,string);
  117. }
  118. public OnPlayerDisconnect(playerid,reason) {
  119.     SavePlayer(playerid);
  120.     return 1;
  121. }
  122. stock SavePw(playerid,pw[]) {
  123.     new string[64];
  124.     format(string,64,"/Accounts/PW/%s.ini",pName[playerid]);
  125.     new File:f = fopen(string,io_write);
  126.     fwrite(f,pw);
  127.     fclose(f);
  128.     return 1;
  129. }
  130. stock GetPlayerPW(playerid,str[],len) {
  131.     new string[64];
  132.     format(string,64,"/Accounts/PW/%s.ini",pName[playerid]);
  133.     new File:f = fopen(string,io_read);
  134.     fread(f,str,len);
  135.     fclose(f);
  136.     return 1;
  137. }
  138. stock SavePlayer(playerid) {
  139.     new buffer[MAX_ENUM],string[64];
  140.     buffer[0] = (PlayerInfo[playerid][pGeschlecht]+byte);
  141.     buffer[1] = (PlayerInfo[playerid][pAlter]+byte);
  142.     buffer[2] = (PlayerInfo[playerid][pAdmin]+byte);
  143.     buffer[3] = (PlayerInfo[playerid][pScore]+byte);
  144.     buffer[4] = (PlayerInfo[playerid][pGeld]+byte);
  145.     format(string,64,"/Accounts/%s.ini",pName[playerid]);
  146.     new File:f=fopen(string,io_write);
  147.     fwrite(f,buffer);
  148.     fclose(f);
  149.     return 1;
  150. }
  151. stock LoadPlayer(playerid) {
  152.     new buffer[MAX_ENUM],string[64];
  153.     format(string,64,"/Accounts/%s.ini",pName[playerid]);
  154.     new File:f=fopen(string,io_read);
  155.     fwrite(f,buffer);
  156.     fclose(f);
  157.     PlayerInfo[playerid][pGeschlecht] = (buffer[0]-byte);
  158.     PlayerInfo[playerid][pAlter] = (buffer[1]-byte);
  159.     PlayerInfo[playerid][pAdmin] = (buffer[2]-byte);
  160.     PlayerInfo[playerid][pScore] = (buffer[3]-byte);
  161.     PlayerInfo[playerid][pGeld] = (buffer[4]-byte);
  162.     spawned{playerid}=false;
  163.     SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
  164.     GivePlayerMoney(playerid,PlayerInfo[playerid][pGeld]);
  165.     return 1;
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement