Advertisement
Guest User

Untitled

a guest
May 13th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.43 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. stock DB_Escape(text[])
  4. {
  5.     new
  6.         ret[80 * 2],
  7.         ch,
  8.         i,
  9.         j;
  10.     while ((ch = text[i++]) && j < sizeof (ret))
  11.     {
  12.         if (ch == '\'')
  13.         {
  14.             if (j < sizeof (ret) - 2)
  15.             {
  16.                 ret[j++] = '\'';
  17.                 ret[j++] = '\'';
  18.             }
  19.         }
  20.         else if (j < sizeof (ret))
  21.         {
  22.             ret[j++] = ch;
  23.         }
  24.         else
  25.         {
  26.             j++;
  27.         }
  28.     }
  29.     ret[sizeof (ret) - 1] = '\0';
  30.     return ret;
  31. }
  32. //Dialoge
  33. #define DIALOG_WETTE 500
  34. #define EILSTATS 750
  35. //Wetteinsätze
  36. #define EINSATZ 500
  37. #define EINSATZE 5000
  38. #define EINSATZZ 25000
  39.  
  40. new DB:Statistiken;
  41. new SpawnProtect[MAX_PLAYERS], InEIL[MAX_PLAYERS][3],EiLKills[MAX_PLAYERS][3], JACKPOT = EINSATZ, JACKPOTE = EINSATZE, JACKPOTZ = EINSATZZ;
  42.  
  43. enum EiLDaten
  44. {
  45.     EKills[MAX_PLAYERS],
  46.     ETode[MAX_PLAYERS],
  47.     EiLSiege[MAX_PLAYERS],
  48.     EiLVerluste[MAX_PLAYERS]
  49. }
  50. new EInfo[MAX_PLAYERS][EiLDaten];
  51.  
  52. public OnFilterScriptInit()
  53. {
  54.     Statistiken = db_open("Statistiken.db");
  55.     db_query(Statistiken, "CREATE TABLE IF NOT EXISTS `EiLStatistik`(`ID` INTEGER PRIMARY KEY AUTOINCREMENT,`Name`, `EKills`,`ETode`,`EiLSiege`, `EiLVerluste`)");
  56.     print("\n--------------------------------------");
  57.     print("Eine im Lauf [Version 1.0]\nGeschrieben von: BOMBER");
  58.     print("--------------------------------------\n");
  59.     return 1;
  60. }
  61. public OnPlayerConnect(playerid)
  62. {
  63.     new str[256],dbstr[256],DBResult:Result,name[MAX_PLAYER_NAME+1];
  64.     GetPlayerName(playerid,name,sizeof(name));
  65.     format(str,sizeof(str), "SELECT * FROM `EiLStatistik` WHERE NAME = '%s'", DB_Escape(name));
  66.     Result = db_query(Statistiken,str);
  67.     if(db_num_rows(Result) > 0)
  68.     {
  69.         db_get_field_assoc(Result,"EKills",str,sizeof(str));
  70.         EInfo[playerid][EKills]=strval(str);
  71.         db_get_field_assoc(Result,"ETode",str,sizeof(str));
  72.         EInfo[playerid][ETode] = strval(str);
  73.         db_get_field_assoc(Result,"EiLSiege",str,sizeof(str));
  74.         EInfo[playerid][EiLSiege]=strval(str);
  75.         db_get_field_assoc(Result,"EiLVerluste",str,sizeof(str));
  76.         EInfo[playerid][EiLVerluste]=strval(str);
  77.     } else
  78.     {
  79.         format(dbstr,sizeof(dbstr), "INSERT INTO `EiLStatistik`(`Name`, `EKills`,`ETode`, `EiLSiege`, `EiLVerluste`)VALUES('%s','0','0','0','0')",DB_Escape(name));
  80.         db_query(Statistiken,dbstr);
  81.     }
  82.     db_free_result(Result);
  83.     return 1;
  84.    
  85. }
  86. public OnPlayerSpawn(playerid)
  87. {
  88.     if(InEIL[playerid][0] == 1)
  89.     {
  90.         GivePlayerWeapon(playerid,24,1);
  91.         GivePlayerWeapon(playerid,4,1);
  92.         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  93.         SetPlayerInterior(playerid,1);
  94.         SetPlayerVirtualWorld(playerid,1);
  95.         SetPlayerHealth(playerid,10000);
  96.         SpawnProtect[playerid] = 1;
  97.         SetTimerEx("Protect",5000,false,"i",playerid);
  98.     }
  99.     if(InEIL[playerid][1] == 1)
  100.     {
  101.         GivePlayerWeapon(playerid,24,1);
  102.         GivePlayerWeapon(playerid,4,1);
  103.         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  104.         SetPlayerInterior(playerid,1);
  105.         SetPlayerVirtualWorld(playerid,2);
  106.         SetPlayerHealth(playerid,10000);
  107.         SpawnProtect[playerid] = 1;
  108.         SetTimerEx("Protect",5000,false,"i",playerid);
  109.     }
  110.     if(InEIL[playerid][2] == 1)
  111.     {
  112.         GivePlayerWeapon(playerid,24,1);
  113.         GivePlayerWeapon(playerid,4,1);
  114.         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  115.         SetPlayerInterior(playerid,1);
  116.         SetPlayerVirtualWorld(playerid,3);
  117.         SetPlayerHealth(playerid,10000);
  118.         SpawnProtect[playerid] = 1;
  119.         SetTimerEx("Protect",5000,false,"i",playerid);
  120.     }
  121.     return 1;
  122. }
  123. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  124. {
  125.     if(response)
  126.     {
  127.         switch(dialogid)
  128.         {
  129.             case DIALOG_WETTE:
  130.             {
  131.                 switch(listitem)
  132.                 {
  133.                     case 0:
  134.                     {
  135.                         if(InEIL[playerid][0] == 1 || InEIL[playerid][1] == 1 || InEIL[playerid][2] == 1)return SendClientMessage(playerid,-1, "Du bist bereits im EiL");
  136.                         if(GetPlayerMoney(playerid) < EINSATZ)return SendClientMessage(playerid,-1,"Nicht genügend Geld vorhanden!");
  137.                         GivePlayerMoney(playerid,-EINSATZ);
  138.                         JACKPOT += EINSATZ;
  139.                         GivePlayerWeapon(playerid,24,1);
  140.                         GivePlayerWeapon(playerid,4,1);
  141.                         InEIL[playerid][0] = 1;
  142.                         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  143.                         SetPlayerInterior(playerid,1);
  144.                         SetPlayerVirtualWorld(playerid,1);
  145.                         SpawnProtect[playerid] = 1;
  146.                         SetTimerEx("Protect", 5000, false, "i",playerid);
  147.                     }
  148.                     case 1:
  149.                     {
  150.                         if(InEIL[playerid][0] == 1 || InEIL[playerid][1] == 1 || InEIL[playerid][2] == 1)return SendClientMessage(playerid,-1, "Du bist bereits im EiL");
  151.                         if(GetPlayerMoney(playerid) < EINSATZE)return SendClientMessage(playerid,-1,"Nicht genügend Geld vorhanden!");
  152.                         GivePlayerMoney(playerid,-EINSATZE);
  153.                         JACKPOTE += EINSATZE;
  154.                         GivePlayerWeapon(playerid,24,1);
  155.                         GivePlayerWeapon(playerid,4,1);
  156.                         InEIL[playerid][1] = 1;
  157.                         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  158.                         SetPlayerInterior(playerid,1);
  159.                         SetPlayerVirtualWorld(playerid,2);
  160.                         SpawnProtect[playerid] = 1;
  161.                         SetTimerEx("Protect", 5000, false, "i",playerid);
  162.                     }
  163.                     case 2:
  164.                     {
  165.                         if(InEIL[playerid][0] == 1 || InEIL[playerid][1] == 1 || InEIL[playerid][2] == 1)return SendClientMessage(playerid,-1, "Du bist bereits im EiL");
  166.                         if(GetPlayerMoney(playerid) < EINSATZZ)return SendClientMessage(playerid,-1,"Nicht genügend Geld vorhanden!");
  167.                         GivePlayerMoney(playerid,-EINSATZZ);
  168.                         JACKPOTZ += EINSATZZ;
  169.                         GivePlayerWeapon(playerid,24,1);
  170.                         GivePlayerWeapon(playerid,4,1);
  171.                         InEIL[playerid][2] = 1;
  172.                         SetPlayerPos(playerid,-729.276000,503.086944,1371.971801);
  173.                         SetPlayerInterior(playerid,1);
  174.                         SetPlayerVirtualWorld(playerid,3);
  175.                         SpawnProtect[playerid] = 1;
  176.                         SetTimerEx("Protect", 5000, false, "i",playerid);
  177.                     }
  178.                 }
  179.             }
  180.         }
  181.     }
  182.     return 1;
  183. }
  184. forward Protect(playerid);
  185. public Protect(playerid)
  186. {
  187.     SpawnProtect[playerid] = 0;
  188.     SetPlayerHealth(playerid,100);
  189.     SendClientMessage(playerid,-1, "Spawnschutz aufgehoben!");
  190. }
  191. public OnPlayerDeath(playerid, killerid, reason)
  192. {
  193.     if(InEIL[killerid][0] == 1)
  194.     {
  195.         EInfo[killerid][EKills] ++;
  196.         EInfo[playerid][ETode] ++;
  197.         EiLKills[killerid][0] += 1;
  198.         GameTextForPlayer(killerid,"+1 ~g~Kugel!",2000,3);
  199.         if(EiLKills[killerid][0] == 10)
  200.         {
  201.             new str[128],name[MAX_PLAYER_NAME+1];
  202.             GetPlayerName(killerid,name,sizeof(name));
  203.             format(str,sizeof(str),"%s hat den Jackpot von %i gewonnen!",name,JACKPOT);
  204.             SendClientMessageToAll(-1,str);
  205.             GivePlayerMoney(killerid,JACKPOT);
  206.             JACKPOT = EINSATZ;
  207.             EInfo[killerid][EiLSiege] += 1;
  208.             for(new i=0;i<MAX_PLAYERS;i++)
  209.             {
  210.                 if(InEIL[i][0] == 1)
  211.                 {
  212.                     EiLKills[killerid][0] = 0;
  213.                     EInfo[i][EiLVerluste] += 1;
  214.                     InEIL[i][0] = 0;
  215.                     SetPlayerHealth(i,100);
  216.                     SetPlayerInterior(i,0);
  217.                     SetPlayerVirtualWorld(i,0);
  218.                     SpawnPlayer(i);
  219.                     ResetPlayerWeapons(i);
  220.                 }
  221.             }
  222.         }
  223.     }
  224.    
  225.     if(InEIL[killerid][1] == 1)
  226.     {
  227.         EInfo[killerid][EKills] ++;
  228.         EInfo[playerid][ETode] ++;
  229.         EiLKills[killerid][1] += 1;
  230.         GameTextForPlayer(killerid,"+1 ~g~Kugel!",2000,3);
  231.         if(EiLKills[killerid][1] == 10)
  232.         {
  233.             new str[128],name[MAX_PLAYER_NAME+1];
  234.             GetPlayerName(killerid,name,sizeof(name));
  235.             format(str,sizeof(str), "%s hat den Jackpot von %i$ gewonnen!",name,JACKPOTE);
  236.             SendClientMessageToAll(-1,str);
  237.             GivePlayerMoney(killerid, JACKPOTE);
  238.             JACKPOTE = EINSATZE;
  239.             EInfo[killerid][EiLSiege] += 1;
  240.             for(new i=0;i<MAX_PLAYERS;i++)
  241.             {
  242.                 if(InEIL[i][1] == 1)
  243.                 {
  244.                     EiLKills[killerid][1] = 0;
  245.                     EInfo[i][EiLVerluste] += 1;
  246.                     InEIL[i][1] = 0;
  247.                     SetPlayerHealth(i,100);
  248.                     SetPlayerInterior(i,0);
  249.                     SetPlayerVirtualWorld(i,0);
  250.                     SpawnPlayer(i);
  251.                     ResetPlayerWeapons(i);
  252.                 }
  253.             }
  254.         }
  255.     }
  256.    
  257.     if(InEIL[killerid][2] == 1)
  258.     {
  259.         EInfo[killerid][EKills] ++;
  260.         EInfo[playerid][ETode] ++;
  261.         EiLKills[killerid][2] += 1;
  262.         GameTextForPlayer(killerid,"+1 ~g~Kugel!",2000,3);
  263.         if(EiLKills[killerid][2] == 10)
  264.         {
  265.             new str[128],name[MAX_PLAYER_NAME+1];
  266.             GetPlayerName(killerid,name,sizeof(name));
  267.             format(str,sizeof(str), "%s hat den Jackpot von %i$ gewonnen!",name,JACKPOTZ);
  268.             SendClientMessageToAll(-1,str);
  269.             GivePlayerMoney(killerid,JACKPOTZ);
  270.             JACKPOTZ = EINSATZZ;
  271.             EInfo[killerid][EiLSiege] += 1;
  272.             for(new i=0;i<MAX_PLAYERS;i++)
  273.             {
  274.                 if(InEIL[i][2] == 1)
  275.                 {
  276.                     EiLKills[killerid][2] = 0;
  277.                     EInfo[i][EiLVerluste] += 1;
  278.                     InEIL[i][2] = 0;
  279.                     SetPlayerHealth(i,100);
  280.                     SetPlayerInterior(i,0);
  281.                     SetPlayerVirtualWorld(i,0);
  282.                     SpawnPlayer(i);
  283.                     ResetPlayerWeapons(i);
  284.                 }
  285.             }
  286.         }
  287.     }
  288.     return 1;
  289. }
  290. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  291. {
  292.     if(issuerid != INVALID_PLAYER_ID && SpawnProtect[playerid] == 1)return SetPlayerHealth(playerid, 1000000);
  293.     if(issuerid != INVALID_PLAYER_ID && InEIL[issuerid][0] || InEIL[issuerid][1] || InEIL[issuerid][2] && weaponid == 24)
  294.     {
  295.         new Float:HP;
  296.         GetPlayerHealth(playerid,HP);
  297.         GivePlayerWeapon(issuerid,24,1);
  298.         SetPlayerHealth(playerid,HP-100);
  299.     }
  300.     if(issuerid != INVALID_PLAYER_ID && weaponid == 4)
  301.     {
  302.         new Float:HP;
  303.         GivePlayerWeapon(issuerid,24,1);
  304.         SetPlayerHealth(playerid,GetPlayerHealth(playerid,HP)-100);
  305.     }
  306.     return 1;
  307. }
  308. public OnPlayerDisconnect(playerid)
  309. {
  310.     new str[256],name[MAX_PLAYER_NAME+1];
  311.     GetPlayerName(playerid,name,sizeof(name));
  312.     format(str,sizeof(str), "UPDATE `EiLStatistik` SET `EKills` = '%i',`ETode` = '%i',`EiLSiege` = '%i', `EiLVerluste` = '%i' WHERE `Name` = '%s'",EInfo[playerid][EKills],EInfo[playerid][ETode],EInfo[playerid][EiLSiege], EInfo[playerid][EiLVerluste],DB_Escape(name));
  313.     db_query(Statistiken,str);
  314.     return 1;
  315. }
  316. CMD:eil(playerid,params[])
  317. {
  318.     new str[128], name[MAX_PLAYER_NAME+1];
  319.     GetPlayerName(playerid,name,sizeof(name));
  320.     format(str,sizeof(str), "Raum - 1 (Preisgeld: %i$)\nRaum - 2 (Preisgeld: %i$)\nRaum - 3 (Preisgeld: %i$)",JACKPOT,JACKPOTE,JACKPOTZ);
  321.     ShowPlayerDialog(playerid,DIALOG_WETTE, DIALOG_STYLE_LIST,"Spielmodus: Eine im Lauf",str, "Spielen", "Abbrechen");
  322.     GivePlayerMoney(playerid,5000000);
  323.     return 1;
  324. }
  325. CMD:exiteil(playerid,params[])
  326. {
  327.     if(InEIL[playerid][0] == 1 || InEIL[playerid][1] == 1 || InEIL[playerid][2] == 1)
  328.     {
  329.         InEIL[playerid][0] = 0;
  330.         InEIL[playerid][1] = 0;
  331.         InEIL[playerid][2] = 0;
  332.         SetPlayerInterior(playerid,0);
  333.         SetPlayerVirtualWorld(playerid,0);
  334.         ResetPlayerWeapons(playerid);
  335.         SpawnPlayer(playerid);
  336.     } else return SendClientMessage(playerid,-1,"Du bist nicht im Spielmodus: Eine im Lauf!");
  337.     return 1;
  338. }
  339. CMD:eilstats(playerid,params[])
  340. {
  341.     new str[256];
  342.     format(str,sizeof(str), "EIL-Siege: %i\nEIL-Verluste: %i\nEIL-Kills: %i\nEIL-Tode: %i\nEiL-KD: %0.2f",EInfo[playerid][EiLSiege],EInfo[playerid][EiLVerluste],EInfo[playerid][EKills],EInfo[playerid][ETode],Float:EInfo[playerid][EKills]/Float:EInfo[playerid][ETode]);
  343.     ShowPlayerDialog(playerid,EILSTATS, DIALOG_STYLE_MSGBOX,"EiL-Statistiken", str, "OK", "");
  344.     return 1;
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement