Guest User

Untitled

a guest
Apr 26th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 22.80 KB | None | 0 0
  1. //------------------------------------------------------------------------------
  2. //--------------------[ Edge Deathmatch Arena ]---------------------------------
  3. // Gamemode creata da Chino1997
  4. //------------------------------------------------------------------------------
  5. // Si ringrazia chi non modificherà i crediti
  6. //------------------------------------------------------------------------------
  7.  
  8. #include <a_samp>
  9. #include <core>
  10. #include <file>
  11. #include <time>
  12. #include <Dini>
  13.  
  14. #define COLOR_INFO 0xDCF600AA
  15. #define COLOR_ALERT 0xF55000AA
  16.  
  17. #define ACCOUNT_FILE "Edge Files/Account File/%s"
  18. #define CONFIGURATION_FILE "Edge Files/Configuration.ini"
  19.  
  20. #define dialog_Login 1000
  21. #define dialog_Register 1001
  22.  
  23. new UpdateTimer;
  24. new Text:Logo, Text:BarraAlta, Text:BarraBassa, Text:Info[MAX_PLAYERS];
  25.  
  26. enum PlayerInfoList
  27. {
  28.    PlayerName[MAX_PLAYER_NAME],
  29.    PlayerFile[128],
  30.    PlayerAdminLevel,
  31.    PlayerClass,
  32.    PlayerLogged,
  33.    PlayerLoginTent,
  34.    PlayerKill,
  35.    PlayerDeath,
  36.    PlayerInClassSelection,
  37.    PlayerInRound,
  38. }
  39. new PlayerInfo[MAX_PLAYERS][PlayerInfoList];
  40.  
  41. main()
  42. {
  43.    print("________________________________________");
  44.    print("                                        ");
  45.    printf("%s",dini_Get(CONFIGURATION_FILE,"Hostname"));
  46.    printf("%s",dini_Get(CONFIGURATION_FILE,"Mapname"));
  47.    printf("%s",dini_Get(CONFIGURATION_FILE,"Weburl"));
  48.    printf("%s",dini_Get(CONFIGURATION_FILE,"Version"));
  49.    print("________________________________________");
  50. }
  51.  
  52. public OnGameModeInit()
  53. {
  54.     AddStaticVehicle(470,-1507.9805,2633.4824,55.8292,268.3344,0,0); // Veicolo 1
  55.     AddStaticVehicle(470,-1526.3737,2683.4016,55.7665,182.2714,0,0); // Veicolo 2
  56.     AddStaticVehicle(470,-1558.2507,2662.3940,55.8274,269.5634,0,0); // Veicolo 3
  57.     AddStaticVehicle(470,-1498.2668,2524.7393,55.6785,359.0320,0,0); // Veicolo 4
  58.     AddStaticVehicle(470,-1402.5702,2660.2842,55.6513,90.5147,0,0); // Veicolo 5
  59.     AddStaticVehicle(470,-1395.5933,2633.4509,55.7745,89.8479,0,0); // Veicolo 6
  60.     AddStaticVehicle(470,-1513.7505,2611.0874,55.8102,179.5237,0,0); // Veicolo 7
  61.     AddStaticVehicle(470,-1552.9468,2547.5322,55.5955,314.1105,0,0); // Veicolo 8
  62.     AddStaticVehicle(470,-1598.6238,2665.2227,55.1060,297.8686,0,0); // Veicolo 9
  63.    
  64.     new hostname[64], mapname[64], weburl[64], version[64];
  65.     format(hostname, sizeof(hostname),"hostname %s",dini_Get(CONFIGURATION_FILE,"Hostname"));
  66.     SendRconCommand(hostname);
  67.     format(mapname, sizeof(mapname),"mapname %s",dini_Get(CONFIGURATION_FILE,"Mapname"));
  68.     SendRconCommand(mapname);
  69.     format(weburl, sizeof(weburl),"weburl %s",dini_Get(CONFIGURATION_FILE,"Weburl"));
  70.     SendRconCommand(weburl);
  71.     format(version, sizeof(version),"%s",dini_Get(CONFIGURATION_FILE,"Version"));
  72.     SetGameModeText(version);
  73.    
  74.     DisableInteriorEnterExits();
  75.     EnableStuntBonusForAll(false);
  76.     ShowPlayerMarkers(false);
  77.    
  78.     UpdateTime();
  79.     StopAndRun();
  80.  
  81.     Logo=TextDrawCreate(225.000000,35.000000, dini_Get(CONFIGURATION_FILE,"Logo"));
  82.     TextDrawBackgroundColor(Logo, 255);
  83.     TextDrawFont(Logo, 3);
  84.     TextDrawLetterSize(Logo, 0.500000, 1.000000);
  85.     TextDrawColor(Logo, -1);
  86.     TextDrawSetOutline(Logo, 0);
  87.     TextDrawSetProportional(Logo, 1);
  88.     TextDrawSetShadow(Logo, 1);
  89.    
  90.     BarraAlta = TextDrawCreate(0.000000,0.000000,"-");
  91.     TextDrawUseBox(BarraAlta,1);
  92.     TextDrawBoxColor(BarraAlta,0x000000ff);
  93.     TextDrawTextSize(BarraAlta,1000.000000,-69.000000);
  94.     TextDrawAlignment(BarraAlta,0);
  95.     TextDrawBackgroundColor(BarraAlta,0x000000ff);
  96.     TextDrawFont(BarraAlta,3);
  97.     TextDrawLetterSize(BarraAlta,1.000000,12.199999);
  98.     TextDrawColor(BarraAlta,0x000000ff);
  99.     TextDrawSetOutline(BarraAlta,1);
  100.     TextDrawSetProportional(BarraAlta,1);
  101.    
  102.     BarraBassa = TextDrawCreate(0.000000,337.000000,"-");
  103.     TextDrawUseBox(BarraBassa,1);
  104.     TextDrawBoxColor(BarraBassa,0x000000ff);
  105.     TextDrawTextSize(BarraBassa,1000.000000,-60.000000);
  106.     TextDrawAlignment(BarraBassa,0);
  107.     TextDrawBackgroundColor(BarraBassa,0x000000ff);
  108.     TextDrawFont(BarraBassa,3);
  109.     TextDrawLetterSize(BarraBassa,0.899999,15.000000);
  110.     TextDrawColor(BarraBassa,0x000000ff);
  111.     TextDrawSetOutline(BarraBassa,1);
  112.     TextDrawSetProportional(BarraBassa,1);
  113.     for(new i=0;i<MAX_PLAYERS;i++)
  114.     {
  115.        Info[i] = TextDrawCreate(555.000000,105.000000,"Info in aggiornamento...");
  116.        TextDrawUseBox(Info[i],1);
  117.        TextDrawBoxColor(Info[i], 0x000000AA);
  118.        TextDrawAlignment(Info[i], 2);
  119.        TextDrawBackgroundColor(Info[i], 255);
  120.        TextDrawFont(Info[i], 1);
  121.        TextDrawLetterSize(Info[i], 0.240000, 1.000000);
  122.        TextDrawSetOutline(Info[i], 0);
  123.        TextDrawSetProportional(Info[i], 1);
  124.        TextDrawTextSize(Info[i], 655.000000, 102.000000);
  125.     }
  126.     return 1;
  127. }
  128.  
  129. public OnGameModeExit()
  130. {
  131.     TextDrawDestroy(Logo);
  132.     TextDrawDestroy(BarraAlta);
  133.     TextDrawDestroy(BarraBassa);
  134.     for(new i=0;i<MAX_PLAYERS;i++) TextDrawDestroy(Info[i]);
  135.     return 1;
  136. }
  137.  
  138. public OnPlayerRequestClass(playerid, classid)
  139. {
  140.     if(PlayerInfo[playerid][PlayerLogged] == 0)
  141.     {
  142.        TextDrawShowForPlayer(playerid,Logo);
  143.        TextDrawShowForPlayer(playerid,BarraAlta);
  144.        TextDrawShowForPlayer(playerid,BarraBassa);
  145.        SendClientMessage(playerid,0xF5C800AA,"  ");
  146.        SendClientMessage(playerid,0xF5C800AA,"  ");
  147.        SendClientMessage(playerid,0xF5C800AA,"  ");
  148.        SendClientMessage(playerid,0xF5C800AA,"  ");
  149.        SendClientMessage(playerid,0xF5C800AA,"  ");
  150.        SendClientMessage(playerid,0xF5C800AA,"  ");
  151.        SendClientMessage(playerid,0xF5C800AA,"  ");
  152.        SendClientMessage(playerid,0xF5C800AA,"  ");
  153.        SendClientMessage(playerid,0xF5C800AA,"  ");
  154.        SendClientMessage(playerid,0xF5C800AA,"  ");
  155.        SendClientMessage(playerid,COLOR_INFO,"___________________________________________________");
  156.        SendClientMessage(playerid,COLOR_INFO,"                                                   ");
  157.        SendClientMessage(playerid,COLOR_INFO,"Avvio degli script in corso...");
  158.        SendClientMessage(playerid,COLOR_INFO,"___________________________________________________");
  159.        SetTimerEx("Login",1500,false,"d",playerid);
  160.     }
  161.     return 1;
  162. }
  163.  
  164. public OnPlayerConnect(playerid)
  165. {
  166.     GetPlayerName(playerid,PlayerInfo[playerid][PlayerName],MAX_PLAYER_NAME);
  167.     format(PlayerInfo[playerid][PlayerFile],128,ACCOUNT_FILE,PlayerInfo[playerid][PlayerName]);
  168.     new string[64];
  169.     format(string, sizeof(string),"%s è entrato nel server",PlayerInfo[playerid][PlayerName]);
  170.     SendClientMessageToAll(COLOR_INFO,string);
  171.     PlayerInfo[playerid][PlayerInRound] = 0;
  172.     return 1;
  173. }
  174.  
  175. public OnPlayerDisconnect(playerid, reason)
  176. {
  177.     if(PlayerInfo[playerid][PlayerLogged] == 1 && PlayerInfo[playerid][PlayerInClassSelection] == 0)
  178.     {
  179.        SavePlayer(playerid);
  180.     }
  181.     new string[64];
  182.     switch(reason)
  183.     {
  184.         case 0: format(string,128,"%s è uscito dal server (Crash)",PlayerInfo[playerid][PlayerName]);
  185.         case 1: format(string,128,"%s è uscito dal server",PlayerInfo[playerid][PlayerName]);
  186.         case 2: format(string,128,"%s è uscito dal server (Kick)",PlayerInfo[playerid][PlayerName]);
  187.     }
  188.     SendClientMessageToAll(COLOR_ALERT,string);
  189.     PlayerInfo[playerid][PlayerLogged]=0;
  190. }
  191.  
  192. public OnPlayerSpawn(playerid)
  193. {
  194.     PlayerPlaySound(playerid, 1069, 0,0,0);
  195.     TextDrawHideForPlayer(playerid,Logo);
  196.     TextDrawHideForPlayer(playerid,BarraAlta);
  197.     TextDrawHideForPlayer(playerid,BarraBassa);
  198.     TextDrawShowForPlayer(playerid,Info[playerid]);
  199.     new randompos=random(5);
  200.     switch(randompos)
  201.     {
  202.        case 0:
  203.        {
  204.           SetPlayerPos(playerid, -1477.939819, 2641.889648, 58.787948);
  205.           SetPlayerFacingAngle(playerid, 138.204696);
  206.        }
  207.        case 1:
  208.        {
  209.           SetPlayerPos(playerid, -1593.839599, 2695.872070, 55.130924);
  210.           SetPlayerFacingAngle(playerid, 175.201873);
  211.        }
  212.        case 2:
  213.        {
  214.           SetPlayerPos(playerid, -1529.385009, 2515.925537, 55.972492);
  215.           SetPlayerFacingAngle(playerid, 0.065610);
  216.        }
  217.        case 3:
  218.        {
  219.           SetPlayerPos(playerid, -1318.164062, 2524.793701, 87.484222);
  220.           SetPlayerFacingAngle(playerid, 349.730041);
  221.        }
  222.        case 4:
  223.        {
  224.           SetPlayerPos(playerid, -1391.433959, 2649.030273, 55.987537);
  225.           SetPlayerFacingAngle(playerid, 117.884620);
  226.        }
  227.     }
  228.     if(PlayerInfo[playerid][PlayerLogged] == 0)
  229.     {
  230.        SendClientMessage(playerid,COLOR_INFO,"Risulti non essere loggato, verrai riportato al login");
  231.        Login(playerid);
  232.        TextDrawShowForPlayer(playerid,Logo);
  233.        TextDrawShowForPlayer(playerid,BarraAlta);
  234.        TextDrawShowForPlayer(playerid,BarraBassa);
  235.        TextDrawHideForPlayer(playerid,Info[playerid]);
  236.        printf("%s non era loggato",PlayerInfo[playerid][PlayerName]);
  237.     }
  238.     ResetPlayerWeapons(playerid);
  239.     if(PlayerInfo[playerid][PlayerClass] == 0)
  240.     {
  241.         SetPlayerSkin(playerid,287);
  242.         GivePlayerWeapon(playerid,16,3);
  243.         GivePlayerWeapon(playerid,22,50);
  244.         GivePlayerWeapon(playerid,28,80);
  245.         GivePlayerWeapon(playerid,31,120);
  246.         PlayerInfo[playerid][PlayerInRound] = 1;
  247.     }
  248.     if(PlayerInfo[playerid][PlayerClass] == 1)
  249.     {
  250.         SetPlayerSkin(playerid,285);
  251.         GivePlayerWeapon(playerid,16,3);
  252.         GivePlayerWeapon(playerid,24,30);
  253.         GivePlayerWeapon(playerid,32,80);
  254.         GivePlayerWeapon(playerid,34,30);
  255.         PlayerInfo[playerid][PlayerInRound] = 1;
  256.     }
  257.     if(PlayerInfo[playerid][PlayerClass] == 2)
  258.     {
  259.         SetPlayerSkin(playerid,288);
  260.         GivePlayerWeapon(playerid,16,3);
  261.         GivePlayerWeapon(playerid,22,50);
  262.         GivePlayerWeapon(playerid,29,80);
  263.         GivePlayerWeapon(playerid,27,30);
  264.         PlayerInfo[playerid][PlayerInRound] = 1;
  265.     }
  266.     SetCameraBehindPlayer(playerid);
  267.     TogglePlayerControllable(playerid,1);
  268.     return 1;
  269. }
  270.  
  271. public OnPlayerDeath(playerid, killerid, reason)
  272. {
  273.     new string[128], kill, death, Float:ratio, score;
  274.     SendDeathMessage(killerid, playerid, reason);
  275.    
  276.     kill = PlayerInfo[killerid][PlayerKill];
  277.     death = PlayerInfo[killerid][PlayerDeath];
  278.     PlayerInfo[killerid][PlayerKill] = kill+1;
  279.     if(PlayerInfo[killerid][PlayerDeath] == 0)
  280.     {
  281.        ratio = PlayerInfo[killerid][PlayerKill];
  282.     }
  283.     else
  284.     {
  285.        ratio = floatdiv(PlayerInfo[killerid][PlayerKill],PlayerInfo[killerid][PlayerDeath]);
  286.     }
  287.     format(string,sizeof(string),"~g~Kill: %d~n~~r~Death: %d~n~~w~K/D: %f", PlayerInfo[killerid][PlayerKill], PlayerInfo[killerid][PlayerDeath], ratio);
  288.     TextDrawSetString(Info[killerid],string);
  289.    
  290.     death = PlayerInfo[playerid][PlayerDeath];
  291.     PlayerInfo[playerid][PlayerDeath] = death+1;
  292.     ratio = floatdiv(PlayerInfo[playerid][PlayerKill],PlayerInfo[playerid][PlayerDeath]);
  293.     format(string,sizeof(string),"~g~Kill: %d~n~~r~Death: %d~n~~w~K/D: %f", PlayerInfo[playerid][PlayerKill], PlayerInfo[playerid][PlayerDeath], ratio);
  294.     TextDrawSetString(Info[playerid],string);
  295.    
  296.     score = PlayerInfo[playerid][PlayerKill]-PlayerInfo[playerid][PlayerDeath];
  297.     if(score > 1)
  298.     {
  299.        SetPlayerScore(playerid,score);
  300.     }
  301.     else
  302.     {
  303.        SetPlayerScore(playerid,1);
  304.     }
  305.    
  306.     score = PlayerInfo[playerid][PlayerKill]-PlayerInfo[playerid][PlayerDeath];
  307.     if(score > 1)
  308.     {
  309.        SetPlayerScore(playerid,score);
  310.     }
  311.     else
  312.     {
  313.        SetPlayerScore(playerid,1);
  314.     }
  315.     return 1;
  316. }
  317.  
  318. public OnVehicleSpawn(vehicleid)
  319. {
  320.     return 1;
  321. }
  322.  
  323. public OnVehicleDeath(vehicleid, killerid)
  324. {
  325.     return 1;
  326. }
  327.  
  328. public OnPlayerText(playerid, text[])
  329. {
  330.     return 1;
  331. }
  332.  
  333. public OnPlayerCommandText(playerid, cmdtext[])
  334. {
  335.     if(PlayerInfo[playerid][PlayerLogged] == 0)
  336.     {
  337.         SendClientMessageToAll(COLOR_INFO,"Per usare qualsiasi comando devi aver eseguito il login");
  338.         return 1;
  339.     }
  340.     else
  341.     {
  342. //--------------------[ Comandi per Admin ]-------------------------------------
  343.        if(!strcmp("/updatetime", cmdtext,true))
  344.        {
  345.            if(PlayerInfo[playerid][PlayerAdminLevel] < 1)
  346.            {
  347.               SendClientMessage(playerid,COLOR_INFO,"Non sei autorizzato");
  348.               return 1;
  349.            }
  350.            else
  351.            {
  352.               KillTimer(UpdateTimer);
  353.               UpdateTime();
  354.               SendClientMessage(playerid,COLOR_INFO,"Time del server aggiornato");
  355.               return 1;
  356.            }
  357.        }
  358.        if(!strcmp("/restart", cmdtext,true))
  359.        {
  360.            if(PlayerInfo[playerid][PlayerAdminLevel] < 2)
  361.            {
  362.               SendClientMessage(playerid,COLOR_INFO,"Non sei autorizzato");
  363.               return 1;
  364.            }
  365.            else
  366.            {
  367.               SendRconCommand("gmx");
  368.               SendClientMessage(playerid,COLOR_INFO,"Restart server in corso...");
  369.               return 1;
  370.            }
  371.        }
  372. //--------------------[ Comandi per Player ]------------------------------------
  373.        if(!strcmp("/suicide", cmdtext,true))
  374.        {
  375.            if(PlayerInfo[playerid][PlayerInRound] == 0)
  376.            {
  377.               SendClientMessage(playerid,COLOR_INFO,"Non puoi suicidarti senza prima spawnare");
  378.               return 1;
  379.            }
  380.            else
  381.            {
  382.               SetPlayerHealth(playerid,0);
  383.               SendClientMessage(playerid,COLOR_INFO,"Ti sei suicidato");
  384.               return 1;
  385.            }
  386.        }
  387.        if(!strcmp("/assault", cmdtext,true))
  388.        {
  389.           if(PlayerInfo[playerid][PlayerInRound] == 1)
  390.           {
  391.               SendClientMessageToAll(COLOR_INFO,"Puoi selezionare la classe solo prima di ogni round");
  392.               return 1;
  393.           }
  394.           PlayerInfo[playerid][PlayerClass] = 0;
  395.           PlayerInfo[playerid][PlayerInRound] = 1;
  396.           SendClientMessage(playerid,COLOR_INFO,"Hai selezionato la classe assault");
  397.           SpawnPlayer(playerid);
  398.           return 1;
  399.        }
  400.        if(!strcmp("/sniper", cmdtext,true))
  401.        {
  402.           if(PlayerInfo[playerid][PlayerInRound] == 1)
  403.           {
  404.               SendClientMessageToAll(COLOR_INFO,"Puoi selezionare la classe solo prima di ogni round");
  405.               return 1;
  406.           }
  407.           PlayerInfo[playerid][PlayerClass] = 1;
  408.           PlayerInfo[playerid][PlayerInRound] = 1;
  409.           SendClientMessage(playerid,COLOR_INFO,"Hai selezionato la classe sniper");
  410.           SpawnPlayer(playerid);
  411.           return 1;
  412.        }
  413.        if(!strcmp("/gunner", cmdtext,true))
  414.        {
  415.           if(PlayerInfo[playerid][PlayerInRound] == 1)
  416.           {
  417.               SendClientMessageToAll(COLOR_INFO,"Puoi selezionare la classe solo prima di ogni round");
  418.               return 1;
  419.           }
  420.           PlayerInfo[playerid][PlayerClass] = 2;
  421.           PlayerInfo[playerid][PlayerInRound] = 1;
  422.           SendClientMessage(playerid,COLOR_INFO,"Hai selezionato la classe gunner");
  423.           SpawnPlayer(playerid);
  424.           return 1;
  425.        }
  426.     }
  427. //------------------------------------------------------------------------------
  428.     SendClientMessage(playerid,COLOR_ALERT,"Comando sconosciuto, usa /help per una lista");
  429.     return 0;
  430. }
  431.  
  432. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  433. {
  434.     return 1;
  435. }
  436.  
  437. public OnPlayerExitVehicle(playerid, vehicleid)
  438. {
  439.     return 1;
  440. }
  441.  
  442. public OnPlayerStateChange(playerid, newstate, oldstate)
  443. {
  444.     return 1;
  445. }
  446.  
  447. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  448. {
  449.     if(dialogid==dialog_Register)
  450.     {
  451.         if(!response)return Kick(playerid);
  452.         if(fexist(PlayerInfo[playerid][PlayerFile]))return Kick(playerid);
  453.         else if(!strlen(inputtext))
  454.         {
  455.             ShowPlayerDialog(playerid,dialog_Register,DIALOG_STYLE_INPUT,"{F6C800}Registrazione","Benvenuto nel server\nQuesto nome non è registrato,\ninserisci una password per registrarlo","Registrati","Esci");
  456.             return 1;
  457.         }
  458.         dini_Create(PlayerInfo[playerid][PlayerFile]);
  459.         dini_Set(PlayerInfo[playerid][PlayerFile],"Password",inputtext);
  460.         RegisterPlayer(playerid);
  461.         ShowPlayerDialog(playerid,dialog_Login,DIALOG_STYLE_INPUT,"{F6C800}Login","Per completare la registrazione reinserisci\n la password precedentemente inserita","Conferma","Esci");
  462.         return 1;
  463.     }
  464.     if(dialogid==dialog_Login)
  465.     {
  466.         new string[256], tentrim;
  467.         if(!response)return Kick(playerid);
  468.         if(strcmp(dini_Get(PlayerInfo[playerid][PlayerFile],"Password"),inputtext,false) || !strlen(inputtext))
  469.         {
  470.             tentrim=3-PlayerInfo[playerid][PlayerLoginTent];
  471.             PlayerInfo[playerid][PlayerLoginTent]++;
  472.             if(PlayerInfo[playerid][PlayerLoginTent]>3)return Kick(playerid);
  473.             if(tentrim == 1)
  474.             {
  475.                format(string,sizeof(string),"La password che hai inserito non corrisponde a quella associata a questo nome, riprova\nHai ancora %d tentativo, dopo di che verrai kickato",tentrim);
  476.                ShowPlayerDialog(playerid,dialog_Login,DIALOG_STYLE_INPUT,"{F6C800}Login",string,"Conferma","");
  477.             }
  478.             else
  479.             {
  480.                format(string,sizeof(string),"La password che hai inserito non corrisponde a quella associata a questo nome, riprova\nHai ancora %d tentativi, dopo di che verrai kickato",tentrim);
  481.                ShowPlayerDialog(playerid,dialog_Login,DIALOG_STYLE_INPUT,"{F6C800}Login",string,"Conferma","");
  482.             }
  483.         }
  484.         else
  485.         {
  486.             PlayerInfo[playerid][PlayerLogged]=1;
  487.             LoadPlayer(playerid);
  488.         }
  489.         return 1;
  490.     }
  491.     return 1;
  492. }
  493.  
  494. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
  495. {
  496.    GivePlayerHealth(playerid,amount);
  497.    GivePlayerHealth(playerid,-floatmul(amount,2.6));
  498.    return 1;
  499. }
  500.  
  501. forward Login(playerid);
  502. public Login(playerid)
  503. {
  504.     if(!fexist(PlayerInfo[playerid][PlayerFile]))
  505.     {
  506.         ShowPlayerDialog(playerid,dialog_Register,DIALOG_STYLE_INPUT,"{F6C800}Registrazione","Benvenuto nel server\nQuesto nome non è registrato,\ninserisci una password per registrarlo","Registrati","Esci");
  507.     }
  508.     else
  509.     {
  510.         ShowPlayerDialog(playerid,dialog_Login,DIALOG_STYLE_INPUT,"{F6C800}Login","Bentornato nel server\nQuesto nome è gia registrato,\ninserisci la password per eseguire il login","Login","Esci");
  511.     }
  512.     PlayerPlaySound(playerid, 1097, 0,0,0);
  513.  
  514.     new randomcam=random(4);
  515.     switch (randomcam)
  516.     {
  517.        case 0:
  518.        {
  519.           SetPlayerCameraPos(playerid, -1687.16,2659.83,115.30);
  520.           SetPlayerCameraLookAt(playerid, -1550.81,2670.78,55.68);
  521.        }
  522.        case 1:
  523.        {
  524.           SetPlayerCameraPos(playerid, -1320.76,2698.02,144.26);
  525.           SetPlayerCameraLookAt(playerid, -1501.41,2604.92,55.68);
  526.        }
  527.        case 2:
  528.        {
  529.           SetPlayerCameraPos(playerid, -1499.24,2796.43,127.94);
  530.           SetPlayerCameraLookAt(playerid, -1492.06,2591.76,55.68);
  531.        }
  532.        case 3:
  533.        {
  534.           SetPlayerCameraPos(playerid, -1506.07, 2454.73, 110.40);
  535.           SetPlayerCameraLookAt(playerid, -1498.69,2604.76,55.68);
  536.        }
  537.     }
  538.     SendClientMessage(playerid,0xF5C800AA,"  ");
  539.     SendClientMessage(playerid,0xF5C800AA,"  ");
  540.     SendClientMessage(playerid,0xF5C800AA,"  ");
  541.     SendClientMessage(playerid,0xF5C800AA,"  ");
  542.     SendClientMessage(playerid,0xF5C800AA,"  ");
  543.     SendClientMessage(playerid,0xF5C800AA,"  ");
  544.     SendClientMessage(playerid,0xF5C800AA,"  ");
  545.     new string[128];
  546.     SendClientMessage(playerid,0x0078F6AA,"________________________________________");
  547.     SendClientMessage(playerid,0xF5C800AA,"  ");
  548.     format(string,sizeof(string),"Benvenuto su: %s %s", dini_Get(CONFIGURATION_FILE,"Hostname"), dini_Get(CONFIGURATION_FILE,"Version"));
  549.     SendClientMessage(playerid,0xF5C800AA,string);
  550.     format(string,sizeof(string),"Forum: %s", dini_Get(CONFIGURATION_FILE,"Weburl"));
  551.     SendClientMessage(playerid,0xF5C800AA,string);
  552.     SendClientMessage(playerid,0x0078F6AA,"________________________________________");
  553.     return 1;
  554. }
  555.  
  556. stock RegisterPlayer(playerid)
  557. {
  558.     dini_IntSet(PlayerInfo[playerid][PlayerKill],"PlayerKill",0);
  559.     dini_IntSet(PlayerInfo[playerid][PlayerDeath],"PlayerDeath",0);
  560.     dini_IntSet(PlayerInfo[playerid][PlayerAdminLevel],"PlayerAdminLevel",0);
  561.     return 1;
  562. }
  563.  
  564. stock LoadPlayer(playerid)
  565. {
  566.     PlayerInfo[playerid][PlayerKill]=dini_Int(PlayerInfo[playerid][PlayerFile],"PlayerKill");
  567.     PlayerInfo[playerid][PlayerDeath]=dini_Int(PlayerInfo[playerid][PlayerFile],"PlayerDeath");
  568.     PlayerInfo[playerid][PlayerAdminLevel]=dini_Int(PlayerInfo[playerid][PlayerFile],"PlayerAdminLevel");
  569.     new Float:ratio, string[128], score;
  570.     if(PlayerInfo[playerid][PlayerDeath] == 0)
  571.     {
  572.        ratio = PlayerInfo[playerid][PlayerKill];
  573.     }
  574.     else
  575.     {
  576.        ratio = floatdiv(PlayerInfo[playerid][PlayerKill],PlayerInfo[playerid][PlayerDeath]);
  577.     }
  578.     format(string,sizeof(string),"~g~Kill: %d~n~~r~Death: %d~n~~w~K/D: %f", PlayerInfo[playerid][PlayerKill], PlayerInfo[playerid][PlayerDeath], ratio);
  579.     TextDrawSetString(Info[playerid],string);
  580.     score = PlayerInfo[playerid][PlayerKill]-PlayerInfo[playerid][PlayerDeath];
  581.     if(score > 1)
  582.     {
  583.        SetPlayerScore(playerid,score);
  584.     }
  585.     else
  586.     {
  587.        SetPlayerScore(playerid,1);
  588.     }
  589.     JoinRound(playerid);
  590.     return 1;
  591. }
  592.  
  593. stock SavePlayer(playerid)
  594. {
  595.     dini_IntSet(PlayerInfo[playerid][PlayerFile],"PlayerKill",PlayerInfo[playerid][PlayerKill]);
  596.     dini_IntSet(PlayerInfo[playerid][PlayerFile],"PlayerDeath",PlayerInfo[playerid][PlayerDeath]);
  597.     dini_IntSet(PlayerInfo[playerid][PlayerFile],"PlayerAdminLevel",PlayerInfo[playerid][PlayerAdminLevel]);
  598.     return 1;
  599. }
  600.  
  601. forward UpdateTime();
  602. public UpdateTime()
  603. {
  604.    new Hour, Minute, Second;
  605.    gettime(Hour, Minute, Second);
  606.    SetWorldTime(Hour);
  607.    UpdateTimer=SetTimer("UpdateTime",60000,false);
  608.    print("Time del server aggiornato");
  609.    return 1;
  610. }
  611.  
  612. forward JoinRound(playerid);
  613. public JoinRound(playerid)
  614. {
  615.     PlayerInfo[playerid][PlayerInClassSelection] = 1;
  616.     SendClientMessage(playerid,0x0078F6AA,"-----------------------------------------------------");
  617.     SendClientMessage(playerid,0xE6E6E6AA,"Usa: {F67800}/assault{E6E6E6} per selezionare la classe assault");
  618.     SendClientMessage(playerid,0xE6E6E6AA,"Usa: {F67800}/sniper{E6E6E6} per selezionare la classe sniper");
  619.     SendClientMessage(playerid,0xE6E6E6AA,"Usa: {F67800}/gunner{E6E6E6} per selezionare la classe gunner");
  620.     SendClientMessage(playerid,COLOR_INFO,"Ricorda: potrai cambiare classe al inizio di ogni round");
  621.     SendClientMessage(playerid,0x0078F6AA,"-----------------------------------------------------");
  622.     return 1;
  623. }
  624.  
  625. forward StopAndRun();
  626. public StopAndRun()
  627. {
  628.     for(new i=0;i<MAX_PLAYERS;i++)
  629.     {
  630.         if(PlayerInfo[i][PlayerInRound] == 1)
  631.         {
  632.              SavePlayer(i);
  633.              PlayerInfo[i][PlayerInRound] = 0;
  634.              PlayerInfo[i][PlayerInClassSelection] = 1;
  635.              TogglePlayerControllable(i, 0);
  636.              SetPlayerPos(i, 838.68, -2961.67, 120.82);
  637.         }
  638.              
  639.     }
  640.     SendClientMessageToAll(0x0078F6AA,"-----------------------------------------------------");
  641.     SendClientMessageToAll(0xE6E6E6AA,"Usa: {F67800}/assault{E6E6E6} per selezionare la classe assault");
  642.     SendClientMessageToAll(0xE6E6E6AA,"Usa: {F67800}/sniper{E6E6E6} per selezionare la classe sniper");
  643.     SendClientMessageToAll(0xE6E6E6AA,"Usa: {F67800}/gunner{E6E6E6} per selezionare la classe gunner");
  644.     SendClientMessageToAll(COLOR_INFO,"Ricorda: potrai cambiare classe al inizio di ogni round");
  645.     SendClientMessageToAll(0x0078F6AA,"-----------------------------------------------------");
  646.     print("Round ultimato");
  647.     SetTimer("StopAndRun",300000,false);
  648.     return 1;
  649. }
  650.  
  651. stock GivePlayerHealth(playerid, Float:amount)
  652. {
  653.     new Float:health;
  654.     GetPlayerHealth(playerid,health);
  655.     if(health+amount<100)SetPlayerHealth(playerid,health+amount);
  656.     else SetPlayerHealth(playerid,100);
  657. }
Add Comment
Please, Sign In to add comment